当前位置:文档之家› 第8章键盘与数码管显示器接口电路

第8章键盘与数码管显示器接口电路


1. 独立式按键
结构如下图所示,其特点是每个按键单独占用 一根I/O口线,每个按键工作不会影响其他I/O口 线的状态。多用于所需按键不多的场合。可采用 JNB(或JB)来查询哪一个按键按下,并转向相应的 功能处理程序。
JNB P1.0, JNB P1.1, JNB P1.2, JNB P1.3, JNB P1.4, JNB P1.5, JNB P1.6, JNB P1.7, A0 ;如P1.0键按下,就跳到A0 A1 ;如P1.1键按下,就跳到A1 A2 ;如P1.2键按下,就跳到A2 A3 ;如P1.3键按下,就跳到A3 A4 ;如P1.4键按下,就跳到A4 A5 ;如P1.5键按下,就跳到A5 A6 ;如P1.6键按下,就跳到A6 A7 ;如P1.7键按下,就跳到A7
; ; ; ;
左移 右移 闪烁 流水追逐
说明:本例中,根据所按下的键输入不同的常数表地址到DPTR,然后再调用 显示子程序(DPTR为DISP程序的入口条件),从而根据不同的参数控制发光二 极管的变化规律。显然通过改变常数表可任意设定发光规律,可以试一下。通 过以上两个实例可以看出独立式键盘应用的特点:识别键盘比较容易,编程也 比较简单,很适合于功能键较少的单片机应用系统。但每一个按键上用一根口 线,当按键较多时(超过8个)应采用矩阵式键盘。
开始 有键按下否? 否 调用6ms延时子程序 是
调用12ms延时子程序 否 有键按下否? 是 判闭合键,编码入栈保护 闭合键释放否? 是 编码A 返回
Байду номын сангаас

键盘扫描子程序如下:(8155的A口、B口、C口和控制口地址分 别为7F00H、7F01H、7F02H、7F03H,设8155已在主程序中 初始化。)
ORG
0000H MOV SP, #60H MOV P2, #00H MOV P1, #0FH START: JNB P1.0, A0 ; 如P1.0键按下,就跳至A0 JNB P1.1, A1 ; 如P1.1键按下,就跳至A1 JNB P1.2, A2 ; 如P1.2键按下,就跳至A2 JNB P1.3, A3 ; 如P1.3键按下,就跳至A3 SJMP START ********** 左移 ******************************* A0: MOV DPTR, #TAB ; 左移常数表首地址送DPTR ACALL DISP SJMP START ********* 右移 ******************************** A1: MOV DPTR, #TAB1 ; 右移常数表首地址送DPTR ACALL DISP SJMP START ********* 闪烁 ******************************** A2: MOV DPTR, #TAB2 ; 闪烁常数表首地址送DPTR ACALL DISP SJMP START


3. 键盘设计应注意的问题

机械式按键在按下或释 放时,由于机械弹性作 用的影响,通常伴随有 一定时间的触点机械抖 动,然后其触点才稳定 下来。其抖动过程如右 图所示,抖动时间的长 短与开关的机械特性有 关,一般为510ms。
键按下
前沿抖动
后沿抖动
闭合 稳定


在触点抖动期间检测按键的通与断状态,可能 导致判断出错,即按键一次按下或释放被错误 地认为是多次操作。系统设计中如果开关脉冲 是作为外部中断触发信号或要对开关脉冲进行 计数时,这种情况是不允许出现的。 为了克服按键触点机械抖动所致的检测误判, 必须采取去抖动措施,可从硬件、软件两方面 予以考虑。在键数较少时,可采用硬件去抖; 而当键数较多时,采用软件去抖。

软件上采取的措施是在检测到有按键按 下时,执行一个10ms左右(具体时间应视 所使用的按键进行调整)的延时程序,再 确认该键电平是否仍保持闭合状态电平, 若仍保持闭合状态电平,则确认该键处 于闭合状态;同理,在检测到该键释放 后,也应采用相同的步骤进行确认,从 而消除抖动的影响。
独立式键盘应用实例
【例2】 信号灯控制电路如下图所示,其 功能是当按下不同的键时发光二极管有 不同的亮灭规律。按1号键LED从左到右 依次亮,按2号键从右到左依次亮,按3 号键闪烁,按4号键呈流水追逐效果。
解:电路图中P1口分别接了4个开关,每个开关 都有相对应的功能,当某一开关闭合时,相应 的口线变为低电平,而其他口线依然为高电平, 因此,可以用4条JNB指令对开关状态进行检测。 如果某一按键按下,则跳转执行其所对应的控 制功能。八个发光二极管经74LS04接P2口,主 要因单片机的驱动能力较差,故用74LS04来加 大驱动能力。P2口输出控制信号控制发光规律。 程序设计流程图如下图所示。

在硬件上可采用在键输出端加R-S触发器(双稳态触发 器)或单稳态触发器构成去抖动电路,如下图所示是 一种由R-S触发器构成的去抖动电路,当触发器翻转 时,触点抖动不会对其产生任何影响。键盘输出经双 稳态电路之后变为规范的矩形方波。
1k
+5V a S GN D 1k b
1 2 UA 3
Q
4 5 UB 6
2. 矩阵式键盘
单片机系统中,若使用按键较多时,通常采用矩阵 式键盘,其结构如下图所示。由图可知,一个4×4的行、 列结构,可以构成一个含有16个按键的键盘,节省了很 多I/O口。 控制方式:先判断是否有键按下。 如有,再判断哪一键按下,并得到 键码值,然后根据键码值转向不同 的功能程序。 矩阵式结构键盘比独立式按键要复 杂,识别也要复杂一些。最常用的 识别方法是键盘扫描法。
矩阵式键盘应用实例 1、程序扫描方式
键盘处理程序的功能: 1判断有无键按下。由PA口输出00H,再将 PC口的状态读入,若PC0-PC3全为1, 说明无按键按下; 2消除抖动; 3求键号; 4等待闭合键的释放。
这种方式是直接在主程序中插入键盘检测子程序,主程序每执行 一次则键盘检测子程序被执行一次,对键盘进行检测一次,如果没有 键按下,则跳过键识别,直接执行主程序;如果有键按下,则通过键 盘扫描子程序识别按键,得到按键的编码值,然后根据编码值进行相 应的处理,处理完后再回到主程序执行。键盘扫描子程序流程如图 。
KEY1:ACALL KS1 JNZ LK1 KEY2:ACALL TM6ms AJMP KEY1 LK1: ACALL TM12ms ACALL KS1 JNZ LK2 AJMP KEY2 LK2: MOV R2,#0FEH MOV R4,#00H LK4: MOV DPTR,#7F00H MOV A,R2 MOVX @DPTR,A INC DPTR INC DPTR ;调用判断有无键按下子程序 ;有键按下时,(A)≠0转消抖延时 ;无键按下返回 ;调12 ms延时子程序 ;查有无键按下,若有则真有键按下 ;键(A)≠ 0逐列扫描 ;不是真有键按下,返回 ;初始列扫描字(0列)送入R2 ;初始列(0列)号送入R4 ;DPTR指向8155PA口 ;列扫描字送至8155PA口 ;DPTR指向8155PC口
NEXT:INC R4 ;准备扫描下一列,列号加1 MOV A,R2 ;取列扫描字送累加器A JNB ACC.7,KEND ;判断8列扫描否?扫描完返回 RL A ;扫描字左移一位,变为下一列扫描字 MOV R2,A ;扫描字送入R2保存 AJMP LK4 ;转下一列扫描 KEND: AJMP KEY1 KS1: MOV DPTR,#7F00H ;DPTR指向8255的PA口 MOV A,#00H ;全扫描字→A MOVX @DPTR,A ;全扫描字送往8255的PA口 INC DPTR ;DPTR指向8255的PC口 INC DPTR MOVX A,@DPTR ;读入PC口行状态 CPL A ;变正逻辑,以高电平表示有键按下 ANL A,#0FH ;屏蔽高4位,只保留低4位行线值 RET ;出口状态:(A)≠0时有键按下
第二节键盘与数码管显示器接口电路
1 键盘接口电路 2 数码管显示器 3 LCD显示器及其应用
一、键盘接口电路



键盘是单片机应用系统中人机交流不可缺少的 输入设备。 键盘由一组规则排列的按键组成,一个按键实 际上是一个开关元件。键盘通常使用机械触点 式按键开关,其主要功能是把机械上的通断转 换为电气上的逻辑关系(1和0)。 常见的种类有:独立式按键和矩阵式键盘。
******** 流水追逐 ***************************** A3: MOV DPTR, #TAB3 ; 流水追逐常数表首地址送DPTR ACALL DISP SJMP START ********* LED显示控制子程序 ***************** 功能:根据常数表控制P2口的LED发光 入口:常数表的地址送到DPTR 出口:无 ******************************************** DISP: CLR A MOVC A, @A+DPTR CJNE A,#0AH,LOOP1 RET LOOP1: MOV P2,A MOV R3,#20 ACALL DELAY INC DPTR JMP DISP
【例1】 监视某开关S,用发光二极管LED显示开 关状态,如果开关闭合,LED亮;如果开关断 开,LED灭。 解:设计电路图如下图所示。开关接P1.1,当开 关断开时,P1.1为+5V,对应数字量为“1”; 开关闭合时,P1.1为0V,对应数字量为“0”, 这样就可以用JB指令对开关状态进行检测。 P1.0输出“1”,LED亮。当P1.0输出“0”,LED 两端电压相等,熄灭。 参考程序如下:
DELAY: MOV R4,#20 D1: MOV R5,#248 DJNZ R5, $ DJNZ R4, D1 DJNZ R3, DELAY RET TAB : DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0AH TAB1: DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH,0AH TAB2: DB 0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0AH TAB3: DB 01H,02H,06H,08H,10H,20H,60H,80H,0AH END
相关主题