键盘显示器接口

上传人:沧海****B 文档编号:251897017 上传时间:2024-11-11 格式:PPTX 页数:41 大小:663.06KB
返回 下载 相关 举报
键盘显示器接口_第1页
第1页 / 共41页
键盘显示器接口_第2页
第2页 / 共41页
键盘显示器接口_第3页
第3页 / 共41页
点击查看更多>>
资源描述
,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,10,章,AT89S51,单片机与输入,/,输出外设的接口,1,内容概要,大多数单片机应用系统,都要配置输入外设和输出外设。常见,输入外设,有键盘、,BCD,码拨盘等;,输出外设,有,LED,数码管、,LCD,显示器、打印机等。本章介绍,AT89S51,单片机与各种输入外设、输出外设的接口电路设计以及软件编程。,2,10.1 LED,数码管显示器的接口设计,LED,(,Light Emitting Diode,)数码管应用非常普遍,由发光二极管构成。,10.1.1 LED,数码管的工作原理,常见的,LED,数码管为“,8”,字型的,共计,8,段。每一段对应一个发光二极管。这种数码管显示器有,共阳极,和,共阴极,两种,如,图,10-1,所示。共阴极,LED,数码管的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。,4,图,10-1,8,段,LED,数码管结构及外形,5,按照上述格式,显示各种字符的,8,段,LED,数码管的段码如,表,10-2,所示。,表,10-1,只列出了部分段码,读者也可对某些显示的字符重新定义,也可选择其他字型的,LED,数码管。,除了“,8”,字型的,LED,数码管外,市面上还有,“,1”,型,、,“米”字型,和,“点阵”,型,LED,显示器,如,图,10-2,所示。厂家也可根据用户的需要定做,特殊字型的数,码管,。,本章均以“,8”,字型的,LED,数码管为例。,6,10.1.2 LED,数码管显示器接口设计举例,LED,数码管有,静态显示,和,动态显示,两种显示方式。,1,LED,静态显示方式,静态显示指无论多少位,LED,数码管,都同时处于显示状态。,7,2,LED,动态显示方式,当显示位数较多,静态显示所需的,I/O,口太多,这时常采用动态显示。为节省,I/O,口,通常将所有显示器的段码线的相应段并联在一起,由一个,8,位,I/O,口控制,而各位显示位的公共端分别由相应的,I/O,线控制。,8,段码线占用一个,8,位,I/O,口,而位选控制使用一个,I/O,口的,4,位口线。动态显示就是,通过段码线向显示器(所有的)输出所要显示字符的段码,。,每一时刻,只有一位位选线有效,,其他各位都无效。,与静态显示比,动态显示,优点,节省,I/O,口,显示器越多,优势越明显。,缺点,显示亮度不如静态显示的高,要调整好“扫描”速率,如果“扫描”速率较低,会出现闪烁现象。,9,第8章接口技术基础,10,2024/11/11,在一个数码管上显示字符,1,第8章接口技术基础,11,2024/11/11,#include reg52.h,unsigned char code Duan=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F;,sbit P10=P10;,void main(),P10=0;,P0=Duan1;,while(1);,第8章接口技术基础,12,2024/11/11,例,2,:在,4,个数码管上显示字符,1,、,2,、,3,、,4,见文档,例,3,:设计一个,2,位,10,进制计数器,每秒加,1,,在,LED,上显示,见文档,10.2,键盘的接口设计,键盘功能:向单片机输入数据、命令等,是人与单片机对话的主要手段。下面介绍键盘工作原理和工作方式。,10.2.1,键盘接口应解决的问题,1,键盘的任务,任务有,3,项:,(,1,)首先判别是否有键按下?若有,进入下一步。,(,2,)识别哪一个键被按下,并求出相应的键值。,(,3,)根据键值,找到相应键值的处理程序入口。,13,2.,键盘输入的特点,常见键盘:触摸式键盘、薄膜键盘和按键式键盘,最常用的是按键式键盘。,键盘按键实质上是一个开关。如,图,10-7,(,a,),所示,按键开关的两端分别连接在行线和列线上,通过键盘开关机械触点的断开、闭合,其行线电压输出波形如,图,10-7,(,b,),所示。,图,10-7,(,b,),所示的,t,1,和,t,3,分别为键的闭合和断开过程中的抖动期(呈现一串负脉冲),抖动时间长短与开关的机械特性有关,一般为,5,10ms,,,t,2,为稳定的闭合期,其时间由按键动作确定,一般为十分之几秒到几秒,,t,0,、,t,4,为断开期。,14,图,10-7,键盘开关及其行线波形,第8章接口技术基础,16,2024/11/11,抖动的消除,按键的抖动人是察觉不到的,但会对高速运行的,CPU,产生干扰,进而产生误处理。为了保证按键闭合一次仅作一次键输入处理,必须采取措施消除抖动。,消除抖动的方法有两种:,硬件消抖法和软件消抖法。,第8章接口技术基础,17,2024/11/11,1),硬件消抖法,(,了解,),硬件消除抖动的方法是用简单的基本,R-S,触发器或单稳态电路或,RC,积分滤波电路构成去抖动按键电路。,初始:,S,接,A,,,A=0,,所以,Q=1,,,/Q=0,AB: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,翻转,第8章接口技术基础,18,2024/11/11,2),软件消抖,(重点),软件消抖不需要增加硬件电路,而是在第一次检测到按键按下后,执行一段延时程序,(,如,1020ms),,然后再次检测,确认该按键是否仍保持闭合状态,如果是则认为是真正有按键按下,否则认为是干扰,不预理会。这样就可以避开抖动,以免发生误操作。,第8章接口技术基础,19,2024/11/11,10.2.2,键盘接口设计举例,键盘两类:非编码键盘和编码键盘。,非编码键盘,按键直接与单片机相连,通常使用在按键数量较少的场合。用这种键盘,系统功能通常比较简单,需处理的任务较少,但可降低成本、简化电路设计。按下按键的键号信息通过软件来获取。,非编码键盘常见的为两种结构:独立式键盘和矩阵式键盘。,1.,独立式键盘,(,1,)查询方式的独立式键盘程序,特点:一键一线,键相互独立。,优点,:电路简单,各条检测线独立,识别按键号的软件编写简单。独立式键盘,适用于按键数目较少,的场合,在按键数目较多的场合,要占用较多的,I/O,口线。,21,图,10-8,独立式键盘的接口电路,23,按键检测程序入口,返回键码,S1,按下否,?,键码值置,1,Y,N,S4,按下否,?,键码值置,4,Y,N,延时消抖,键闭合,?,Y,N,键闭合,?,Y,N,键码值置,0,键码值置,0,【,例,10-3】,键盘为,图,10-8,所示的独立式键盘,采用查询方式对键盘的键值读取。参考程序如下:,#include,void main(void),unsigned char keyvalue;,do,P1=0 xff;,keyvalue=P1;,keyvalue=,keyvalue;,24,switch(keyvalue),case 1:;/*,处理,0,号键*,/,break;,case 2:;/*,处理,1,号键*,/,break;,case 4:;/*,处理,2,号键*,/,break;,case 8:;/*,处理,3,号键*,/,break;,case 16:;/*,处理,4,号键*,/,break;,case 32:;/*,处理,5,号键*,/,break;,case 64:;/*,处理,6,号键*,/,break;,case 128:;/*,处理,7,号键*,/,default:,break;/*,无按下键处理*,/,while(1),26,(,2,)中断扫描方式的独立式键盘程序,为进一步提高扫描键盘工作效率,可采用中断扫描方式,如,图,10-9,。键盘只有在键盘有按键按下时,才进行处理,所以实时性强,效率高。,当键盘中有按键按下时,,74LS30,的输出经过,74LS04,反相后向单片机的中断请求输入引脚,INT0*,发出中断请求信号,单片机响应中断,执行键盘扫描程序中断服务子程序,识别出按下按键的键号,并跳向该按键的处理程序。,27,28,图,10-9,独立式键盘的接口电路,【,例,10-4】,键盘接口见,图,10-9,,编写中断方式的独立式键盘处理程序。程序如下。,#include,#include,#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=0 x81;,IP=0 x01;,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;,30,case 16:;/*,处理,4,号键*,/,break;,case 32:;/*,处理,5,号键*,/,break;,case 64:;/*,处理,6,号键*,/,break;,case 128:;/*,处理,7,号键*,/,default:,break;/*,无效按键,如多个键同时按下*,/,key_flag=0;,while(TRUE);,31,void int0()interrupt 0,uchar reread_key;,IE=ox80;/*,屏蔽中断*,/,key_flag=0;/*,设置中断标志*,/,P1=0 xff;/*P1,口锁存器置,1*/,key_value=P1;/*,读入,P1,口的状态*,/,delay_10ms(void);/*,延时,10ms*/,reread_key=P1/*,再次读取,P1,口的状态*,/,if(key_value=reread_key),key_flag=1;/*,设置中断标志为,1*/,IE=0 x81;/*,中断允许*,/,32,2.,矩阵式键盘(自学),矩阵式(也称行列式)键盘用于按键数目较多场合,由行线和列线组成,一组为行线,另一组为列线,按键位于行、列的交叉点上。如,图,10-10,所示,一个,4,4,的行、列结构可以构成一个,16,个按键的键盘。在按键数目较多的场合,与独立式键盘相比,要节省较多的,I/O,口线。,(,1,)查询方式的矩阵式键盘程序,【,例,10-5】,对,图,10-10,所示的矩阵式键盘,编写查询式的键盘处理程序。,33,图,10-10,矩阵式键盘接口,首先判键盘有无键按下,即把所有行线,P1.0,P1.3,均置为低电平,然后检查各列线的状态,若列线不全为高电平,则表示键盘中有键被按下;若所有列线列均为高电平,说明键盘中无键按下。,在确认有键按下后,即可进入确定具体闭合键的过程。判断闭合键所在的位置,其方法是依次将行线置为低电平,在逐行检查各列线的电平状态。若某列为低,则该列线与行线交叉处的按键就是闭合的按键。判断有无键按下,以及按下键的位置的参考程序如下。,35,#include,#define uchar unsigned char,#define uint unsigned int,void main(void),uchar key;,while(1),key=keyscan();/*,调用键盘扫描函数,返回的键值送变量,key*/,delay();/*,延时*,/,void delay(void);/*,延时函数*,/,uchar i;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 开题报告


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!