📄 rs2321.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 + -