可编程数码管/键盘串行接口芯片HD7279A的原理与应用
图2
4 HD7279A的应用
4.1 硬件电路
HD7279A的典型应用电路如图2所示,使用时HD7279A应连接共阴式数码管,无需用到的键盘和数码管可以不连接。如果不用键盘,则典型电路图中连接到键盘的8只10kΩ电阻和8只100kΩ下拉电阻均可以省去。而如果使用键盘,则电路中的8只100kΩ下拉电阻则不能省略。除非不接入数码管,否则连接至DP及SA~SG的8只200Ω电阻也不能省去。
4.2 软件编程
通过下面的一些子程序可对键盘进行监视,并在有键按下时读取按键代码,以便调用显示程序将该键值显示在LED显示器上。在图2所示的接口电路中,HD7279A的外接振荡元件可使用典型值。AT89C51的晶振频率为6MHz。
如果将P1.0接到CS,P1.1接到CLK,P1.2接到DATA,而将P1.3接KEY,那么,其具体的软件程序代码如下:
(1) 发送一字节子程序:(发送数存于A中)
STFS: MOV R7,#08H
LP1: RLC A
MOV P1.2,C
SETB P1.1
MOV R6#02H
LP2: DJNZ R6, LP2 ;延时8μs
CLR P1.1
MOV R6, #02H
LP3:DJNZ R6,LP3 ;延时8μs
DJNZ R7,LP1
RET
(2)接收一字节子程序:(接收字符存于A中)
STJS: MOV R7,#08H
LP1:SETB P1.1
SETB P1.2
MOV R6,#02H
LP2: DJNZ R6,LP2 ;延时8μs
MOV C, P1.2
RLC A
CLR P1.1
MOV R6,#01H
LP3: DJNZ R6,LP3 ;延时
DJNZ R7,LP1
RET
(3)显示程序(采用下载数据但不译码方式,其字形表由用户根据需要和硬件连线来确定,指令码为90~97):
DTR: MOV R5,#05H
MOV R0,#40H
MOV R1,#95H
LP1: CLR P1.0 (CS=0)
MOV R6,#0CH
LP2: DJNZ R6,LP2 ;延时50μs
MOV A,R1
ACALL STFS ;发指令
MOV R6,#04H
LP3: DJNZ R6,LP3 ;延时25μs
MOV A,@R0
ADD A,#0DH
MOVC A,@A+PC
ACALL STFS ;发显示代码
MOV R6,#02H
LP4: DJNZ R6,LP4 ;延时8μs
SETB P1.0 ;CS=1
INC R0
DEC R1
DJNZ R5,LP1
RET
TAB DB 7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FH,7BH,
DB 77H,1FH,4EH,3DH,4FH,47H,00H,67H
(4) 读键值子程序:所读的键值保存在A、B单元中,其值与按键在键盘中的位置及硬件连线有关。
ST: ACALL KEY1
CJNE A,#0FFH,LP1
CLR 00H
RET
LP1: JB 00H,LP2
SETB 00H
RET
LP2: MOV B, #FFH
RET
KEY1:CLR P1.0 ;CS=0
MOV R6,#0CH
LP1: DJNZ R6,LP1 ;延时50μs
MOV A#15H
ACALL STFS ;发指令
MOV R6,#06H
LP2 DJNZ R6,LP2 ;延时25μs
ACALL STJS ;读键值
MOV B, A
SETB P1.0 ;CS=1
RET