Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;**********************************************************************
- ;Ïðîãðàììà 1.1 äëÿ ìèêðîêîíòðîëëåðîâ ATx8515:
- ;ïåðåêëþ÷åíèå ñâåòîäèîäîâ (ÑÄ) ïðè íàæàòèè íà êíîïêó START (SW0),
- ;ïîñëå íàæàòèÿ êíîïêè STOP (SW1) ïåðåêëþ÷åíèå ïðåêðàùàåòñÿ è
- ;âîçîáíîâëÿåòñÿ c ìåñòà îñòàíîâêè ïðè ïîâòîðíîì íàæàòèè íà êíîïêó START
- ;**********************************************************************
- ;.include "8515def.inc" ;ôàéë îïðåäåëåíèé äëÿ AT90S8515
- .include "m8515def.inc" ;ôàéë îïðåäåëåíèé äëÿ ATmega8515
- .def temp = r16 ;âðåìåííûé ðåãèñòð
- .def reg_led = r20 ;ðåãèñòð ñîñòîÿíèÿ ñâåòîäèîäîâ
- .equ START = 0 ;0-îé âûâîä ïîðòà
- .equ STOP = 1 ;1-ûé âûâîä ïîðòà
- .org $000
- rjmp init
- ;***Èíèöèàëèçàöèÿ***
- INIT: ldi reg_led,0xFE ;ñáðîñ reg_led.0 äëÿ âêëþ÷åíèÿ LED0
- sec ;C=1
- set ;T=1 – ôëàã íàïðàâëåíèÿ
- ser temp ;èíèöèàëèçàöèÿ âûâîäîâ
- out DDRB,temp ; ïîðòà PB íà âûâîä
- out PORTB,temp ;ïîãàñèòü ÑÄ
- clr temp ;èíèöèàëèçàöèÿ
- out DDRD,temp ; ïîðòà PD íà ââîä
- ldi temp,0x03 ;âêëþ÷åíèå ‘ïîäòÿãèâàþùèõ’
- out PORTD,temp ; ðåçèñòîðîâ ïîðòà PD (0-é, 1-é ðàçðÿäû)
- WAITSTART: ;îæèäàíèå
- sbic PIND,START ; íàæàòèÿ
- rjmp WAITSTART ; êíîïêè START
- LOOP: out PORTB,reg_led ;âûâîä íà èíäèêàòîðû
- ;***Çàäåðæêà (äâà âëîæåííûõ öèêëà)***
- ldi r17,11
- d0: ldi r18,250
- d1: ldi r19,242
- d2: dec r19
- brne d2
- dec r18
- brne d1
- dec r17
- brne d0
- sbic PIND,STOP ;åñëè íàæàòà êíîïêà STOP,
- rjmp MM ; òî ïåðåõîä
- rjmp WAITSTART ; äëÿ ïðîâåðêè êíîïêè START
- MM: brts LEFT ;ïåðåõîä, åñëè ôëàã T óñòàíîâëåí
- sbrs reg_led,0 ;ïðîïóñê ñëåäóþùåé êîìàíäû,
- ; åñëè 0-é ðàçðÿä reg_led óñòàíîâëåí
- set ;T=1 - ïåðåêëþ÷åíèå ôëàãà íàïðàâëåíèÿ
- ror reg_led ;ñäâèã reg_led âïðàâî íà 1 ðàçðÿä
- rjmp LOOP ;ïåðåõîä íà ïðîâåðêó íàæàòèÿ STOP
- LEFT: sbrs reg_led,7 ;ïðîïóñê ñëåäóþùåé êîìàíäû,
- ; åñëè 7-é ðàçðÿä reg_led óñòàíîâëåí
- clt ;T=0 – ïåðåêëþ÷åíèå ôëàãà íàïðàâëåíèÿ
- rol reg_led ;ñäâèã reg_led âëåâî íà 1 ðàçðÿä
- rjmp LOOP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement