Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. CSEG AT 0
  2. AJMP reset
  3. CSEG AT 23h
  4. AJMP serial_interrupt
  5. CSEG AT 30h
  6. reset:
  7. MOV SCON,#50h ; uart w trybie 1 (8 bit), REN=1
  8. MOV TMOD,#20h ; licznik 1 w trybie 2
  9. MOV TH1,#0FDh ; 9600 Bds at 11.0592MHz
  10. SETB TR1 ; uruchomienie licznika
  11. CLR TI ; wyzerowanie flagi wyslania
  12. SETB ES
  13. SETB EA
  14. JMP set_encoding_mode
  15.  
  16. loop:
  17. JNB P3.6, set_decoding_mode
  18. JNB P3.7, set_encoding_mode
  19. JMP common_return
  20. set_encoding_mode:
  21. MOV R4, #0
  22. CLR P2.7
  23. SETB P2.6
  24. DEC A
  25. JMP common_return
  26.  
  27. set_decoding_mode:
  28. MOV R4, #1
  29. CLR P2.6
  30. SETB P2.7
  31. INC A
  32.  
  33. common_return:
  34. JMP loop
  35. serial_interrupt:
  36. JNB RI,$ ; sprawdzenie flagi odbioru
  37. MOV A,SBUF ; czytanie z uarta
  38. CLR RI ; zerowanie flagi odbioru
  39. select_mode:
  40. CJNE R4, #0, encode
  41. JMP decode
  42. decode:
  43. DEC A
  44. JMP transmission_done
  45. encode:
  46. INC A
  47. JMP transmission_done
  48. transmission_done:
  49. MOV SBUF,A ; zapis do uarta
  50. JNB TI,$
  51. CLR TI
  52. RETI
  53. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement