《第8章单片机应用接口技术.ppt》由会员分享,可在线阅读,更多相关《第8章单片机应用接口技术.ppt(67页珍藏版)》请在优知文库上搜索。
1、第第8章章 单片机应用接口技术单片机应用接口技术8.1 显示器接口显示器接口 在MCS-51系列单片机应用系统中,显示器是人机对话的主要输出器件,它显示系统运行中用户关心的实时数据。常见的显示器件有LED(发光二极管显示器)器件和LCD(液晶显示器)器件两大类。点阵显示屏通过编程能够显示各种图形、汉字,目前也被广泛应用于各种单片机应用系统中。8.1.1 LED显示器接口显示器接口1LED 数码显示器的结构数码显示器的结构LED 数码显示器是一种由LED发光二极管组合显示字符的显示器件。它使用了8 个LED发光二极管,其中7个用于显示字符,1个用于显示小数点,故通常称之为8 段发光二极管数码显示
2、器。其内部结构如图8-1所示。LED 数码显示器有两种连接方法:(1)共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地,每个发光二极管的阳极通过电阻与输入端相连。(2)共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接5V,每个发光二极管的阴极通过电阻与输入端相连。为了显示字符,要为LED 显示器提供显示段码(或称字形代码),组成一个“8”字形字符的7 段,再加上1个小数点位,共计8段,因此提供给LED 显示器的显示段码为1 个字节。各段码位的对应关系如表8-1所示。2.LED显示接口显示接口在单片机系统中,LED显示一般采用静态显示和动态扫描两种驱动方
3、式。静态驱动方式的工作原理是每一个LED显示器用一个I/O端口驱动、亮度大、耗电也大、占用的I/O端口多,但显示位多时一般很小采用。动态扫面方式的工作原理是将多个显示器的段码同名端连在一起,位码分别控制,利用视角暂留效应,分别进行显示。只要保证显示的频率,看起来的效果和一直显示是一样的。电路上一般用一个I/O端口驱动段码,用另一个I/O口实现位控。因此动态显示占用的I/O口少,耗电也少。(1)静态显示接口 目前静态显示接口一般采用如下三种方式1)采用并行输出接口的静态显示接口采用的并行输出接口可以是TTL的锁存器(如74LS273、74LS373),也可采用大规模集成并行输出接口(如8155、
4、8255A等)。图8-2中8255A的PA、PB、PC口各驱动1个8段数码管,实现静态接口。abcdefgdpabcdefgdpabcdefgdpabcdefgdpabcdefgdpabcdefgdpPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC78255A+5VCOMCOMCOM2)采用硬件译码器件构成静态显示接口在CMOS和TTL器件里,都有专门用于驱动显示的器件。CMOS类型的器件有CD4511、CD14547、CD14495、CM14513等。TTL类型器件有74LS47、74LS247、7
5、4LS48等,其中74LS47和74LS247可驱动共阳数码管,其余只可驱动共阴数码管。这些驱动器中大部分CMOS驱动器均带有锁存器,而TTL器件均不带锁存器,在设计时应在其前面加上锁存电路。图8-3是CD4511构成的静态显示电路。图中要显示的数据送P1.0P1.2,利用74LS138译码信号使能CD4511,通过CD4511译码并锁存,从而实现静态显示的功能。abdefgdpcabcdefgdpabdefgdpcabcdefgdpabdefgdpcabcdefgdpabdefgdpcabcdefgdpABDEFCGABDEFCGABDEFCGABDEFCGLELELELEY0Y1Y2Y3Y
6、4Y5Y6Y7ABCDABCDABCDABCDABCP1.4P1.5P1.6P1.0P1.1P1.2P1.3805174LS138CD4511CD4511CD4511CD4511COMCOMCOMCOMGND3)用串转并接口芯片构成静态显示接口利用串转并接口芯片74LS164可以比较方便地实现多位静态显示(见图8-4)。图中4片74LS164依次级联,要显示的数据通过TXD端依次移入各片74LS164中,并锁存输出,从而实现4片LED静态显示。a b c d e f g dpabcdefgdpQ0 Q1 Q2Q3Q4 Q5Q6Q774LS164ABCLKMRa b c d e f g dpab
7、cdefgdpQ0 Q1 Q2Q3Q4 Q5Q6Q774LS164ABCLKMRa b c d e f g dpabcdefgdpQ0 Q1 Q2Q3Q4 Q5Q6Q774LS164ABCLKMRa b c d e f g dpabcdefgdpQ0 Q1 Q2Q3Q4 Q5Q6Q774LS164ABCLKMRRXDTXD8051+5V 设8031的串行口工作于方式0,要显示的数据存在DispBuf4中,则相应的显示程如下:Uchar code Shape10=0 xc0,0 xf9,0 xa4,0 xb0,0 x990 x92,0 x82,0 xf8,0 x80;void Disp164(v
8、oid)uchari;for(i=0;i4;i+)SBUF=Shape DispBufi;while(TI=0);TI=0;(2)动态显示接口 所谓动态显示是指一位一位地轮流点亮各个显示器。对于每一位显示器来说,每隔一段时间点亮一次。通常点亮时间为1mS左右,相隔时间为20mS。图8-5为8位共阴显示器和74LS273构成的动态显示接口。abcdefgdpabcdefgdpabcdefgdpabcdefgdpabcdefgdpabcdefgdpQ0Q1Q2Q3Q4Q5Q6Q7Q0Q1Q2Q3Q4Q5Q6Q7CLKP2.6P2.7P0.0P0.7CLKD0D7D0D774LS273-174LS2
9、73-2COMCOMCOMWR 图中74LS273-1的输出为段数据口,接显示器的各个段极,74LS273-2的输出为位扫描口,接LED的公共极。显示时,首先使74LS273-2的Q0为低电平,Q1Q7为高电平,则仅第一位显示器的公共阴极为低电平(被选通);同时74LS273-1输出第一个显示数据的段码,这时第一位显示器将显示出第一个显示数据。持续1ms左右后,使Q0为低电平,关闭第一个显示器,随后使Q1为低电平,选通第二位显示器,并由74LS273-1输出第二个显示数据,并持续1ms左右。用类似的方法依次选通第3,第4第8位即完 成一次循环显示。如果连续地循环便可在显示器上稳定地显示所需显示
10、的内容。设图中74LS273-1的地址为BFFFH、74LS273-2的地址为7FFFHVoid Disp273(void)ucharI;for(i=0;i8;i+)*p=ShapeDispBufi;*q=Position;Position=1;Delay(1);*p=0 xff;#include Uchar code Shape10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80;Uchar DispBuf8;uchar Position;Main()ucharxdata *p,*q;Position=0 xfe;p=0 xBFFF
11、;q=0 x7fff;while(1)Disp273();Position=0 xfe;(3)定时扫描显示程序上述的动态扫描子程序用延时方法控制一位的显示时间,CPU的效率低下,使用定时器T0中断,定时扫描显示器,可以解决这个问题。方法如下:用变量DispBuf指向显示缓冲区,用Position保存位扫描码,当它的某一位为0,对应的LED选通。Position的初始值设为7EH,然后每扫描一次位扫描码码左移一位以便选通下一个LED,8个LED全显示完了,又设置其值为7EH。设置一个显示1位子程序,其功能是将DispBuf指向的单元值显示在对应位上。显示完后,把下一个显示单元的值装入DispBu
12、f,同时Position装入下一个位扫面码。启动定时器,使定时器产生1ms定时,在定时中断中调用显示1位子程序。Void Disp273(uchar xdata*p,uchar xdata*q,uchar In,uchar EnBit)*p=ShapeDispBufi;*q=EnBit;#include Uchar code Shape10=;Uchar DispBuf8;Uchar Position;Uchar DispSeq;Main()TMOD=0X01;TH0=0XFC;TL0=0X18;ET0=1;EA=1;TR0=1;Position=0 xfe;DispSeq=0;Void T0
13、Isr(void)interrupt 1 using 1TH0=0XFC;TL0=0X18;Disp273(uchar xdata*)0 xbfff,(uchar xdata *)0 x7fff,ShapeDispBufDispSeq,Position);DispSeq+;Position=1;if(DispSeq=0 x07)Position=0XFE;DispSeq=0;8.2 键盘接口技术键盘接口技术 键盘是一种常见的输入设备,通过它用户可以向计算机输入数据或命令。通常键盘可分为编码键盘和非编码键盘两种。通过硬件识别的键盘称编码键盘,通过软件识别的键盘称非编码键盘。非编码键盘有独立按键接
14、口和矩阵式按键接口两种接口方式。8.2.1独立式键盘接口设计独立式键盘接口设计 独立式键盘就是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其它输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。这类键盘的接口方式可分为串行和并行两类。1.并行方式并行方式 按键的一端接地,另一端接上拉电阻后接输入端,当按键未按下时,由于上拉电阻的作用使输入端确保为高电平,当按键按下时,输入端与地短接而为低电平 除采用P1口作为输入口外,还可以用扩展I/O口构成并行式键盘接口电路,如用8255扩展I/O口,用74LS244扩展输入口等。2.串行接口方式
15、串行接口方式的独立式键盘如图8-13所示,图中键盘输入信息通过74LS165串行输入,具体读键程序如下:uchar Key165(void)ucharKey;SCON=0 x10;Key=SBUF while(RI=0);RI=0;if(Key=0 xff)return(0 x08);elsefor(i=0;i=1;return(i);8.2.2矩阵式键盘接口设计矩阵式键盘接口设计1矩阵式键盘原理矩阵式键盘原理在单片机系统中,若所需按键数量较多,可采用矩阵式键盘。矩阵式键盘一般采用行列式结构并按矩阵形式排列。图8-14示出44行列式键盘的基本结构。44表示有4根行线和4根列线,在每根行线和列线
16、的交叉点上均分布1个单触点按键,共有16个按键。行0123VCC列012311110000行0123VCC列012310110000(a)(b)矩阵式按键是通过扫描法实现键盘的识别。所谓行扫描法,就是通过行线发出低电平信号,如果该行线所连接的键没有按下的 话,则列线所连接的输出端口得到的是全“1”信号(如图8-14(a);如果有键按下的话,则得到的是非全“1”信号(如图8-14(b)。然而对于机械开关结构的按键,由于机械触点的弹性及电压突跳等原因,往往在触点闭合或断开的瞬间会出现5ms10ms电压抖动(见图815)。为了保证CPU对键的闭合只作一次处理,必须消除抖动。消除抖动可采用硬件方法 图8-15 按键抖动示意图键盘按下前沿抖动后沿抖动闭合稳定消除抖动可采用硬件方法 图8-15 按键抖动示意图(如用R-S触发器隔离)和软件方法(延时去抖)两种方法实现。为节省硬件,目前单片机系统一般采用软件方式消除抖动。2矩阵式键盘程序设计方法矩阵式键盘程序设计方法图8-16是利用74LS273组成的具有4x8键盘、8位显示器的接口电路,图中74LS244的输入为键盘行扫描线,74LS273的输出为