资源描述:
《最新单片夹第8章教学讲义PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片夹第8章1.LED显示器结构与原理发光二极管显示器是单片机应用产品中常用的输出设备。它是由若干个发光二极管组成显示的字段,当二极管导通时相应的一个点或一个笔划发光,就能显示出各种字符。LED(LightEmittingDiode)是发光二极管的缩写,通常所说的LED显示器是由七个发光二极管组成,按“日”字形排列,也称七段LED显示器,其管脚排列如图1(a)所示。此外,显示器中还有一个圆点型发光二极管,表示小数点,图中以dp表示。图1.七段LED数码显示器的引脚符号和结构a.符号与引脚b.共阴极c.共阳极表2.十
2、六进制数及空白与P的显示段码8EH2.点亮LED显示器的方法点亮LED显示器有静态显示和动态显示两种方法。所谓静态显示,就是显示某一字符时,相应的发光二极管亮时有恒定的电流流过,即每一位LED显示器各引脚都要占用单独的具有锁存功能的I/O接口。单片机只需要把要显示的字形段码发送到接口电路并保持不变即可,如果要显示新的数据,再发送新的字形段码。这种方法,每显示一位都需要一个8位的输出口控制,占用的硬件较多,一般仅用于显示位数较少的场合。动态显示就是一位一位地轮流点亮各位显示器,对每一位显示器而言,每隔一段时间点亮一次
3、。动态显示器因其硬件成本较低而得到广泛的应用。在轮流点亮过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留及发光二极管的余辉效应,给人的印象就是一组稳定的显示数据。3.LED静态显示接口电路LED显示器工作在静态显示方式时,可将共阴极或共阳极连在一起接地或+5V;每位LED显示器的段选信号线与一个8位的并行口相连,如图2所示。由于每一位LED显示器的段码由不同的8位输出口控制,故在同一时间里每一位显示的字符可以各不相同。另外,该电路中的每一位LED显示器可独立显示,只要该位段选信号线上的数据保持不变,该位就能
4、保持相应的显示字符。图2.LED静态显示电路4.LED动态显示接口电路动态显示接口电路把每一个显示器的8个笔画字段(a~g和dp)的同名端连在一起,而每一个显示器的公共端(COM)各自独立接受I/O线控制。CPU向字段输出口送出段码时,所有显示器接收到相同的段码,但究竟是哪个LED显示器亮,则取决于COM端,我们可以通过程序控制哪一位显示。8051P1.0P1.1P1.7P2.0P2.1P2.2P2.3P2.4P2.5图3.LED动态显示接口电路图3所示是6位LED动态显示器接口电路,单片机的P1口作为LED的字形
5、输出口,为提高显示亮度,采用8路反相驱动器74LS244驱动;P2口作为LED的位选控制口,采用共阳极的LED显示器,由于8段全亮时位控线的驱动电流较大,采用6路反相驱动器74LS06以提高驱动能力。ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#60HMOV30H,#00HMOV31H,#01HMOV32H,#02HMOV33H,#03HMOV34H,#04HMOV35H,#05H;30H--35H为6个数据显示缓冲区DIS0:MOVR0,#30HMOVR1,#01H;DIS:MOVA,R
6、1MOVP2,AMOVA,@R0MOVDPTR,#DMBMOVCA,@A+DPTRMOVP1,ALCALLDELAYINCR0MOVA,R1JBACC.5,DIS0RLAMOVR1,ALJMPDISDELAY:MOVR6,#20;延时5msDELAY1:MOVR7,#125DELAY2:DJNZR7,DELAY2DJNZR6,DELAY1RETENDTAB:DB0COH,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86HDB84H,0FFH
7、,8CH例:采用共阳极的LED显示器,显示器从最右边的一位LED开始点亮;在单片机8051内RAM中设置6个显示缓冲单元30~35H,分别存放6位显示器的显示数据(0、1、2、3、4、5)。假设输出段码控制口地址为0FFDCH,输出位选控制口地址为0FFDDH,使6位显示器能显示出30H~35H中所存放的字符。显示程序的流程图如图4所示。开始显示缓冲器指针置初值30H→R0扫描模式置初值01H→R1R1→位选控制口取显示数据查表转换为段码→段码控制口延时5ms显示缓冲器指针加1R1左移1位(R1)=20H?YNOR
8、G0000HLJMPMAINORG0100HMAIN:MOVSP,#60HMOV30H,#00HMOV31H,#01HMOV32H,#02H动态扫描显示程序:MOV33H,#03HMOV34H,#04HMOV35H,#05H;30H--35H为6个数据显示缓冲区DIS0:MOVR0,#30H;显示缓冲区首地址送R0MOVR1,#01H;从右边第一位显示器开始