第10章 MCS-51与键盘、显示器的接口设计
MCS_51单片机系统键盘与显示器接口的一种设计
第21卷 第1期延安大学学报(自然科学版)V o l.21 N o.1 2002年3月Jou rnal of Yanan U n iversity(N atu ral Science Editi on)M arch.2002M CS-51单片机系统键盘与显示器接口的一种设计Ξ邵思飞(延安大学信息学院,陕西延安716000)摘 要:针对数据处理任务不大、串行口不被使用的M CS-51单片机系统,设计了一种键盘显示器接口电路。
具有电路简单、成本低、性能稳定等特点,可广泛应用。
关键词:单片机系统;键盘显示器接口;设计中图分类号:T P334 文献标识码:A 文章编号:10042602X(2002)022******* 键盘、显示器接口的设计,应满足功能和可靠性两个基本要求,但系统不同,要求就不同,接口设计也就不同。
本文针对系统数据处理任务不大、串行口不专用的M CS-51单片机系统,设计了一种键盘、显示器接口电路。
该接口具有电路简单、性能稳定等特点。
1 设计原理M CS-51单片机串行口置方式0时,为移位寄存器输入输出方式,可外接移位寄存器,以扩展I O 口。
在输出方式时,CPU可通过M OV SBU F,A指令实现字符发送,RXD引脚串行输出8b it数据(低位在先),TXD引脚输出移位脉冲,当8b it发送完后,T I由硬件置位[1]。
本设计采用74L S373锁存器和串行口外接74L S164移位寄存器构成键盘、显示器接口电路,如图1所示。
显示器由6个共阴数码管并联构成,键盘为2×6结构。
图1中,D0—D5接CPU的P0.0-P0.5,P3. 4、P3.5、TXD、RXD、W R分别接CPU的对应引脚, Y1接系统地址锁存器的Y1输出引脚,决定着6位显示器的端口地址。
U1输出分别接数码管各阴极, U2输出接数码管的显示段,其中Q0—Q5又作为键盘列线,P3.4、P3.5为键盘行线。
2 显示原理及动态显示程序设计在89C52内部RAM中设置6个显示缓冲单元,如:79H—7EH,分别存放显示器的6位待显示的字符。
第10章 MCS-51与键盘、显示器的接口设计
第10章
MCS-51与键盘、显示器、打印机接口设计
矩阵式键盘接口—行动态扫描方法
+5V P1.0 P1.1
0 1
0 4 8 C
1 5 9 D
2 6 A E
3
第0行
7
第1行
B
89C51
1 P1.2
P1.3 1 P1.4 P1.5
第2行
F
第3行 第3列 第2列 第1列 第0列
38
1 1
1 P1.6 P1.7 1
29
第10章 MCS-51与键盘、显示器、打印机接口设计 KEYIN:MOV DPTR,#0BFFFH ;键盘端口地址BFFFH
MOVX A,@DPTR ANL A,#1FH MOV R3,A LCALL DELAY10 MOVX A,@DPTR ANL A,#1FH CJNE A,R3,RETURN CJNE A,#1EH,KEY2 LJMP KEY1 KEY2: CJNE A,#1DH,KEY3 LJMP KEY2 KEY3: CJNE A,#1BH,KEY4 LJMP KEY3 KEY4: CJNE A,#17H,KEY5 LJMP KEY4 KEY5: CJNE A,#0FH,PASS LJMP KEY5 RETURN: RET
第10章
MCS-51与键盘、显示器、打印机接口设计
矩阵式键盘接口—行动态扫描方法
+5V P1.0 P1.1
0 0
0 4 8 C
1 5 9 D
2 6 A E
3
第0行
7
第1行
B
89C51
0 P1.2
P1.3 0 P1.4 P1.5
第2行
F
第3行 第3列 第2列 第1列 第0列
MCS-51与键盘、显示器、拨盘、打印机的接口设计-PPT课件
1. 键盘输入的特点
键盘:一组按键开关的集合。
与
键 盘
行线电压信号通过键盘开关机械触点的断开、闭合,
、 输出波形如图10-6。
显
示
器
、
拨
盘
、打Βιβλιοθήκη 印机的接
口
设
计
10 MCS-51
第
2. 按键的确认
章
检测行线电平
高电平:断开;低电平:闭合,
与
键
盘
3.如何消除按键的抖动
、
显 示
常用软件来消除按键抖动。
器 、
章
显示字符 共阴极 共阳极 显示字符 共阴极 共阳极
段码 段码
段码 段码
0
3FH
C0H
c
39H
C6H
与 键
1
06H
F9H
d
5EH
A1H
盘
2
5BH
A4H
E
79H
86H
、
显
3
4FH
B0H
F
71H
8EH
示 器
4
66H
99H
P
73H
8CH
、
5
6DH
92H
U
3EH
C1H
拨
盘
6
7DH
82H
T
31H
CEH
、 打
7
基本思想:检测到有键按下,键对应的行线为低,软
拨 盘
件延时10ms后,行线如仍为低,则确认该行有键按下。
、
打
印 当键松开时,行线变高,软件延时10ms后,行线仍为
机 的
高,说明按键已松开。
第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计75987培训资料
;屏蔽高三位 ;保存键盘状态值 ;延时10ms去键盘抖动
MOVX A,@DPTR ;再读键盘状态
ANL A,#1FH
;屏蔽高三位
CJNE A,R3,RETURN ;两次不同,抖动引起转RETURN
CJNE A,#1EH,KEY2 ;相等,有键按下,不等转KEY2
2020/8/15
LJMP PKEY1
2020/8/15
图10-4:4位8段LED动态显示电路。其中段码线占用一 个8位I/O口,而位选线占用一个4位I/O口。
2020/8/15
图10-5为8位LED动态显示2003.10.10的过程。 图(a)是显示过程,某一时刻,只有一位LED被选通
显示,其余位则是熄灭的; 图(b)是实际显示结果,人眼看到的是8位稳定的
LJMP PKEY4
;S4按下,转PKH,PASS ;S5未按下,转RETURN
LJMP PKEY5
;S5按下,转PKEY5处理
RETURN:RET
;重键或无键按下,从子程序返回
2020/8识/15别和编程简单,用在按键数较少的场合。
2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成,
段对应段码的最低位。
2020/8/15
10.1.2 LED显示器工作原理 图10-2是4位 LED显示器的结构原理图。
N个LED显示块有N位位选线和8×N根段码线。 2020/8/15
段码线控制显示的字型,
位选线控制该显示位的亮或暗。
静态显示和动态显示两种显示方式。
1. 静态显示方式
各位的公共端连接在一起(接地或+5V)。 每位的段码线(a~dp)分别与一个8位的锁存器
按上述格式,8段LED的段码如表10-1所示。
与键盘、显示器的接口设计(1)
3
共阴极与共阳极的段选码互为反码。
显示字符 共阴极段选码 共阳极段选码 显示字符 共阴极段选码 共阳极段选码
0
3FH
C0H
C
39H
C6H
1
06H
F9H
d
5EH
A1H
2
5BH
A4H
EH
F
71H
8EH
4
66H
99H
P
73H
8CH
5
6DH
92H
U
3EH
C1H
6
7DH
82H
Γ
31H
医学pptCOM
COM
COM
7
图22 3位静态七段LED显示器接口
+5V
例:显示80C51片内RAM中以30H为首地址的8位 字形数的程序:
波特率为fosc/12的同步移位脉冲 TXD
74LS164
RXD
数据
低→高
D (0)
Q7 ...Q1 Q0
串入并出
...
74LS164
D (1)
Q7 ...Q1 Q0
CEH
7
07H
F8H
Y
6EH
91H
8
7FH
80H
8.
FFH
00H
9
6FH
90H
“灭”
00H
FFH
A
77H
88H
┇
┇
┇
b
7CH
83H
医学ppt
4
1、设置显示缓冲区,存放待显示数据和字符(位置码)。 2、显示译码:程序存储器中建立字形码常数表,查表得出 对应数据和字符的字形码。 3、输出显示:输出字形码到显示端口。
第10章 MCS-51与键盘、显示器、
(2)用软件来消除按键抖动的影响。如有键按下,则 进行下一步。 (3)求按下键的键号。 (4)等待按键释放后,再进行按键功能的处理操作。 2. 定时扫描工作方式
利用单片机内的定时器,产生10ms的定时中断,对 键盘进行扫描。
3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如
无键按下,单片机将不理睬键盘。
ACALL DIR
;调用显示子程序延迟6ms
AJMP KEYI
;抖动引起,跳KEYI
LK2: MOV R2,#0FEH ;列选码→R2
动态显示接口
000 001
此时同时向6位LED灯管输出相同的字符,如何 能实现显示多个不同字符?
扫描显示方式(Scan Display Mode):
某一时刻只选通一盏灯(其他5位是熄灭的),同时, 段选线上输出相应要显示的字符的段码。
下一时刻,位选信号选通下一位LED,同时,段选线 上输出相应要显示的字符的段码。
段码 37E03H09HHH 字无符显CPU示
位控 信号
1
1
1
1
1
1
图10-5为8位LED动态显示2019.10.10的过程。
MOV DPTR,#TAB;表首地址
MOVC A,A+DPTR;查表段码
MOV DPTR, #A口地址
MOVX DPTR,A;输出段码
MOV A,R4; 取位码
MOVX DPTR, #C口地址
键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。
2. 按键的确认
检测行线电平 高电平:断开;低电平:。
基本思想:检测到有键按下,键对应的行线为低,软 件延时10ms后,行线如仍为低,则确认该行有键按下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
扩展键盘接口
二. 键盘接口原理
1.键盘 原理
P.230
单片机系统中完成控制参数输入及修改的基本输 入设备,是人工干预系统的重要手段。 单片机与计算机在键盘规模/键符设置等方面差别 很大。
列 线
列线的电平决 定行线电平,
行线 输出
+5V
即 行线电平 为按键闭合的 判断依据
二. 键盘接口原理
入 口
接高电平
公共阳极
P.226
@ 单片机系统扩展LED数码管
时多用共阳LED:
b c h
h g f …… a
f e
a g d
共阳数码管每个段笔画是 用低电平(“0”)点亮的,要求驱
动功率很小;
而共阴数码管段笔画是用 高电平(“0”)点亮的,要求驱
低电平点亮
h g f e d c b a
D7 D6
D5 D4 D3 D2 D1 D0
第10章
MCS-51的键盘、显示器、拨盘
打印机的接口设计
学习内容: 数码管显示方法(动态/静态) 键盘的设计与控制 键盘扫描法和线反转法
学习目的: 掌握数码管显示方法(重点) 掌握独立按键的判别方法(重点) 了解键盘扫描和线反转法的基本实现方法
学习难点: 数码管动态显示方法 键盘的行扫描法和线反转法的编程实现
显示器显示状态(微观) 0 1
以8位LED 动态显示
2003.10.10 0
1
3FH
06H
为例
0
1
BFH
06H
3.
0
CFH
3FH
人 2 0 0 3. 1 0. 1 0 眼 0 看 1 到 的 3. 结 果
0 0 2
0
2
3FH
5BH
LED数码管动态显示举例
工作原理:从P0口送段代码,P1口送位选信号。段码虽同时 到达6个LED,但一次仅一个LED被选中。利用“视觉暂留”, 每 送一个字符并选中相应位线,延时一会儿,再送/选下一个 ……循环扫描即可。 3 7406 OC门 X +5V
显示器接口扩展
一.LED显示器接口扩展
1.LED数码管的结构: ①共阳与共阴
h g f e d c b a
P.226
接高电平
高电平点亮 h g f …… a
f e
a g d
b c h
h g f …… a 低电平点亮
接地
公共极
共阳极
共阴极
一.LED显示器接口原理
1.LED数码管的结构:①共阳与共阴
LED数码管动态显示举例
JB ACC.5,LD2 ;判是否发完6个数? P0口送段 代码, RL A ;R1指向下一个位 P1口送位 MOV R3,A ;位选信号存回R1 选信号。 待显数据 SJMP LD1 ;跳去再显示下一个数 已经放在: ;发完6个数就返回 7FH—7AH LD2: RET 单元(分别 DSEG:DB 0C0H,0F9H,0A4H,0B0H,99H 对应十万 DB 92H, 82H, 0F8H, 80H,90H 位→个位) ;共阳译码表 使用共阳 译码表。
P.228
8 a~dp a g d
f e
b
f e
b
f e
b
f e
b
c
h
c
h
c
h
c
h
位选线
图10-2 4位LED显示器的构成
一.LED显示器接口原理
3.LED数码管的显示方式:静态与动态 (1)静态显示
P.228
各数码管在显示过程中持续得到送显信号,与各数
码管接口的I/O口线是专用的。 静态显示特点: 无闪烁,用元器件多,占I/O线多,无须扫描,节省CPU 时间,编程简单。
要求:根据上图编写通过串行口和74LS164驱动共 阳LED数码管查表显示的子程序。 条件:系统有6个LED数码管,待显数据(00H—09H) 已放在35H—30H单元中(分别对应十万位→个位),
DSPLY:MOV DPTR, #TABLE ;共阳LED数码管译码表首址 MOV R0,#30H ;待显数据缓冲区的个位地址 REDO:MOV A, @R0 ;通过R0实现寄存器间接寻址 MOVC A, @A+DPTR ;查表 MOV SBUF, A ;经串行口发送到74LS164 JNB TI, $ ;查询送完一个字节的第8位? CLR TI ;为下一字节发送作准备 INC R0 ;R0指向下一个数据缓冲单元 CJNE R0,#36H,REDO ;判断是否发完6个数? RET ;发完6个数就返回 TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳LED译码表 DB 92H, 82H, 0F8H, 80H,90H
字形 共阴 0 3F 1 0F9 06 2 0A4 5B 3 0B0 4F 4 99 66 5 92 6D 6 82 7D 7 0F8 07 8 80 7F 9 90 6F 黑 0FF 00 共阳 0C0
一.LED显示器接口原理
3.LED数码管的显示方式: 静态与动态
段码线
8 a~dp a g d 8 a~dp a g d 8 a~dp a g d
②行列式键盘: 键按矩阵排列,各键处于矩阵行/列 的结点处,CPU通过对连在行(列)的I/O线送已知电平 的信号,然后读取列(行)线的状态信息。逐线扫描, 得出键码。 特点:键多时占用I/O口线少,但判键速度慢,多用于 设置数字键。适用于键数多的场合。
(2)按键组连接方式:独立式键盘与行列式键盘
S1 P2.0 S2 S3 S4
动功率较大。
@ 通常每个段笔画要串一个 数百欧姆的限流电阻。
dp g
f
e
d
c
b
a
一.LED显示器接口原理
2.LED数码管的译码:硬件译码与软件译码
AT89C51
P1.3 P1.2 P1.1 P1.0
CD4511
D C B A
共阴LED
g f e d c b a
f e
a g d
b c h
(1)74LS48/CD4511是“BCD码→七段共阴译码/驱 动”IC; 74LS47是“BCD码→七段共阳译码/驱 动”IC (2)硬件译码特点:采用专用的译码/驱动器件,驱动 功率较大;增加了硬件的开销;软件编程简单;字型固 定(比如:只有七段,只可译数字,字型不好看…)。
是 返 回
段码表首地址; 待查数据首地址; 位地址。
是否显示完6个字符? 否 指向下一个待显数据 修改位选信号
LED数码管动态显示举例 P0口送段 DIR: MOV DPTR, #DSEG ;数码管译码表首址 代码, MOV R0,#7AH ;待显缓冲区个位地址 P1口送位 MOV R3,#01H ;个位的位选信号=01H 选信号。 LD1:MOV A, @R0 ;通过R0间接寻址 待显数据 MOVC A, @A+DPTR ;查表 已经放在: MOV P0, A ;字段码送到P0口 7FH—7AH 单元(分别 MOV P1,R3 ;字位选择送到P1 对应十万 口 位→个位) LCALL DELY ;调延时1ms子程序 使用共阳 INC R0 ;R0 指向下一字节 译码表。 MOV A,R3
(1)按键值编码方式:编码键盘与非编码键盘
①编码键盘: 采用专用的编码/译码器件,被按下的 键由该器件译码输出相应的键码/键值。 特点:增加了硬件开销,编码因选用器件而异,编 码固定,但编程简单。适用于规模大的键盘。
√
②非编码键盘: 单片机系统多采用此类键盘
采用软件编/译码的方式,通过扫描,对每个被按下 的键判别输出相应的键码/键值。 特点:不增加硬件开销,编码灵活,适用于小规模 的键盘,特别是单片机系统。但编程较复杂,占CPU 时间,还须软件“消颤”。
(2)按键组连接方式:独立式键盘与行列式键盘
①独立式键盘: 每键相互独立,各自与一条I/O线相 连,CPU可直接读取该I/O线的高/低电平状态。 特点:占I/O口线多,但判键速度快,多用于设置控 制键、功能键。适用于键数少的场合。 S1 S2 S3 S4 P2.0 P2.1 P2.2 P2.3
(2)按键组连接方式:独立式键盘与行列式键盘
7406 OC门 X 3
+5V
(7FH) (7EH) (7DH) (7CH) (7BH) (7AH)
十万 万位 千位 百位 十位 个位
数据缓冲区 / 显示缓冲区
LED数码管动态显示举例
初始化
初始化: 段码表首地址, 首个待查数据地址,
查字段码 字段码送P0口 位选送P1口
延时1ms
初始位选地址
DPTR R0 R3
段 代 码
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
上拉 电阻 ×14
AT89C51
共阴 数码管
位 选 线
P1.5 P1.4 P1.3 P1.2 P1.2 P1.0
要求:此处为共阴数码管,P0口送段代码,P1口送位选信号。 通过查表实现动态显示。 条件:待显数据(00H—09H)已放在: 7FH—7AH单元中(分别 对应十万位~个位) 说明:由于用了反相驱动器7406,要用共阳译码表。 段 代 码
一.LED显示器接口原理
2.LED数码管的译码:硬件译码与软件译码 +5V AT89C51 (3)软件译码特点: P1.0 不用专用的译码/驱动器件, P1.1 a f b P1.2 g 驱动功率较小;不增加硬件 P1.3 P1.4 的开销;软件编程较复杂; e c P1.5 d P1.6 h 字型灵(比如:有八段,只可 P1.7 共阳LED 译多种字符,字型好看……)。 八段LED数码管段代码编码表(连线不同可有多种表):
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0