Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. ldi r16,HIGH(RAMEND)
  2. out SPH,r16
  3. ldi r16, LOW(RAMEND)
  4. out SPL, r16
  5. ldi r16,$FF
  6. out DDRB,r16
  7.  
  8. .def length=r25
  9. .def beep=r24
  10. .def char=r16
  11. .def c_index=r17
  12. .def not_ascii=r18
  13. .def timer=r20
  14.  
  15. MORSE:
  16. ldi timer,$13
  17. clr c_index
  18. LOOP:
  19. rcall GET_CHAR
  20. cpi char,$00
  21. breq FINISH
  22.  
  23. rcall LOOKUP
  24. cpi char,27
  25. brsh NOT_VALID
  26. rcall SEND
  27. ldi length,2
  28. rjmp VALID
  29. NOT_VALID:
  30. ldi LENGTH,7
  31.  
  32. VALID:
  33. rcall SHORT_BEEP
  34. inc c_index
  35. rjmp LOOP
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42. SEND:
  43.  
  44. lsl not_ascii
  45. breq END_SEND
  46. ldi beep,1
  47. ldi length,3
  48. brcs HAXXX
  49. ldi length,1
  50. HAXXX:
  51. rcall SHORT_BEEP
  52. clr beep
  53. ldi length,1
  54. rcall SHORT_BEEP
  55. rjmp SEND
  56. END_SEND:
  57. ret
  58.  
  59.  
  60.  
  61.  
  62. LOOKUP:
  63.  
  64.  
  65. ldi ZH,HIGH(BTAB*2)
  66. ldi ZL,LOW(BTAB*2)
  67.  
  68. subi char,$41
  69. add zl, char
  70.  
  71. lpm not_ascii,Z
  72.  
  73. ret
  74.  
  75.  
  76. DELAY:
  77.  
  78. ldi r25,$ff ; Decimal bas
  79. delayYttreLoop3:
  80. dec r25
  81. brne delayYttreLoop3
  82. ret
  83.  
  84.  
  85. SHORT_BEEP:
  86. mov r29,length
  87.  
  88. lengthloop:
  89. mov r14,timer ; Decimal bas
  90. delayYttreLoop1:
  91. ser r22
  92. sbrc beep,0
  93. sbi PORTB,0
  94. rcall DELAY
  95. cbi PORTB,0
  96. rcall DELAY
  97.  
  98. delayInreLoop1:
  99. dec r22
  100. brne delayInreLoop1
  101. dec r14
  102. brne delayYttreLoop1
  103. dec r29
  104. brne lengthloop
  105. ret
  106.  
  107.  
  108. GET_CHAR:
  109. ldi ZL,LOW(MESSAGE*2)
  110. ldi ZH,HIGH(MESSAGE*2)
  111. add ZL,c_index;
  112. lpm char,z
  113. ret
  114.  
  115. FInISH:
  116. rjmp finish
  117.  
  118.  
  119.  
  120. MESSAGE:
  121. .db "SOS SOS",$00
  122. BTAB:
  123. .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