C51与键盘、显示器、拨盘、打印机的接口设计

合集下载

单片机原理与应用及C51程序设计MCS51与键盘显示器的接口

单片机原理与应用及C51程序设计MCS51与键盘显示器的接口

第七章 MCS-51与键盘、显示器的接口
3.键位的编码
通常有两种方法编码。 (1)用连接键盘的I/O线的二进制组合进行编码。如(a)图 (2)顺序排列编码。如(b)图,处理方法如下:编码值=行首编 码值X+列号Y。
P1.0
88 84 82 81
P1.1
48 44 42 41
P1.2
28 24 22 21
第七章 MCS-51与键盘、显示器的接口
第七章 MCS-51与键盘、显示器的接口
7.1 MCS-51单片机1与键盘接口
7.1.1 键盘的工作原理 键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态, 当按下键时它才闭合。它的结构和产生的波形如图所示。
VCC
P1.1 (a)
断开 P1.1 GND
第七章 MCS-51与键盘、显示器的接口
K0:AJMP KEY0 K1:AJMP KEY1 …… K7:AJIMP KEY7 KEY0:…… ;0号键功能程序 JMP START ;0号键功能程序执行完返回 KEY1:…… ;0号键功能程序 JMP START ;1号键功能程序执行完返回 …… KEY7:…… ;7号键功能程序 JMP START ;7号键功能程序执行完返回
闭合 (b)
断开
第七章 MCS-51与键盘、显示器的接口
键盘的处理主要涉及三个方面:
1.按键的识别
2.抖动的消除 消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。 硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,
一般采用R—S触发器或单稳态电路。如图。
+5V
闭合 断开 +5V
输出
软件消抖是利用延时来跳过抖动过程

第10章 MCS-51与键盘、显示器的接口设计

第10章 MCS-51与键盘、显示器的接口设计

扩展键盘接口
二. 键盘接口原理
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. 结 果

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

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

7
图5-2 单片机控制的流水灯
8
{
for(t=0;t<120;t++);
}
}
void main( )
//主程序
{
P1=0xfe;
//向P1口送出点亮数据
while (1)
{
delay( 500 );
//500为延时参数,可根据实际需要调整
P1=_crol_(P1,1) ; // 函数_crol_(P1,1)把P1中的数据循环左移1位
} }
//左移初值赋给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据左移一位 // 赋右移初值给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据右移一位
14
程序说明: 注意使用移位运算符“>>”、“<<”与使用循环左移函数 “_crol_”和循环右移函数“_cror_” 区别。左移移位运算“<<”是将高位 丢弃,低位补0 ;右移移位运算、“>>”是将低位丢弃,高位补0。而循环 左移函数“_crol_” 是将移出的高位再补到低位,即循环移位;同理循环 右移函数“_cror_” 是将移出的低位再补到高位。
}
void main( )
//主函数
{
while (1)
{
unsigned char temp; //定义临时变量temp
P1=0xff; //P1口低4位置1,作为输入;高4位置1,发光二极管熄灭
temp=P1&0xf0;
//读P1口并屏蔽低4位,送入temp 中
temp=temp>>4;

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

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

5.2.1 开关检测案例1
图5-3 开关、LED发光二极管与P1口的连接
5.2.1 开关检测案例1
参考程序如下: #include <reg51.h> #define uchar unsigned char void delay( ) {
uchar i,j; for(i=0; i<255; i++) for(j=0; j<255; j++); }
5.1.2 I/O端口的编程举例
03 用循环左、右移位函数实现
OPTION
使用C51提供的库函数,即循环左移n位函数和循环右
移n位函数,控制发光二极管点亮。参考程序:
#include <reg51.h> #include <intrins.h> 函数的头文件 #define uchar unsigned char void delay( ) {
5.1.2 I/O端口的编程举例
#include <reg51.h> #define uchar unsigned char uchar tab[ ]={ 0xfe , 0xfd , 0xfb , 0xf7 , 0xef , 0xdf , 0xbf , 0x7f , 0x7f , 0xbf , 0xdf , 0xef , 0xf7 , 0xfb , 0xfd , 0xfe }; /*前8个数据为左移点亮 数据,后8个为右移点亮数据*/ void delay( ) {
// P1口为输入 // 读入P1口的状态,送入state // 屏蔽P1口的高6位
5.2.2 开关检测案例2
switch (state) {
// 判P1口低2位开关状态

第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计75987培训资料

第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所示。

第9章 AT89C51与键盘、显示器的接口设计

第9章 AT89C51与键盘、显示器的接口设计

扫描法和线反转法
a、扫描法:2步 第1步:识别键盘有无键按下。
具体方法:把所有列线置低,检查各行线电平是否有变化,有变化, 有键按下,否则无键按下。
第2步:如有键被按下,识别出具体的按键。
具体方法:即先把某一列置低,其余列置高,检查各行线电平 如果某行线电平为低,则可确定此行此列交叉点处 的按键被按下。 扫描法的缺点:
– 扫描法,逐列置低读行线电平
• (4)等待按键释放后,再进行按键功能的处 理操作。
10.3
键盘/显示器接口设计实例(几种实用的设计方案)
10.3.1 利用并口实现键盘/显示器接口
硬件接口电路:
P1.7 . . P1.0
P2.0 P2.1 P2.2 P2.3
P0
P1控制键盘列线的扫描,同时又是6位共阴极显示器的位扫 描口。P0口作为显示器段码输出口,P2口作为键盘的行线状态 的输入口。在主程序初始化中设置。 75452:反相驱动器,7407:同相驱动器。
5.对于下图的键盘,采用线反转法原理来 编写出识别某一按键被按下并得到其键号的 程序。
表10-1
显示字符 0 共阴极 段码 3FH C0H
LED段码(8段)
共阳极 段码 显示字符 c 共阴极 段码 39H 共阳极 段码 C6H
1 2
3 4 5 6 7 8
06H 5BH
4FH 66H 6DH 7DH 07H 7FH
F9H A4H
B0H 99H 92H 82H F8H 80H
d E
F P U T y H
5EH 79H
71H 73H 3EH 31H 6EH 76H
A1H 86H
8EH 8CH C1H CEH 91H 89H
9

C51与键盘、显示器、拨盘、打印机的接口设计

C51与键盘、显示器、拨盘、打印机的接口设计

图10-6 键盘开关及其波形
①抖动期(t1、t3):一般为5~10ms;
②稳定的闭合期间(t2):一般为十分之几秒到几秒;
③断开期(t0、t4)
12
2. 按键的确认
检测行线电平(图10-6)
高电平:断开; 低电平:闭合。 为了确保对一次按键动作只确认一次按键有效,必须消除抖 动期t1和t3的影响。 3.如何消除按键的抖动 常用软件来消除按键抖动。 基本思想:检测到有键按下,键对应的行线为低,软件延时 10ms后,行线如仍为低,则确认该行有键按下。 当键松开时,行线变高,软件延时10ms后,行线仍为高,说 明按键已松开。 采取以上措施,躲开了两个抖动期t1和t3的影响。
列为按键所在列。
P1.4~P1.7全为“0”,读P1.0~P1.3的状态,则P1.0=0,
其余为1。第4行电平有变化,说明第4列有键按下。 结合上述两步,可确定按键所在行和列。
20
图10-10 线反转法原理图
21
10.2.3 键盘的工作方式
单片机在忙于各项工作任务时,如何兼顾键盘的输入,取 决于键盘的工作方式。
19
b. 线反转法 只需两步便能获得此按键所在的行列值,线反转法的原理如
图10-10。假设3号键被按下。 第1步:列线输出为全低电平,则行线中电平由高变低的所
在行为按键所在行。
P1.0~P1.3全为“0”,读P1.4~P1.7的状态,则P1.4=0,其
余为1。第1行电平有变化,说明第1行有键按下。 第2步:行线输出为全低电平,则列线中电平由高变低所在
14
图10-7 独立式键盘接口电路
15
图10-8为82C55扩展I/O口的独立式按键接口电路。
图10-8 通过82C55扩展的独立式键盘接口
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
10.2.2 键盘接口的工作原理 独立式按键接口和行列式键盘接口。 1.独立式键盘接口
各键相互独立,每个按键各接一根输入线,通过检测输入线 的电平状态可很容易判断那个键被按下。
相应锁存器的段码输出将维持不变,直到送入另一个字符的段码 为止。
静态显示器的显示的亮度高。 图10-3: 4位静态LED显示器电路。该电路各位可独立显示, 只要在该位的段码线上保持段码电平,该位就能保持相应的显示 字符。
6
由于各位分别由一个8位的数据输出口(如82C55的PA、PB、 PC口)控制段码线,故在同一时间内,每一个显示的字符可以各 不相同。
图10-2 4位LED显示器的结构原理图 N个LED显示块有N位位选线和8×N根段码线。 段码线控制显示字符的字型,而位选线为各个LED显示块中各 段的公共端,它控制该LED显示位的亮与暗。
5
1. LED静态显示方式 各位的公共端连接在一起(接地或+5V)。 每位的段码线(a~dp)分别与一个8位的锁存器输出相连。 之所以称为静态显示,是因为各个LED的显示字符一经确定,
按上述格式,8段LED的段码如表10-2所示。
3
显示字符 0 1 2 3 4 5 6 7 8 9 A b
表10-2 LED段码(8段)
共阴极段码 共阳极段码 显示字符 共阴极段码
3FH
C0H
c
39H

06H
F9H
d
5EH
5BH
A4H
E
79H
4FH
B0H
F
71H
66H
99H
P
73H
6DH
92H
U
3EH
这种显示方式编程容易,但是占用口线较多。如图10-3,若 用IO口线接口,要占用4个8位IO口,若用锁存器(如74LS373)接 口,要用4片74LS373芯片。如果显示的位数增多的话,则需要增 加锁存器。
在显示位数较多的情况下,一般都采用动态显示方式。
7
2. LED动态显示方式 在多位LED显示时,为简化硬件电路,通常将所有位的段码
9
虽然这些字符是在不同的时刻出现的,而在同一时刻,只有 一位显示,其他位熄灭,但由于LED显示器的余辉和人眼的“视 觉暂留”作用,只要每位显示间隔足够短,则可以造成“多位同 时亮”的假象,达到同时显示的效果。
LED不同位显示的时间间隔应根据实际情况而定。发光二极
管从导通到发光有一定的延时,导通时间太短,则发光太弱,人
7DH
82H
T
31H
07H
F8H
y
6EH
7FH
80H
H
76H
6FH
90H
L
38H
77FH
88H
“灭”
00H
7CH
83H


共阳极段码 C6H A1H 86H 8EH 8CH C1H CEH 91H 89H C7H FFH …
表10-2只列出了部分段码,可根据实际情况选用,也可重新定4 义。
10.1.2 LED显示器工作原理 图10-2是4位LED显示器的结构原理图。
图10-6 键盘开关及其波形
①抖动期(t1、t3):一般为5~10ms;
②稳定的闭合期间(t2):一般为十分之几秒到几秒;
③断开期(t0、t4)
12
2. 按键的确认
检测行线电平(图10-6)
高电平:断开; 低电平:闭合。 为了确保对一次按键动作只确认一次按键有效,必须消除抖 动期t1和t3的影响。 3.如何消除按键的抖动 常用软件来消除按键抖动。 基本思想:检测到有键按下,键对应的行线为低,软件延时 10ms后,行线如仍为低,则确认该行有键按下。 当键松开时,行线变高,软件延时10ms后,行线仍为高,说 明按键已松开。 采取以上措施,躲开了两个抖动期t1和t3的影响。
8
若要各位都显示出与本位相应的显示字符,就必须采用动态 显示方式,即在某一时刻,只让某一位的位选线处于选通状态, 而其他各位的位选线处于关闭状态,同时,段码线上要输出相应 的字符的段码。
这样,在同一时刻,4位LED中只有选通的那一位显示出字符, 而其他三位则是熄灭的。下一时刻,只让下一位的位选线处于选 通状态,而其他各位的位选线处于关闭状态,在段码线上输出将 要显示的字符的段码,此时只有选通位显示出相应的字符,其他 位熄灭的。如此循环下去。。。
线相应段并在一起,由一个8位I/O口控制,形成段码线的多路复 用;而各位的共阳极或共阴极分别由相应的I/O线控制,形成各 位的分时选通。
图10-4:4位8段LED动态显示电路。其中段码线占用一个8位 I/O口,而位选线占用一个4位I/O口。
由于各位的段码线并联,8位I/O口输出端的段码对各个显示 位来说都是相同的。因此,在同一时刻,如果各位位选线都处于 选通状态,4位LED将显示相同的字符。
图(b)是实际显示结果,人眼看到的是8位稳定的同时显示的 字符。
图10-5 8位LED动态显示过程和结果
11
10.2 键盘接口原理 1. 键盘输入的特点
单片机系统中键盘有两种:机械式键盘和薄膜式键盘。 键盘:一组按键开关的集合。 一个电压信号通过键盘开关机械触点的断开、闭合,其行线 电压的输出波形如图10-6。
第10章 89C51与键盘、显示器、拨盘、打印机的接 口设计
大多数应用系统,都要配置输入外设和输出外设。 输入外设:键盘、BCD码拨盘等; 输出外设:LED显示器、LCD显示器、打印机等。
10.1 LED显示器接口原理 LED(Light Emitting Diode):发光二极管的缩写。显示器
前面冠以“LED”。 10.1.1 LED显示器的结构
常用的LED显示器为8段(或7段,8段比7段多了一个小数 点“dp”段)。
有共阳极和共阴极两种。如图10-1所示。
1
图10-1 8端LED结构及外形
2
为使LED显示不同的符号或数字,要为LED提供段码(或 称字型码)。
提供给LED显示器的段码(字型码)正好是一个字节(8 段)。
各段与字节中各位对应关系如表10-1。 表10-1 段码与字节中各位对应关系
眼无法看清;但也不能太长,因为要受限于临界闪烁频率,而且 此时间越长,占用单片机时间越多。另外,显示位数增多,也将 占用大量的单片机时间,因此动态显示的实质以牺牲单片机时间 来换取I∕O端口的减少。
10
图10-5为8位LED动态显示2008.10.10的过程。
图(a)是显示过程,某一时刻,只有一位LED被选通显示,其 余位则是熄灭的;
相关文档
最新文档