实验四数码管显示_第1页
实验四数码管显示_第2页
实验四数码管显示_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、实验四数码管显示1.驱动原理数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极.通过解码电路得到的数码接通相应的发光二极而形成相应的字,这就是它的工作原理.基本的半导体数码管是由7个条状的发光二极管(LED按图1所示排列而成的,可实现数字"09"及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个LED组成,我们分别把这些发光二极管命名为"a,b,c,d,e,f,g,dp”,排列顺序如下图1。图1:数码管引脚图及外形图2.数码管的结构及分类特别提示:注意段码和位码的概念;会找出不同接法的段码分析方法。数码管按各

2、发光二极管电极的连接方式分为共阳数码管和共阴数码管两种共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)勺数码管。共阴数码管在应用时应将公共极CO呢到地线GNE±,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。共阴数码管部连接如图3所示。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)勺数码管。共阳数码管在应用时应将公共极CO戚到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阳数码管部连接如图2所示。abcc”ff1ef5h"V

3、PFc共阴极T)GNU段数码管图2:共阳数码管部连接图图3:共阴数码管部连接图R示字铮共阴H示字符03FHCOHC39HCCHI(MHF9HD5EHA1H25EHA4EE79HS6H34fHBUHF71Hi£4H4的HHP73HOH56DHU3EHC1H6TDHS2HI31HCEH1D1HF3Hy6EH9】H87fHSOH&FFHMHg6FHPOMOOHFFHhTH曲I-BTCH83H七段LED的段选码、多位数码管的驱动方法A.静态法I/叩)_123)_1/吒1)1I111/7F5¥*GNTl/+FV/uGWD/45V四位静态IED昱示器电路静态显示驱动:静态驱动也

4、称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BC则二-十进制译码器洋码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5X8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。送数后可保持B.动态扫描法DikVV妃k1/0(2)八位LED动态显示器电路动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔戈U"a,b,c,d,e,f,g,

5、dp"的同名端连在一起,另外为每个数码管的公共极COM曾加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决丁单片机对位选通CO啦电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的CO唏,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12m§由丁人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示

6、数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。注意:需要不停送数。实验任务一:静态扫描显示在数码管上循环显示0000至9999。打开锁存器74HC57额存端,使数码管和P0口直通,向P0口送段码,打开数码管位选。(1) 注意:若P0口只需要用数码管功能,则锁存器573可以为直通方式若P0口需要数码管和其它器件复用,则需要用上573的锁存功能硬件的连接图(2)(3)(4)实验目的:学会对数码管静态显示操作实验步骤分析设计容,设计软硬件设计方法编写C语言'代码编译代码下载可执行文件硬件调试观察现象程序源码:/*#include"re

7、gx52.h"#defineucharunsignedchar#defineuintunsignedint头文件*/共阴显示子码ucharcodedispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/09/第一位第二位第三位第四位sbitLOCK=P1A0;sbitD1=P1A1;sbitD2=P1A2;sbitD3=P1A3;sbitD4=P1A4;/定义锁存端数码管位选数码管位选数码管位选数码管位选毫秒级延时函数*/*voiddelayms(uintms)(ucharb;while(ms-)(for(b=0;b&l

8、t;125;b+);/*主函数*/voidmain()(uinti;LOCK=1;/高电平通,低电平锁此程序因为不复用端口,所以让它全通D1=0;/依次打开全部数码管位选D2=0;D3=0;D4=0;while(1)(for(i=0;i<9;i+)(P0=dispcodei;/向P0口送段码delayms(1000);/延时1S(6) 现象数码管循环显示00009999=(7) 扩展任务设计09自减器用数码管静态显示。实验任务二:动态扫描显示分别在各位上,显示7、6、5、4四个数,然后依次关闭显示,如此反复硬件的连接图(1) 实验目的:学会对数码管的基本操作(2) 程序设计容打开锁存器7

9、4HC573锁存端,使数码管和P0口直通,向P0口送段码,依次打开数码管位选,延时1S再依次关闭位选,如此往复循环。注:若P0口只需要用数码管功能,则锁存器573可以为直通方式;若P0口需要数码管和其它器件复用,则需要用上573的锁存功能(3) 程序流程图:(4) 程序源码:/*#include"regx52.h"#defineucharunsignedchar#defineuintunsignedint头文件*/ucharcodedispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/09共阴显示子码sbit

10、LOCK=P1A0;sbitD1=P1A1;sbitD2=P1A2;sbitD3=P1A3;sbitD4=P1A4;/定义锁存端数码管位选数码管位选数码管位选数码管位选第一位第二位第三位第四位/*voiddelayms(uintms)ucharb;while(ms-)for(b=0;b<125;b+);毫秒级延时函数*/*voidmain()LOCK=1;主函数*/高电平通,低电平锁此程序因为不复用端口,所以让它全通while(1)(D1=0;P0=dispcode8;delayms(1000);D1=1;delayms(1000);D2=0;依次打开全部位选把数组的第八位(7)取出来赋

11、给P0P0=dispcode7;把数组的第七位(6)取出来赋给P0delayms(1000);D2=1;delayms(1000);把数组的第六位(5)取出来赋给P0把数组的第五位(4)取出来赋给P0D3=0;P0=dispcode6;delayms(1000);D3=1;delayms(1000);D4=0;P0=dispcode5;delayms(1000);D4=1;delayms(1000);(5) 现象DI显示7延时1s,关闭延时1s;D2显示6延时1s,关闭延时1s;D3显示5延时1s,关闭延时1s;D4显示4延时1s,关闭延时1s;(6) 扩展任务拉布显示8765->765

12、4->6543->5432->4321->3210->2108如此循环。实验任务三:数码管动态扫描使用进阶09999自加器,满9999活0重新计数。(1) 硬件连接图如上(2) 实验目的:学会对数码管的更进一步的控制(3) 程序设计容本实验使用了定时器0中断完成4位数码管的显示。注意:若P0口只需要用数码管功能,则锁存器573可以为直通方式;若P0口需要数码管和其它器件复用,则需要用上573的锁存功能。实验步骤分析设计容,设计软硬件设计方法编写C语言'代码编译代码下载可执行文件硬件调试观察现象(4) 程序源码:/*头文件*/#include"re

13、gx52.h"#defineucharunsignedchar#defineuintunsignedintucharcodedispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/09共阴显示子码ucharcodedispbit=0xfd,0xfb,0xf7,0xef;P11,数码管位选码,低电平为选通,分别是P12,P13,P14uchardispbuf=""uintnum=0;计数变量ucharcont=0;显示偏移量uchari=0;计时变量sbitLOCK=P1A0;定义锁存端/*voidde

14、layms(uintms)ucharb;while(ms-)for(b=0;b<125;b+);毫秒级延时函数*/*voidmain()LOCK=0;IE=0X82;TMOD=0X01;TL0=(65536-5000)%256;TH0=(65536-5000)/256;TR0=1;while(1)num+;if(num=10000)num=0;*/数码管直通/EA=1ET0=1打开总中断打开定时器/T0方式28位定时器自动重装定时5MS启动定时器T0大循环计数变量自增满10000活0(数码管最大显示9999)0中断dispbuf3=num/1000%10;分离千位,放缓冲区dispbufdispbuf2=num/100%10;分离白位dispbuf1=num/10%10;分离十位dispbuf0=num/1%10;分离个位delayms(50);延时50MS(时间自定)*/*定时器0的中断服务程序利用中断服务函数,完成4位数码管的显示voidtimetodisplay()interrupt1/定时器T0定时5MSTL0=(65536-5000)%256;TH0=(65536-5000)/256;P0=dispcoded

温馨提示

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

评论

0/150

提交评论