单片机键盘及显示
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应键的处理程序。为了不漏判有效的按键,定时中断的周
期一般应小于100ms。
3 中断扫描方式
键盘按键按下,发出中断 请求信号,单片机响应中断, 执行键盘扫描程序中断服务子 程序。如无键按下,单片机将
不理睬键盘。
此种方式的优点是,只有按 键按下时,才进行处理,所以 其实时性强,工作效率高。
本章小结
1. 2. 3. 4. 5. 6. 7.
2. 键盘输入的特点
最常用的是按键式键盘,其本质上就是一个开关。按键开 关的两端分别连接在行线和列线上,通过键盘开关机械触点 的断开、闭合,其行线电压输出波形如图所示。
t0、t4为断开期。 t1和t3分别为键的闭合和断
开过程中的抖动期(呈现一
串负脉冲),抖动时间长短 与开关的机械特性有关,一
般为5~10ms。
共阴极发光 二极管的阴 +5V 极连在一起, +5V 通常公共阴 极接地。当 阳极为高电 平时,发光 二极管点亮。 0V 0V 0V 共阳极LED数码 管的发光二极管 的阳极连接在一 起,公共阳极接 正电压,当某个 发光二极管的阴 极接低电平时, 发光二极管被点 亮
段码(字型码)
为了使数码管显示不同的符号或数字,要把某些段发光二极
7.6.3
矩阵式键盘的设计
矩阵式(也称行列式) 矩阵中无按键按下时, 键盘用于按键数目较多的场 行线为高电平;当有按键按下 合,由行线和列线组成,按 时,行线电平状态将由与此行 键位于行、列的交叉点上。 线相连的列线的电平决定。列
如图所示,一个44的矩阵 线的电平如果为低,则行线电 平为低;列线的电平如果为高, 键盘可以构成一个16个按 则行线的电平也为高,这是识 键键盘。在按键数目较多的
7.1 发光二极管的显示
当P0口的某位为高电平时,可提供400µA的拉电流;当P0口某
位为低电平(0.45V)时,可提供3.2mA的灌电流;而P1~P3口内部
有30kΩ左右的上拉电阻,如果高电平输出,则从P1、P2和P3口输 出的拉电流Id仅为几百µA,驱动能力较弱,亮度较差; 如果端口引脚为低电平,能使灌电流Id从单片机的外部流入内 部,则将大大增加流过的灌电流值;所以,AT89S52单片机任何一
个端口要想获得较大的驱动能力,要采用低电平输出。
如果一定要高电平驱动,可在单片机与发光二极管之间加驱动 电路,如74LS04、74LS244等。
7.1 发光二极管的显示
(a)不恰当的连接:高电平驱动
(b)恰当的连接:低电平驱动
7.1 发光二极管的显示
思考:如何将
发光二极管与
单片机P1口连
接起来?
图为显示4位字符的LED数码管的结构原理图。4位位选线和8 4条段码线。 段码线控制显示字型,而位选线控制着该显示位的LED数码管的亮或暗。 LED数码管有两种显示方式:静态显示和动态显示。
1.LED静态显示方式
无论多少位LED数码管,同时处于显示状态。
各位的共阴极 (或共阳极)连 接在一起并接地 (或接+5V); 每位的段码线 (a~dp)分别 与一个8位的I/O 口锁存器输出相 连。
第二步,让P1.4~P1.7输出全为“0”,然后,读入P1.0~ P1.3位,结果P1.0=0,而P1.1~P1.3均为1,因此第4列出现电平 的变化,说明第4列有键按下。 综上所述,即第1行、第4列按键被按下,此按键即键3按下。 线反转法简单适用,但不要忘记按键去抖动处理。
7.6.4
键盘的工作方式
动态显示原理
在某一时刻,只有一位显示,其他各位熄灭,由 于余辉和人眼的“视觉暂留”作用,只要每位显示间隔 足够短,则可以造成“多位同时亮”的假象,达到同时 显示的效果。
动态显示的特点
优点是硬件电路简单,显示器越多,优势越明 显。 缺点是显示亮度不如静态显示的亮度高。如果 “扫描”速率较低,会出现闪烁现象。
1 0 0 0
1 0 1 0
1 0 1 1
1 1 0 1
1 1 1 1
1 0 1 1
3f 06 5b 4f
思考:试写出H、L的段码?
7.3.1 LED数码管的结构
【例7-3】用单片机控制一个8段LED数码管,如图7-5所示。 要求数码管反复循环显示单个数字:0~9。
参考程序
7.3.2 LED数码管的显示方式
N
延时10ms
7.6.2
独立式键盘的设计
在单片机中,常见的键盘有两种结构:独立式键盘和矩阵 式键盘。对于独立式键盘:
一键一线,各键 当某一按键按下时, 相互独立,每个键各 对应的检测线就变成 接一条I/O口线,通过 了低电平,与其他按 检测I/O输入线的电平 键相连的检测线仍为 状态,可容易地判断 高电平。 哪个按键被按下。
t2为稳定的闭合期,其时间由按键动作确定,
一般为十分之几秒到几秒。
29
3.按键的识别
键的闭合与否,行线输出电压上就是呈现高电平或低电平。 高电平,表示键断开,低电平则表示键闭合。 通过对行线电平的高低状态的检测,可确认按键按下以及
按键释放与否。为了确保对一次按键动作只确认一次按键有效,
必须消除抖动期t1和t3的影响。
7.2 开关状态检测
检测开关处于闭合状态还是打开状态,只需把开关一端接到
I/O端口的引脚上,另一端接地,然后通过检测I/O端口引脚的电平
来实现。 【例7-2】 如图7-3所示, 利用单片机、1个开关k
和1个发光二极管LED,
构成一个简单的检测开 关k是否闭合的系统。
7.2 开关状态检测
参考程序
7.3 常见显示器
30
4.消除按键抖动的两种方法
一种软件延时,本思想是:在检测到 有键按下时,该键所对应的行线为低电 平,执行一段延时10ms的子程序后,确 认该行线电平是否仍为低电平,如果仍 为低电平,则确认该行确实有键按下。 当按键松开时,方法同上。采取本措施, 可消除两个抖动期t1和t3的影响。 另一种是采用专用的键盘/显示器接 口芯片,这类芯片中都有自动去抖动的 硬件电路。 确认有键按下 有键按下 Y N 有键按下 Y
7.3.3 LED数码管静态显示设计
7.6
键盘接口设计
键盘具有向单片机输入数据、命令等功能,是人与 单片机对话的主要手段。
7.6.1 键盘接口设计应解决的问题
1.键盘的任务 任务有三项: (1) 判别是否有键按下?若有,进入下一步工作。 (2)识别哪一个键被按下,并求出相应的键值。 (3)根据键值,找到相应键值的处理程序入口。
来自百度文库
独立式按键特点
优点:电路简单,各条检测线独立,识别按下 按键的软件编写简单。适用于键盘按键数目较少 的场合。 缺点:不适用于键盘按键数目较多的场合,因 为将占用较多的I/O口线。
独立式键盘的查询方式示例
【例7-8】对图7-21所示独立式键盘,用查询方式实现键盘扫描
,根据按下不同按键,对其进行处理。
位I/O口控制;
而各位的共阳极或 共阴极分别由相应 的I/O线控制,分时 选通。
4位8段LED动态显示电路
段码线占用一个8位I/O口,位选线占用一个4位I/O口。 采用动态的“扫描”显示方式。即在某一时刻,只让某一位的位选线处 于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应 位要显示字符的段码。
输出为全低电平,则列线中电平由高变低所在列为按键所在列。
• 两步即可确定按键所在的行和列,从而识别出所按的键。
矩阵按键识别法:线反转法
假设键3被按下。
第一步,P1.0~P1.3输出全为 “0”,然后,读入P1.4~P1.7线 的状态,结果P1.4=0,而P1.5~ P1.7均为1,因此,第1行出现电平 的变化,说明第1行有键按下;
别按键是否按下的关键所在。 场合,要节省较多的I/O口 线。
矩阵按键识别法:扫描法
第1步,识别键盘有无键按下。 第2步,识别出哪个按键被按下。 先把所有列线均置为 0,然后检查 采用逐列扫描法,在某一时刻只让1条 各行线电平是否都为高,如果不 列线处于低电平,其余所有列线处于 全为高,说明有键按下,否则无 高电平。 当第1列为低电平,其余各列为高 键被按下。 电平时,因为是键3被按下,第1行的 例如,当键3按下时,第1行 行线仍处于高电平;当第2列为低电平, 线为低,还不能确定是键 3被按下, 其余各列为高电平时,第 1行的行线仍 处于高电平;直到让第 4列为低电平, 因为如果同一行的键 2、1或0之一 其余各列为高电平时,此时第1行的行 被按下,行线也为低电平。只能 线电平变为低电平,据此,可判断第1 得出第 1行有键被按下的结论。 行第 4列交叉点处的按键,即键 3被按 下。
掌握LED数码管硬件原理; 能写出共阴、共阳数码管在具体电路中的段码; 掌握静态显示方式与动态显示原理; 掌握静态显示的电路和程序设计; 理解键盘的工作原理; 掌握独立式键盘的硬件与软件设计; 理解矩阵式键盘的按键识别方法: 扫描法和线反转法。
管点亮,就要为LED数码管提供控制字,该控制字称为段码(字
型码)。 LED数码管共计8段,正好是一个字节。习惯上是以“a”段 对应段码字节的最低位。各段与字节中各位对应关系如表所示。
段码表
以共阴极数码管为例
D7
dp
D6
g
D5
f
D4
e
D3
d
D2
c
D1
b
D0
a
0 1 2 3
0 0 0 0
0 0 1 1
矩阵按键识别法:线反转法
扫描法要逐列扫描查询,有时则要多次扫描。而线反转法则
很简练,无论被按键是处于第一列或最后一列,均只需经过两
步便能获得此按键所在的行列值,其具体步骤为: • • 让行线编程为输入线,列线编程为输出线,并使输出线输 再把行线编程为输出线,列线编程为输入线,并使输出线
出为全低电平,则行线中电平由高变低的所在行为按键所在行。
单片机在忙于其他各项工作任务时,如何兼顾键盘
的输入,这取决于键盘的工作方式。工作方式选取原则是,
既要保证及时响应按键操作,又不过多占用单片机工作时 间。键盘工作方式有3种,即编程扫描、定时扫描和中断
扫描。
1.编程扫描方式
也称查询方式,利用单片机空闲时,调用键盘扫描子程 序,反复扫描键盘。 如果单片机的查询的频率过高,虽能及时响应键盘的输
1.LED静态显示方式
静态显示的特点
静态显示方式的显示无闪烁,亮度都较高,软件控制比
较容易;
占用口线多。 当前LED使用静态显示比较常见(配合使用74LS164)
2.LED动态显示方式
无论在任何时刻只有一个LED数码管处于显示状态,即 单片机采用“扫描”方式控制各个数码管轮流显示。
段码线的相应段并 联在一起,由一个8
入,但也会影响其他任务的进行。查询的频率过低,可能会
键盘输入漏判。 所以要根据单片机系统的繁忙程度和键盘的操作频率,
来调整键盘扫描的频率。
2.定时扫描方式
每隔一定的时间对键盘扫描一次。在这种方式中,通常 利用单片机内的定时器产生的定时中断,进入中断子程序 来对键盘进行扫描,在有键按下时识别出该键,并执行相
7.3.3 LED数码管静态显示设计
【例7-4】 用AT89S52设计一个2位LED数码管显示的 “秒表”, 显示时间为00~99秒,每秒自动加1。 原理电路如图7-8所示。电路采用单片机的P2口、P3口分别控制 两个LED数码管作为“秒表”的时间显示。显示数字的段码采用
查表方法。“秒”计时产生采用软件延时的方法。
第7章 显示、开关/键盘
本章要点 大多数的单片机应用系统,都要配置输入外设和输 出外设。常用的输入外设有键盘、开关等;常用的输出
外设有LED数码管、LCD显示器、打印机等。本章主要介
绍 1 2 单片机控制发光二极管、LED数码管 基于单片机的开关、键盘接口原理及应用
7.1 发光二极管的显示
单片机可以通过并行端口P0~P3驱动发光二极管 P0口与 P1、P2、P3口相比,P0口每位可驱动8个LSTTL输入,而P1~ P3口每一位的驱动能力,只有P0口的一半。
LED数码管显示
液晶显示器
LED数码管 液晶显示屏
LED显示屏
7.3.1 LED数码管显示原理
LED数码管在单片机系统中应用非常广泛。
LED(Light Emitting Diode )是发光二极管缩写。
LED数码管是由发光二极管构成的。
7.3.1 LED数码管的结构
常见的LED数码管为“8”字型的,共计8段。每 一段对应一个发光二极管。有共阳极和共阴极两种