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

📄 rs2321.asm

📁 51单片机各类源程序集锦
💻 ASM
字号:
;******************************Copyright (c)*******************************
;**                广州周立功单片机发展有限公司研究所
;**                       http://www.zlgmcu.com
;******************************文件信息************************************
;文件名:RS2321.asm
;功能:演示使用DP-51H实验仪实现动态LED数码管显示
;说明:
;	1.在DP-51H实验仪的LED数码管上显示"DP-51H"
;	2.正确设置跳线JP5即把JP5跳线置于下端
;	P3.0,P3.1跳到RXD_232、TXD_232
;作者:叶皓贲
;最后修改时间:2003年3月21
;*************************************************************************


DATA_BUF	DATA	50H		;定义显示缓冲区的首地址?

ACK       BIT 10H  ;应答标志位
SLA       DATA 60H ;器件从地址
SUBA      DATA 61H ;器件子地址 
NUMBYTE   DATA 62H ;读/写的字节数
     ;使用前定义常量:
SDA EQU  P1.7
SCL EQU  P1.6

MTD EQU  30H  ;IIC发送数据缓冲区首址    
MRD EQU  40H  ;IIC接收数据缓冲区首址 (缓冲区40-4FH)

ZLG7290  EQU  70H   

ORG		0000H			;伪指令,定义程序从0000H开始存放,
;但在DP-51H上仿真时请输入8000H
	AJMP	MAIN
	
	ORG		0100H			;伪指令,定义以下程序从0100H开始存放
;但在DP-51H上仿真时请输入8100H
MAIN:
	MOV	SP,#60H			;给堆栈指针赋初值
	MOV	DATA_BUF,#0DH	;数据"d"
	MOV	DATA_BUF+1,#16H	;数据"P"
	MOV	DATA_BUF+2,#1FH	;数据"-"	
	MOV	DATA_BUF+3,#05H	;数据"5"
	MOV	DATA_BUF+4,#01H	;数据"1"
	MOV	DATA_BUF+5,#11H	;数据"H"
	MOV	TMOD,#20H		;设置T1为方式2
	MOV	TH1,#0FDH		;设置波特率为9600
	MOV	TL1,#0FDH
	MOV	SCON,#50H		;设置串口位方式1
	MOV	PCON,#00H
	SETB	TR1				;定时器1开始计数
UP:	
	MOV	R0,#DATA_BUF		;若发送数据首地址送R0
	MOV	R7,#06H		;若发送数据个数送R7
	ACALL	SENDU		;发送dp-51H
	MOV	R0,#DATA_BUF	;接收缓冲区首地址送R0
	MOV	R7,#06H		;若接收数据个数送R7
	ACALL	RDS			;调接收子程序
DISP:	
ACALL	DISPLAY			;调用显示子程序
ACALL 	DELAY	
	AJMP	DISP

;串口发送子程序,R7中存放数据个数,数据首地址存放在R0中
SENDU:	
MOV	A,@R0			;取若发送的数据
	MOV	SBUF,A			;开始发送
SENDWT:	
JBC		TI,SENDNEXT
	AJMP	SENDWT
SENDNEXT:
INC		R0				;发送下一位数据
	DJNZ	R7,SENDU		;数据发送完毕了吗?
	RET

;串口接受子程序,R7中存放数据个数,接受存放到首地址R0中
RDS:	
SETB	REN				;允许接受
RDWAIT:	
JBC		RI,RDNEXT		;接收完?
	AJMP	RDWAIT
RDNEXT:
	MOV	A,SBUF			;接收一位数据
	MOV	@R0,A			;把接收到的数据保存
	INC		R0
	DJNZ	R7,RDS			;数据接收完了吗?
	RET

DISPLAY:
	MOV	R7,#6H
	MOV 	R4,#60H
LOOP:
	MOV	MTD,R4
	INC	R4

	MOV	A,R7
	ADD	A,#DATA_BUF-1H
	MOV	R1,A
	MOV	MTD+01H,@R1
	
	MOV    	SLA,#ZLG7290          ;将MTD的数据发送给7290,进行显示
        MOV    	SUBA,#07H
        MOV    	NUMBYTE,#02H
        ACALL  	IWRNBYTE
	ACALL   DELAY
	DJNZ  	R7,LOOP
	RET

;**************
;延时子程序
;**************
DELAY:	
	MOV	R6,#040H
DELAY0:	
MOV	R5,#010H
DELAY1:	
DJNZ	R5,DELAY1
	DJNZ	R6,DELAY0
	RET

$INCLUDE (VI2C_ASM.INC)    ;包含VI2C平台软件包
END

⌨️ 快捷键说明

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