📄 mcs51_list_10_4.asm
字号:
; =======================================================================
;
; Tomasz Starecki: "Mikrokontrolery 8051 w praktyce"
; Wydawnictwo BTC - http://www.btc.pl
;
; =======================================================================
; procedura programowej obslugi nadajnika lacza RS
; bez parzystosci, z podwojnym bitem stopu
; musi byc wywolywana z czestotliwosca rowna baud rate (predkosci transmisji)
; TX_aktywny - bajt pomocniczy, zlicza liczbe bitow do wyslania
; TX_buf - jednobajtowy bufor, w ktorym umieszczono bajt do wyslania
; procedura umieszczajaca bajt do wyslania musi rowniez ustawic bit
; "zacznij_nadawanie", ktory jest automatycznie zerowany pod koniec nadawania
; udostepniane sa procedury jak w deklaracji PUBLIC
; wymagane zdefiniowanie (typowo w module glownym) parametr體 jak w EXTERN
; niszczy ACC i CY
; =======================================================================
PUBLIC nadawanie_RS
EXTERN zacznij_nadawanie, TX_aktywny, TX_pin, TX_buf
nadawanie_RS:
MOV A, TX_aktywny
JNZ nastepny_bit ; skok jesli w trakcie wysylania bajtu
JB zacznij_nadawanie, bit_startu
SETB TX_pin
RET
bit_startu:
MOV TX_aktywny, #10 ; 11 bitow do wyslania (oprocz startu)
CLR TX_pin ; bit startu
RET
nastepny_bit:
DEC TX_aktywny ; dekrementacja TX_aktywny
CJNE A, #2, moze_drugi_bit_stopu
SETB TX_pin ; wyslanie pierwszego bit stopu
RET
moze_drugi_bit_stopu:
CJNE A, #1, bit_danych
SETB TX_pin ; wyslanie drugiego bitu stopu
CLR zacznij_nadawanie ; i zerowanie znacznika nadawania
RET
bit_danych:
MOV A, TX_buf ; wyslanie kolejnego bitu danych
MOV C, ACC.0
MOV TX_pin, C
RR A
MOV TX_buf, A
RET
END ; koniec modulu
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -