Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. ;
  2. ; HelloWorld.asm
  3. ;
  4. ; Created: 16.04.2019 14:45:12
  5. ; Author : NetLab-Student
  6. ;
  7.  
  8.  
  9. ; Replace with your application code
  10.  
  11. ;#define Variablen
  12. #include <avr/io.h>
  13. .global vorstart
  14. #define dio 3
  15. #define clk 2
  16. #define cmd1 0x44
  17. #define cmd2a 0xc0
  18. #define cmd2b 0xc1
  19. #define cmd2c 0xc2
  20. #define cmd2d 0xc3
  21. #define cmd3 0x8f
  22. #define data1 0b01111000
  23. #define data2 0b01111001
  24. #define data3 0b01101101
  25. #define data4 0b01111000
  26. #define byte r16
  27. #define couter_preset 0b10000000
  28. #define counter r17
  29.  
  30.  
  31. ;Set bit in I/O Register _SFR_IO_ADDR(DDRD) -> output_bit
  32. vorstart:
  33. sbi _SFR_IO_ADDR(DDRD), clk
  34. call starti
  35.  
  36.  
  37. starti : ;Programmstarti
  38. sbi _SFR_IO_ADDR(DDRD), dio
  39. sbi _SFR_IO_ADDR(PORTD), dio
  40. sbi _SFR_IO_ADDR(PORTD), clk
  41.  
  42. ; 1
  43.  
  44. ldi byte, cmd1
  45. rcall sendbyte
  46. rcall stop
  47.  
  48. ldi byte, cmd2a
  49. rcall sendbyte
  50.  
  51. MOV byte, R25
  52. rcall sendbyte
  53. rcall stop
  54.  
  55. ; 2
  56.  
  57. ldi byte, cmd1
  58. rcall sendbyte
  59. rcall stop
  60.  
  61. ldi byte, cmd2b
  62. rcall sendbyte
  63.  
  64. MOV byte, R24
  65. rcall sendbyte
  66. rcall stop
  67.  
  68. ; 3
  69.  
  70. ldi byte, cmd1
  71. rcall sendbyte
  72. rcall stop
  73.  
  74. ldi byte, cmd2c
  75. rcall sendbyte
  76.  
  77. MOV byte, R23
  78. rcall sendbyte
  79. rcall stop
  80.  
  81. ; 4
  82.  
  83. ldi byte, cmd1
  84. rcall sendbyte
  85. rcall stop
  86.  
  87. ldi byte, cmd2d
  88. rcall sendbyte
  89.  
  90. MOV byte, R22
  91. rcall sendbyte
  92. rcall stop
  93.  
  94. ldi byte, cmd3
  95. rcall sendbyte
  96. rcall stop
  97.  
  98. //EVTL NICHT AUSKLAMMERN
  99. //rjmp starti ; Relative Jump nach starti
  100.  
  101. loop: ;loop1
  102. dec r18
  103. tst r18
  104. brne loop
  105.  
  106. ret
  107.  
  108.  
  109. sendbyte:
  110.  
  111. ldi counter, couter_preset
  112. cbi _SFR_IO_ADDR(PORTD), dio
  113.  
  114. ldi r18, 32
  115. rcall loop
  116.  
  117. rcall serial
  118.  
  119. ldi r18, 127
  120. rcall loop
  121.  
  122. serial:
  123.  
  124. cbi _SFR_IO_ADDR(PORTD), clk
  125.  
  126. sbrc byte, 0
  127. sbi _SFR_IO_ADDR(PORTD), dio
  128.  
  129. sbrs byte, 0
  130. cbi _SFR_IO_ADDR(PORTD), dio
  131.  
  132. ldi r18, 32
  133. rcall loop
  134.  
  135. sbi _SFR_IO_ADDR(PORTD), clk
  136. ldi r18, 32
  137. rcall loop
  138.  
  139. lsr byte
  140. lsr counter
  141. cpi counter, 0
  142. brne serial
  143.  
  144. rcall ack
  145.  
  146. ret
  147.  
  148.  
  149. ack:
  150. cbi _SFR_IO_ADDR(PORTD), clk
  151. cbi _SFR_IO_ADDR(PORTD), dio
  152. ldi r18, 32
  153. rcall loop
  154.  
  155. sbi _SFR_IO_ADDR(PORTD), dio
  156. cbi _SFR_IO_ADDR(DDRD), dio
  157. cbi _SFR_IO_ADDR(PORTD), clk
  158.  
  159. ldi r18, 32
  160. rcall loop
  161.  
  162. sbi _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
  163.  
  164. ;sbic _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
  165. ;ret
  166.  
  167. sbi _SFR_IO_ADDR(PORTD), clk
  168.  
  169. ;sbi _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
  170. sbi _SFR_IO_ADDR(DDRD), dio
  171. ret
  172.  
  173.  
  174. acko:
  175. cbi _SFR_IO_ADDR(PORTD), clk
  176. cbi _SFR_IO_ADDR(PORTD), dio
  177. ldi r18, 32
  178. rcall loop
  179.  
  180. sbi _SFR_IO_ADDR(PORTD), dio
  181. cbi _SFR_IO_ADDR(DDRD), dio
  182. cbi _SFR_IO_ADDR(PORTD), clk
  183.  
  184. ldi r18, 32
  185. rcall loop
  186.  
  187. sbi _SFR_IO_ADDR(PORTD), clk
  188.  
  189. ;sbic _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
  190. ;ret
  191.  
  192. sbi _SFR_IO_ADDR(PORTD), clk
  193.  
  194. ;sbi _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
  195. sbi _SFR_IO_ADDR(DDRD), dio
  196. ret
  197.  
  198. stop:
  199. ldi r18, 32
  200. rcall loop
  201. cbi _SFR_IO_ADDR(PORTD), clk
  202.  
  203. ldi r18, 32
  204. rcall loop
  205. sbi _SFR_IO_ADDR(PORTD), clk
  206.  
  207. ldi r18, 32
  208. rcall loop
  209. sbi _SFR_IO_ADDR(PORTD), dio
  210.  
  211. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement