完美版课件第五章单片机键盘及显示器接口技术汇编.ppt
《完美版课件第五章单片机键盘及显示器接口技术汇编.ppt》由会员分享,可在线阅读,更多相关《完美版课件第五章单片机键盘及显示器接口技术汇编.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 单片机键盘及显示器接口技术单片机键盘及显示器接口技术u键盘接口技术键盘接口技术uLEDLED显示技术显示技术uLCDLCD显示技术显示技术u实例实例 键盘向单片机输入数据、命令等功能,是人机对话的主要手段。键盘由若干按键按照一定规则组成,每一个按键实质上是一个按键开关。2图5-1 键盘开关及其行线波形5.1 5.1 键盘接口技术键盘接口技术 按键的识别:按键闭合与否,反应在行线输出电压上就是高电平或低电平,对行线电平高低状态检测,便可确认按键是否按下与松开。键盘接口设计应解决的问题:(1)开关状态的可靠输入:硬件去抖动、软件去抖动。软件去抖动的基本思想:在检测到有键按下时,该键所
2、对应的行线为低电平,执行一段延时10ms的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10ms 的子程序后,检测该行线为高电平,说明按键确实已经松开。(2)键盘状态的监测方法:中断方式还是查询方式。如第四章例4-2(3)键盘编码方法:编码键盘和非编码键盘。编码键盘是由硬件完成键盘识别功能的,它通过识别键是否按下以及所按下键的位置,由编码电路产生一个唯一对应的编码信息(如ASCII码)。非编码键盘是由软件完成键盘识别功能的,它利用简单的硬件和一套专用键盘编码程序来识别按键的位置,然后由CPU将位置码通过查表程序
3、转换成相应的编码信息。非编码键盘的速度较低,但结构简单的,并且通过软件能为某些键的重定义提供很大的方便。(4)键盘控制程序的编写。34【例4-2】在AT89C51单片机的P1口上接有8只LED。程序运行后,8只发光二极管流水点亮。按下按钮开关K1,低4位的LED和高4位的LED交替闪烁,闪烁5次后,8只发光二极管再次流水点亮。5#includesbit K1=P32;unsigned char code play8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;void delay(unsigned int i)unsigned int j;f
4、or(;i0;i-)for(j=0;j125;j+);void Alter()unsigned char n;for(n=0;n5;n+)P1=0 x0f;delay(500);P1=0 xf0;delay(500);void main()unsigned int a;for(;)for(a=0;a8;a+)delay(500);P1=playa;if(K1=0)Alter();6#includeunsigned char code play8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;void delay(unsigned int i)u
5、nsigned int j;for(;i0;i-)for(j=0;j125;j+);void main()unsigned int a;for(;)EA=1;EX0=1;IT0=1;for(a=0;a8;a+)delay(500);P1=playa;void int0()interrupt 0 using 1unsigned char n;for(n=0;n5;n+)P1=0 x0f;delay(500);P1=0 xf0;delay(500);5.1.1 独立式键盘接口技术 非编码键盘是利用按键直接与单片机相连接而成,常用在按键数量较少的场合。该类键盘,系统功能比较简单,需要处理任务较少,成
6、本低、电路设计简单。按下按键的键号信息通过软件来获取。非编码键盘常见的有:独立式键盘和矩阵式键盘两种结构。7图5-2 独立式键盘的接口电路(查询方式)u独立式键盘接口设计案例-查询方式 独立式键盘特点各键相互独立,每个按键各接一条I/O口线,通过检测I/O输入线的电平状态,易判断哪个按键被按下。图5-2为一独立式键盘,8个按键k1k8分别接到单片机的P1.0 P1.7引脚上,图中上拉电阻保证按键未按下时,保证对应I/O口线为稳定高电平。当某一按键按下时,对应I/O口线就变成低电平,与其他按键相连的I/O口线仍为高电平。因此,只需读入I/O口线状态,判别是否为低电平,就很容易识别出哪个键被按下。
7、可见独立式键盘优点是电路简单,各条检测线独立,识别按键号的软件编写简单。独立式键盘适于按键数目较少场合,如按键数目较多,要占用较多I/O口线。对图5-2所示独立式键盘,用查询方式实现键盘扫描,根据按下不同按键,对其进行处理。扫描程序如下:8【例5-1】单片机与4个独立按键k1k4及8个LED指示灯的一个独立式键盘。4个按键接在P1.0P1.3引脚,P3口接8个LED指示灯,控制LED指示灯亮与灭,原理电路见图5-24。当按下k1键,P3口8个LED正向(由上至下)流水点亮;按下k2键,P3口8个LED全部点亮;按下k3键,P3口8个LED全部熄灭;k4键按下,高、低4个LED交替点亮。由于本案
8、例中的4个按键分别对应4个不同的功能,且具有不同的按键值“keyval”,具体如下:按下K1按键时,keyval=1按下K2按键时,keyval=2按下K3按键时,keyval=3按下K4按键时,keyval=4本独立式键盘工作原理如下:(1)首先判断是否有按键按下。将接有4个按键的P1口低4位(P1.0P1.3)写入“1”,使P1口低4位为输入状态。然后读入低4位的电平,只要有一位不为“1”,则说明有键按下。读取方法:P1=0 xff;if(P1&0 xf0)!=0 x0f);/读P1口低4位按键值,按位“与”运算后结果非0 x0f,/表明低4位必有1位是“0”,说明有键按下(2)按键去抖动
9、。当判别有键按下时,调用软件延时子程序,延时约10ms后再进行判别,若按键确实按下,则执行相应的按键功能,否则重新开始进行扫描。(3)获得键值。确认有键按下时,可采用扫描方法,来判哪个键按下,并获取键值。1213u独立式键盘的中断方式 采用中断扫描方式独立式键盘,只有在键盘有按键按下时,才进行处理,接口电路见图5-3。当键盘中有键按下时,8输入与非门74LS30输出经过74LS04反相后向单片机外中断请求输入引脚INT0发出低电平中断请求信号,单片机响应中断,进入外部中断的中断函数,在中断函数中,判断按键是否真按下。如确实按下,则把标志keyflag置1,并得到按下按键键值,然后从中断返回,根
10、据键值跳向该键的处理程序。14图5-3 中断扫描方式的独立式键盘的接口电路15165.1.2 矩阵式键盘接口技术 矩阵式(也称行列式)键盘用于按键数目较多的场合,由行线和列线组成,按键位于行、列交叉点上。见图5-4,一个44的行、列结构可以构成一个16个按键的键盘,只需要一个8位的并行I/O口即可。如果采用88的行、列结构,可以构成一个64按键的键盘,只需要两个并行I/O口即可。很明显,在按键数目较多场合,矩阵式键盘要比独立式键盘节省较多I/O口线。图5-4 矩阵式(行列式)键盘的接口电路针对图5-4矩阵式键盘,查询式的键盘处理程序编制算法:1)先判有无键按下,即把所有行线P1.0P1.3均置
11、为低,然后检测各列线状态,若列线不全为高电平,则表示键盘中有键被按下;若所有列线列均为高电平,说明键盘中无键按下。2)在确认有键按下后,即可查找具体闭合键位置,其方法是依次将行线置为低电平,再逐行检查各列线的电平状态。若某列为低,则该列线与行线交叉处键就是闭合键。1819【例5-2】数码管显示44矩阵键盘键号。单片机的P1口的P1.0P1.7连接44矩阵键盘,矩阵中各键编号见图5-5。数码管显示由P0口控制,当44矩阵键盘中的某一按键按下时,数码管上显示对应键号。例如,1号键按下时,数码管显示“1”;E键按下时,数码管显示“E”等等。20图5-5 数码管显示44矩阵键盘键号的原理电路21 程序
12、说明:本例关键是如何获取键号。具体采用了逐行扫描,先驱动行P1.4=0,然后依次读入各列的状态,第1列对应的i=0,第2列对应的i=1,第3列对应的i=2,第4列对应的i=3。假设4号键按下,此时第2列对应的i=1,又L2=0,执行语句“if(L2=0)P0=dis i*4+1”后,i*4+1=5,从而查找到字型码数组dis 中的第5个元素,即显示“4”的段码“0 x99”,把段码“0 x99”送P0口驱动数码管显示“4”。一、LED显示器的结构与原理LED数码管:“8”字型,7段(不包括小数点)或8段(包括小数点),每段对应一个发光二极管,共阳极和共阴极两种,见图5-6。共阳极数码管的阳极连
13、接在一起,接+5V;共阴极数码管阴极连在一起接地。对于共阴极数码管,当某发光二极管阳极为高电平时,发光二极管点亮,相应段被显示。同样,共阳极数码管阳极连在一起,公共阳极接+5V,当某个发光二极管阴极接低电平时,该发光二极管被点亮,相应段被显示。5.2 LED显示技术5.2.1 七段LED显示器24图5-6 8段LED数码管结构及外形 为使LED数码管显示不同字符,要把某些段点亮,就要为数码管各段提供一字节的二进制码,即字型码(也称段码)。习惯上以“a”段对应字型码字节的最低位。各字符段码见表5-1。2526 如要在数码管显示某字符,只需将该字符字型码加到各段上即可。例如某存储单元中的数为“02
14、H”,想在共阳极数码管上显示“2”,需要把“2”的字型码“A4H”加到数码管各段。将欲显示字符的字型码作成一个表(数组),根据显示字符从表中查找到相应字型码,然后把该字型码输出数码管各个段上,同时数码管的公共端接+5V,此时在数码管上显示字符“2”。下面介绍单片机如何控制LED数码管显示字符。【例5-3】利用单片机控制一个8段LED数码管先循环显示单个偶数:0、2、4、6、8,再显示单个奇数:1、3、5、7、9,如此反复循环显示。28二、二、LEDLED显示器的显示方式显示器的显示方式两种显示方式:静态显示和动态显示。1.静态显示方式 无论多少位LED数码管,都同时处于显示状态。多位LED数码
15、管工作于静态显示方式时,各位共阴极(或共阳极)连接在一起并接地(或接+5V);每位数码管段码线(adp)分别与一个8位I/O口锁存器输出相连。如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到送入下一个显示字符段码。静态显示方式显示无闪烁,亮度较高,软件控制较易。图5-7为4位LED数码管静态显示电路,各数码管可独立显示,只要向控制各位I/O口锁存器送相应显示段码,该位就能保持相应的显示字符。这样在同一时间,每一位显示的字符可各不相同。静态显示方式占用I/O口端口线较多。图5-7电路,要占用4个8位I/O口(或锁存器)。如数码管数目增多,则需增
16、加I/O口数目。图5-7 4位LED静态显示的示意图【例5-4】单片机控制2只数码管,静态显示2个数字“27”。原理电路见图5-8。单片机用P0口与P1口,分别控制加到两个数码管DS0与DS1的段码,而共阳极数码管DS0与DS1的公共端(公共阳极端)直接接至+5V,因此数码管DS0与DS1始终处于导通状态。利用P0口与P1口带有的锁存功能,只需向单片机P0口与P1口分别写入相应的显示字符“2”和“7”的段码即可。由于一个数码管就占用一个I/O端口。如果数码管数目增多,则需增加I/O口,但软件编程要简单的多。参考程序如下:#include /包含8051单片机寄存器定义的头文件void main
17、(void)P0=0 xa4;/将数字2的段码送P0口 P1=0 xf8;/将数字7的段码送P1口 while(1)/无限循环 ;31图5-8 2位数码管静态显示的原理电路与仿真2.动态显示方式 显示位数较多时,静态显示所占的I/O口多,这时常采用动态显示。为节省I/O口,通常将所有显示器段码线相应段并联在一起,由一个8位I/O口控制,各显示位公共端分别由另一单独I/O口线控制。33图5-9 4位LED数码管动态显示示意图 图5-9是4位8段LED动态显示器电路示意图。其中单片机发出的段码占用1个8位I/O(1)端口,而位选控制使用I/O(2)端口中4位口线。动态显示就是单片机向段码线输出欲显
18、示字符的段码。每一时刻,只有1位位选线有效,即选中某一位显示,其他各位位选线都无效。每隔一定时间逐位轮流点亮各数码管(扫描方式),由于数码管余辉和人眼的“视觉暂留”作用,只要控制好每位数码管显示时间和间隔,则可造成“多位同时亮”的假象,达到同时显示效果。各位数码管轮流点亮的时间间隔(扫描间隔)应根据实际情况定。发光二极管从导通到发光有一定的延时,如果点亮时间太短,发光太弱,人眼无法看清;时间太长,产生闪烁现象,且此时间越长,占用单片机时间也越多。另外,显示位数增多,也将占用单片机大量时间,因此动态显示实质是以执行程序时间来换取I/O端口减少。下面是动态显示实例。34【例5-5】8只数码管,分别
19、滚动显示单个数字18。程序运行后,单片机控制左边第1个数码管显示1,其他不显示,延时之后,控制左边第2个数码管显示1,其他不显示,直至第8个数码管显示8,其他不显示,反复循环上述过程。本动态显示电路见图5-10,P0口输出段码,P2口输出扫描的位控码,通过由8个NPN晶体管的位驱动电路对8个数码管位控扫描。即使扫描速度加快,由于是虚拟仿真,数码管的余辉也不能像实际电路那样体现出来。如对本例实际硬件显示电路进行快速扫描,由于数码管余辉和人眼“视觉暂留”作用,只要控制好每位数码管显示的时间和间隔,则可造成“多位同时亮”假象,达到同时显示效果。但虚拟仿真做不到这一点。仿真运行下,只能是一位一位点亮显
20、示,不能看到同时显示效果,但本例使我们了解动态扫描显示实际过程。如采用实际硬件电路,用软件控制快速扫描,可看到“多位同时点亮”效果。图5-10 8只数码管分别滚动显示单个数字18参考程序如下:375.2.2 5.2.2 单片机控制单片机控制LEDLED点阵显示器点阵显示器 目前LED点阵显示器的应用非常广泛,在许多公共场合如商场、银行、车站、机场、医院随处可见。不仅能显示文字、图形,还能播放动画、图像、视频等信号。LED点阵显示器分为图文显示器和视频显示器,有单色显示,还有彩色显示。下面仅介绍单片机如何来控制单色LED点阵显示器的显示。一、一、LEDLED点阵显示器的结构与显示原理点阵显示器的
21、结构与显示原理 由若干个发光二极管按矩阵方式排列而成。阵列点数可分为57、58、68、88点阵;按发光颜色可分为单色、双色、三色;按极性排列可分为共阴极和共阳极。1.LED1.LED点阵结构点阵结构 以88LED点阵显示器为例,外形见图5-11,内部结构见图5-12,由64个发光二极管组成,且每个发光二极管是处于行线(R0R7)和列线(C0C7)之间交叉点上。图5-11 88 LED点阵显示器外形 图5-12 88LED点阵显示器(共阴极)的结构2.LED2.LED点阵显示原理点阵显示原理 显示一个字符?字符由一个个点亮的LED所构成。由图5-12点亮点阵中一个发光二极管条件:对应行为高电平,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完美 课件 第五 单片机 键盘 显示器 接口 技术 汇编
限制150内