串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用
TIMER DATA 07EH
TIMER1 DATA 07DH
TEN DATA 07CH
DATA_IN DATA 020H
DATA_OUT DATA 021H
;**************I/O定义
DAT BIT P0.6 ;ZLG8279A的 DATA,连接AT89C51的P0.6
KEY BIT P0.7 ?; ZLG8279A的KEY,连接AT89C51的P0.7
CS BIT P0.4 ?; ZLG8279A的CS,连接AT89C51的P0.4
CLK BIT P0.5 ?; ZLG8279A的CLK,连接AT89C51的P0.5
ORG 0000H
AJMP START
ORG 0030H
START:MOV SP,#2FH ?;堆栈定义
MOV P1,#11011011B ?;I/O初始化
MOV TIMER,#50 ? ;25ms定时
START_DELAY: MOV TIMER1,#255
START_DELAY1: DJNZ TIMER1,START_DELAY1
DJNZ TIMER,START_DELAY
MOV DATA_OUT,#10100100B ?;复位指令
CALL SEND ;发指令到ZLG8279A
SETB CS ?;恢复CS高电平
MAIN:JB KEY,MAIN ?;是否有键按下
MOV DATA_OUT,#00010101B ? ;有键按下,发读键盘指令
CALL SEND
CALL RECEIVE
SETB CS ? ;CS置高电平
MOV B,#10 ?;16进制到BCD码转换
MOV A,DATA_IN
DIV AB
MOV TEN,A
MOV DATA_OUT,#10100001B ?;左移指令
CALL SEND
MOV DATA_OUT,#10100001B
CALL SEND
MOV DATA_OUT,#10000001B ;下载数据且译码指令
CALL SEND
MOV DATA_OUT,TEN ?;发送十位数字到ZLG8279A
CALL SEND
《串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用(第4页)》