资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七讲数码管显示电子信息学院电子技术教研室一、显示器及其接口一、显示器及其接口单片机系统中常用的显示器有:发光二极管LED(LightEmittingDiode)显示器、液晶LCD(LiquidCrystalDisplay)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(58、88点阵等)。LED数码管简介数码管简介1) 数码管结构数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可显示数字09、字符AF、H、L、P、R、U、Y、符号“”及小数点“”。数码管的外型结构如图所示。数码管又分为共阴极和共阳极两种结构,分别如图所示。共阴极共阳极2) 数码管工作原理共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,通常接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。3) 数码管字型编码要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字型编码。对照下图,字型码各位定义如下:数据线:D7 D6 D5 D4 D3 D2 D1 D0I/O口线:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0LED段: dp g f e d c b a 数据线D0与a字段对应,D1字段与b字段对应,依此类推。如使用共阳极数码管,则数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,则相反。表:表: 数码管字型编码表数码管字型编码表LED显示器工作方式有两种:静态显示方式和动态显示方式。 1、静态显示接口、静态显示接口从下图可以看出,静态显示方式的特点是各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来并保持不变,直到I/O口输出新的段码。采用静态显示方式时,用较小的电流即可获得较高的亮度,且占用CPU时间少,编程简单,显示便于监测和控制,但其占用的口线多,硬件电路复杂,成本高,只适用于显示位数较少的场合。二、二、 LED数码显示方式及电路数码显示方式及电路图: 两位的LED数码管静态显示示意图例1:用一只共阴极的单只数码管循环显示0,1,2,3,9。源程序:#include#defined uchar unsigned char#defined uint unsigned int/09的数码管段码,最后一个为关闭uchar code DSY_CODE=0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,0x00;void DelayMS(uint x) uchar i; while(x-) for(i=0; i120; i+);void main ( ) uchar i=0; P0=0x00; while(1) P0=DSY_CODEi; i=(i+1)%10; DelayMS(180); 2、动态显示当需要显示的位数较多时,为了节省硬件接口,往往采用动态显示的方式。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。动态显示是指一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的位选线(公共阴极或公共阳极)由另外的I/O口线控制。以动态方式显示时,各数码管分时轮流选通各数码管分时轮流选通。要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符,虽然这些字符是在不同的时刻分别显示的,但由于人眼存在视觉暂留效应,因此只要每位显示间隔足够短就可以给人以同时显示的感觉。例2:用8只集成式共阳极的数码管在相应位循环显示单个数字07。例:用一只共阴极的单只数码管循环显示0,1,2,3,9。源程序:#include#include#defined uchar unsigned char#defined uint unsigned int/07的数码管段码uchar code DSY_CODE=0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90;void DelayMS(uint x) uchar i; while(x-) for(i=0; i120; i+);void main ( ) uchar i,k=0x80; while(1) for(i=0;i8;i+) P2=0xFF; /关闭显示 k=_crol_(k,1); P0=DSY_CODEi; /发送数字段码 P2=k; /发送数码管位码,打开对应数码管 DelayMS(300); 例3:用8只集成式共阳极的数码管在相应位同时显示单个数字07。源程序:#include#include#defined uchar unsigned char#defined uint unsigned int/07的数码管段码uchar code DSY_CODE=0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90;void DelayMS(uint x) uchar i; while(x-) for(i=0; i120; i+);void main ( ) uchar k,m=0x80; P0=0xFF; P2=0x00; while(1) for(k=0;k可寻址片内rambdata-可位寻址的片内ramidata-可寻址片内ram,允许访问全部内部rampdata-分页寻址片外ram(MOVXR0)(256BYTE/页)xdata-可寻址片外ram(64k地址范围)code-程序存储区(64k地址范围),对应MOVCDPTRbit在内部数据存储空间中20H.2FH区域中一个位的地址,或者8051位可寻址SFR的一个位地址。code在0000H.0FFFFH之间的一个代码地址。data在0到127之间的一个数据存储器地址,或者在128.255范围内的一个特殊功能寄存器(SFR)地址。idata0to255范围内的一个idata存储器地址。xdata是0to65535范围内的一个xdata存储器地址。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号