第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计75987培训资料
合集下载
单片机第10章89C51与键盘显示器接口教材课程

2020/8/6
2020/8/6
图10-7
图10-8为82C55扩展I/O口的独立式按键接口电路。
2020/8/6
图10-8
2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成,按键位于
行、列的交叉点上。如图10-9所示。
图10-9 按键数目较多的场合,行列式键盘与独立式键盘相比, 要节省很多的I/O口线。
2020/8/6
图10-11
89C51外扩一片8155H。RAM地址: 7E00H~7EFFH。 I/O口地址:7F00H~7F05H。
PA口为输出口,控制键盘列线的扫描,同时又是6位共阴极 显示器的位扫描口。
PB口作为显示器段码输出口,PC口作为键盘的行线状态的 输入口。
75452:反相驱动器,7407:同相驱动器。
利用单片机内的定时器,产生10ms的定时中断,对键盘进行 扫描。 3.中断工作方式
只有在键盘有键按下时,才执行键盘扫描程序,如无键按 下,单片机将不理睬键盘。
键盘所做的工作分为三个层次。
2020/8/6
第1层:单片机如何来监视键盘的输入。三种工作方式:①编 程扫描②定时扫描③中断扫描。
第2层:确定具体按键的键号。体现在按键的识别方法上就 是:①扫描法;②线反转法。
1.动态显示程序设计 内部RAM 6个显示缓冲单元:79H~7EH,存放要显示的6位数
据。 81C55的PB口输出相应位的段码,依次改变PA口输出为高的位使
某一位显示某一字符,其它位为暗。动态地显示出由缓冲区 中显示数据所确定的字符。
2020/8/6
参考程序:
DIR: MOV R0,#79H ;置缓冲器指针初值
方法:对键盘的列线进行逐列扫描,扫描口PA0~PA7依次输 出下列编码,即只有一列为低电平,其余各列为高电平:
2020/8/6
图10-7
图10-8为82C55扩展I/O口的独立式按键接口电路。
2020/8/6
图10-8
2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成,按键位于
行、列的交叉点上。如图10-9所示。
图10-9 按键数目较多的场合,行列式键盘与独立式键盘相比, 要节省很多的I/O口线。
2020/8/6
图10-11
89C51外扩一片8155H。RAM地址: 7E00H~7EFFH。 I/O口地址:7F00H~7F05H。
PA口为输出口,控制键盘列线的扫描,同时又是6位共阴极 显示器的位扫描口。
PB口作为显示器段码输出口,PC口作为键盘的行线状态的 输入口。
75452:反相驱动器,7407:同相驱动器。
利用单片机内的定时器,产生10ms的定时中断,对键盘进行 扫描。 3.中断工作方式
只有在键盘有键按下时,才执行键盘扫描程序,如无键按 下,单片机将不理睬键盘。
键盘所做的工作分为三个层次。
2020/8/6
第1层:单片机如何来监视键盘的输入。三种工作方式:①编 程扫描②定时扫描③中断扫描。
第2层:确定具体按键的键号。体现在按键的识别方法上就 是:①扫描法;②线反转法。
1.动态显示程序设计 内部RAM 6个显示缓冲单元:79H~7EH,存放要显示的6位数
据。 81C55的PB口输出相应位的段码,依次改变PA口输出为高的位使
某一位显示某一字符,其它位为暗。动态地显示出由缓冲区 中显示数据所确定的字符。
2020/8/6
参考程序:
DIR: MOV R0,#79H ;置缓冲器指针初值
方法:对键盘的列线进行逐列扫描,扫描口PA0~PA7依次输 出下列编码,即只有一列为低电平,其余各列为高电平:
第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. 结 果
第10章AT89C51单片机与键盘显示器等的接口设计

COM2=0 十位
COM1=0 个位
(b)
送显示位扫描信号: COM4=0 COM3=1 COM2=0 COM1=0 个位 十位 百位 千位 g 送 2 的显示段码: hgfedcba =10100100 f e d c b a COM3=0 百位 COM2=1 COM1=0 个位 十位
(c)
只要扫描信号的频率足够 快,加上LED数码显示器发光 的余晖效应和人的视觉暂留现 象,人们感觉到的好像是各位 同时显示的效果,而无闪烁现 象。 一般每个LED数码显示器 的显示时间为1~5ms。
b. 线反转法
第1步:列线输出为全低电平, 则行线中电平由高变低(或由 低变高)的所在行为按键所在 行。 第2步:行线输出为全低电平, 则列线中电平由高变低(或由 低变高)所在列为按键所在列。 结合上述两步,可确定按键所 在行和列。
编程说明:
在单片机应用系统中,键盘扫描只是系统的部分程序。进 行软件系统编程时,一般作为子程序调用或中断服务程序 使用。该子程序入口参数为无,出口参数为键码值,一般 存于A。因此,其调用十分简单,但一定要注意返回的键码 值所对应的键在键盘的哪个位臵,即要掌握键码分配表。 矩阵式键盘尽管比独立式键盘复杂。但有了上述子程序后, 只要学会调用,你甚至不需要知道键盘扫描程序是如何编 写的,COPY即可,编程也就变得十分简单了。从这可以看 出平时注意查阅资料,收集实用子程序,掌握子程序的调 用,对提高编程效率是多么重要。
DELY10MS
JAN1 ANJ JAN1_PRG JAN1
;P1.0=0键被按下,延时消抖
;P1.0是否仍为低电平,否则重 新查询 ;按键有效,等待键释放 ;调用键功能程序 ;返回继续查询
P1.0
MCS-51与键盘、显示器、拨盘、打印机的接口设计

输出为高的位使某一位显示某一字符,其它位为暗。 动态地显示出由缓冲区中显示数据所确定的字符。程 序流程如图10-15 。
参考程序:
DIR: MOV R0,#79H ;置缓冲器指针初值
MOV R3,#01H ;位选码的初值送R3
MOV A,R3
LD0: MOV DPTR,#7F01H;位选码→PA口(PA.0位)
LJMP PKEY3
;S3按下,转PKEY3处理
KEY4: CJNE A,#17H,KEY5 ;S4键未按下,转KEY5
LJMP PKEY4
;S4按下,转PKEY4处理
KEY5: CJNE A,#0FH,PASS ;S5未按下,转RETURN
LJMP PKEY5
;S5按下,转PKEY5处理
RETURN:RET
(2)用软件来消除按键抖动的影响。如有键按下,则 进行下一步。 (3)求按下键的键号。 (4)等待按键释放后,再进行按键功能的处理操作。 2. 定时扫描工作方式
利用单片机内的定时器,产生10ms的定时中断,对 键盘进行扫描。
3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如
无键按下,单片机将不理睬键盘。
PA口为输出口,控制键盘列线的扫描,同时又是6 位共阴极显示器的位扫描口。
PB口作为显示器段码输出口,PC口作为键盘的行 线状态的输入口。
75452:反相驱动器,7407:同相驱动器。
1.动态显示程序设计 8031内部RAM 6个显示缓冲单元:79H~7EH,存
放要显示的6位数据。 8155H的PB口输出相应位的段码,依次改变PA口
表10-1 LED段码(8段)
显示字符 共阴极 共阳极 显示字符 共阴极 共阳极
段码 段码
参考程序:
DIR: MOV R0,#79H ;置缓冲器指针初值
MOV R3,#01H ;位选码的初值送R3
MOV A,R3
LD0: MOV DPTR,#7F01H;位选码→PA口(PA.0位)
LJMP PKEY3
;S3按下,转PKEY3处理
KEY4: CJNE A,#17H,KEY5 ;S4键未按下,转KEY5
LJMP PKEY4
;S4按下,转PKEY4处理
KEY5: CJNE A,#0FH,PASS ;S5未按下,转RETURN
LJMP PKEY5
;S5按下,转PKEY5处理
RETURN:RET
(2)用软件来消除按键抖动的影响。如有键按下,则 进行下一步。 (3)求按下键的键号。 (4)等待按键释放后,再进行按键功能的处理操作。 2. 定时扫描工作方式
利用单片机内的定时器,产生10ms的定时中断,对 键盘进行扫描。
3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如
无键按下,单片机将不理睬键盘。
PA口为输出口,控制键盘列线的扫描,同时又是6 位共阴极显示器的位扫描口。
PB口作为显示器段码输出口,PC口作为键盘的行 线状态的输入口。
75452:反相驱动器,7407:同相驱动器。
1.动态显示程序设计 8031内部RAM 6个显示缓冲单元:79H~7EH,存
放要显示的6位数据。 8155H的PB口输出相应位的段码,依次改变PA口
表10-1 LED段码(8段)
显示字符 共阴极 共阳极 显示字符 共阴极 共阳极
段码 段码
第10章 MCS-51与键盘、显示器的接口设计

2.去抖动措施: 2.去抖动措施: 去抖动措施 软件去抖动:执行一段延时10ms的子程序 软件去抖动:执行一段延时10ms的子程序 10ms 硬件去抖动: 硬件去抖动:如双稳态消抖电路
10.2.1 键盘接口的工作原理 10.2.1 1.独立式键盘接口 1.独立式键盘接口
含义: 含义: 各键相互独立,一个按键--一根输入口线。 各键相互独立,一个按键--一根输入口线。 --一根输入口线 式和查询方式2种 式和查询方式2 适用场合: 适用场合:适用于按键数较少或操作速度较高的场合
注:10-8和10-9,按键为外部RAM单元,MOVX
设计软件:请以 - 为电路 为电路, 设计软件:请以10-9为电路,采用软件去抖 动的方法,以查询方式检测, 动的方法,以查询方式检测,当且仅当有 一键按下时才予以识别, 一键按下时才予以识别,如有多键按下讲 不予处理。 不予处理。
此子程序如下: 此子程序如下:
按键未按下,输出为高 按键按下,输出为0 抖动时间一般为5~10ms
故确认一个按键是否按下的基本思想为: 故确认一个按键是否按下的基本思想为: ★在第一次检测到输出为低电平时,执行一段延时10ms 在第一次检测到输出为低电平时,执行一段延时10ms 10 的子程序后(去抖动), ),再次确任该行线电平是否仍为 的子程序后(去抖动),再次确任该行线电平是否仍为 低电平,仍为低,则确认有键按下,否则视为干扰。 低电平,仍为低,则确认有键按下,否则视为干扰。 确认键是否释放则同样须防抖动。 确认键是否释放则同样须防抖动。
为使LED显示不同的符号或数字,要为LED提供段码 为使LED显示不同的符号或数字,要为LED提供段码 LED显示不同的符号或数字 LED提供 (或称字型码)。 或称字型码)。 字型和段码可由设计者自行设计,习惯排序如下: 字型和段码可由设计者自行设计,习惯排序如下: 排序如下
51单片机第10章dpj

3.键盘的编码
按照各按键所在的行线、列线值为0,其它线为1,这
样每个键唯一对应一个编码。 4.行列式键盘工作原理和编程方法 首先需要对键盘按规定进行编码, 然后对行、列线逐次分析,准确识别按键的位置, 最后与键盘编码进行比对,识别出按键。
(1) 逐行扫描法 行扫描法又称为逐行(或逐列)扫描键盘查询法,是一 种最常用的按键识别方法,图10-7所示4×4行列式 键盘。查键过程如下:
(2) 单片机与键盘接口电路设计和编程;
(3) 静态、动态、专用芯片和液晶屏显示
的工作原理、接口电路设计和编程;
(4) 单片机与ZLG7290键盘显示专用器件
的接口电路设计和编程。
10.1 单片机与键盘的接口
键盘是由若干按键组成的开关阵列。
键盘有编码键盘和非编码键盘之分。单片机系 统中通常采用非编码键盘,非编码键盘主要由 软件来识别闭合键,具有结构简单、使用灵活 等特点,因此被广泛应用于单片机系统。
入为低电平。通过对连接按键的I/O端口的电平
检测,就能识别出K1键是否被按下。
3.按键抖动的消除方法 有两种:硬件去抖和软件延时去抖。 硬件去抖电路如图10-2所示。
10.1.2 键盘的接口方式 单片机系统中采用非编码键盘,非编码键盘分为独立式键盘和 行列式矩阵键盘。
1.独立式键盘接口
按键处理子程序: ORG LJMP ORG LJMP MAIN: MOV SETB SETB SETB 0000 MAIN 0013H KPINT1 SP,#6FH IT EX1 EA
① 判断键盘中有无键按下 ② 判断按键所在位置 ③ 求特征码 ④ 求键码(值) 查键处理程序见课本
(2) 线反转法
反转法的工作原理和查键步骤如下:
MCS-51单片机的人机接口

1.2 LED显示接口
显示接口是应用系统实时自动地向操作人员提供必要状态信息 的手段和途径之一,能使操作人员及时地观察到系统的运行情 况和对操作命令的响应结果
基于运行环境、可靠性、体积、功耗、成本等综合因素考虑, 发光二极管LED和数码管使用最为广泛,LCD以其显示信息丰 富也有较多应用
1.2.1 单个LED接口
所有情况
行反转法
可加快按键的识别速度 行线和列线所连接的并行端口都应是双向端口 先让连接行线的并行口工作在输出方式,让连接列线的并行口
工作在输入方式。通过程序向行线上全部送0,然后读入所有列 线的值。若有某键按下,必定某位列线值为0 之后,程序重新设置两个并行口的数据传输方向,并将刚才读 得的列线数据从列线所接并行口输出,然后读入所有行线的值
会自动增1或减1
状态标志位:指示LCD是否忙 光标/闪烁控制:用于控制光标是否显示和闪烁频率
1.3.2 LCD模块的CPU接口
LCD模块引线定义
引线号
符号
1 2 3 4 5 6 7~14
VSS VDD VEE RS R/W# E DB0~DB7
名称
功能
地 电源 液晶驱动电压 寄存器选择 读/写选择 片选
单片机原理与应用
人机接口
要了解系统的运行状态、适时干预系统处理过程 最常见的人机接口是键盘和显示器
键盘和显示电路通常由开发人员自行设计
1.1 键盘接口
利用按键可以向单片机输入数据和命令、选择系统功能 是人工操作介入单片机程序运行的主要手段 一组按键称为键盘 硬件上需要解决键盘与单片机的接口电路 软件则要实现对不同按键输入的识别解释功能
动态显示
将所有的段选线并联在一起,由一个8位输出口控制,而每位的 共阴极或共阳极点分别由单独的I/O口线控制
1与键盘、显示器的接口设计

+5V V
MCS51
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
74LS07
1008 +5V
8155
共阴极 显示器
COM5 COM4 COM3 COM2 COM1 COM0
PC1
12 11 10 9 8 7
+5V
PC0
65
74LS06
43
2
1 4.7k2
PA5
PA4
PA3
X1
输入口,列线接单片机的输出口,X0405 16 2
7 3
则可在单片机的控制下,先使
Y0 Y1 Y2 Y3
44行列式未编码键盘结构图
列线Y0为低电平,其它列线为高电平,读行线状态, 如所有行线均为高电平,则表明Y0这一列没有键闭合;如读 出的行线状态不全为高电平,则为低电平的行线和Y0相交的 键闭合。依次类推可获得与其它列线相交的闭合键。
键按下 闭合稳定 键释放
释放稳定
前沿抖动
后沿抖动
图27 按键时的抖动
消除键抖动可用硬件和软
件两种方法
Vcc ( +5V )
A
输
出
B
Vcc(+5V) RS触发器消抖电路
一、独立式未编码键盘接口及处理程序
独立式键盘是各按 键相互独立地接通一条 输入数据线 。
MCS51 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 独立式未编码键盘
+5V
START: MOV MOV
K0: K1:
K7:
MOV JNB JNB JNB JNB JNB JNB JNB JNB JMP LJMP LJMP … LJMP
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;屏蔽高三位 ;保存键盘状态值 ;延时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所示。
2020/8/15
表10-1只列出了部分段码,可根据实际情况选用。 另外,段码是相对的,它由各字段在字节中所处的
位决定。例如表10-1中8段LED段码是按格式:
而形成的, “0”的段码为3FH(共阴)。反之,如 将格式改为下列格式:
则 “0”的段码为7EH(共阴)。 字型及段码由设计者自行设定,习惯上还是以“a”
基本思想:检测到有键按下,键对应的行线为低,软 件延时10ms后,行线如仍为低,则确认该行有键按下。
当键松开时,行线变高,软件延时10ms后,行线仍为 高,说明按键已松开。
采取以上措施,躲开了两个抖动期t1和t3的影响。
2020/8/15
10.2.2 键盘接口的工作原理
独立式按键接口和行列式键盘接口。 1.独立式键盘接口
输出相连。 显示字符一确定,相应锁存器的段码输出将维持
不变,直到送入另一个段码为止。显示的亮度高。 图10-3: 4位静态LED显示器电路。该电路各位
可独立显示。
2020/8/15
2. 动态显示方式
所有位的段码线相应段并在一起,由一个8位I/O 口控制,形成段码线的多路复用,各位的公共端分别由 相应的I/O线控制,形成各位的分时选通。
2020/8/15
图10-9用三态缓冲器扩展的I/O口的按键接口电
路。
2020/8/15
对图10-9独立式键盘编程,软件消抖,查询方式检
测键的状态。仅有一键按下时才有效才处理。
KEYIN:MOV DPTR,#0BFFFH;键盘端口地址BFFFH
MOVX A,@DPTR ;读键盘状态
ANL A,#1FH MOV R3,A LCALL DELAY10
各键相互独立,每个按键各接一根输入线,通过检 测输入线的电平状态可很容易判断那个键被按下。
此种接口适于键数较少或操作速度较高的场合。 图10-7(a)为中断方式的独立式键盘工作电路
图10-7(b)为查询方式的独立式键盘工作电路。
2020/8/15
2020/8/15
图10-8为8255A扩展I/O口的独立式按键接口电路。
a. 扫描法
图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的。
2020/8/15
识别键盘有无键被按下的方法,分两步进行:
第1步:识别键盘有无键按下; 第2步:如有键被按下,识别出具体的按键。
把所有列线置0,检查各行线电平是否有变化,如 有变化,说明有键按下,如无变化,则无键按下。
按键位于行、列的交叉点上。如图10-10所示。
按键数目较多的场合,行列式键盘与独立式键盘 相比,要节省很多的I/O口线。
2020/8/15
(1)行列式键盘工作原理
无键按下,该行线为高电平,当有键按下时, 行线电平由列线的电平来决定。
由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 (2)按键的识别方法
第10章 MCS-51与键盘、显示器、拨盘、打印机的接 口设计
输入外设:键盘、BCD码拨盘等; 输出外设:LED显示器、LCD显示器、打印机等。
10.1 LED显示器接口原理 LED(Light Emitting Diode):发光二极管的缩写。
显示器前面冠以“LED”。
10.1.1 LED显示器的结构
;是K1键按下,转K1键处理 ;子程序PKEY1
KEY2: CJNE A,#1DH,KEY3 ;S2键未按下,转KEY3
LJMP PKEY2
;S2键按下,转PKEY2处理
KEY3: CJNE A,#1BH,KEY4 ;S3未按下,转KEY4
LJMP PKEY3
;S3按下,转PKEY3处理
KEY4: CJNE A,#17H,KEY5 ;S4键未按下,转KEY5
同时显示的字符。
2020/8/15
10.2 键盘接口原理 1. 键盘输入的特点
键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。
2020/8/15
2. 按键的确认
检测行线电平 高电平:断开;低电平:闭合,
3.如何消除按键的抖动 常用软件来消除按键抖动。
常用的LED显示器为8段(或7段,8段比7段多了一 个小数点“dp”段)。
有共阳极和共阴极两种。如图10-1所示。
2020/8/15
2020/8/15
为使LED显示不同的符号或数字,要为LED提供段码 (或称字型码)。
提供给LED显示器的段码(字型码)正好是一个字 节(8段)。各段与字节中各位对应关系如下: