Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. .def cnt = r20
  2. .def lct = r21
  3. ldi r16,HIGH(RAMEND)
  4. out SPH,r16
  5. ldi r16,LOW(RAMEND)
  6. out SPL,r16
  7. out DDRA,r16
  8. ldi r16,$0F
  9. out DDRB,r16
  10. ldi r26, 0f
  11.  
  12.  
  13. MORSE:
  14. inc cnt
  15. ldi ZH, high(MESSAGE*2)
  16. ldi ZL, low(MESSAGE*2)
  17. call GET_CHAR
  18. cpi r17, $00
  19. brne MAIN_LOOP
  20. ret
  21.  
  22. MAIN_LOOP:
  23. call LOOKUP
  24. call SEND
  25. jmp MORSE
  26.  
  27. GET_CHAR:
  28. lpm r17, Z+
  29. inc lct
  30. cp cnt, lct
  31. brne GET_CHAR
  32. clr lct
  33. ret
  34. MESSAGE:
  35. .db "DA", $00
  36.  
  37.  
  38. GET_BIT:
  39. lsl r17
  40. ret
  41.  
  42. SEND:
  43. cpi r17, $80
  44. brne SEND_LOOP
  45. call LONGNOBEEP
  46. ret
  47. SEND_LOOP:
  48. call GET_BIT
  49. brcc SHORTBEEP
  50. brcs LONGBEEP ;nobeep
  51. call SHORTNOBEEP
  52. jmp SEND
  53.  
  54.  
  55. LONGBEEP:
  56. ldi r25, 3
  57. sbi PORTA, 0
  58.  
  59. BEEP1:
  60. ; Loopa delay r25 ggr
  61. call DELAY
  62. dec r25
  63. cpse r26, r25
  64. jmp BEEP1
  65.  
  66. cbi PORTA, 0
  67. jmp SEND
  68.  
  69. SHORTBEEP:
  70. sbi PORTA, 0
  71.  
  72. call DELAY
  73. cbi PORTA, 0
  74. jmp SEND
  75.  
  76. LONGNOBEEP:
  77. ldi r25, 2
  78.  
  79. NOBEEP1:
  80. ; Loopa delay r25 ggr
  81. call DELAY
  82. dec r25
  83. cpse r26, r25
  84. jmp NOBEEP1
  85.  
  86. ret
  87.  
  88. SHORNOTBEEP:
  89.  
  90. call DELAY
  91. ret
  92.  
  93.  
  94.  
  95.  
  96. DELAY:
  97. dec r25
  98. sbi PORTB,7
  99. ldi r16,21
  100. delayYttreLoop:
  101. ldi r19,$FF
  102. delayInreLoop:
  103. dec r19
  104. brne delayInreLoop
  105. dec r16
  106. brne delayYttreLoop
  107. cbi PORTB,7
  108. ret
  109.  
  110. LOOKUP:
  111. ldi ZH,HIGH(BTAB*2)
  112. ldi ZL,LOW(BTAB*2)
  113. call LOOP_LOOKUP
  114. ret
  115.  
  116. LOOP_LOOKUP:
  117. lpm r18, Z+
  118. cp r17, r18
  119. brne LOOP1
  120. lpm r17, Z+
  121. ret
  122. LOOP1:
  123. adiw Z,1
  124. jmp LOOP_LOOKUP
  125.  
  126. BTAB:
  127. .db $41,$60,$42,$88,$43,$A8,$44,$90,$45,$40,$46,$28,$47,$D0,$48,$08,$49,$20,$4A,$78,$4B,$B0,$4C,$48,$4D,$E0,$4E,$A0,$4F,$F0,$50,$68,$51,$D8,$52,$50,$53,$10,$54,$C0,$55,$30,$56,$18,$57,$70,$58,$98,$59,$B8,$5A,$C8,$20,$01
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement