




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华南理工大学广州汽车学院单片机课程设计题目:8位8段LED数码管动态扫描专业:电子信息工程 班级:09电信(1)班姓名:付锦辉学号:200930062745一、内容要求:在8位8段LED数码管显示“8.8.8.8.8.8.8.8.”持续500ms,之后灭显示器200ms;然后显示 “WELCOM-1”(由于8位8段LED数码管显示不能显示字母W和M,所以改为显示“HELLO-93”)二、目的和意义1、 掌握数码管动态扫描显示原理及实现方法。2、 掌握动态扫描显示电路驱动程序的编写方法。三、总体方案设计思路LED数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,再选通相
2、应的数码管后,即显示字段上得到显示字形码。这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。其接口电路是把所有显示器的8个笔画段A-DP同名端并联在一起,而每个显示器的公共极COM各自独立地接受I/O线控制,CPU向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。再轮流点亮扫描过程中,每位显
3、示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是一组稳定的显示数据,不会有闪烁感。采用总线驱动器74HC245提供LED数码管的段驱动,输出高电平时点亮相应段;采用集电极开路的BCD-十进制译码器/驱动器完成LED数码管位驱动,输出低电平时选通相应位。P2口每个口线输出灌电流不足以驱动一个数码管显示器的位-公共极,所依通过集电极开路的BCD-十进制译码器/驱动器7445驱动,即节约P2口线,又增加驱动能力。四、仿真电路设计(电路原理图及关键单元说明)8位8段LED数码管动态扫描显示实验
4、电路8位8段LED数码管动态扫描显示实验电路元件清单元器件编号元器件名称说明U1AT89C52AT89C52单片机U27445集电极开路bcd-十进制译码器/驱动器U374HC2458位总线驱动器RP1RESPACK8具有公共端得排电阻7SEG-MPX8-CC-BLUE共阴极8位7段LED蓝色显示器关键单元:(1)AT89C52AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央
5、处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。(2)集电极开路bcd-十进制译码器/驱动器 7445:五、设计程序:#include <intrins.h>#include <REGX52.
6、H>#define TURE 1#define dataport P0 /*定义p0为段输出口*/#define ledConPort P2 /*定义p2为位输出口*/unsigned char code ch8=0x76,0x79,0x38,0x38,0x3f,0x40,0x6f,0x4f; /*HELLO-93'对应的值*/unsigned char code ch9=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f; /*LED灯08译码*/void time(unsigned int ucMs);/延时单位:msvoid main(
7、void) unsigned char i,counter=0; /*各LED灯状态值数组的索引*/ for(i=0;i<30;i+)/1,显示"8.8.8.8.8.8.8.8.",即点亮显示器所有段,持续约500ms; for(counter=0;counter<8;counter+) ledConPort=counter; dataport= 0xff; /*点亮选中的LED灯*/ time(5); /*延时5ms*/ ledConPort=0xff; time(200); /2、灭显示器,持续约200ms while(TURE) /3、显示"HE
8、LLO-93",保持. for(counter=0;counter<8;counter+) ledConPort=counter; dataport= chcounter; /*点亮选中的LED灯*/ time(5);/*延时5ms*/ void delay_5us(void)/延时5us,晶振改变时只改变这一个函数! _nop_(); _nop_(); /_nop_(); /_nop_();/* delay_5ous */void delay_50us(void) unsigned char i; for(i=0;i<4;i+) delay_5us(); /* 延时10
9、0us */void delay_100us(void)/延时100us delay_50us(); delay_50us();/* 延时单位: ms */void time(unsigned int ucMs)/延时单位: ms unsigned char j; while(ucMs>0) for(j=0;j<10;j+) delay_100us(); ucMs-; 六、仿真调试:在仿真过程中,用Proteus画图软件并没什么大的问题,都是很简单的操作,用keil编写程序是有很多错误,修改了很多次。七、实际目标时情况:在8位8段LED数码管显示“8.8.8.8.8.8.8.8.”
10、持续500ms,之后灭显示器200ms;然后显示 “WELCOM-1”,在老师的要求的课程设计的题目中,要求显示的是“WELCOM-1”但是实际上8位8段LED数码管显示不了字母W和M,所以我最后参考实验书显示“HELLO-93”。 八、课程设计心得体会:课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我仍感慨颇多,的确
11、,从选题到定稿,从理论到实践,在这努力的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机掌握得不好,还有就是C语言,还是需要努力学习通过这次课程设计之后,一定把以前所学过的知识重新温故。课程设计真的有点累然而,当我一着手清理自己的设计成果,漫漫回味这几周的心路历程,一种少有的成功喜悦即刻使倦意顿消虽然这是我刚学会走完的第一步,也是人生的一点小小的胜利,然而它令我感到自己成熟的许多,另我有了一中”春眠不知晓”的感悟 通过课程设计,使我深深体会到,干任何事都必须耐心,细致课程设计过程中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论