Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ORG 0x00
- JMP INIT;
- ORG 0x23 ; adres dla przerwania z portu szeregowego
- JMP SER; skok do obsługi przerwania
- ORG 0x30
- INIT:
- ORL PCON, #0x80; ustawienie SMOD=1
- MOV SCON, #0x50; bity SM1=1 , REN=1
- MOV TMOD, #0x20; tryb licznika 8 bitowy reloadThx
- MOV TH1,#0xF5; wartosc 245 daje predkosc ok.4734~4800
- MOV TL1,#0xF5;
- ; start licznika 1 oraz odmaskowanie potrzebnych przerwan
- SETB TR1;
- SETB EA; ogolne zezwolenie dla przerwan
- SETB ES; port szeregowy
- SETB TI; ustawienie TI=1 w celu wykonania 1 przerwania
- MAIN:
- JMP MAIN;
- ; instrukcja przerwania z portu szeregowego
- SER:
- JB TI, send; jesli TI=1 przejdz do etykiety send
- JB RI, read; jesli RI=1 przejdz do etykiety read
- RETI
- send:
- CLR TI; po przyjeciu przerwania znacznik nadajnika TI jest zerowany
- RETI
- ;;kody ascii A=65, Z=90
- read:
- CLR RI; wyzerowanie znacznika odbiornika RI
- MOV R0, SBUF; wyslanie znaku do rejrestru SBUF
- CJNE R0,#64,porownanie; lewy brzeg przedzialu ,jesli R0 rozny od 64 przejdz do etykiety porownanie
- RETI
- porownanie:
- JNC wiekszy; jesli R0 > 64 przejdz do etykiety wiekszy
- RETI
- wiekszy:
- CJNE R0,#91,porownanie2; prawy brzeg przedzialu, jesli R0 rozny od 91 przejdz do porownanie2
- RETI;
- porownanie2:
- JC koniec; jesli R0<91 przejdz do koniec
- RETI
- koniec:
- MOV SBUF, R0; wyslanie R0 do bufora
- RETI
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement