Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. ;**********************************************************************
  2. ;Ïðîãðàììà 1.1 äëÿ ìèêðîêîíòðîëëåðîâ ATx8515:
  3. ;ïåðåêëþ÷åíèå ñâåòîäèîäîâ (ÑÄ) ïðè íàæàòèè íà êíîïêó START (SW0),
  4. ;ïîñëå íàæàòèÿ êíîïêè STOP (SW1) ïåðåêëþ÷åíèå ïðåêðàùàåòñÿ è
  5. ;âîçîáíîâëÿåòñÿ c ìåñòà îñòàíîâêè ïðè ïîâòîðíîì íàæàòèè íà êíîïêó START
  6. ;**********************************************************************
  7. ;.include "8515def.inc" ;ôàéë îïðåäåëåíèé äëÿ AT90S8515
  8. .include "m8515def.inc" ;ôàéë îïðåäåëåíèé äëÿ ATmega8515
  9. .def temp = r16 ;âðåìåííûé ðåãèñòð
  10. .def reg_led = r20 ;ðåãèñòð ñîñòîÿíèÿ ñâåòîäèîäîâ
  11. .equ START = 0 ;0-îé âûâîä ïîðòà
  12. .equ STOP = 1 ;1-ûé âûâîä ïîðòà
  13. .org $000
  14. rjmp init
  15. ;***Èíèöèàëèçàöèÿ***
  16. INIT: ldi reg_led,0xFE ;ñáðîñ reg_led.0 äëÿ âêëþ÷åíèÿ LED0
  17. sec ;C=1
  18. set ;T=1 – ôëàã íàïðàâëåíèÿ
  19. ser temp ;èíèöèàëèçàöèÿ âûâîäîâ
  20. out DDRB,temp ; ïîðòà PB íà âûâîä
  21. out PORTB,temp ;ïîãàñèòü ÑÄ
  22. clr temp ;èíèöèàëèçàöèÿ
  23. out DDRD,temp ; ïîðòà PD íà ââîä
  24. ldi temp,0x03 ;âêëþ÷åíèå ‘ïîäòÿãèâàþùèõ’
  25. out PORTD,temp ; ðåçèñòîðîâ ïîðòà PD (0-é, 1-é ðàçðÿäû)
  26. WAITSTART: ;îæèäàíèå
  27. sbic PIND,START ; íàæàòèÿ
  28. rjmp WAITSTART ; êíîïêè START
  29. LOOP: out PORTB,reg_led ;âûâîä íà èíäèêàòîðû
  30. ;***Çàäåðæêà (äâà âëîæåííûõ öèêëà)***
  31.  
  32. ldi r17,11
  33. d0: ldi r18,250
  34. d1: ldi r19,242
  35. d2: dec r19
  36. brne d2
  37. dec r18
  38. brne d1
  39. dec r17
  40. brne d0
  41.  
  42. sbic PIND,STOP ;åñëè íàæàòà êíîïêà STOP,
  43. rjmp MM ; òî ïåðåõîä
  44. rjmp WAITSTART ; äëÿ ïðîâåðêè êíîïêè START
  45. MM: brts LEFT ;ïåðåõîä, åñëè ôëàã T óñòàíîâëåí
  46. sbrs reg_led,0 ;ïðîïóñê ñëåäóþùåé êîìàíäû,
  47. ; åñëè 0-é ðàçðÿä reg_led óñòàíîâëåí
  48. set ;T=1 - ïåðåêëþ÷åíèå ôëàãà íàïðàâëåíèÿ
  49. ror reg_led ;ñäâèã reg_led âïðàâî íà 1 ðàçðÿä
  50. rjmp LOOP ;ïåðåõîä íà ïðîâåðêó íàæàòèÿ STOP
  51. LEFT: sbrs reg_led,7 ;ïðîïóñê ñëåäóþùåé êîìàíäû,
  52. ; åñëè 7-é ðàçðÿä reg_led óñòàíîâëåí
  53. clt ;T=0 – ïåðåêëþ÷åíèå ôëàãà íàïðàâëåíèÿ
  54. rol reg_led ;ñäâèã reg_led âëåâî íà 1 ðàçðÿä
  55. rjmp LOOP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement