Advertisement
Sumss

Datorteknik - Lab2

Dec 5th, 2018
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;-------------------------------Deklarationer-------------------------------
  2.     .def AntalBeeps = r19
  3.     .def char_ascii = r20
  4.     .def char_morse = r21
  5.     .def beep_sound_on = r22
  6.     .equ speed = 20
  7.     .equ ton = $1F ;1F
  8.  
  9.     ;Sätt upp stackpeckaren
  10.     ldi r16,high(RAMEND)
  11.     out sph,r16
  12.     ldi r16,low(RAMEND)
  13.     out spl,r16
  14.  
  15. INIT:
  16.     ldi r16, $01
  17.     out DDRA,r16
  18.  
  19. ;-------------------------------MAIN-------------------------------
  20. SETUP:                          ;Sätt peckare till ordet
  21.     ldi ZL, LOW(NAMN*2)
  22.     ldi ZH, HIGH(NAMN*2)
  23. MORSE:
  24.     LPM char_ascii, Z+          ;(GET_CHAR) Läs in ascii värdet
  25.     cpi char_ascii, $0          ;Kolla om vi är i slutet
  26.     BREQ KLAR                   ;Om vi är i slutet hoppa till klar
  27.     cpi char_ascii, $20         ;Kolla om tecknet var ett mellanslag
  28.     BREQ MELLANSLAG             ;Om tecknet var ett mellanslag hoppa och gör det i morse
  29. SEND_IT:
  30.     push ZH
  31.     push ZL
  32.     ldi ZH, HIGH(TABELL*2)
  33.     subi char_ascii, $41
  34.     mov ZL, char_ascii
  35.     LPM char_morse, Z
  36.     pop ZL
  37.     pop ZH
  38. BEEP_CHAR:
  39.     lsl char_morse
  40.     BRNE SOUND
  41. KLAR_LJUD:
  42.     ldi AntalBeeps, speed*2
  43.     clr beep_sound_on
  44.     rcall BEEP
  45.     rjmp MORSE
  46. SOUND:
  47.     BRCC BEEP_1N
  48.     ldi AntalBeeps, speed*3     ;BEEP 3N
  49.     RJMP SOUND_BEEPS
  50. BEEP_1N:
  51.     ldi AntalBeeps, speed       ;BEEP 1N
  52. SOUND_BEEPS:
  53.     ldi beep_sound_on, $1
  54.     rcall BEEP
  55.     ldi AntalBeeps, speed
  56.     clr beep_sound_on
  57.     rcall BEEP
  58.     rjmp BEEP_CHAR
  59.  
  60. ;-------------------------------LJUD-----------------------------------
  61. BEEP:
  62.     ldi r17, $10
  63.     out PORTA, beep_sound_on
  64.     call TON_BEEP
  65.     ldi r17, $10
  66.     cbi PORTA,0
  67.     call TON_BEEP
  68.     dec AntalBeeps
  69.     BRNE BEEP
  70.     ret
  71.  
  72. TON_BEEP:
  73.     ldi r18, ton
  74. WAIT:
  75.     dec r18
  76.     BRNE WAIT
  77.     dec r17
  78.     BRNE TON_BEEP
  79.     ret
  80.  
  81. ;-------------------------------HELP-----------------------------------
  82. MELLANSLAG:
  83.     clr beep_sound_on
  84.     ldi AntalBeeps, 4*speed
  85.     rcall BEEP
  86.     rjmp MORSE
  87.  
  88. KLAR:
  89.     rjmp KLAR
  90.  
  91. ;-------------------------------TABELLER-------------------------------
  92.     .org $100                   ;256
  93. NAMN: .db "SOS HEJ HOPP I LINGONBSKOGEN", $00
  94.  
  95.     .org $180                   ;DVS TABELL är på $0300
  96. TABELL: .db $60, $88, $A8, $90, $40, $28, $D0, $08, $20, $78, $B0, $48, $E0, $A0, $F0, $68, $D8, $50, $10, $C0, $30, $18, $70, $98, $B8, $C8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement