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

📄 8251re.asm

📁 达盛单片机试验箱
💻 ASM
字号:
;从键盘输入数据在LED上显示

DATAIN		BIT		P1.0
DCLK		BIT		P1.1	

D8251		XDATA	8000H				;数据口
S8251		XDATA	8001H				;状态口
A8253		XDATA	9000H
B8253		XDATA	9001H
C8253		XDATA	9002H
D8253		XDATA	9003H

			ORG		0000H
			
			AJMP	START
			
			ORG		0030H
			
START:		MOV		SP,#50H
			MOV		DPTR,#D8253
			MOV		A,#00110110B		;定时器0,先读写低字节后高字节,方式3,二进制计数
			MOVX	@DPTR,A
			MOV		DPTR,#A8253
			MOV		A,#2FH				;002FH,输入时钟为3.686MHZ,输出为76.8KHZ
			MOVX	@DPTR,A				;初值=(3686K/76.8K)
			CLR		A
			MOVX	@DPTR,A
			MOV		DPTR,#S8251
			MOV		A,#01001110B		;异步1个停止位,无奇偶校验,8位字符,波特率为=发送(接收)时钟/16
			MOVX	@DPTR,A	
			MOV		A,#00110111B		;不搜索,不内复位,请求发送,错误标志复位
			MOVX	@DPTR,A				;正常通信,允许接收,数据准备好,允许发送
AGAIN:		MOV		DPTR,#S8251
WAIT:		MOVX	A,@DPTR
			ANL		A,#02H				;判断接收是否准备好
			JZ		WAIT
			MOV		DPTR,#D8251
			MOVX	A,@DPTR	
			CALL	DISP
			NOP
			AJMP	AGAIN	
	
DISP:		CJNE	A,#40H,DISP1
DISP1:		JNC		ZF					;判断是字母还是数字
			CLR		C		
			SUBB	A,#30H
			AJMP	DISP3
ZF:			CLR		C
			SUBB	A,#37H	
DISP3:		MOV		DPTR,#SGTB1
			MOVC	A,@A+DPTR			;取字符
			MOV		R1,A
			CALL	SEND				;发送字符
			MOV		A,R1
			CALL	SEND
			CALL	DELAY
			CALL	DELAY
			CALL	DELAY
			RET
	
;*****************************************************************************
;		/*发送子程序*/
;*****************************************************************************

SEND:		MOV		R0,#8				;发送8位
SEND1:		CLR		DCLK
			RLC		A
			MOV		DATAIN,C
			SETB	DCLK
			NOP
			DJNZ	R0,SEND1
			SETB	DATAIN
			RET
			
;*****************************************************************************
;		/*延时子程序*/
;*****************************************************************************	

DELAY:		MOV		R6,#250				;延时
DELAY1:		MOV		R7,#250
			DJNZ	R7,$
			DJNZ	R6,DELAY1
			RET	
			
;*****************************************************************************
;		/*字符编码*/
;*****************************************************************************	

SGTB1:		DB		0C0H         		;0
	  		DB	  	0F9H         		;1
		   	DB	  	0A4H         		;2
			DB	  	0B0H         		;3
		  	DB	  	99H          		;4
		 	DB	 	92H          		;5
		 	DB		82H          		;6
			DB	  	0F8H         		;7
			DB	 	80H          		;8
			DB	  	90H          		;9
			DB		88H          		;A
		   	DB	  	83H          		;B
		   	DB	 	0C6H         		;C
		   	DB	 	0A1H         		;D
		   	DB	 	86H          		;E
		   	DB	 	8EH          		;F
		   	DB	 	00H			
			END

⌨️ 快捷键说明

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