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

📄 txd8951.asm

📁 两个8051做的串行口通信呼叫器
💻 ASM
字号:
		ORG	00H
START:	
		MOV	SCON,#50H	;设置串口工作在模式1下,接收使能
		MOV TMOD,#20H	;使用Timer1工作在模式2下
		MOV TH1,#0F3H	;波特率2400
		MOV TL1,#0F3H	
		SETB TR1		;启动Timer1
		MOV 30H,#00H
;**********判断是否建立通信**********
DIAL:	
		MOV SBUF,#99H	;发送呼叫号99H
CHECK_99:
		JBC TI,WAIT_RESPONSE	;判断是否发送完毕,完毕(TI=1)跳到接收应答
		JMP CHECK_99	
WAIT_RESPONSE:
		JBC RI,CHECK_01	;串口接收到数据(RI=1)则跳到判断应答号
		JMP WAIT_RESPONSE
CHECK_01:
		MOV A,SBUF		;将接收到的数据从SBUF载入ACC
		CJNE A,#01H,DIAL;判断接收到的数据是否为应答号01H。如果不是正确的应答号,就跳到DIAL重呼
;**************取按键值******************
LOOP:		
		MOV P2,#00H
		MOV A,P2
		CJNE A,#00H,SENDKEY
		JMP LOOP  
SENDKEY:
;************将P2口的按键值转换为1~8的数据**********
judge1:	CJNE A,#01H,judge2	  ;判断A是否为01H,不是则跳到judge2,判断A是否为02H
SEND_1:			  
		JMP	SEND_NUM		  ;A为01H,则跳到SEND_NUM

judge2:	CJNE A,#02H,judge3
SEND_2:	
		JMP SEND_NUM

judge3:	CJNE A,#04H,judge4	  ;判断A是否为04H,不是则跳到judge4,判断A是否为08H
SEND_3:	MOV A,#03H			  ;以上情况成立,则是第三个按键按下
		JMP	SEND_NUM

judge4:	CJNE A,#08H,judge5
SEND_4:	MOV A,#04H
		JMP SEND_NUM

judge5:	CJNE A,#10H,judge6
SEND_5:	MOV A,#05H
		JMP SEND_NUM

judge6:	CJNE A,#20H,judge7
SEND_6:	MOV A,#06H
		JMP SEND_NUM

judge7:	CJNE A,#40H,SEND_8
SEND_7:	MOV A,#07H
		JMP SEND_NUM

SEND_8:	MOV A,#08H			  ;以上情况都不是,则是第八个按键按下
		JMP SEND_NUM		
;************将数据放入SBUF**********
SEND_NUM:
		MOV 30H,A
		MOV A,30H		;将30H中的键盘按键值载入ACC
		MOV SBUF,A		;发送键盘按键值
;**************发送数据******************
CHECK_SEND:
		JBC TI,LOOP	;判断是否发送完毕(TI=0?)
		JMP CHECK_SEND
		
		END	

⌨️ 快捷键说明

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