第九章输入输出设备接口要点
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键开关在闭合时不会马上稳定的接通,断开时也不会马上的断开,一般 稳定抖动时间在10ms左右。
正因为抖动,我们可能会认为在一次按键过程中,从接 收端来看,电平的跳变有很多次。
怎么办?
2、消除按键抖动的措施 1.硬件消抖
图9-2双稳态消抖电路
2.软件消抖
节省成本
原理:在第一次检测到有键按下时,执行一段l0ms左右的延时子程 序,再确认该键电平是否仍保持闭合状态电平,如果保持闭合状态电 平则确认为真正有键按下,从而消除了抖动的影响。同样,在必要时, 还需对键的释放过程进行延时消除抖动的处理。
五、 键盘的工作方式
通常,键盘工作方式有三种,即:程序查询、定时扫描和中断扫描。
1、程序查询方式
单片机的主程序就是一个等待键输入的程序。
键盘扫描子程序完成如下几个功能:
(1)判断键盘有无键按下。一般是通过读键盘输入口的电平状态,若 为全1,则说明没有键按下;若不全为1,则说明有键按下。 (2)消除按键抖动的影响。其方法为,在判断有键按下后,用软件延 时的方法延时10ms左右,再判断键盘状态,如果仍为有键按下状态,则 认为有一个确定的键按下,否则当作按键抖动处理。 (3)求按键位置。根据前面介绍的行扫描法或线反向法,获得按键位 置,得出键值编码。
第九章 输入输出设备接口
计量测试工程学院 陆艺
9.1 键盘及其接口技术
编码键盘:通过硬件电路产生一个唯一的键码,需要专门 键盘分类 的编码电路
非编码键盘:常采用行列矩阵,按键只提供闭合还是不闭合的信
息,解码需要软件来完成
一、按键的抖动及消除
1、键盘输入的特点 当按下某键的时候,按键的机械簧片总会有轻微的抖动,所以一个按
SJMP KEYIN
KEYP: MOV R7,A
;保存键盘状态值
LCALL DL10ms ;延时10ms消抖
MOV A ,P1
;再读键盘状态
CJNE A,R7,KEYIN ;两次结果不一样,说明是抖动, 重新查询
JNB ACC.0,KEY0 ;K0键按下,转键K0处理子程序
JNB ACC.1,KEY1 ;K1键按下,转键K1处理子程序
R
R
R
R
0
1
2
3
第 0行
4
5
6
7
第 1行
8
9
10 11
第 2行 12 13 14 15
第 3行
第 0列 第 1列 第 2列 第 3列
假如0键被按下,第0列为低电平, 但是还有4、8、12键,所以我们 要具体检查出哪一行,因此依次 对每一行设为低电平,其他行设 为高电平,假如这一行设为低电 平时,检查出来的列为低电平, 就是这个键了。
ቤተ መጻሕፍቲ ባይዱ
需要控制线,4行、4列 =8根控制线。
按键设在行列交点处,列线通过上拉电阻接+5V,无 按键消息时,列线处于高电平。
二、行扫描法
假如一开始我们给所有的I/O口行线设置成低电平, 然后把列线电平电平状态读入累加器A中,如果有键按 下,该列肯定被拉至低电平,从而使列输入不全为1.
但究竟是哪一行呢?
+5V
JNB ACC.7,KEY7 ;K7键按下,转键K7处理子程序
LJMP KEYIN
……
三、矩阵式键盘接口设计
按键数量较多的场合
1、原理:
+5V
关键:如何 判断键号?
R
R
R
R
0
1
2
3
第 0行
4
5
6
7
第 1行
8
9
10 11
第 2行 12 13 14 15
第 3行
第 0列 第 1列 第 2列 第 3列
4×4 =16个键
三、线反向法 速度快
步骤为:
1.将列线编程为输入线,行线编程为输出线,并使输出 线输出为全零电平,则列线中电平变为低所在列就是被 按下的键所在的列,即获得了列号。 2.同第一步相反,将列线编程为输出线,行线编程为输 入线,并使输出线输出为全零电平,则行线中电平变为 低所在行就是被按下的键所在行,即获得了行号。
❖ ○液晶显示器,简称LCD(Liquid Crystal Display);
❖ ○荧光管显示器,简称CRT。近年来也开始使用简易的CRT接口,
显示一些汉字及图形。
一、 LED显示器接口
7段或8段LED 共阳极:公共端接地,当某个发光二极管的阴极为高电平时, 相应的段被点亮。 共阴极:公共端接+5V,当某个发光二极管的阳极为低电平时, 相应的段被点亮。
四、键盘的编码
行号和列号唯一确定,所以分别对行号和列号进行二 进制编码,然后将两值合成一个代码。例如用一个字节 的高4位表示行号,低4位表示列号是非常直观的方法, 如23H表示第2行第3列的按键,而8AH则表示第8行第10 列的按键等。这种编码对于不同行数和列数的键,离散 性大。例如一个4×4的键盘,13H键与20H键之间间隔13, 因此不利于散转指令。所以常常采用依次排列键号的方 式对按键进行编码。以4×4键盘为例,可将键号编码为: 00H、01H、02H、……、0EH、0FH,共16个。
二、独立式按键接口设计
每个按键各接一根输入线,一根输入线上的按键工作状态不会影响 其它输入线上的工作状态。因此,只要读相应端口的电平就行了。
浪费输入口比较严重
各按键开关均采用了上拉电阻,开关断 开时,P1口上读到的高电平,闭合的时 候为低电平。
KEYIN: MOV A,P1
;读键盘状态
CJNE A,#0FFH,KEYP ;判是否有键按下
(4)完成按键功能。 (5)键闭合一次仅进行一次按键的处理。方法是等待按键释放之后再 进行按键功能的处理操作;或者先进行按键功能的处理操作,然后等待 按键释放,之后才退出当前键处理程序。
2、定时扫描工作方式 在定时中断里面,进行键扫描。(10ms) 减轻CPU的负担。 3、键盘中断工作方式
在外中断里面进行键盘扫描
综上所述,键盘的主要工作可分为三个基本步骤:
1.监视键盘的输入,即判断是否有键按下,并作消除 抖动处理。
2.确定具体按键,即判断哪个键按下。
3.键功能程序执行,即完成按键功能处理。
§9.2 显示器接口
❖
在单片机系统中,常用的显示器有:
❖ ○发光二极管显示器,简称LED(Light Emitting Diode);
JNB ACC.2,KEY2 ;K2键按下,转键K2处理子程序
JNB ACC.3,KEY3 ;K3键按下,转键K3处理子程序
JNB ACC.4,KEY4 ;K4键按下,转键K4处理子程序
JNB ACC.5,KEY5 ;K5键按下,转键K5处理子程序
JNB ACC.6,KEY6 ;K6键按下,转键K6处理子程序
正因为抖动,我们可能会认为在一次按键过程中,从接 收端来看,电平的跳变有很多次。
怎么办?
2、消除按键抖动的措施 1.硬件消抖
图9-2双稳态消抖电路
2.软件消抖
节省成本
原理:在第一次检测到有键按下时,执行一段l0ms左右的延时子程 序,再确认该键电平是否仍保持闭合状态电平,如果保持闭合状态电 平则确认为真正有键按下,从而消除了抖动的影响。同样,在必要时, 还需对键的释放过程进行延时消除抖动的处理。
五、 键盘的工作方式
通常,键盘工作方式有三种,即:程序查询、定时扫描和中断扫描。
1、程序查询方式
单片机的主程序就是一个等待键输入的程序。
键盘扫描子程序完成如下几个功能:
(1)判断键盘有无键按下。一般是通过读键盘输入口的电平状态,若 为全1,则说明没有键按下;若不全为1,则说明有键按下。 (2)消除按键抖动的影响。其方法为,在判断有键按下后,用软件延 时的方法延时10ms左右,再判断键盘状态,如果仍为有键按下状态,则 认为有一个确定的键按下,否则当作按键抖动处理。 (3)求按键位置。根据前面介绍的行扫描法或线反向法,获得按键位 置,得出键值编码。
第九章 输入输出设备接口
计量测试工程学院 陆艺
9.1 键盘及其接口技术
编码键盘:通过硬件电路产生一个唯一的键码,需要专门 键盘分类 的编码电路
非编码键盘:常采用行列矩阵,按键只提供闭合还是不闭合的信
息,解码需要软件来完成
一、按键的抖动及消除
1、键盘输入的特点 当按下某键的时候,按键的机械簧片总会有轻微的抖动,所以一个按
SJMP KEYIN
KEYP: MOV R7,A
;保存键盘状态值
LCALL DL10ms ;延时10ms消抖
MOV A ,P1
;再读键盘状态
CJNE A,R7,KEYIN ;两次结果不一样,说明是抖动, 重新查询
JNB ACC.0,KEY0 ;K0键按下,转键K0处理子程序
JNB ACC.1,KEY1 ;K1键按下,转键K1处理子程序
R
R
R
R
0
1
2
3
第 0行
4
5
6
7
第 1行
8
9
10 11
第 2行 12 13 14 15
第 3行
第 0列 第 1列 第 2列 第 3列
假如0键被按下,第0列为低电平, 但是还有4、8、12键,所以我们 要具体检查出哪一行,因此依次 对每一行设为低电平,其他行设 为高电平,假如这一行设为低电 平时,检查出来的列为低电平, 就是这个键了。
ቤተ መጻሕፍቲ ባይዱ
需要控制线,4行、4列 =8根控制线。
按键设在行列交点处,列线通过上拉电阻接+5V,无 按键消息时,列线处于高电平。
二、行扫描法
假如一开始我们给所有的I/O口行线设置成低电平, 然后把列线电平电平状态读入累加器A中,如果有键按 下,该列肯定被拉至低电平,从而使列输入不全为1.
但究竟是哪一行呢?
+5V
JNB ACC.7,KEY7 ;K7键按下,转键K7处理子程序
LJMP KEYIN
……
三、矩阵式键盘接口设计
按键数量较多的场合
1、原理:
+5V
关键:如何 判断键号?
R
R
R
R
0
1
2
3
第 0行
4
5
6
7
第 1行
8
9
10 11
第 2行 12 13 14 15
第 3行
第 0列 第 1列 第 2列 第 3列
4×4 =16个键
三、线反向法 速度快
步骤为:
1.将列线编程为输入线,行线编程为输出线,并使输出 线输出为全零电平,则列线中电平变为低所在列就是被 按下的键所在的列,即获得了列号。 2.同第一步相反,将列线编程为输出线,行线编程为输 入线,并使输出线输出为全零电平,则行线中电平变为 低所在行就是被按下的键所在行,即获得了行号。
❖ ○液晶显示器,简称LCD(Liquid Crystal Display);
❖ ○荧光管显示器,简称CRT。近年来也开始使用简易的CRT接口,
显示一些汉字及图形。
一、 LED显示器接口
7段或8段LED 共阳极:公共端接地,当某个发光二极管的阴极为高电平时, 相应的段被点亮。 共阴极:公共端接+5V,当某个发光二极管的阳极为低电平时, 相应的段被点亮。
四、键盘的编码
行号和列号唯一确定,所以分别对行号和列号进行二 进制编码,然后将两值合成一个代码。例如用一个字节 的高4位表示行号,低4位表示列号是非常直观的方法, 如23H表示第2行第3列的按键,而8AH则表示第8行第10 列的按键等。这种编码对于不同行数和列数的键,离散 性大。例如一个4×4的键盘,13H键与20H键之间间隔13, 因此不利于散转指令。所以常常采用依次排列键号的方 式对按键进行编码。以4×4键盘为例,可将键号编码为: 00H、01H、02H、……、0EH、0FH,共16个。
二、独立式按键接口设计
每个按键各接一根输入线,一根输入线上的按键工作状态不会影响 其它输入线上的工作状态。因此,只要读相应端口的电平就行了。
浪费输入口比较严重
各按键开关均采用了上拉电阻,开关断 开时,P1口上读到的高电平,闭合的时 候为低电平。
KEYIN: MOV A,P1
;读键盘状态
CJNE A,#0FFH,KEYP ;判是否有键按下
(4)完成按键功能。 (5)键闭合一次仅进行一次按键的处理。方法是等待按键释放之后再 进行按键功能的处理操作;或者先进行按键功能的处理操作,然后等待 按键释放,之后才退出当前键处理程序。
2、定时扫描工作方式 在定时中断里面,进行键扫描。(10ms) 减轻CPU的负担。 3、键盘中断工作方式
在外中断里面进行键盘扫描
综上所述,键盘的主要工作可分为三个基本步骤:
1.监视键盘的输入,即判断是否有键按下,并作消除 抖动处理。
2.确定具体按键,即判断哪个键按下。
3.键功能程序执行,即完成按键功能处理。
§9.2 显示器接口
❖
在单片机系统中,常用的显示器有:
❖ ○发光二极管显示器,简称LED(Light Emitting Diode);
JNB ACC.2,KEY2 ;K2键按下,转键K2处理子程序
JNB ACC.3,KEY3 ;K3键按下,转键K3处理子程序
JNB ACC.4,KEY4 ;K4键按下,转键K4处理子程序
JNB ACC.5,KEY5 ;K5键按下,转键K5处理子程序
JNB ACC.6,KEY6 ;K6键按下,转键K6处理子程序