⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs232.a51

📁 gsm based sms using microntroller. contains some important subroutine were i was tested.
💻 A51
字号:

;---------------------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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -