led显示及动态显示原理_第1页
led显示及动态显示原理_第2页
led显示及动态显示原理_第3页
led显示及动态显示原理_第4页
led显示及动态显示原理_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、4位7段LED显示在单片机应用系统中经常使用发光二极管来显示,发光二极管简称LED(Light Emitting Diode )。LED的价格便宜,而且配置比较灵活,与单片机的 接口也比较方便。在这里将讲解如何使用中颖的单片机进行 4位7段LED显示的方法。1. 7段LE啲结构原理单片机中经常使用7段LED来显示数字,也就是用7个LED构成字型“8”, 并另外用一个圆点LED来显示小数点,也就是说一共有 8个LED构成了“8. ” 的字型。7段LED分共阴级和共阳极两种,共阴级7段LED的原理图和管脚配置图如 图1-1所示,共阳级7段LED的原理图和管脚配置图如图1-2所示。实际中,各 个型号

2、的7段LED的管脚配置可能不会是一样的,在实际应用中要先测试一下各 个管脚的配置,再进行电路原理图的设计。图1-1共阴极7段LEDVV该段LED即被点亮;不加 ”,则需要在VCC上加上 !能显示出来。屮上外加限流电阻保护。(以dp为最高位,a为最7段LED而 共阴极7段LED是指发光二极管的阴极连接在一起为公共端的7段LED 个7段LED由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划 (ag),另一个发光二极管为小数点(dp)。 I当在某一段发光二极管上施加一定的正向电压时, 电压则为暗。以共阳极7段LED为例,若是要显示“5 电压,向dp、g、f、e、a送出00010010

3、的信号, 为了保护各段LED不因电流过大而损坏,需在各个 共阳极7段LED显示0F的编码表如表1-1所示低位)。表1-1! 1 显示字符dpgfedcbpa s段选码r011000000111111001F9H210100100 11A4H310110000 'B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090HA1000100088HB1000001183HC11000110C6HD10100001A1HE1000011086HF100011108EH2. 7段LED态显示原理LED的静

4、态显示虽然有编程容易、管理简单等优点,但是静态显示所要占的 I/O 口资源很多,所以在显示的LED点较多的情况下,一般都采用动态显示方式。在多位7段LED显示中,为了简化电路,降低成本,则将所有位的段选线并 联在一起,刚好由8个I/O 口来控制8个段。而公共端(共阳极/共阴极)则分 别由相应的I/O 口控制,以实现各个位的分时选通。原理图如图1-3所示。由于所有的段选线并联到同一个I/O,由这个I/O 口来控制,因此,若是所 有的4位7段LED都选通的话,4位7段LED将会显示相同的字符。要使各个位 的7段LED显示不同的字符,就必须采用动态扫描方法来轮流点亮每一位7段LED即在每一瞬间只选通

5、一位 7段LED进行显示单独的字符。在此段点亮时间 内,段选控制I/O 口输出要显示的相应字符的段选码, 而位选控制I/O 口则输出 位选信号,向要显示的位送出选通电平(共阴极则送出低电平,共阳极则送出高 电平),使得该位显示相应字符。这样将四位 7段LED轮流去点亮,使得每位分 时显示该位应显示的字符。由于人眼的视觉暂留时间为 0.1秒,当每位显示的间 隔未超过33ms时,并在显示时保持直到下一位显示,则由于人眼的视觉暂留效 果眼睛看上去就像是4位7段LED都在点亮。设计时,要注意每位显示的间隔时 间,由于一位7段LED的熄灭时间不能超过100ms也就是说点亮其它位所用的 时间不能超过100

6、ms这样当有N位的7段LED用来显示时,每一位间隔的时间 t就必须符合下面的式子:t 三 100ms/(N-1)比如,现在使用4位,也就是N=4,则由式子可以算出t三33ms就是每一 位的间隔时间不能超过 33ms当然时间可以也设得短一些,比如 5ms或1ms也 可以。位選图1-37段LED动态显示原理图3. 7段LEDf中颖单片机的接口及应用程序电路原理图以SH69P43空制芯片为例,4位7段LED动态显示的电路原理图如图4所示。 使用4MHzft振作为主振荡器,PE 口和PF 口控制4位7段LED的段选,PB 口控 制4位7段LED的位选。将4个共阳极的7段LED的段选线并联起来接到 PE

7、口 和PF 口,dp、g、f和e段选线接到PF4PF0 上, d、c、b和a段选线接到PEA PE0上;将4个公共端VCC分别接到PB 口上。由于SH69P43的I/O 口电流较小,所以在位选端要使用三极管来进行7段LED的推动,向7段LED提供足够大的电流来点亮LED在中颖单片机中,有些 芯片的I/O 口是可以提供至少200mA的反向电流,比如 SH69P26和SH69P5, SH69P26有 6 个大电流 I/O 口(PORTA和 PORTD1PORTD0, SH69P55也是有 6 个大电流I/O 口(PORTDffi PORTEAPORTE0。当使用这些有大驱动电流的 I/O 口的芯片

8、来做7段LED显示时,当显示电路的位数不超过芯片所带有的大驱动电 流I/O数时,比如在SH69P26和 SH69P55+做6位以内的7段LED显示时,就无 需使用三极管,而可以直接去驱动LED了。要注意的是,由于这些I/O 口是提供 大的反向电流,也就是说,电流是流向I/O的,所以只能使用共阴极的7段LED 而不能使用共阳极的7段LEDCS4PF112HIJSIkiMPHP.WAKO PAI AFC1MJ AN、4 PEI POLDD 3H59T43图1-4 4位7段LED显示电路原理图程序如图1-4的电路原理图,现以程序来举个例子。以SH69P43为控制芯片,4M 晶振为主振荡器,以动态扫描

9、方式驱动 4位7段LED 1ms扫描一个位,4位循 环扫描。程序中有个加载数据的地方只是为了测试显示设定的,实际应用中可在那里更新所要显示的数据。当全速运行程序时,就能从4位7段LED中看到所要 显示的字符。例1-1 4 位7段LED显示LIST P=69P43ROMSIZE=3072*>系统寄存器*IEEQU00H;中断使能标志IRQEQU01H;中断请求标志TM0EQU02H;Timer0模式寄存器TL0EQU04H;Timer0装入/记数寄存器低四位TH0EQU05H;Timer0装入/记数寄存器高四位TBREQU0EH;查表寄存器PORTBEQU09H;Port B 数据寄存器P

10、ORTEEQU0CH;Port E 数据寄存器PORTFEQU0DH;Port F 数据寄存器INXEQU0FH;间接寻址伪索引寄存器DPLEQU10H;INX 数据指针低四位DPMEQU11H;INX 数据指针中三位DPHEQU12H;INX 数据指针高三位PBCREQU19H;PortB 输入/输出控制寄存器PECREQU1CH;PortE 输入/输出控制寄存器PFCREQU1DH;PortF 输入/输出控制寄存器.*; 用户定义寄存器.*AC_BAKEQU30HPB_BAKEQU32HPE_BAKEQU35HPF_BAKEQU36HJ;用于TIMER定时T1MS_CTEQU37HJF_T

11、IMEREQU39HFLAG1EQU3AHJ; Used for displayDISP_R1EQU3BHDISP_R2EQU3CHDISP_R3EQU3DHDISP_R4EQU3EHDISP_PTEQU3FH;AC值备份寄存器;PortB 数据备份寄存器;PortE 数据备份寄存器;PortF 数据备份寄存器;计数值=04H定时 1ms;bit0=1, 1ms 到;bit0=1, 按键未松开;第一位7段LED显示的字符;第二位7段LED显示的字符;第三位7段LED显示的字符;第四位7段LED显示的字符;位选指针.*程序.*ORG0000HJMPRESETRTNIJMPTIMER0_ISP;T

12、IMER0中断程序入口地址RTNIRTNI.*J; TIMER0 中断服务程序.*;备份AC值;清TIMER0中断请求标志;未到 1ms, 跳转;重置1ms计数器;设置 "1ms 到"标志;打开TIMER0中断;取出AC值TIMER0_ISP:STAANDIMJ1MS:SBIMBNZLDIORIMTIMER0_ISP_END:LDILDARTNIAC_BAK,00HIRQ,1011BT1MS_CT,01HTIMER0_ISP_ENDT1MS_CT,04HF_TIMER,0001BIE,0100BAC_BAK,00H.*J; 主程序.*JRESET:NOP;清用户寄存器POW

13、ER_RESET:LDILDILDIPOWER_RESET_1:LDIADIMLDIADCMBA3JMPPOWER_RESET_2:ADIMDPL,00HDPM,02HDPH,00HINX,00HDPL,01HTBR,00HDPM,00HPOWER_RESET_2POWER_RESET_3DPH,01HPOWER_RESET_3:SBIBNZSBIBNZDPH,01HPOWER_RESET_1DPM,04HPOWER_RESET_1;初始化系统寄存器SYSTEM_INITIAL:MAIN:;TIMERO初始化LDITMO,O7H;设置TIMERO预分频为/1LDITLO,O6HLDITHO,O

14、OH;设置中断时间为 25OusLDIT1MS_CT,O4H;定时1ms;I/O口初始化LDIPORTB,OOHLDIPBCR,OFH;设置PortB作为输出口LDIPORTE,OFHLDIPECR,OFH;设置PortE作为输出口LDIPORTF,OFHLDIPFCR,OFH;设置PortF作为输出口LDIIRQ,OOHLDIIE,O1OOB;打开TimerO 中断ADIF_TIMER,OOO1BBAOHALTMODE;未到1ms,跳转MAIN_PRE:;清 "1ms 到"标志ANDIMF_TIMER,1110B;加载显示数据(用于测试 7段LED显示模块)LDIDISP

15、_R1,O3HLDIDISP_R2,O7HLDIDISP_R3,O9HLDIDISP_R4,OFH*模块:4位7段LED显示模块* 输入变量:DISP_R1,DISP_R2,DISP_R3,DISP_R4* 使用变量:DISP_PT,TBR,PB_BAK,PE_BAK,PF_BAK* 输出变量:PORTB,PORTE,PORTF.*JDISPLAY:DISP_1:ADIMDISP_PT,01H;指针加一SBIDISP_PT,01HBAZDISP_11;显示位1 数码管,跳转SBIDISP_PT,02HBAZDISP_12;显示位2 数码管,跳转SBIDISP_PT,03HBAZDISP_13;

16、显示位3 数码管,跳转;显示位 4 数码管DISP_14:LDI LDI LDI LDA CALL STA LDA STA JMPDISP_PT,00HPB_BAK,0001BTBR,0FHDISP_R4,00H07EFHPE_BAK,00HTBR,00HPF_BAK,00HDISPLAY_END;指针清零;预设位选码;由字符查表得预设段选码的值;显示位 3 数码管DISP_13:LDIPB_BAK,0010B;预设位选码LDITBR,0FHLDADISP_R3,00HCALL07EFHSTAPE_BAK,00HLDATBR,00HSTAPF_BAK,00H;由字符查表得预设段选码的值JMPD

17、ISPLAY_END;显示位 2 数码管DISP_12:LDIPB_BAK,0100B;预设位选码LDITBR,0FHLDADISP_R2,00HCALL07EFHSTAPE_BAK,00HLDATBR,00HSTAPF_BAK,00H;由字符查表得预设段选码的值JMPDISPLAY_END;显示位 1 数码管DISP_11:LDIPB_BAK,1000B;预设位选码LDITBR,0FHLDADISP_R1,00HCALL07EFHSTAPE_BAK,00HLDATBR,00HSTAPF_BAK,00H;由字符查表得预设段选码的值JMPDISPLAY_ENDDISPLAY_END:LDIPORTB,00H;关闭显示LDAPE_BAK,00HSTAPORTE,00HLDAPF_BAK,00HSTAPORTF,00H;送出预设的段选码到 I/O 口LDAPB_BAK,00HSTAPORTB,00H;送出预设的位选码到 I/O 口,显示该位.*HALTMODE:NOPHALTNOPNOPNOPJMP MAIN.*JORG 07EFHTJMP;显示段选码数据表(共阳极)ORG 07F0H;dp g f e, d c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论