rs232.a51

来自「gsm based sms using microntroller. cont」· A51 代码 · 共 72 行

A51
72
字号

;---------------------MAX232-------------------------------
; Register definitions.

rBUFFER	EQU	00h		; read data register
wBUFFER	EQU	01h		; send data register
;----------------------------------------------------------
org 0h
	JMP on_reset
;-----------------------Serial Interrupt-------------------
org 0023h 
	JNB RI,ser_down		
	MOV rBUFFER,SBUF		; read data
	CLR RI
	JMP int_end
ser_down:
	MOV SBUF,wBUFFER		; send data
	CLR TI
int_end:	
RETI
;----------------------------------------------------------
org 00ffh
on_reset:
;Initialize Timer
;Baud rate table

;Fosc = 11.0592 MHz
;Baud rate	TH1	TH1(hex)	SMOD(PCON.7)
;300		160	A0			0
;1200		232	E8			0
;2400		244	F4			0
;4800		250	FA			0
;9600		253	FD			0
;19200	253	FD			1
;28800	255	FF			0


		MOV TH1,#0FDH	; baud rate 9600
		MOV TMOD,#20H	; timer-1 in 8-bit auto reload
		MOV SCON,#50H	; receive enable
				; SMOD = 0

;		MOV IE,#90H		; Serial Interrupt 10010000b
ENDLESS:
		
		CALL get_byte
		MOV A,rBUFFER
		MOV wBUFFER,A
		CALL send_byte

		JMP ENDLESS	
;----------------------------------------------------------
;Without interrupt
;----------------------------------------------------------
send_byte:
		MOV SBUF,wBUFFER		; send data
		SETB TR1
RS232BACK:  JNB SCON.1,RS232BACK	; wait for TI
		CLR TF1
		CLR SCON.1
RET
;----------------------------------------------------------	
get_byte:
		SETB TR1
RS232B:  	JNB SCON.0,RS232B		; wait for RI
		MOV rBUFFER,SBUF		; get data
		CLR TF1
		CLR SCON.0
RET
;-----------------------------------------------------------

end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?