Advertisement
Guest User

Untitled

a guest
Dec 4th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ORG 0x00
  2.     JMP INIT;
  3.  
  4. ORG 0x23 ; adres dla przerwania z portu szeregowego
  5.     JMP SER; skok do obsługi przerwania
  6.  
  7. ORG 0x30
  8.  
  9. INIT:
  10.     ORL PCON, #0x80; ustawienie SMOD=1
  11.     MOV SCON, #0x50; bity SM1=1 , REN=1
  12.     MOV TMOD, #0x20; tryb licznika 8 bitowy reloadThx
  13.     MOV TH1,#0xF5; wartosc 245 daje predkosc ok.4734~4800
  14.     MOV TL1,#0xF5;
  15. ; start licznika 1 oraz odmaskowanie potrzebnych przerwan
  16.     SETB TR1;
  17.     SETB EA; ogolne zezwolenie dla przerwan
  18.     SETB ES; port szeregowy
  19.     SETB TI; ustawienie TI=1 w celu wykonania 1 przerwania
  20.  
  21. MAIN:
  22.     JMP MAIN;
  23.  
  24. ; instrukcja przerwania z portu szeregowego
  25. SER:
  26.     JB TI, send; jesli TI=1 przejdz do etykiety send
  27.     JB RI, read; jesli RI=1 przejdz do etykiety read
  28.     RETI
  29.  
  30. send:
  31.     CLR TI; po przyjeciu przerwania znacznik nadajnika TI jest zerowany
  32.     RETI
  33. ;;kody ascii A=65, Z=90
  34. read:
  35.     CLR RI; wyzerowanie znacznika odbiornika RI
  36.     MOV R0, SBUF; wyslanie znaku do rejrestru SBUF
  37.     CJNE R0,#64,porownanie; lewy brzeg przedzialu ,jesli R0 rozny od 64 przejdz do etykiety porownanie
  38.  
  39. RETI
  40.  
  41. porownanie:
  42.     JNC wiekszy; jesli R0 > 64 przejdz do etykiety wiekszy
  43. RETI
  44.  
  45. wiekszy:
  46.     CJNE R0,#91,porownanie2; prawy brzeg przedzialu, jesli R0 rozny od 91 przejdz do porownanie2
  47. RETI;
  48.  
  49. porownanie2:
  50.     JC koniec; jesli R0<91 przejdz do koniec
  51. RETI
  52.  
  53. koniec:
  54. MOV SBUF, R0; wyslanie R0 do bufora
  55. RETI
  56. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement