数码管的动态显示设计与研究_第1页
数码管的动态显示设计与研究_第2页
数码管的动态显示设计与研究_第3页
数码管的动态显示设计与研究_第4页
数码管的动态显示设计与研究_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机课程设计报告电气与信息工程学院指导 老师: 张 橙班 级: 自动化072姓名: 廖岩学号: 07401100221日期: 2013年1月6日数码管的动态显示设计与研究一:概述动态显示主要就是利用人眼的视觉感来设计的,一般来说如果显示的频率过慢,则会有断断续续的显示;如果显示的频率加快,则人眼就分辨不出这种视觉残余!随着现代科学技术的不断地进步,人们已经走入了信息的高速时代。科学的力量日益强大,技术的更新的速度也更加加快了。计算机走进了千家万户,其中,单片机是一种应用十分广泛的单心片微型计算机,在我国的普及应用已有若干年,上至航天飞机,下至电动玩具,都能见到它的身影。单片机比专用处理器更适

2、合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过pc机和其他计算的综合,甚至比人类的数量还要多。 而本次单片机数码管动态显示设计中采用at89c52。 at89c52为8位通用微处理器,采用工业标准的c51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要

3、用于会聚调整时的功能控制。功能包括对会聚主ic 内部寄存器、数据ram及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号ir的接收解码及与主板cpu通信等。主要管脚有:xtal1(19 脚)和xtal2(18 脚)为振荡器输入输出端口,外接12mhz 晶振。rst/vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。vcc(40 脚)和vss(20 脚)为供电端口,分别接+5v电源的正负端。p0p3 为可编程通用i/o 脚,其功能用途由软件定义,在本设计中,p0 端口(3239 脚)被定义为n1 功能控制端口,分别与n1的相应功能管脚相连接,13 脚定义为ir输入

4、端,10 脚和11脚定义为i2c总线控制端口,分别连接n1的sdas(18脚)和scls(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板cpu的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 pdip封装的at89c52引脚图。二:硬件设计 设计要求p0端口接动态数码管的字形码笔段,p2端口接动态数码管的数位选择端,p1.7接一个开关,同时p2端端口接入右数码管显示器右端,p3端端口接入数码管显示器左端。当开关接高电平时,显示“521039113142”字样;当开关接低电平时,显示“hello,love”字样。 元器的选取 1:at89c52:单片机;

5、2:res:电阻;3:crystal:晶振;4:cap、cap-elec:电容、电解容; 5:respack-8:1k*8排阻;6:7seg-mpx6-cc:7段式6位共阴极数码管;7:button:按钮。 数码管动态显示原理图 led数码管显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,每个发光二极管称为一字段。因而它的控制原理和发光二极管的控制原理是相同的。根据各管的接线形式,可分成共阴极型和共阳极型。发光二极管的阳极连在一起,为一个公共端,这种显示器称为共阳极显示器。发光二极管的阴极连在一起,为一个公共端,这种显示器称为共阴极显示器。给led 数码管的七个发光二极管加不同的电平

6、,二极管显示不同亮暗的组合就可以形成不同的字形,这种组合称之为字形码。 程序设计内容 (1) 动态扫描方法:动态扫描采用各数码管循环轮流显示的方法,本例中,先让左边第一位数码管显示数字“5”,延时一定时间后,第二位显示“2”,以此类推,到第五位显示“2”后,又从“5”开始循环显示。由于循环显示频率较高时,利用人眼的暂留特性,我们看到这12个数码管仿佛在同时显示,而看不出闪烁显示现象。这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。需要注意一点,由于电路的特性,在点亮每一位数码管之前,一定要对整个数码管清屏(场消隐),即让所有位选信号都处于不被选中状

7、态。 (2)对于显示的字形码数据我们采用查表方法来完成,同样位选码也可以用查表的方法。请注意,由于一些一般资料中给出的字形码都没有包含“h”和“l”,的字形码,这时就需要我们可以自行推导出来。通过课本上数码管的介绍,我们可以得出“hello love”:0x76,0x79,0x38,0x38,0x3f,0x00(hell0的字形码);0x00,0x00,0x38,0x3f,0x3e,0x79(love的字形码)。三:软件设计1:程序<c语言源程序>(1) 首先选定的蓝本-数码管的动态显示的相关程序,如c语言源程序:#include <reg52.h>unsigned c

8、har code table1=0x06,0x5b,0x4f,0x66,0x6d;/1-5的字形码unsigned char code table2=0x76,0x79,0x38,0x38,0x3f;/hello的字形码unsigned char code table3=0xfe,0xfd,0xfb,0xf7,0xef;/位选码unsigned char i,a;sbit button=p17;/位定义,不能直接用p17void main(void)while(1)for(i=0;i<5;i+)p2=0xff;/清屏信号,必须使用if(button=1)p0=table1i;/对1-5的

9、字形码查表else p0=table2i;/对hello的字形码查表p2=table3i;/对位选信号查表for(a=248;a>0;a-);/字形显示延时,可调节通过认真的分析需求,要想在数码管上显示“521039113142”以及“hello love”的字样,就必须在main程序中增加2个量分别为:如下:unsigned char code table1=0x6d,0x5b,0x06,0x3f,0x4f,0x6f;/“521039的字形码.”unsigned char code table4=0x06,0x06,0x4f,0x06,0x66,0x5b;/“113142的字形码.”u

10、nsigned char code table2=0x76,0x79,0x38,0x38,0x3f,0x00;/“hell0的字形码.”unsigned char code table5=0x00,0x00,0x38,0x3f,0x3e,0x79;/“love的字形码。” 同时要改变一下循环变量for(i=0;i<6,i+)以便使得程序在单片机的执行中能够同时作用于数码管的显示,更为重要的是为了使新增的两个变量更好的参加于循环。如:for(i=0;i<6,i+)。 与此同时更为重要的是在for循环内部增加一个p3的字型码查表 ,以便能够在新增加的一个数码管中显示。如:if( but

11、ton = 1 )p0=table1i;/“521039对的字形码查表。”p3 = table4i;/“113142对的字型码查表。”p2=table3i;/“位选码。”最后才是对字符的显示“输出;else p0=table2i; /“对hello love中的的字形码查表。” p3= table5i;/“对hello love中的的字形码查表。” p2=table3i;/“对位选信号查表。” 最后可以结合上述分析需求得到完整的数码管动态显示程序:#include <reg52.h>unsigned char code table1=0x6d,0x5b,0x06,0x3f,0x4f

12、,0x6f;/“521039的字形码.”unsigned char code table4=0x06,0x06,0x4f,0x06,0x66,0x5b;/“113142的字形码.”unsigned char code table2=0x76,0x79,0x38,0x38,0x3f,0x00;/“hell0的字形码.”unsigned char code table5=0x00,0x00,0x38,0x3f,0x3e,0x79;/“love的字形码。”unsigned char code table3=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/“位选码。”unsigned c

13、har i,a;sbit button=p17;/“位定义,不能直接用p17。”void main(void)while(1)for(i=0;i<6;i+)p2=0xff;/“清屏信号,必须使用”。if( button = 1 )p0=table1i;/“521039对的字形码查表。”p3 = table4i;/“113142对的字型码查表。”p2=table3i;/“位选码。”else p0=table2i; /“对hello love中的的字形码查表。” p3= table5i;/“对hello love中的的字形码查表。” p2=table3i;/“对位选信号查表。”for(a=2

14、48;a>0;a-);/“字形显示延时,可调节。”数码管动态显示整体流程图 开始 yk1按键识别成功否?置显示“hell0love”字型码首地址12个数码管显示完否?延时2ms并指向下一个偏移量查表并送出显示置显示“521039113142”字型码首地址首地址置字型码偏移量和位选代码 n ynn调试及仿真的具体操作1:对keil的应用操作 第一步: 双击keil的桌面快捷方式,启动keil集成开发开发软件。软件启动后的界面。 第二步: 新建文本编辑窗。点击工具栏上的新建文件快捷按键,即可在项目窗口的右侧打开一个新的文本编辑窗。第三步:输入源程序。在新的文本编辑窗中输入源程序,可以输入c语

15、言程序,也可以输入汇编语言程序。第四步:保存源程序。保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”,如果是c语言程序,文件的扩展名使用“*.c ”(注:注:第3步和第4步之间的顺序可以互换,即可以先输入源程序后保存,也可以先保存后输入源程序。)第五步:新建立keil工程。点击 "工程" "新建工程" 命令,将出现保存对话框。第六步:选择cpu型号。如图8所示,为工程选择cpu型号,本新建工程选择了atmel公司的at89c52单片机。第七步:加入源程序到工程中。在选择好cpu型号后,点击"确定&qu

16、ot;按钮返回主界面,此时可见到工程管理窗中出现“target 1”,点击“target 1”前面的“”号展开下一层的“source group 1”文件夹,此时的新工程是空的,“source group 1”文件夹中什么文件都没有,必须把刚才输入的源程序加入到工程当中。如图9所示,右击工程管理窗中的“source group 1”,出现下拉菜单,点击“增加文件到组'source group 1'”命令,将出现添加文件对话框。第八步:工程目标'target 1'属性设置。如下图14所示,在工程项目管理窗中的"target 1"文件夹上右击,出

17、现下拉菜单,点击“目标'target 1'属性”命令,就进入目标属性设置界面 第九步:源程序的编译与目标文件的获得。由此生成了.hex 的文件才能够在isis的软件的制图中运行的。2:对proteus仿真软件的应用。启动proteus仿真软件,在原有的制图进行修改,如图:构建完成之后,在at89c52元件上双击鼠标左键打开edit component 对话框。设置program file为“动态显示.hex”,clock frequency为12mhz。单击ok按钮关闭对话框。单击仿真运行开始按钮,在没有用鼠标按下“button”键时,显示如图:而按下“button”键时,则会

18、出现:“hello l0ve”字样 通过对原有的数码管动态显示研究,以及对原有的硬件和软件的改进和重新的设计、执行,才使得新的设计方案得以成功的实施和实现。四:设计总结或设计体会 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 单片机作为我们的主要专业课之一,虽然在大三开学初我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程

19、设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。没想到这项看起来不需要多少技术的工作却是非常需要耐心和精力在两个星期后的今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多! 在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。 其次,在这次课程设计中,我们运用到了以前所学的专业课知识,虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为

温馨提示

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

评论

0/150

提交评论