数码管动态显示.doc

上传人:牧羊曲112 文档编号:2773863 上传时间:2023-02-24 格式:DOC 页数:20 大小:446KB
返回 下载 相关 举报
数码管动态显示.doc_第1页
第1页 / 共20页
数码管动态显示.doc_第2页
第2页 / 共20页
数码管动态显示.doc_第3页
第3页 / 共20页
数码管动态显示.doc_第4页
第4页 / 共20页
数码管动态显示.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《数码管动态显示.doc》由会员分享,可在线阅读,更多相关《数码管动态显示.doc(20页珍藏版)》请在三一办公上搜索。

1、精选优质文档-倾情为你奉上课程设计报告书课程名称: 单片机原理及应用技术 课题名称:数码管动态显示专 业: 班 级: 学 号: 姓 名: 成 绩:2010年 6月 25 日设 计 任 务 书一、设计任务 数码管显示在当今社会用处很广泛!随着微控技术的日益完善和发展,单片机的应用在不断走向深入。它的应用比定导致传统的控制技术从根本上发生变革。也就是说单片机应用的出现是对传统控制技术的革命。因此了解单片机知识,掌握单片机的应用技术具有重大的意义。本文主要从计算机的应用上来实现数码管动态显示,是复杂程序的基本操作。二、设计方案及工作原理数码管是怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组

2、成8字形构成的,加上小数点就是8个。我们分别把他命名为A,B,C,D,E,F,G,H。 搞懂了这个原理, 我们如果要显示一个数字2, 那么 A,B,G,E,D这5个段的发光管亮就可以了。也就是把B,E,H(小数点)不亮,其余全亮。根据硬件的接法我们编出以下程序。当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个P2.7。LOOP:CLR P2.7 ;选中最后的数码管SETB P0.7 ;B段不亮SETB P0.5 ;小数点不亮SETB P0.1 ;C段不亮CLR P0.2 ;其他都亮CLR P0.3CLR P0.4CLR P0.6CLR P0.0JMP LOOP ;跳转到开始重新进

3、行END把这个程序编译后写入单片机,可以看到数码管的最后一位显示了一个数字2。目 录第一章、 系统设计要求和解决方案5第二章、 硬件实现7第三章、软件实现11第四章、实现的功能14第五章、 心得体会16附录一、参考文献18附录二、硬件原理图19附录三、程序流程图19专心-专注-专业第一章 系统设计要求和解决方案显示1个2字就要10多行程序,太麻烦了。显示数字2则是C,F,H(小数点)不亮,同时由于接法为共阳接法,那么为0(低电平)是亮 为1(高电平)是灭。从高往低排列,(p0.7_p0.0)写成二进制为, 把他转化为16进制则为A2H。我们可以根据硬件的接线把数码管显示数字编制成一个表格, 以

4、后直接调用就行了。 有了这个表格上面显示一个2的程序则可简化为:LOOP:CLR P2.7 ;选中左边的数码管MOV P0,#0A2H ;送数字2的代码到P0口JMP LOOP ;跳转到开始重新进行END 原理图中把所有数码管的6个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,由6个PNP的三极管,来控制这8位哪一位工作,例如上面的例子中我们选中的是P2.5.就是最后的一位亮了. 同样的如果要第一位亮, 只需要把程序CLR P2.5改为CLR P2.0即可。 在这里就有了一个矛盾, 所有数码管的

5、8个笔划段a-h同名端连在一起, 那么在一个屏幕上如何显示0,1,2,3,4,5这样不同的数字呢? 的确, 在这样的接法中,同一个瞬间所有的数码管显示都是相同的, 不能显示不同的数字。在单片机里,首先显示一个数, 然后关掉.然后显示第二个数,又关掉, 那么将看到连续的数字显示,轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。例如数码管显示这么6个数,在单片机中实际的工作流程如下:先打开P2.0,送0, 然后关掉P2.0,打开P2

6、.1送1, 再关掉P2.1,打开P2.2 送2 , 依次向下,由于速度足够快, 那么我们将连续的看到这8个数。第二章 硬件实现1.单片机的特点(1).控制功能强。(2).抗干扰性强,可靠性高,工作温度范围宽。(3).开发周期短,性价比高,易于产品化。 2.单片机的应用领域(1).智能化仪表。(2).实时工业控制。(3).机电一体化产品。(4).智能接口。(5).办公自动化。(6).商业营销。(7).家用电器。 核心器件:单片机系统采用atmel公司的AT89S51芯片,晶振选用12MHz,电源电压采用5V。 信号输出:有串行输出并行输出,共阳极数码管在输入为1是不亮,在输入为0时才亮利用这一原

7、理可以很简单的编出程序; (1)打开Keil程序,执行菜单命令“Project,然后,“New Project”创建“trafficlight”项目,并选择单片机型号为AT89C51。(2)执行菜单命令“File”,然后,“New”创建文件,输入汇编源程序,保存为“trafficlight.asm”在“Project”栏的File项目管理窗口中右击文件组,选择“Add Files to Group Source Group1”,将源程序“trafficlight.asm”添加到项目中。(3)执行菜单命令“Project,然后,“Options for Target Target 1”,在弹出的

8、对话框中选择”Output”选项卡,选中“Create HEX File”。在“Debug”选项卡中,选中“Use:Proteus VSM Simulator”。(4)执行菜单命令“Project”,然后,“Build Target”,编译源程序。如果编译成功,则在”Output Window”窗口中显示没有错误,并创建了“trafficlight.hex”文件。(5)在已绘制好原理图的Proteus ISIS菜单栏中,执行菜单命令“Debug”,然后,“Use Remote Debug Monitor”将该项选中,使”Debug”选中“Start/Stop Debug Session”,或直

9、接单击图标。(6)在Keil代码编辑窗口中设置相应断点,断点的设置方法:在需在设置断点语名的空白处双击鼠标左键,可设置断点;再次双击,可取消该断点。(7)设置好断点后,在Keil中按F5键运行程序。 程序如下: ORG 0000H AJMP MAIN ORG 0080HMAIN: CLR P2.0 ; 选中第一个数码管 MOV P0,#0C0H ;显示0 LCALL DELAY ; 调用延时 MOV P0,#0FFH ;关显示 SETB P2.0 CLR P2.1 ;选中第二个数码管 MOV P0,#0F9H ;显示1 LCALL DELAY MOV P0,#0FFH SETB P2.1 CL

10、R P2.2 ;选中第三个数码管 MOV P0,#0A4H ;显示2 LCALL DELAY MOV P0,#0FFH SETB P2.2 CLR P2.3 ;选中第四个数码管 MOV P0,#0B0H ;显示3 LCALL DELAY MOV P0,#0FFH SETB P2.3 CLR P2.4 ;选中第五个数码管 MOV P0,#99H ;显示4 LCALL DELAY MOV P0,#0FFH SETB P2.4 CLR P2.5 ;选中第六个数码管 MOV P0,#92H ; 显示5 LCALL DELAY SETB P2.5 MOV P0,#0FFH AJMP MAIN DELAY

11、:MOV R7,#20D1: MOV R6,#100D2: DJNZ R6,D2 DJNZ R7,D1 RET ENDc语言参考程序:#include /头文件#define uchar unsigned char /宏定义,为方便编程#define uint unsigned int#define DIGI P0 /宏定义,将P1口定义为数码管#define SELECT P2 /宏定义,将P2定义为数码管选择口uchar digivalue=0x28,0x7e,0x0a2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60;/显示的数字数组,依次为0,1,.,9uchar

12、 select=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; void delay() /延迟函数,决定数码管跳变的间隔时间 uchar ii=200; /若发现数码管闪烁,调节这里即可while(ii-);char code SST5163 _at_ 0x003b; /仿真器插入代码main() /主函数uchar i=0;while(1) for(i=0;i8;i+) /8个数码管轮流显示SELECT=selecti; /选择第i个数码管DIGI=digivaluei; /显示idelay(); 第三章 软件实现 在MCS-51系列单片机中,有2个系列:

13、子51系列和52子系列。每个系列有若干种型号。51系列有8051、8751、8031、87C51、和80C31。 我们以MCS-51系列单片机的典型型号80C51为例来介绍其结构和功能。MCS-51的内部结构框图如下: 分析上图,并按其功能部件划分可以看出,MCS-51系列单片机是由8大部分组成的。这8大部分是:1.一个8位中央处理器CPU(有成为微处理器)CPU的内部结构是有运算器和控制器组成,是单片机的核心部件。其中包括算术逻辑运算单元、ALU、累加器ACC、程序状态字寄存器PSW、堆栈指针SP、寄存器SP、寄存器B、程序计数器(指令指针)PC、指令寄存器IR、暂存器等部件。2.128个字

14、节的片内数据存储器RAM 片内数据存储器用于存放数据、运算结果。3.4KB的片内程序存储器ROM或EPROM 用于存放程序、原始数据和表格。现在的改进产品里一般都换成了Flash存储器。4.18个特殊功能寄存器SFR。 CPU内部包含了一些外围电路的控制寄存器、状态寄存器以及数据输入/输出寄存器,这些外围电路的寄存器构成了CPU内部的特殊功能寄存器。18个特殊功能寄存器SFR有3个是16位的,共占了21个字节。5.4个8位并行输入输出I/O接口。P0口、P1口、P2口、P3口(共32线),用于并行输入或输出数据。6.1个串行I/O接口,完成单片机与其他微机之间的串行通信 。7.2个16位定时器

15、/计数器T0、T1。8.一个具有5个(52子系列为6个或7个)中断源,2 个可编程优先级的中断系统。 它可以接收外部中断申请、定时器/计数器中断申请和串行口终端申请。 2.2 MCS-51单片机芯片引脚位置及功能符号如下图所示。 MCS-51系统的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图二是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。8951的抚慰方式可以自动复位,也可以是手动复位,见下图。除此之外,RESET/Vpd还是一复用脚,Vcc掉电其间

16、,此脚可以接上没用电源,以保证单片机内部RAM的数据不丢失。在编程时,EA/Vpp脚还需加上21V的编程电压 原理图:8个数码管它的数据线并联接到JP5, 位控制由8个PNP型三级管驱动后由JP8引出。相关原理:第四章 实现的功能 动态数码管显示可以用于很多行业。数码管可显示简单的字符和数字,由于其价格低廉、性能稳定、显示清晰、亮度高、使用电压低、寿命长,在工业生产、交通运输、仪器仪表及家用电器等场合得到广泛应用。然而,开发基于Nios的时,Builder开发工具中没有提供现成的数码管显示IP核,这使设计者工作量增加。这里把数码管控制器设计为一个共阴极(或共阳极)7段数码管动态显示IP核,并给

17、出此核的一个参考驱动程序。在系统设计中,可根据实际需求,把此核直接例化成18个共阴极(或共阳极)数码管显示控制器,控制18个共阴极(或共阳极)数码管工作,实现IP核重用,减少电子设计者的工作量,从而提高设计效率。2 LED数码管结构及驱动显示方式根据发光二极管的个数可将数码管分成7段数码管和8段数码管,8段数码管比7段数码管多一个用于显示小数点的发光二极管;根据内部连接形式可将数码管分成共阳数码管与共阴数码管,图1为数码管的外形及其内部结构图。数码管显示可以在测试行业应用,例如在测温 测压 测试度等行业!码管是一类显示屏 通过对其不同的管脚输入相对的电流 会使其发亮 从而显示出 数字 能够显示

18、 时间 日期 温度 等所有可用数字表示的参数 由于它的价格便宜 使用简单 在电器 特别是家电领域应用极为广泛 空调 热水器 冰箱 等等 绝大多数 热水器用的都是数码管 其他家电 也用液晶屏与 荧光屏第五章 心得体会通过这次课程设计,加强了我动手、思考和解决问题的能力。电路原理和连接,和芯片上的选择,也略懂。巩固数字逻辑电路的理论知识,并对芯片有了新的认识,懂得它的功能与其它芯片替换等. 更重要的是如何将逻辑电路灵活运用于实际生活。协作的重要性。我沉得做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些芯

19、片的功能,平时看课本,这次看了,下次就忘了,主要是因为没有动手实践过吧!认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。故一个小小的课程设计,对我们的作用是如此之大。通过本次课程设计,对单片机有了更进一步的了解和掌握,对I/O口的扩展,中断,定时/计数器等应用有了更深的体会。程序调试过程,使我平时所学的理论和实践相结合,切实提高了自己的动手能力。其实,我在开始做设计时,难度很大,很迷茫。不积跬步何以至千里,通过求助于许老师、理清了思路。同时,在图书馆里、网上查阅资料,攻克了设计中的道道难题。最后经过指导老师许老师的耐心指点和连续的奋战才算基本合格。本次设计我能和团队一起完

20、成,算是有了很大的收获。总的感受有以下几方面:(1)巩固了课本上的知识。通过本次设计,我不但对单片机有了更为深入的了解,对一个课题如何画流程图,编程序等,有了一定的认识。(2)在本次设计中,我进一步加强了自己的动手能力和运用专业知识的能力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案;特别是深刻体会到的是软件和硬件结合的重要性,以及两者的联系和配合作用。(3)通过本次设计,让我了解到交通灯控制技术对当今人们生活的重要性。同时这次做设计的经历也使我受益匪浅。让我知道做任何事情都应脚踏实地,刻苦努力地去做。本次设计中我用自己学到的知识完成代码,对单片机设计也有了新的认识,又

21、学到了在设计过程中的许多流程和该注意的事项,增强了电子产品开发的意识。促进我以后更好的学习,锻炼了自身的能力。附录一、参考文献【1】单片机的C语言应用程序设计 马忠梅 籍顺心 北京航空航天大学出版社2007【2】51单片机应用开发案例精选 王为青 邱文勋 人民邮电出版社 2007【3】51系列单片机设计实例 楼然苗 李广飞 北京航空航天大学出版社 2003【4】单片机原理与接口技术 胡汉才 清华大学出版社 2006【5】单片机原理与应用 丁元杰 机械工业出版社 2007 附录二、硬件原理图 原理图:8个数码管它的数据线并联接到JP5, 位控制由8个PNP型三级管驱动后由JP8引出附录三、程序流程图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号