第五章-单片机键盘及显示器接口技术

合集下载

第5章显示和键盘接口技术

第5章显示和键盘接口技术

f
b
0 1110001
g
e d
c dp
七段数码管与段位控制代码
a
f
b
g
e
c
d
0
3FH
1
06H
2
5BH
3
4FH
4
66H
5
6DH
6
7DH
7
07H
8
7FH
9
6FH
A
77H
b
7CH
C
39H
d
5EH
E
79H
F
71H
单片机与LED数码管接口
LED数码管字型编码
若将数值0送至单片机的P1口,数码管上不会显示数字“0”。显 然,要使数码管显示出数字或字符,直接将相应的数字或字符送至 数码管的段控制端是不行的,必须使段控制端输出相应的字形编码。 将单片机P1口的P1.0、P1.1 …P1.7八个引脚依次与数码管的a、 b…f、dp八个段控制引脚相连接。如果使用的是共阳极数码管, COM端接+5V,要显示数字“0”,则数码管的a、b、c、d、e、f六 个段应点亮,其它段熄灭,需向P1口传送数据11000000B(C0H), 该数据就是与字符“0”相对应的共阳极字型编码。若共阴极的数 码管COM端接地,要显示数字“1”,则数码管的b、c两段点亮,其 他段熄灭,需向P1口传送数据00000110(06H),这就是字符“1” 的共阴极字型码了。
f
b
0 1101101
g
e d
c dp
七段数码管的段位控制
a
dp g f e d c b a
f
b
0 1111101
g
e d

单片机 键盘 显示器接口-PPT课件

单片机 键盘 显示器接口-PPT课件
键盘、显示器接口
PC机除了主 机以外还需要 哪些部分呢?
单片机电路有时候也需要键盘、显示等外设。
1
键盘分类
6.3 键盘接口
编码式的:由其内部硬件逻辑电路自动产
生被按键的编码。使用方便,键盘码产生速 度快,占用CPU时间少,但对按键的检测与 消除抖动干扰是靠硬件电路来完成的,硬件 电路复杂、成本高。
键按下/释放判断
P1.0--1.3作为输入口 P1.4--1.7作为输出口
KS: MOV MOV MOV MOV ANL RET
A,#00H P1,A P1,#0FH A,P1
A,#0FH
P1.7
P1.6
P1.5
+5V
MCS-51 P1.4 0 1 2 3
P1.3 4 5 6 7
P1.2 8 9 10 11
中断扫描方式
为提高CPU工作效率,可采用中断扫描工作方 式。其工作过程如下:当无键按下时,CPU处理自 己的工作,当有键按下时,产生中断请求,CPU转 去执行键盘扫描子程序,并识别键号。
16
ME830 矩阵式摁键
0
1
2
3
4
5
6
7
8
9
A
b
C
d
E
F
P1口: 低4位作为列线 高4位作为行线
17
实验八源程序 线反转法
前沿抖动
后沿抖动
机械按键抖动时间在
5ms~10ms之间
断开
Q
消除方法:
闭合
Q
硬件方案——双稳态去抖电路
软件方案——延时10ms~20ms后再次判断
4
*
+5V
在此期间,CPU对一次 键入做多次键处理

键盘、显示及其接口技术幻灯片

键盘、显示及其接口技术幻灯片
电路。 典型显示子程序:设显示缓冲区为8031片内
RAM的22H~27H六个单元依次放置六位别离 的BCD码。
上一页 下一页
返回本节
3.3 HD7279键盘、显示智能控制芯片
是一片具有串行接口的可同时驱动8位共阴式数 码管〔或64只独立LED〕的智能显示驱动芯 片, 该芯片同时还可连接多达64键的键盘矩阵,单片 即可完成LED显示、键盘接口的全部功能。 HD7279键盘、显示智能控制芯片。

上一页 下一页
返回本节
3.1.2 独立式键盘接口
独立式按键是指直接用I/O口线构成的单个按 键电路。每根I/O口线上按键的工作状态不会影 响其他I/O口线的工作状态。独立式按键电路如 图3-3所示。
上一页 下一页
返回本节
3.1.3 行列式键盘
1.键盘工作原理 在键盘中按键数量较多时,为了减少I/O口的占用,通
上一页 下一页
按键开关的抖动问题
组成键盘的按键有触点式和非触点式两种,单
片机中应用的一般是由机械触点构成的。如图3
-1所示。
由于按键是机械触点,当机械触点断开、闭合
时,会有抖动,P1.0输入端的波形如图3-2所
示。
常用去抖动方法:
〔1〕硬件方法 增加去抖动电路。
〔2〕软件方法 采用软件延时(10ms)躲过抖
上一页 下一页
2.键盘扫描方式 行扫描法 行扫描法又称为逐行〔或列〕扫描查询法,
是一种最常用的按键识别方法。 (1)判断键盘中有无键按下 将全部行线Y0-Y3置低电平,然后检测列线的状态。只 要有一列的电平为低,那么表示键盘中有键被按下,而且 闭合的键位于低电平线与4根行线相穿插的4个按键之中。 假设所有列线均为高电平,那么键盘中无键按下。 (2)判断闭合键所在的位置

单片机原理及接口技术单片机的开关检测键盘输入与显示的接口设计

单片机原理及接口技术单片机的开关检测键盘输入与显示的接口设计

单片机原理及接口技术单片机的开关检测键盘输入与显示的接口设计单片机是一种集成了中央处理器、存储器和输入/输出接口的微型电子计算机,其核心是一个集成电路芯片。

它简单、灵活,用于控制电子设备和执行各种任务。

单片机有很多种,其中C51单片机是一种非常常用的型号。

在C51编程中,开关检测、键盘输入和显示是非常常见的接口设计。

接下来,将分别介绍它们的原理和实现方法。

1.开关检测:开关检测是指通过单片机检测开关的状态,以实现对开关的控制。

常见的开关检测方法有两种,一种是使用外部电阻和开关,通过检测电流或电压来判断开关状态;另一种是使用内部电阻和开关,通过检测电阻的值来判断开关状态。

具体实现方法如下:a.外部电阻和开关:检测开关状态的方法是连接一个电阻到开关,并将另一端连接到单片机的输入引脚。

当开关打开时,电阻与单片机输入引脚之间形成一条路径,使得输入引脚接收到高电平信号;当开关关闭时,电阻与单片机输入引脚之间断开,使得输入引脚接收到低电平信号。

b.内部电阻和开关:单片机的引脚通常具有内部上拉或下拉电阻。

当引脚配置为输入模式时,可以选择使能内部上拉或下拉电阻。

通过连接一个开关到引脚,并将另一端连接到电源或地,从而完成开关状态的检测。

当开关打开时,引脚被拉高,输入引脚接收到高电平信号;当开关关闭时,引脚被拉低,输入引脚接收到低电平信号。

2.键盘输入:键盘输入是指通过单片机接收和处理来自键盘的输入信息。

键盘通常是一种矩阵按键结构,可以通过多行多列的方式进行编码。

键盘输入的实现需要通过接口电路将键盘连接到单片机,并在程序中编写相应的扫描算法。

具体实现方法如下:a.键盘连接方式:键盘的行和列线分别连接到单片机的输出和输入引脚上。

行线和列线可以使用独立的引脚,也可以使用矩阵开关编码的方式进行连接。

b.扫描算法:扫描算法是通过逐行扫描和逐列检测的方式来实现键盘输入的。

具体步骤如下:1)将所有行引脚置为高电平,所有列引脚配置为输入模式。

单片机键盘与显示器接口

单片机键盘与显示器接口

单片机键盘与显示器接口一.要求:掌握数码显示器显示方式的工作原理,掌握89c51与LED数码显示器的接口方法及程序设计方法。

二.内容:利用2个LED数码显示管,采用扫描方式,动态显示,两位数00,11,22,33,44,55,66,77,88,99,反复循环。

三.系统结构图:四.硬件电路简介:(1)时钟电路:利用芯片内部震荡电路,在XTAL1,XTAL2的引脚上外接定时元件,内部振荡器便能产生自激震荡,定时元件可采用石英晶体和电容组成的并联谐振电路,其连接方法如下,晶体可以在1.2MHZ-12MHZ之间任选,电容可以在20-60PF之间选择,电容C1,C2的大小对振荡频率有微小影响,可起频率微调作用。

在设计印制板时,晶体和电容应尽可能与单片机芯片靠近,以减少寄生电容,保证振荡器可靠工作,一般采用瓷片电容。

我选择的时钟电路由一个12M晶振,和两个3pF电容组成,产生12M赫兹的方波脉冲信号做为单片机的内部时钟。

(2)复位电路:时钟电路工作后,在此引脚上出现两个机器周期的高电平,芯片内部进行初始复位,但初始复位不影响片内RAM状态,只要该引脚保持高电平,MCS-51将循环复位。

P0口-P3口输出高电平,初值07H写入堆栈指针SP,清0程序计数器PC和其余特殊功能寄存器。

RST/Vpd从高电平变成低电平时,单片机将从0号单元开始执行程序。

MCS-51通常采用上电自动复位和开关复位两种方式,上电自动复位通电瞬间,电容两端电压不能突变,复位电路由一个1uF的电容和一个10K的电阻组成。

(3)AT89c51:MCS-51系列单片机大多都采用40条引脚双列直插式器件,有4个双向8位输入输出口P0 -P3,P0口为三态双向口,负载能力为8个LSTTL门电路,P1-P3为准双向口,负载能力为4个LSTTL门电路。

P0口包括一个输出锁存器,2个三态缓冲器,1个输出驱动电路和一个输出控制端,输出驱动电路由一对场效应管组成,其工作状态受输出控制端的控制,它包括一个与门,一个反相器和一个转向开关组成,P0口即可作地址/数据总线使用,又可作通用输入输出口使用。

单片机原理及应用课件项目5显示器及键盘

单片机原理及应用课件项目5显示器及键盘
显示器和键盘用于监控和控制工厂 中的生产过程。
医疗设备
显示器和键盘用于医疗设备上的数 据显示和控制。
Hale Waihona Puke 航空交通管制显示器和键盘用于航空交通控制系 统中的信息显示和输入。
总结及展望
通过本课程,我们深入了解了单片机显示器和键盘的原理、分类和应用。掌 握这些知识将帮助我们设计和开发更加高效和实用的单片机应用。
显示器可将处理结果以可视化方式展示给用户。
2 用户输入
键盘允许用户输入数据、命令和参数。
3 实时反馈
用户能够立即看到显示器上的变化,实时了解操作的结果。
显示器和键盘的接口与控制
了解如何与显示器和键盘进行接口和控制非常重要。本节将介绍通用并口和串行通信接口,并讨论在单片机中如何实 现对显示器和键盘的控制。
液晶显示器
利用液晶分子的光学特性来显 示图像和文字。
LED显示器
通过发光二极管来产生亮度高 且寿命长的显示效果。
数码管显示器
由七段数码管组成,用来显示 数字或字符。
键盘的原理和分类
键盘是与单片机进行交互的重要输入设备。本节将介绍键盘的工作原理和不同类型的键盘,包括矩阵键盘、直连键 盘和膜式键盘。
矩阵键盘
使用行列交叉的方式进行输入 信号的检测和解码。
直连键盘
每个按键都有独立的引脚连接 到单片机,信号直接传递。
膜式键盘
采用薄膜电路板,通过触摸触 发信号,使用寿命长。
显示器和键盘在单片机应用中的作用
显示器和键盘在单片机应用中发挥着重要的作用。显示器用于显示信息和结果,键盘用于输入数 据和命令。
1 信息展示
1
通用并口
通过并行数据传输来控制显示器和键盘。
2

第5章 输入、输出接口P0~P3--1讲解

第5章 输入、输出接口P0~P3--1讲解

武汉科技大学
电信系
2. P1口 字节地址90H,位地址90H—97H
P1.0—P1.7: 准双向I/O口 输出时一切照常,输入时要先对其写“1”
读锁存器
内部 总线
写锁 存器
2
DQ CK /Q
1
读引脚
单片机及接口技术
Vcc 内部上拉电阻
引脚P1.X
17
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P1口
输入数据时,要先对其写“1”
读锁存器
Vcc 内部上拉电阻
内部 总线 1
写锁 存器
2
DQ
1
CK /Q
0
截 引脚P1.X 止
1
读引脚 =1
18
单片机及接口技术
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P1口
读锁存器
输出数据 1 时
内部 总线 1
写锁 存器
2
DQ
1
CK /Q
0
1
Vcc 内部上拉电阻
1
读引脚 =0
控制=1时,此脚作通用输出口: 输出=1时
23
单片机及接口技术
第五章 输入、输出接口P0~P3
武汉科技大学
电信系
P2口
读锁存器
内部 总线 0
写锁 存器
2
DQ CK /Q
地址高8位 控制 =1
Vcc 内部上拉电阻
0
1
3
=0
导 引脚P2.X 通
1 读引脚 =0
单片机及接口技术
控制=1 时,此脚作通用输出口: 输出=0 时
例5-1.设计一电路,监视某开关K,用发光二极 管LED显示开关状态,如果开关合上,LED亮、 开关打开,LED熄灭

单片机原理及接口技术(C51编程)第5章 与显示器、开关、键盘接口设计

单片机原理及接口技术(C51编程)第5章 与显示器、开关、键盘接口设计

图5-1 发光二极管与单片机并行00µA的拉电流;当P0口某位为低电平 (0.45V)时,可提供3.2mA的灌电流,而P1~P3口内有30kΩ左右上拉电 阻,如高电平输出,则从P1、P2和P3口输出的拉电流Id仅几百µA,驱动能 力较弱,亮度较差,见图5-1(a)。
}
}
9
程序说明: (1)while(1) 两种用法: “while(1);”: while(1)后有分号,是使程序停留在这指令上; “while(1) {……;}”:反复循环执行大括号内程序段,本例用法,即控 制流水灯反复循环显示。 (2)C51函数库中的循环移位函数:循环移位函数包括: 循环左移函数“_crol_” 循环右移函数“_cror_”。
译器中,这项声明包含在头文件reg51.h中,编程时,可通过预处理命令 #include<reg51.h>,把这个头文件包含进去。下面通过案例介绍如何编程 对发光二极管输出控制。
6
【例5-1】 制作流水灯,原理电路见图5-2,8个发光二极管LED0~ LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平 。编写程序来控制发光二极管由上至下的反复循环流水点亮,每次点亮一 个发光二极管。
本例用循环左移 “_crol_(P1,1)”,函数。括号第1个参数为循环左移 对象,即对P1中的内容循环左移;第2个参数为左移位数,即左移1位。编 程中一定要把含有移位函数的头文件intrins.h包含在内,例如第2行 “#include <intrins.h>”。
10
在【例5-1】基础上,编写控制发光二极管反复循环点亮的流水灯。 【例5-2】电路见图5-2,制作由上至下再由下至上反复循环点亮显示的
参考程序:
#include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int void delay(uint i) {

显示与键盘接口技术

显示与键盘接口技术
⑵ 定时控制扫描方式
利用定时/计数器每隔一段时间产生定时中断,CPU响应中 断后调用键盘扫描子程序来实现按键输入。
特点:与程序控制扫描方式的区别是,在扫描间隔时间内, 前者用CPU工作程序填充,后者用定时/计数器定时控制。注意 定时时间不能太长,否则会影响对键输入响应的及时性。
⑶ 中断控制方式
中断控制方式是利用外部中断源,响应键输入信号。
显示与键盘接口技术
显示与键盘接口技术
显示与键盘接口技术
(三)、绘制电路原理图并仿真
1、用Keil编译器编译连接产生调试文件(.hex文件)
2、打开Proteus Professional软件。 3、从Proteus元件库中选取元器件。
[AT89C51(单片机) , CAP(电容) , CRYSTAL(晶振), RES(电 阻), 7406, CAP-ELEC(电解电容), RESPACK-8 (排阻), 7SEGMPX4-CA (共阳极数码管) ,BUTTON(按键)]。 4、放置元器件、电源和地并连线。 5、设置元器件属性。按电路所需设置元器件的属性值。 6、加载目标代码文件。注意将Clock Frequency栏中的频率设为 12MHz。 7、单击仿真启动按钮,全速运行程序。 8、观察并记录LED显示的数字,注意观察按下按键,LED上是 否能显示相应按键的键号,即完成键盘输入及按键识别功能。
7406 、7SEG-MPX4-CA (4位共阳极数码管) ]。
4、放置元器件、电源和地并连线。
5、设置元器件属性。按电路所需设置元器件的属性值。
6、加载目标代码文件。注意将Clock Frequency栏中的频率设
为12MHz。
7、单击仿真启动按钮,全速运行程序。
8、观察并记录4位数码管的计时现象,注意观察是否能实现所

第五章 单片机键盘及显示器接口技术汇编

第五章 单片机键盘及显示器接口技术汇编

由于本案例中的4个按键分别对应4个不同的功能,且具有不同的按键值“keyval”,具体如 下:
按下K1按键时,keyval=1
按下K2按键时,keyval=2 按下K3按键时,keyval=3 按下K4按键时,keyval=4 本独立式键盘工作原理如下: (1)首先判断是否有按键按下。将接有4个按键的P1口低4位(P1.0~P1.3)写入“1”,使 P1口低4位为输入状态。然后读入低4位的电平,只要有一位不为“1”,则说明有键按下。 读取方法:
第五章 单片机键盘及显示器接口技术
键盘接口技术
LED显示技术
LCD显示技术 实例
5.1 键盘接口技术
键盘向单片机输入数据、命令等功能,是人机对话的主要手段。 键盘由若干按 键按照一定规则组成,每一个按键实质上是一个按键开关。
图5-1 键盘开关及其行线波形 按键的识别:按键闭合与否,反应在行线输出电压上就是高电平或低电平,对 行线电平高低状态检测,便可确认按键是否按下与松开。
8
【例5-1】单片机与4个独立按键k1~k4及8个LED指示灯的一个独立式键盘。4个 按键接在P1.0~P1.3引脚,P3口接8个LED指示灯,控制LED指示灯亮与灭,原理 电路见图5-24。当按下k1键,P3口8个LED正向(由上至下)流水点亮;按下k2 键,P3口8个LED全部点亮;按下k3键,P3口8个LED全部熄灭; k4键按下, 高、低4个LED交替点亮。
该行线为高电平,说明按键确实已经松开。
(2)键盘状态的监测方法:中断方式还是查询方式。 如第四章例4-2 (3)键盘编码方法:编码键盘和非编码键盘。
编码键盘是由硬件完成键盘识别功能的,它通过识别键是否按下以及所按下键的位置, 由编码电路产生一个唯一对应的编码信息(如ASCII码)。非编码键盘是由软件完成键盘识别功 能的,它利用简单的硬件和一套专用键盘编码程序来识别按键的位置,然后由CPU将位置码 通过查表程序转换成相应的编码信息。非编码键盘的速度较低,但结构简单的,并且通过软 件能为某些键的重定义提供很大的方便。

键盘与显示器接口技术

键盘与显示器接口技术

今天我们学习键盘与显示器接口技术,先来看键盘接口及处理程序。

(1)键盘是一组按键的集合,它是最常用的单片机输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。

键是一种常开型按钮开关,平时键的二个触点处于断开状态,按下键时它们才闭合。

键盘分编码和非编码键盘。

键盘上闭合键的识别由专用的硬件译码器实现并产生键编号或键值的称为编码键盘,如BCD码键盘,ASCII码键盘等;靠软件识别的称为非编码键盘。

在单片机组成的测控系统及智能化仪器中,用得最多的是非编码键盘。

所以我们着重讨论非编码矩阵式键盘原理。

矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。

一个3*3的行、列结构可以构成一个由9个按键的键盘。

同理一个4*4的行、列可以构成一个含有16个按键的键盘等等。

很明显,在按键数量较多的场合,矩阵键盘与独立按键键盘相比,要节省很多的I/O口。

矩阵键盘的按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。

列线通过上拉电阻接到+5V。

平时无按键动作时,列线处于高电平状态,而当由按键按下时,列线电平状态将由与此列线相连的行线电平决定。

行线电平如果为低,则列线电平为低;行线电平如果为高,则列线电平亦为高。

这一点是识别矩阵键盘按键是否被按下的关键所在。

该电路中还有一个与门,这个与门用来产生中断信号,当键盘中没有键按下时,所有行线的输出都应为低电平,以区别于列线状态,当矩阵键盘中任何一只键按下时,与门输出由高电平变为低电平,向CPU 申请中断,由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。

因此各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。

下面我们以一个4乘4键的键盘为例来说明按键是如何被识别出来的,在开始讨论问题之前,我们先要强调一个事实,用户的按键速度相对于单片机的运行速度来说是相当慢的,在用户按下键到释放键这一段时间内,单片机有足够多的时间运行键盘识别程序。

单片机第5章 输入输出接口P0~P3讲解

单片机第5章   输入输出接口P0~P3讲解

P2口—1.作为输入/输出口。 2.作为高8位地址总线。
P3口—P3口为双功能 1.作第一功能使用时,其功能为输入/输出口。 2.作第二功能使用时,每一位功能定义如下表
所示:
端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
第二功能 RXD (串行输入线) TXD (串行输出线) INT0(外部中断0输入线) INT1 (外部中断1输入线) T0 (定时器0外部计数脉冲输入) T1 (定时器1外部计数脉冲输入) WR (外部数据存储器写选通信号入)
为了节省口线,可将按键接成矩阵的形式。
例如:8×8的形式接64个按键,行列用两个接口 表示。每个按键都有行值和列值,行值和列值的组合 (称为按键的扫描码)就可以唯一的标识某个按键。 矩阵的行线和列线分别通过两个并口与CPU通信。按键 的状态用开关量“0/1”表示。
键盘处理程序的任务是: 确定有无键按下; 判哪一个键按下, 键的功能是什么; 还要消除按键在闭合或断开时的抖动。
TAB2 : db 78H,79H,38H,38H,3FH ; “HELLO”的字形码
DAY: MOV R6,#20 ; 延时20ms子程序 DL2: MOV R7,#7DH DL1: NOP
NOP DJNZ R7,DL1 DJNZ R6,DL2
RET
END
5.3.2用并行口设计键盘电路
键盘是计算机系统中不可缺少的输入设备,当按 键少时可接成线性键盘(一个按键对应一位,如图5.2 中的按键 ),按键较多时,这样的接法占用口线较多。
a
5
EE DE BE 7E ED DD BD 7D EB DB BB 7B E7 D7 B7 77
开始

单片机原理及应用—键盘、显示器的接口设计

单片机原理及应用—键盘、显示器的接口设计
按键位于行、列的交叉点上。如图10-10所示。
按键数目较多的场合,行列式键盘与独立式键盘 相比,要节省很多的I/O口线。
(1)行列式键盘工作原理
无键按下,该行线为高电平,当有键按下时, 行线电平由列线的电平来决定。
由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。
个小数点“dp”段)。 有共阳极和共阴极两种。如图10-1所示。
为使LED显示不同的符号或数字,要为LED提供段码 (或称字型码)。
提供给LED显示器的段码(字型码)正好是一个字 节(8段)。各段与字节中各位对应关系如下:
按上述格式,8段LED的段码如表10-1所示。
表10-1 LED段码(8段)
第2步:行线输出为全低电平,则列线中电平由高变低 所在列为按键所在列。
结合上述两步,可确定按键所在行和列。 (3)键盘的编码
根据实际需要灵活编码。
二、 LED数码显示器接口原理
1 LED数码显示器接口原理 LED(Light Emitting Diode):发光二极管的缩写。
显示器前面冠以“LED”。 1.1 LED数码显示器的结构 常用的LED显示器为8段(或7段,8段比7段多了一
7.5 键盘、显示器的接口设计
输入外设:键盘 输出外设:LED显示器
一、 键盘接口原理 1. 键盘输入的特点
键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。
2. 按键的确认
检测列线电平 高电平:断开;低电平:闭合,
3.如何消除按键的抖动 常用软件来消除按键抖动。
基本思想:检测到有键按下,键对应的行线为低,软 件延时10ms后,行线如仍为低,则确认该行有键按下。

单片机原理及应用键盘与显示器接口

单片机原理及应用键盘与显示器接口

按键识别子程序
KEY: MOV DPTR, #7F00H ;8155命令口地址
MOV A, #03H
;置PA、PB口为输出,
MOVX @DPTR,A ;PC口为输入
MOV R4,#00H
;0→键号寄存器R4
MOV R2,#01H
;扫描模式01H→R2
KEY1:MOV DPTR,#7F01H
MOV A,R2
2、串键保护
由于操作不慎,可能会造成同时有几个键被按下,这种情况 称为串键。有三种处理串键的技术:两键同时按下、n键同时 按下和n键锁定。
“两键同时按下”技术是在两个键同时按下时产生保护作用。 最简单的办法是当只有一个键按下时才读取键盘的输出,最后 仍被按下的键是有效的正确按键。当用软件扫描键盘时常采用 这种方法。另一种方法是当第一个按键未松开时,按第二个键 不产生选通信号。这种方法常藉助硬件来实现。
典型非编码键盘结构
非编码键盘大都采用按行、列排列的矩阵开关 结构,这种结构可以减少硬件和连线。
矩阵键盘接口
行扫描法识别按键
行扫描法是采用步进扫描方式,CPU通过输出口 把一个“步进的0”逐行加至键盘的行线上,然后通过 输入口检查列线的状态。由行线列线电平状态的组合 来确定是否有键按下,并确定被按键所处的行、列位 置。
1、反弹跳
当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖 动和弹跳,如下图所示,这是机械式开关的一个共同性问题。 消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用 软件延迟的方法。
采用RS触发器实现硬件反弹跳
当键数较多时经常用软件 延时的方法来反弹跳,如 流程图所示。当检出有键 按下后,先执行一个反颤 延时20ms的子程序,待前 沿弹跳消失后再转入键闭 合CLOSE子程序。然后再 判断此次按键是否松开, 如果没有,则进行等待。 若已松开,则又执行一次 延时20ms的子程序以消除 后沿弹跳的影响,再去检 测下次按键的闭合。

单片机第五章显示与键盘接口技术

单片机第五章显示与键盘接口技术

delay50ms(); //延时50ms
}
}
}
(二)当单片机I/O口不够用时,可扩展并行口8155,
如图:
去80C51
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
8155
7407×2
dp g f e d c b a
7406
PA5 PA4 PA3 PA2 PA1
PA0
+5V
100Ω×8
1.静态显示:静态显示是指数码管显示某一字符时,
相应的发光二极管恒定导通或恒定截止。这种显示方
式的各位数码管的公共端可接地(共阴极)或+八个
段控制引脚分别与
一个八位I/O端口
相连。只要I/O端
口有显示字型码输
出,数码管就显示
给定字符,并保持
不变,直到I/O口
输出新的段码。
unsigned char i,w; TMOD=0x10;
//设置定时器1工作方式1
while(1) {
w=0x01;
//位选码初值为01H
for(i=0;i<6;i++)
{
P2=~w;
//位选码取反后送位控制口P2口
w<<=1;
//位选码左移一位,选中下一位LED
P1=led[i]; //显示字型码送P1口
动态显示举例:用P1口经74LS245缓冲驱动器接LED的数据 端,提供显示码;用P2口的6条线经74LS04反向器接LED控制 口每一位,控制LED的亮和灭。
例1 六位数码管动态显示“012345”
#include <reg51.h>
void delay50ms()
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

void delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=0;j<125;j++);
}
void Alter()
{
unsigned char n;
for(n=0;n<5;n++)
{
P1=0x0f;delay(500);
P1=0xf0;delay(500);
由于一个数码管就占用一个I/O端口。如果数码管数目增多,则需增加I/O口,
但软件编程要简单的多。
参考程序如下:
#include<reg51.h>
//包含8051单片机寄存器定义的头文件
void main(void)
{ P0=0xa4;
//将数字"2"的段码送P0口
P1=0xf8;
//将数字"7"的段码送P1口
图5-3 中断扫描方式的独立式键盘的接口电路
14
15
16
5.1.2 矩阵式键盘接口技术
矩阵式(也称行列式)键盘用于按键数目较多的场合,由行线和列线组成,按键位于 行、列交叉点上。见图5-4,一个44的行、列结构可以构成一个16个按键的键盘,只需要 一个8位的并行I/O口即可。如果采用88的行、列结构,可以构成一个64按键的键盘,只 需要两个并行I/O口即可。很明显,在按键数目较多场合,矩阵式键盘要比独立式键盘节省 较多I/O口线。
(4)键盘控制程序的编写。
3
【例4-2】在AT89C51单片机的P1口上接有8只LED。程序运行后,8只发 光二极管流水点亮。按下按钮开关K1,低4位的LED和高4位的LED交替闪 烁,闪烁5次后, 8只发光二极管再次流水点亮。
4
#include<reg51.h>
sbit K1=P3^2;
unsigned char code play[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
5.2 LED显示技术 5.2.1 七段LED显示器
一、LED显示器的结构与原理 LED数码管: “8”字型,7段(不包括小数点)或8段(包括小数点),每段对应一 个发光二极管,共阳极和共阴极两种,见图5-6。共阳极数码管的阳极连接在一起, 接+5V;共阴极数码管阴极连在一起接地。 对于共阴极数码管,当某发光二极管阳极为高电平时,发光二极管点亮,相应段被 显示。同样,共阳极数码管阳极连在一起,公共阳极接+5V,当某个发光二极管阴 极接低电平时,该发光二极管被点亮,相应段被显示。
}
}
void main()
{
unsigned int a;
for(;;)
{
for(a=0;a<8;a++)
{
delay(500);
P1=play[a];
}
if(K1==0)
Alter();
}
}
5
#include<reg51.h>
unsigned char code play[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
对图5-2所示独立式键盘,用查询方式实现键盘扫描,根据按下不同按键,对 其进行处理。扫描程序如下:
8
【例5-1】单片机与4个独立按键k1~k4及8个LED指示灯的一个独立式键盘。4个 按键接在P1.0~P1.3引脚,P3口接8个LED指示灯,控制LED指示灯亮与灭,原理 电路见图5-24。当按下k1键,P3口8个LED正向(由上至下)流水点亮;按下k2 键,P3口8个LED全部点亮;按下k3键,P3口8个LED全部熄灭; k4键按下, 高、低4个LED交替点亮。
(2)键盘状态的监测方法:中断方式还是查询方式。 如第四章例4-2
(3)键盘编码方法:编码键盘和非编码键盘。
编码键盘是由硬件完成键盘识别功能的,它通过识别键是否按下以及所按下键的位置, 由编码电路产生一个唯一对应的编码信息(如ASCII码)。非编码键盘是由软件完成键盘识别功 能的,它利用简单的硬件和一套专用键盘编码程序来识别按键的位置,然后由CPU将位置码 通过查表程序转换成相应的编码信息。非编码键盘的速度较低,但结构简单的,并且通过软 件能为某些键的重定义提供很大的方便。
P1=play[a];
}
}
}
void int0() interrupt 0 using 1
{
unsigned char n;
for(n=0;n<5;n++)
{
P1=0x0f;delay(500);
P1=0xf0;delay(500);
}
}
6
5.1.1 独立式键盘接口技术 非编码键盘是利用按键直接与单片机相连接而成,常用在按键数量较少的场合。
void delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=0;j<125;j++);
}
void main()
{
unsigned int a;
for(;;)
{
EA=1; EX0=1; IT0=1;
for(a=0;a<8;a++)
{
delay(500);
线的电平状态,易判断哪个按键被按下。 图5-2为一独立式键盘,8个按键k1~k8分别接到单片机的P1.0~ P1.7引脚上,
图中上拉电阻保证按键未按下时,保证对应I/O口线为稳定高电平。当某一按键按 下时,对应I/O口线就变成低电平,与其他按键相连的I/O口线仍为高电平。
因此,只需读入I/O口线状态,判别是否为低电平,就很容易识别出哪个键被 按下。可见独立式键盘优点是电路简单,各条检测线独立,识别按键号的软件编写 简单。独立式键盘适于按键数目较少场合,如按键数目较多,要占用较多I/O口 线。
26
【例5-3】利用单片机控制一个8段LED数码管先循环显示单个偶数:0、2、4、6、8, 再显示单个奇数:1、3、5、7、9,如此反复循环显示。
28
二、 LED显示器的显示方式 两种显示方式:静态显示和动态显示。 1. 静态显示方式
无论多少位LED数码管,都同时处于显示状态。 多位LED数码管工作于静态显示方式时,各位共阴极(或共阳极)连接在一起并接地(或接 +5V);每位数码管段码线(a~dp)分别与一个8位I/O口锁存器输出相连。如果送往各个 LED数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到 送入下一个显示字符段码。静态显示方式显示无闪烁,亮度较高,软件控制较易。 图5-7为4位LED数码管静态显示电路,各数码管可独立显示,只要向控制各位I/O口锁存器 送相应显示段码,该位就能保持相应的显示字符。 这样在同一时间,每一位显示的字符可各不相同。静态显示方式占用I/O口端口线较多。图 5-7电路,要占用4个8位I/O口(或锁存器)。如数码管数目增多,则需增加I/O口数目。
2
键盘接口设计应解决的问题: (1)开关状态的可靠输入:硬件去抖动、软件去抖动。
软件去抖动的基本思想:在检测到有键按下时,该键所对应的行线为低电平,执行一段 延时10ms的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实 有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10ms 的子程序后,检测 该行线为高电平,说明按键确实已经松开。
20
21
程序说明:本例关键是如何获取键号。具体采用了逐行扫描,先驱动行P1.4=0, 然后依次读入各列的状态,第1列对应的i=0,第2列对应的i=1,第3列对应的i=2,第4 列对应的i=3。假设4号键按下,此时第2列对应的i=1,又L2=0,执行语句“if (L2==0) P0=dis [i*4+1]”后,i*4+1=5,从而查找到字型码数组dis[ ]中的第5个元素,即显示 “4”的段码“0x99”,把段码“0x99”送P0口驱动数码管显示“4”。
//表明低4位必有1位是“0”, 说明有键按下 (2)按键去抖动。当判别有键按下时,调用软件延时子程序,延时约10ms后再进行判别, 若按键确实按下,则执行相应的按键功能,否则重新开始进行扫描。 (3)获得键值。确认有键按下时,可采用扫描方法,来判哪个键按下,并获取键值。
12
13
独立式键盘的中断方式
图5-6 8段LED数码管结构及外形
24
为使LED数码管显示不同字符,要把某些段点亮,就要为数码管各段提供一字节 的二进制码,即字型码也称段码)。习惯上以“a”段对应字型码字节的最低位。 各字符段码见表5-1。
25
如要在数码管显示某字符,只需将该字符字型码加到各段上即可。 例如某存储单元中的数为“02H”,想在共阳极数码管上显示“2”, 需要把“2”的字型码“A4H”加到数码管各段。将欲显示字符的字型码 作成一个表(数组),根据显示字符从表中查找到相应字型码,然后把 该字型码输出数码管各个段上,同时数码管的公共端接+5V,此时在数 码管上显示字符“2”。 下面介绍单片机如何控制LED数码管显示字符。
18
19
【例5-2】 数码管显示4×4矩阵键盘键号。单片机的P1口的P1.0~P1.7连接4×4矩 阵键盘,矩阵中各键编号见图5-5。
数码管显示由P0口控制,当4×4矩阵键盘中的某一按键按下时,数码管上显示 对应键号。例如,1号键按下时,数码管显示“1”;E键按下时,数码管显示“E” 等等。
图5-5 数码管显示4×4矩阵键盘键号的原理电路
由于本案例中的4个按键分别对应4个不同的功能,且具有不同的按键值“keyval”,具体如 下:
相关文档
最新文档