第10章 键盘显示器接口
合集下载
第10章行列式(矩阵式)键盘接口

AJMP
LKP
LTW0:JB MOV AJMP LTHR:JB MOV LKP: ADD PUSH LK3: ACALL
A.2,LTHR A,#10H LKP Acc.3,NEXT A,#18H A,R4 A DIR
;2行线为高,无键闭合,跳LTHR, ;转判3行 ;2行有键闭合,首键号10H→A ;跳LKP,计算键号 ;3行线为高,无键 ;闭合,跳NEXT,准备下一列扫描 ;3行有键闭合,首键号18H→A ;计算键号:首键号+列号=键号 ;键号进栈保护 ;调用显示子程序,延时6ms ;调用判有无键闭合子程序,延时 ;6ms ;判键释放否,未释放,则循环 ;键已释放,键号出栈→A
ACALL KS1 JNZ POP RET LK3 A
NEXT:INC
R4
;列计数器加1,为下一列扫描作准备
MOV JNB
RL MOV AJMP KND: AJMP KS1: MOV “0”→ MOV MOVX
A,R2 ;判是否已扫到最后一列(最右一列) Acc.7,KND ;键扫描已扫到最后一列,跳KND,
(2)按键的识别方法
a. 扫描法 图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的。
识别键盘有无键被按下的方法,分两步进行: 第1步:识别键盘有无键按下; 第2步:如有键被按下,识别出具体的按键。 把所有列线置0,检查各行线电平是否有变化,如 有变化,说明有键按下,如无变化,则无键按下。 上述方法称为扫描法,即先把某一列置低电平, 其余各列为高电平,检查各行线电平的变化,如果某 行线电平为低,可确定此行列交叉点处的按键被按 下。 b. 线反转法
原则:即要保证能及时响应按键操作,又不要过多占 用CPU的工作时间。 通常,键盘工作方式有3种,即编程扫描、定时扫 描和中断扫描。 1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序, 扫描键盘。 工作过程:
微机原理 第十章 基本人机交互设备接口

SEGPT C0H 0
DISMEM 01H
…
…
+1 F9H 1
+2 A4H 2 段 码 表
…
09H 09H 08H 10H
显 示 缓
01H 冲
+15 +16
8EH 7FH
F.
00H 区
10H
…
…
多位动态显示存储区数据安排
10.2.1 LED显示器及接口
◆ 程序流程图:
入口 指向显示缓冲区首址
取显示位指针
10.2.1 LED显示器及接口 10.2.2 CRT显示器及接口 10.2.3 LCD显示器及接口
10-19
10.2.1 LED显示器及接口
LED显示器及显示原理 一位LED显示器接口 多位LED显示器接口
10.2.1 LED显示器及接口
1. LED显示器与显示原理
+5V/地
R×8
10-20
OUT DX, AL
;输出段码至锁存器
INC DI
;指向下一个要显示字符的段码
CALL DELAY
;调显示延时子程序
LOOP DISP
;0~F未显示完,转DISP
HLT SEGTAB:DB 0C0H,0F9H,0A4H,0B0H, 99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
10-26
关显示
从缓冲区取显示字符 从段码表取段码
输出至段码寄存器 位指针送位寄存器
延时
修改缓冲区指针
修改显示位指针
N Y
到最右端位? 转出口
DISEN D
10.2.1 LED显示器及接口
◆ 显示驱动程序:
单片机第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章外扩设备

键盘的工作方式
1. 编程扫描方式 2. 定时扫描工作方式
利用单片机内的定时器,产生10ms的定时中断,对
键盘进行扫描。 3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如 无键按下,单片机将不理睬键盘。
键盘所做的工作分为三个层次 第1层:单片机如何来监视键盘的输入。三种工作方式:①编
a. 扫描法 (1)把所有列线置0,检查各行线电平是否有变化,如有变化, 说明有键按下,如无变化,则无键按下。
(2)确定有按键按下后,先把某一列置低电平,其余各列为
高电平,检查各行线电平的变化,如果某行线电平为低,可确
定此行列交叉点处的按键被按下。 b. 线反转法 (1)列线输出为全低电平,则行线中电平由高变低的所 在行为按键所在行。 (2)行线输出为全低电平,则列线中电平由高变低所在 列为按键所在列。
MOVX A,@DPTR
AJMP LKP ;跳LKP,计算键号 LONE:JB Acc.1,LTW0 ;1行线为高,无键闭合,跳LTW0, ;转判2行 MOV A,#08H AJMP LKP ;1行有键闭合,首键号8→A
LTW0:JB A.2,LTHR MOV A,#10H AJMP LKP LTHR:JB Acc.3, NEXT MOV A,#18H LKP: ADD A,R4 PUSH A LK3: ACALL DIR ACALL KS1 JNZ POP RET LK3 A
程扫描②定时扫描③中断扫描。
第2层:确定具体按键的键号。体现在按键的识别方法上就 是:①扫描法;②线反转法。
第3层:执行键处理程序。
10.3 键盘/显示器接口设计实例
89C51外扩一片8155H
RAM地址: 7E00H~7EFFH I/O口地址:7F00H~7F05H PA口为输出口,控制键盘列线的扫描,同时又是6位共阴 极显示器的位扫描口。 PB口作为显示器段码输出口,PC口作为键盘的行线状态的 输入口。 75452:反相驱动器,7407:同相驱动器。
《键盘显示器接口》课件

更新显示
将显示缓冲区中的内容传 输到显示器上,更新显示 内容。
数据传输协议
数据传输方式
确定键盘和显示器之间的数据传输方式,如并行或串 行传输。
数据格式
定义传输数据的格式,包括起始码、数据码、校验码 和结束码等。
数据传输控制
实现数据的发送和接收控制,确保数据正确无误地传 输。
04
键盘显示器接口的应用场景
05
键盘显示器接口的未来发展
技术创新与改进
新型显示技术
随着科技的发展,新型显示技术 如有机发光显示、柔性显示等将 逐渐应用于键盘显示器接口,提 供更丰富、更真实的视觉体验。
智能化交互
借助人工智能和机器学习技术, 键盘显示器接口将实现更智能的 交互方式,如语音识别、手势控 制等,提升用户的使用体验。
无线连接与云技术
无线连接和云技术的应用将使键 盘显示器接口实现远程控制和数 据同步,方便用户在不同设备间 无缝切换。
应用领域拓展
虚拟现实与增强现实
随着虚拟现实和增强现实技术的发展,键盘显示器接口将应用于 更多场景,如游戏、教育、医疗等,满足不同领域的需求。
智能家居与物联网
智能家居和物联网的普及将推动键盘显示器接口在家庭和办公环境 中的应用,实现设备间的互联互通和智能化管理。
办公自动化
01
文字处理
键盘是输入文字的主要工具,显示器则用于显示 文字和图像,实现文档编辑、排版等功能。
02
数据录入
在各种办公软件中,键盘用于输入数据,显示器 则实时显示数据录入结果,便于核对和修改。
游戏控制
键盘操作
游戏玩家通过键盘实现对角色的移动、攻击、技 能释放等操作,显示器则实时显示游戏画面。
移动设备与可穿戴设备
键盘显示器接口PPT课件

;调用延时子程序,软件去键抖动
MOV A,P1
;再一次读入8个按键的状态
CJNE A,R3,RETURN;两次键值比较,不同, ;是抖动引起,转RETURN
25
KEY0: MOV C,P1.0;有键按下,读P1.0的按键状态 JC KEY1 ;P1.0为高,该键未按下,跳KEY1, ;判下一个键 LJMP PKEY0 ;P1.0的键按下,跳PKEY0处理
① 扫描法。第1步,识别键盘有无键按下;第2步,如 有键被按下,识别出具体的键位。
下面以图10-9所示的键3被按下为例,说明识别过程。
30
第1步,识别键盘有无键按下。先把所有列线均置为高,说明有 键按下,否则无键被按下。
例如,当键3按下时,第1行线为低,还不能确定是键3 被按下,因为如果同一行的键2、1或0之一被按下,行线 也为低电平。只能得出第1行有键被按下的结论。
24
识别某一键是否按下的子程序:
KEYIN: MOV P1,0FFH;P1口写入1,设置P1口为输入状态
MOV A,P1
;读入8个按键的状态
CJNE A,#0FFH,QUDOU;有键按下,跳去抖动
LJMP RETURN
;无键按下,返回
QUDOU:MOV R3,A
;8个按键的状态送R3保存
LCALL DELAY10
第10章 AT89S51单片机与输入/输 出
外设的接口
1
第10章 目录 10.1 LED数码管的显示原理
10.1.1 LED数码管的结构 10.1.2 LED数码管工作原理 10.2 键盘接口原理 10.2.1 键盘输入应解决的问题 10.2.2 键盘的工作原理 10.2.3 键盘的工作方式 10.3 键盘/显示器接口设计实例 10.3.1 利用AT89S51单片机串行口实现的键盘/显示器接口
8. MCS51与键盘、显示器的接口设计详解

MOV A,P1
;再一次读入8个按键的状态
CJNE A,R3,RETURN;两次键值比较,不同,
;是抖动引起,转RETURN
16
KEY0: MOV C,P1.0;有键按下,读P1.0的按键状态 JC KEY1 ;P1.0为高,该键未按下,跳KEY1, ;判下一个键 LJMP PKEY0;P1.0的键按下,跳PKEY0处理
亮或暗。
N个LED显示块有N位位选线和8×N根段码线。
9
单片机原理与应用@by keane
❖ 静态显示和动态显示两种显示方式。
▪ 静态显示方式:各位的公共端连接在一起(接地或+5V )。每位的段码线(a~dp)分别与一个8位的锁存器 输出相连。显示字符一确定,相应锁存器的段码输出 将维持不变,直到送入另一个段码为止。显示的亮度 高。
18
❖ 行列式(矩阵式)键盘接口
▪ 用于按键数目较多的场合,由行线和列线组成,按键 位于行、列的交叉点上
按键数目较多的场合,行列式键盘与独立式键盘相比,
要节省很多的I/O口线。
19
单片机原理与应用@by keane
❖ 行列式键盘工作原理
▪ 无键按下,该行线为高电平,当有键按下时,行线电 平由列线的电平来决定。
子程序返回行列式矩阵式键盘接口用于按键数目较多的场合由行线和列线组成按键位于行列的交叉点上单片机原理与应用bykeane19按键数目较多的场合行列式键盘与独立式键盘相比要节省很多的io口线
第10章 MCS-51与键盘、显示器接口设计
Company
LOGO
❖ 输入外设:键盘、BCD码拨盘等; ❖ 输出外设:LED显示器、LCD显示器、打印机等。
29
6.专用键盘/显示器芯片CH451
LJY第10章 MCS-51与键盘、显示器76318 (2)

当键松开时, ①行线变高,软件延时10ms后, ②行 线仍为高,说明按键已松开。
采取以上措施,躲开了两个抖动期t1和t3的影响1。2
10.2.2 键盘接口的工作原理
独立式按键接口和行列式键盘接口。
1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检
测输入线的电平状态可很容易判断那个键被按下。
行线电平由列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发
生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 (2)按键的识别方法
a. 扫描法
b. 线反转法
20
(2)按键的识别方法
a. 扫描法
图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的。 第1步:识别键盘有无键按下;
成各位的分时选通。
8
图10-4:4位8段LED动态显示电路。其中段码线占用一 个8位I/O口,而位选线占用一个4位I/O口。
9
图10-5为8位LED动态显示2003.10.10的过程。 图(a)是显示过程,某一时刻,只有一位LED被选通 显示,其余位则是熄灭的; 图(b)是实际显示结果,人眼看到的是8位稳定的同 时显示的字符。
测键的状态。仅有一键按下时才有效才处理。
KEYIN:MOV DPTR,#0BFFFH;键盘端口地址 MOVX A,@DPTR ;读键盘状态 ANL A,#1FH ;屏蔽高三位
MOV R3,A
;保存键盘状态值
LCALL DELAY10 ;延时10ms去键盘抖动
MOVX A,@DPTR ;再读键盘状态
ANL A,#1FH ;屏蔽高三位 CJNE A,R3,RETURN ;两次不同,抖动
RETURN
采取以上措施,躲开了两个抖动期t1和t3的影响1。2
10.2.2 键盘接口的工作原理
独立式按键接口和行列式键盘接口。
1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检
测输入线的电平状态可很容易判断那个键被按下。
行线电平由列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发
生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 (2)按键的识别方法
a. 扫描法
b. 线反转法
20
(2)按键的识别方法
a. 扫描法
图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的。 第1步:识别键盘有无键按下;
成各位的分时选通。
8
图10-4:4位8段LED动态显示电路。其中段码线占用一 个8位I/O口,而位选线占用一个4位I/O口。
9
图10-5为8位LED动态显示2003.10.10的过程。 图(a)是显示过程,某一时刻,只有一位LED被选通 显示,其余位则是熄灭的; 图(b)是实际显示结果,人眼看到的是8位稳定的同 时显示的字符。
测键的状态。仅有一键按下时才有效才处理。
KEYIN:MOV DPTR,#0BFFFH;键盘端口地址 MOVX A,@DPTR ;读键盘状态 ANL A,#1FH ;屏蔽高三位
MOV R3,A
;保存键盘状态值
LCALL DELAY10 ;延时10ms去键盘抖动
MOVX A,@DPTR ;再读键盘状态
ANL A,#1FH ;屏蔽高三位 CJNE A,R3,RETURN ;两次不同,抖动
RETURN
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图10-1 8段LED数码管结构及外形
4
按照上述格式,显示各种字符的8段LED数码管的段码如表
10-2所示。
5
表10-1只列出了部分段码,读者也可对某些显示的字符重
新定义,也可选择其他字型的LED数码管。 除了“8”字型的LED数码管外,市面上还有“±1”型、“ 米”字型和“点阵”型LED显示器,如图10-2所示。厂家也 可根据用户的需要定做特殊字型的数码管。
void main(void)
{ uchar key; while(1)
{key= keyscan( ); /*调用键盘扫描函数,返回的键值送变量key*/
delay( ); /*延时*/ /*延时函数*/
}
void delay(void); { } uchar i; for(i=0;i<200;i++){ }
reread_key=P1&0x07; if(key_value==reread_key)
/*延时10ms*/
/*再次读取P1口的状态*/
{
}
key_flag=1;
/*设置中断标志为1*/
/*中断允许*/
IE=0x81; }
32
2. 矩阵式键盘(自学)
矩阵式(也称行列式)键盘用于按键数目较多场合,由行线 和列线组成,一组为行线,另一组为列线,按键位于行、列的 交叉点上。如图10-10所示,一个44的行、列结构可以构成一 个16个按键的键盘。在按键数目较多的场合,与独立式键盘相
2014-10-16 第8章 接口技术基础 11
例2:在4个数码管上显示字符"1"、"2"、"3"、"4"
见文档
例3:设计一个2位10进制计数器,每秒加1,在 LED上显示
见文档
2014-10-16
第8章 接口技术基础
12
10.2 键盘的接口设计
键盘功能:向单片机输入数据、命令等,是人与单片机对 话的主要手段。下面介绍键盘工作原理和工作方式。 10.2.1 键盘接口应解决的问题 1.键盘的任务 任务有3项: (1)首先判别是否有键按下?若有,进入下一步。
2014-10-16
第8章 接口技术基础
18
2014-10-16
第8章 接口技术基础
19
10.2.2
键盘接口设计举例
键盘两类:非编码键盘和编码键盘。 非编码键盘按键直接与单片机相连,通常使用在按键数量 较少的场合。用这种键盘,系统功能通常比较简单,需处理 的任务较少,但可降低成本、简化电路设计。按下按键的键
图10-7(b)所示的t1和t3分别为键的闭合和断开过程中的 抖动期(呈现一串负脉冲),抖动时间长短与开关的机械特性 有关,一般为5~10ms,t2为稳定的闭合期,其时间由按键动 作确定,一般为十分之几秒到几秒,t0、t4为断开期。
14
8031
+5V
P1.0
键按下 键释放 释放稳定
闭合稳定
前沿抖动
}
31
void int0( ) { IE=ox80;
interrupt 0 /*屏蔽中断*/
uchar reread_key;
key_flag=0;
P1=0xff; key_value=P1;
/*设置中断标志*/
/* P1口锁存器置1*/ /*读入P1口的状态*/
delay_10ms(void);
(2)识别哪一个键被按下,并求出相应的键值。
(3)根据键值,找到相应键值的处理程序入口。
13
2. 键盘输入的特点
常见键盘:触摸式键盘、薄膜键盘和按键式键盘,最常用的 是按键式键盘。 键盘按键实质上是一个开关。如图10-7(a)所示,按键开 关的两端分别连接在行线和列线上,通过键盘开关机械触点的
断开、闭合,其行线电压输出波形如图10-7(b)所示。
比,要节省较多的I/O口线。
(1)查询式键盘,编写查询式的键 盘处理程序。
33
图10-10 矩阵式键盘接口
首先判键盘有无键按下,即把所有行线P1.0~P1.3均置为
低电平,然后检查各列线的状态,若列线不全为高电平,则 表示键盘中有键被按下;若所有列线列均为高电平,说明键 盘中无键按下。 在确认有键按下后,即可进入确定具体闭合键的过程。判
21
图10-8 独立式键盘的接口电路
按键检测程序入口 键闭合? Y 延时消抖 键闭合? Y S1按下否? „ N „
N
键码值置0
N Y
键码值置0
键码值置1 „
S4按下否?
N 返回键码
Y
键码值置4
23
【例10-3】键盘为图10-8所示的独立式键盘,采用查询方
式对键盘的键值读取。参考程序如下:
#include<reg51.h> void main(void) { unsigned char keyvalue; do { P1=0xff; keyvalue=P1; keyvalue=~keyvalue;
case 64: „„;
break; case 128: „„; default: break; } } while(1) }
/*处理6号键*/
/*处理7号键*/ /*无按下键处理*/
26
(2)中断扫描方式的独立式键盘程序
为进一步提高扫描键盘工作效率,可采用中断扫描方式, 如图10-9。键盘只有在键盘有按键按下时,才进行处理,所 以实时性强,效率高。 当键盘中有按键按下时,74LS30的输出经过74LS04反相
后向单片机的中断请求输入引脚INT0*发出中断请求信号,
单片机响应中断,执行键盘扫描程序中断服务子程序,识别 出按下按键的键号,并跳向该按键的处理程序。
27
图10-9 独立式键盘的接口电路
28
【例10-4】键盘接口见图10-9,编写中断方式的独立式键
盘处理程序。程序如下。
#include<reg51.h>
24
switch(keyvalue)
{ case 1: „„; break; /*处理0号键*/
case 2: „„;
break; case 4: „„;
/*处理1号键*/
/*处理2号键*/
break;
case 8: „„; break; case 16: „„; break; case 32: „„; break; /*处理5号键*/ /*处理4号键*/ /*处理3号键*/
30
case 16: „„;
break; case 32: „„; break; case 64: „„; break; case 128: „„; default: break; } key_flag=0; } while(TRUE); }
/*处理4号键*/
/*处理5号键*/ /*处理6号键*/ /*处理7号键*/ /*无效按键,如多个键同时按下*/
36
uchar keyscan(void)
{ uchar code_h; uchar code_l;
/*键盘扫描函数*/
/*行扫描值*/ /*列扫描值*/
P1=0xf0;
if((P1&f0)!=0xf0) { delay( );
/*P1.0~P1.3输出都为0,准备读列状态*/
/*如果P1.4~P1.7不全为1,可能有键按下*/ /*延时去抖动*/ /* P1.0置为0,开始行扫描*/
初始:S接A,A=0,所以Q=1,/Q=0 A—B:A不稳定, /Q=0, Q=1,维持 接B点:由于B=0, Q=1, 所以/Q=1, Q=0,翻转
(B--A):由于 /Q=1, A=1所以Q=0,维持 接A点:A=0, Q=1,翻转
17
2014-10-16
第8章 接口技术基础
2) 软件消抖(重点) 软件消抖不需要增加硬件电路,而是在第一次 检测到按键按下后,执行一段延时程序(如 10~20ms),然后再次检测,确认该按键是否仍保持 闭合状态,如果是则认为是真正有按键按下,否则 认为是干扰,不预理会。这样就可以避开抖动,以 免发生误操作。
8
段码线占用一个8位I/O口,而位选控制使用一个I/O口的4位口
线。动态显示就是通过段码线向显示器(所有的)输出所要显 示字符的段码。每一时刻,只有一位位选线有效,其他各位都 无效。 与静态显示比,动态显示优点节省I/O口,显示器越多,优
势越明显。
缺点显示亮度不如静态显示的高,要调整好“扫描”速率 ,如果“扫描”速率较低,会出现闪烁现象。
if((P1&f0)!=0xf0) /*重读P1.4~P1.7,若还是不全为1,定有键按下*/
code_h=0xfe; while((code_h&0x10)!=0xf0); /*判断是否为最后一行,若不是,继续扫 描*/ { P1= code_h; if((P1&f0)!=0xf0); /*P1口输出行扫描值*/ /*如果P1.4~P1.7不全为1,该行有键按下*/
#include<absacc.h>
#define uchar unsigned char #define TRUE 1
#define FALSE 0
bit key_flage; uchar key_value;
void delay_10ms(void);
/*延时10ms函数*/
29
void main(void) { IE=0x81; IP=0x01; key_flag=0; /*设置中断标志为0*/ do{ if(key_flag) /*如果按键有效*/ { switch(key_value) /*根据按键分支*/ { case 1: „„; /*处理.0号键*/ break; case 2: „„; /*处理1号键*/ break; case 4: „„; /*处理2号键*/ break; case 8: „„; /*处理3号键*/ break;