📄 zlg7289a.asm
字号:
;********************************************************************
;* 公司名称: 吉林工程技术师范学院 *
;* 模 块 名:数码管驱动模块 芯片型号:ZLG7289A *
;* 创 建 人:韩林 日 期:2006-10-26 *
;* 修 改 人:韩林 日 期:2006-11-23 *
;* 功能描述:ZLG7289A芯片可以驱动8位共阴极数码管动态显示. *
;* 其他说明:该芯片为SPI接口.共28引脚. *
;* 版 本:V1.0 *
;* E-MAIL : HANLINXP@163.COM QQ: 33737559 *
;* *
;* COPYRIGHT@2006 - 2007 *
;* *
;********************************************************************
SCLK_7289A BIT P2.0 ;ZLG7289A的始终控制信号
SDIO_7289A BIT P2.1 ;ZLG7289A的数据控制信号
CS_7289A BIT P2.2 ;ZLG7289A的片选控制信号
KEY_7289A BIT P2.3 ;ZLG7289A的按键控制信号
COMMAND_7289A EQU 3AH ;ZLG7289A的控制缓冲区
DAT_7289A EQU 3BH ;ZLG7289A的数据缓冲区
REDAT_7289A EQU 3CH ;ZLG7289A接收键盘的数据缓冲区
SORD BIT 20H.0 ;判断是单指令还是带数据的指令0->单指令,1->带数据指令
;********************************************************************
;* 子程序名称: INIT_ZLG7289A *
;* 子程序说明: ZLG7289A初始化,初始化命令:0XA4 *
;* 调用子程序: ZLG7289A_T *
;* 影响寄存器: 3AH,20H.0 *
;* 影响标志位: 无 *
;* 输 入: 无 *
;* 返 回: 无 *
;* 设 计 者:韩林 日 期:2006-10-26 *
;* 修 改 者:韩林 日 期:2006-11-23 *
;* E - MAIL :HANLINXP@163.COM QQ:33737559 *
;* *
;* COPYRIGHT@2006 - 2007 *
;* *
;********************************************************************
INIT_ZLG7289A:
MOV COMMAND_7289A,#0A4H
CLR SORD
ACALL ZLG7289A_T
RET
;********************************************************************
;* 子程序名称: ZLG7289A_T *
;* 子程序说明: 发送数据SORD = 0为单指令,SORD = 1为带数据的指令 *
;* 调用子程序: TR_7289A *
;* 影响寄存器: A,3AH,20H.0 *
;* 影响标志位: 无 *
;* 输 入: COMMAND_7289A(3AH),SORD(20H.0) *
;* 返 回: 无 *
;* 设 计 者:韩林 日 期:2006-10-26 *
;* 修 改 者:韩林 日 期:2006-11-23 *
;* E - MAIL :HANLINXP@163.COM QQ:33737559 *
;* *
;* COPYRIGHT@2006 - 2007 *
;* *
;********************************************************************
ZLG7289A_T:
CLR SCLK_7289A ;初始ZLG7289A的电平信号
CLR SDIO_7289A
CLR CS_7289A ;选通ZLG7289A
MOV A,COMMAND_7289A ;发送控制字
ACALL TR_7289A
JNB SORD,RETURN_ZLG ;如果是单指令则发送数据完毕
MOV A,DAT_7289A
ACALL TR_7289A
RETURN_ZLG:
SETB CS_7289A ;复位AT89S51
SETB SCLK_7289A
SETB SDIO_7289A
RET
;********************************************************************
;* 子程序名称: ZLG7289A_R *
;* 子程序说明: 从ZLG7289A读回数据 *
;* 调用子程序: TR_7289A,RE_7289A *
;* 影响寄存器: A,3AH,20H.0 *
;* 影响标志位: 无 *
;* 输 入: COMMAND_7289A,SORD *
;* 返 回: 无 *
;* 设 计 者:韩林 日 期:2006-10-26 *
;* 修 改 者:韩林 日 期:2006-11-23 *
;* E - MAIL :HANLINXP@163.COM QQ:33737559 *
;* *
;* COPYRIGHT@2006 - 2007 *
;* *
;********************************************************************
ZLG7289A_R:
CLR SCLK_7289A
CLR SDIO_7289A
CLR CS_7289A
MOV A,#015H
ACALL TR_7289A
NOP
NOP
ACALL RE_7289A
SETB CS_7289A
SETB SCLK_7289A
SETB SDIO_7289A
RET
;********************************************************************
;* 子程序名称: TR_7289A *
;* 子程序说明: 向ZLG7289A发送一个字节 *
;* 调用子程序: 无 *
;* 影响寄存器: A,B *
;* 影响标志位: C *
;* 输 入: A *
;* 返 回: 无 *
;* 设 计 者:韩林 日 期:2006-10-26 *
;* 修 改 者:韩林 日 期:2006-11-23 *
;* E - MAIL :HANLINXP@163.COM QQ:33737559 *
;* *
;* COPYRIGHT@2006 - 2007 *
;* *
;********************************************************************
TR_7289A:
MOV B,#8
LP_TR7289A:
RLC A
MOV SDIO_7289A,C
SETB SCLK_7289A
NOP
NOP
CLR SCLK_7289A
NOP
DJNZ B,LP_TR7289A
RET
;********************************************************************
;* 子程序名称: RE_7289A *
;* 子程序说明: 从ZLG7289A读回一个字节 *
;* 调用子程序: 无 *
;* 影响寄存器: A,B *
;* 影响标志位: C *
;* 输 入: 无 *
;* 返 回: REDAT_7289A *
;* 设 计 者:韩林 日 期:2006-10-26 *
;* 修 改 者:韩林 日 期:2006-11-23 *
;* E - MAIL :HANLINXP@163.COM QQ:33737559 *
;* *
;* COPYRIGHT@2006 - 2007 *
;* *
;********************************************************************
RE_7289A:
MOV B,#8
LP_RE7289A:
SETB SCLK_7289A
MOV C,SDIO_7289A
RLC A
CLR SCLK_7289A
NOP
NOP
DJNZ B,LP_RE7289A
MOV REDAT_7289A,A
RET
;********************************************************************
;* 子程序名称: DISP_7289A *
;* 子程序说明: 将首地址为30H~37H的数据显示到数码管上 *
;* 调用子程序: ZLG7289A_T *
;* 影响寄存器: R0,R1,R2 *
;* 影响标志位: SORD *
;* 输 入: 30H~37H *
;* 返 回: 无 *
;* 设 计 者:韩林 日 期:2006-10-26 *
;* 修 改 者:韩林 日 期:2006-11-23 *
;* E - MAIL :HANLINXP@163.COM QQ:33737559 *
;* *
;* COPYRIGHT@2006 - 2007 *
;* *
;********************************************************************
DISP_7289A:
MOV R0,#30H ;数据缓冲区
MOV R1,#0C8H ;地址缓冲区
MOV R2,#8 ;数据位数
SETB SORD ;发带数据的命令
LP_DISP:MOV COMMAND_7289A,R1
MOV DAT_7289A,@R0
LCALL ZLG7289A_T
INC R1
INC R0
DJNZ R2,LP_DISP
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -