8显示键盘

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.串行接口的时序图。 A、HD7279A的指令结构类型: (1)、不带数据的纯指令,指令的宽度为8个BIT。即微处 理器需发送8个CLK脉冲。 (2)、带有数据的指令,宽度为16个BIT,即微处理器需 发送16个CLK脉冲。 (3)、读取键盘数据指令,宽度为16个BIT,前8个为微处 理器发送到HD7279A的指令,后8个BIT为HD7279A返 回的键盘代码。执行此指令时,HD7279A的DATA端在 第9个CLK脉冲的上升沿变为输出状态,并与第16个 脉冲的下降沿恢复为输入状态,等待接收下一个指 令。 B、串行接口的时序图:
C.键抖动及消除 键按下如图示,通常抖动时间为5-10mS。
为了保证CPU对键的闭合只作一次处理,必须消除抖 动,消除抖动可采用硬件方法即用R-S触发器隔离, 但为了节省硬件,目前都用软件方法来实现,即增 加一延时程序,在键稳定闭合和断开时才去读取键 的状态。
B.共阴极显示器
2.显示器的工作方式: A.静态显示方式 所谓静态显示,是指显示器显示一字符时,相应的 发光二极管恒定地导通或截止。这种显示方式的每 一个数码显示器,需要一个8位输出口控制。所以 硬件较多,但字符较亮。
a.采用8位锁存器74LS273作为静态显示器接口
b、采用移位寄存器74LS164作为静态显示器接口 (1)、使用串口TXD、RXD与74LS164连接
D7 1 D6 0 D5 1 D4 0 D3 0 D2 0 D1 0 D0 0
与左移指令类似,但所做移动为自左向右(从第8位 向第1位)移动,移动后,最左边一位为空。 B.带有数据的指令 (1). 下载数据且按方式0译码
D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0
LK2:ACALL DELY MOV R2,#08H MOV R3,#FEH LK3:MOV DPTR,#7F01H MOV A,R3 MOVX @DPTR,A RL A MOV R3, A INC DPTR INC DPTR MOVX A,@DPTR CPL A ANL A,#0FH JNZ LK4 DJNZ R2,LK3
3. 控制指令 HD7279A的控制指令分为二大类——纯指令和带有数 据的指令。 主要控制指令如下: A. 纯指令 (1). 复位(清除)指令A4H
D7 1 D6 0 D5 1 D4 0 D3 0 D2 1 D1 0 D0 0
当HD7279A收到该指令后,将所有的显示清除,所有 设置的字符消隐、闪烁等属性也被一起清除。执行 该指令后,芯片所处的状态与系统上电后所处的状 态一样。
MCS-51串行口工作于方式0输出 显示段码:F9H 显‘1’ 更新显示器子程序: DIR:MOV R7,#08H MOV R0,#7FH DL0:MOV A,@R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV SBUF,A DL1:JNB T1,DL1 CLR T1 DEC R0 DJNZ R7,DL0 RET TAB: DB C0H,F9H,A4H,B0H,99H
B.动态显示方式 所谓动态显示是指一位一位地轮流点亮各位显示器。 对于每一位显示器来说,每隔一段时间点亮一次, 通常点亮时间为大于1mS,相隔时间小于20mS。 6位共阴显示器和8155的接口逻辑如图所示:
其中:8155 A口作为位数据口,8155 A口扫描输出总 是只有一位为高电平。对于6位显示器,设置了 6个单元的显示缓冲区即40H-45H,它用来存放 显示数据。 更新显示器子程序如下: DIR:MOV R0,#40H ACALL DY1 MOV R3,#01H INC R0 MOV A,R3 MOV A,R3 L0:MOV DPTR,#7F01H JB ACC.5,L1 MOVX @DPTR,A RL A INC DPTR MOV R3,A MOV A,@R0 SJMP L0 ADD A,#0DH L1: RET MOVC A,@A+PC TAB: DB 3FH,06H,5BH,… DIR1:MOVX @DPTR,A
2.键盘接口电路
+5V
3、键盘扫描程序:
ST: MOV MOV MOVX INC INC MOVX CPL ANL JNZ
DPTR,#7F01H A,#00H @DPTR,A DPTR DPTR A,@DPTR A A,#0FH LK2
LK0:CLR 00H LK1:MOV A,#FFH RET
JB 00H,LK1 SETB 00H JNB P1.0,KEY0 JNB P1.1,KEY1 JNB P1.2,KEY2 JNB P1.3,KEY3 …… (00H)=1按键未抬起 A=FFH为无键按下
四.7279可编程数码管/键盘串行接口芯片:
HD7279A是一片具串行 接口的,可同时驱动8位 共阴式数码管的智能显 示驱动芯片,该芯片同 时还可以连接多达64键 的键盘矩阵,单片即可 完成LED显示,键盘接口 的全部功能
D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 0 1 a2 a1 a0 D7 D6 D5 D4 D3 D2 D1 D0 X X d3 d2 d1 d0
DP X
此指令与上一条指令其本相同,所不同的是译码方式, 该指令的译码为按d0—d3值对应的是0—9,A~F。
(3).下载数据但不译码
1.主要特性 (1).串行接口,无需外围元件可直接驱动LED。 (2).各位独立控制译码/不译码及消隐和闪烁属性。 (3).(循环)左移/(循环)右移指令。 (4).具有段寻址指令,方便控制独立LED。 (5).64键键盘控制器,内含去抖动电路。 2.引脚说明: VDD: 正电源 VSS: 地 CS: 片选 CLK: 时钟输入端 DATA: 串行数据输入/输出端 CLK0: 振荡输出端 KEY: 按键有效输出端 RES: 复位端 SG-SA: 段g—段a驱动输出 CLK: 脉冲输入端 DP: 小数点驱动输出 DIG0-7: 数位0-7驱动输出 RC: RC振荡器连接端
1
0
0
0
0
a2
a1
a0
DP X
X
X
d3
d2
d1
d0
命令由二字节组成,前半部分为指令,其中a2,a1,a0 为位地址。d0-d3为数据,收到此指令时,按以下规则 进行译码。 0000:显0 1001:显9 1010:显 1111:显空白 小数点的显示由DP位控制: DP=1时,小数点显示, DP=0时,小数点不显示。 (2).下载数据且按方式1译码
D7 0 D6 0 D5 0 D4 1 D3 0 D2 1 D1 0 D0 1 D7 D6 d7 d6 D5 d5 D4 d4 D3 d3 D2 d2 D1 d1 D0 d0
该指令从HD7279A读出当前的按键代码。前一个 字节015H为指令代码,而后一个字节d0-d7则为 HD7279A返回的按键代码,其范围是00H-3FH(无键按 下时为FFH)。 当HD7279A检测到有效的按键时,KEY引脚从高 电平变为低电平,并一直保持到按键结束。在此期间, 如果HD7279A接收到‘读键盘数据指令’,则输出当 前按键的键盘代码; 如果在收到‘读键盘指令’时没有有效按键, HD7279A将输出FFH。
二、拨码盘接口 1.BCD拨码盘的构造 一个BCD拨码盘后面有5位引出线,其中一位为输入控 制线(A),另外4位是数据线(8,4,2,1)。 拨码被拨到某一个位置时, 输入控制线(A)分别与4 位数据线中的某几位接通。 如果把接通的位定义为0, 不通的线定义为1, 则拨码盘数据线的状态 就是拨盘位置所指示的 BCD码的反码。
2.接口电路
3.拨码盘数据输入程序 ST:MOV DPTR,#BFFFH MOVX A,@DPTR CPL A (A中为压缩性BCD码) RET
三、键盘接口
键盘是由若干个按键组成的开关矩阵,它是单片机 最简单的输入设备,操作员可以通过键盘输入数据 或命令,实现人机通信。 1.键盘工作原理 一个4X4的键盘结构如图所示:
SJMP LK0 LK4:SWAP A ORL A,R2 MOV B,A JB 00H,LK1 MOV DPTR,#TAB MOV R3,#1FH LK5:MOV A,R3 MOVC A,@A+DPTR CJNE A,B,LK7 LK6:SETB 00H MOV A,R3 RET LK7:DJNZ R3,LK5 SJMP LK6 TAB:DB 88H,48H,47H, 17H…
d.各按键对应的键值与键号如下:
4、简单键盘接口 在简单的单片机实用系统中,其键盘只设有几个 (如加键、减键、移位键、模式键),此时按键可以 直接和P口相连。 A、接口电路:
B、键盘扫描程序: ST: MOV A,P1 ORL A,#0FH MOV P1,A MOV A,P1 CPL A ANL A,#0FH JNZ LK2 LK0:CLR 00H LK1:MOV A,#FFH RET LK2:ACALL DELY MOV A,P1 CPL A ANL A,#0FH JZ LK0
第八章 MCS-51与数码显示器和键盘的接口
一、MCS-51与数码显示器接口
数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构 常用的显示器结构如图所示: A.共阳极显示器
DY1:MOV R7,#02H L2:MOV R6,#FFH L3:DJNZ R6,L3 DJNZ R7,L2 RET 注:显示处理(时钟显示) ST: MOV R0,#40H AHX: MOV R2,A MOV A,30H SWAP A ACALL AHX ANL A,#0FH INC R0 MOV @R0,A MOV A,31H INC R0 ACALL AHX MOV A,R2 INC R0 ANL A,#0FH MOV A,32H MOV @R0,A ACALL AHX RET RET
D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 1 0 a2 a1 a0 D7 D6 D5 D4 D3 D2 D1 D0 B C D E F G
DP A
其中,a2,a1,a0为位地址,A-G和DP为显示数据, 分别对应7段LED数码管的各段。当相应的数据位为 ‘1’时,该段点亮,否则不亮。此指令灵活,通过造字 形表,可以显示用户所需的字符。 (4).闪烁控制88H
D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 1 0 0 0 D7 d8 D6 D5 D4 D3 D2 D1 D0 d7 d6 d5 d4 d3 d2 d1
此命令控制各个数码管的闪烁属性,d1—d8分别对应 数码管1-8。0=闪烁,1=不闪烁。开机后,缺省的状态 为各位均不闪烁。
(5). 读键盘数据指令15H
X1 X2 X3 X4 Y1 Y2 Y3 Y4
A.按键与否的判别 我们使所有列为低自行线读入数据,若行线中有一位 为低,则可判为有键按下,否则全为高为无键按下。
B.按键的识别 由于矩阵网络上每一个键都可以由它所在的行与列 来定位。所以,我们可使第一列至第四列逐列为低, 通过读入行数据来识别是何键按下。 例如:当使列2为低,读入行值时,其行2值为低, 则可判是键5按下。
(2)、使用P口线与74LS164连接
更新显示器子程序: ST: MOV R7,#08H MOV R0,#7FH CLR P1.0 L1: MOV R6,#08H MOV A, @R0 MOV DPTR,#TAB MOVC A,@A+DPTR L2: CLR P1.1 RRC A JNC L3 SETB P1.1 L3: SETB P1.0 CLR P1.0 DJNZ R6,L2 DEC R0 DJNZ R7,L1 RET TAB: DB C0H,F9H …
(2). 左移指令A1H
D7 1 D6 0 D5 1 D4 0 D3 0 D2 0 D1 0 D0 1
例如,原显示为:
4 2 5 2 L P 3 9
其中第2位‘3’和第4位‘L’为闪烁显示,
执行了左移指令后,显示变为:
2 5 2 L P 3 9
第2位‘9’和第4位‘P’为闪烁显示。
(3).右移指令A0H
相关文档
最新文档