mcs51_list_10_4.asm

来自「source code from Starcki book」· 汇编 代码 · 共 54 行

ASM
54
字号
; =======================================================================
;
;           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 + =
减小字号Ctrl + -
显示快捷键?