欢迎来到天天文库
浏览记录
ID:6896970
大小:168.50 KB
页数:7页
时间:2018-01-30
《单片机原理实验led数码管显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、电子信息工程系实验报告成绩:课程名称:单片机原理及接口(应用)指导教师(签名):实验项目名称:实验3LED数码管显示实验实验时间:2011.11.4班级:电信092姓名:学号:实验目的:熟悉keil仿真软件、proteus仿真软件、软件仿真板的使用。了解并熟悉一位数码管与多位LED数码管的电路结构、与单片机的连接方法及其应用原理。学习proteus构建LED数码管显示电路的方法,掌握C51中单片机控制LED数码管动态显示的原理与编程方法。实验环境:Window7Keil2仿真软件实验原理:1、LED显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LE
2、D,这种显示器有共阴极与共阳极两种,如图1。afbegcddp12345109876gfabedcdp(a)共阴极(b)共阳极(c)管脚配置图LED显示器图1共阴和共阳显示原理共阴极LED显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发光二极管则点亮;共阳极LED显示器的发光二极管阳极并接。下面简单举共阴数码管显示“1”为例“三步骤”说明其原理:7第页共7页(1)要显示“1”b、c两个灯是亮的;(2)因为其为共阴,所以b、c应该取1才亮;(3)所以dp、g、f、e、d、c、b、a分别为00000110B即0x06。2、LED显示器有静态显示与动态显示两种方式
3、:(1)LED静态显示方式。各位LED的位选线连在一起接地或接+5V;每位LED的段选线(a-dp)各与一个八位并行口相连;在同一时间里每一位显示的字符可以各不相同。图2四位静态LED显示器电路(2)LED动态显示方式。将所有LED的段选线并联在一起,由一个八位I/O口控制,而位选线分别由相应的I/O口线控制。如:8位LED动态显示电路只需要两个八位I/O口。其中一个控制段选码,另一个控制位选。动态显示三部曲:图3八位LED动态显示器电路由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,多位LED7第页共7页只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描
4、显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I/O口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。3、用Proteus仿真软件画出其电路图,用到的元器件有:AT89C51RB2、CAP、7SEG-MPX8-CC-BLUE、CRYSTAL、RES、RESPACK-8、B
5、UTTON及电源和接地。图如3所示:图3proteus原理图实验内容及过程:一、用仿真软件构建一个8位的LED数码管显示电路,然后在左边第5位显示“A”(1)、启动Keil仿真软件后,点击Project菜单新建项目(newproject),给项目取个文件名;(2)、新建项目后,选择仿真单片机型号,并新建、保存、然后加入程序文件(addfilestogroup“sourcegroup”),然后输入以下程序:#include"reg51.h"main(){P2=0Xef;//位选P0=0X77;//段选}7第页共7页(3)、程序写好后,进行连接、编译、生成hex文件,如图4、图5
6、所示:图4单击Output,然后点击creathexFi:图5生成led.Hex文件(4)、打开用proteus仿真软件画出的电路图,导入hex文件,运行结果得到如图6所示:图6数码管显示‘A’二、用仿真软件构建一个8位的LED数码管显示电路,然后在左边第3位循环显示“1-8”。(1)、同样执行第一步中(1)、(2),然后输入以下程序(程序省略了延时程序):#include"reg51.h"unsignedcharled[8]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};main(){unsignedchari;while(1){for
7、(i=0;i<8;i++){P2=0xfb;P0=led[i];delay(1000);}}}7第页共7页(2)、程序编好后进行编译,生成hex文件,然后导入proteus电路图中,结果显示如图7所示(图中只截取其中的三副图):图7第三位循环显示1-8三、用仿真软件构建一个8位的LED数码管显示电路,然后在数码管上"同时“显示1-8”(1)、同样执行第一步的(1)、(2)然后输入以下程序(程序省略延时函数):#include"reg51.h"unsignedcharled[8]={0x06,0x5b,0
此文档下载收益归作者所有