ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:271.29KB ,
资源ID:25476321      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25476321.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(本科毕业设计论文proteus仿真动态数码管时钟仿真.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

本科毕业设计论文proteus仿真动态数码管时钟仿真.docx

1、本科毕业设计论文proteus仿真动态数码管时钟仿真Proteus仿真论文题目:动态数码管时钟仿真 院 系 内蒙古大学鄂尔多斯学院 专业名称 自动化 学生姓名 吴启民 学 号 0135124180 2016年6月30日摘要 AT89C52是一个低电压,高性能CMOS8位单片机,在proteus仿真中,单片机采用定时器中断方法,制作一个简易时钟,要求用定时器实现精确定时,使用数码管动态显示,完成时钟的秒走时显示。本课程设计是利用两位共阴极数码管显示数字59,然后每隔1s顺序-1,减到00时,再循环从59-00。关键词 单片机 仿真 数码管目 录1、绪论 11.1背景介绍 11.2 AT89C52

2、单片机 11.3 Proteus使用介绍 31.4 动态数码管设计任务与要求 42、硬件设计 52.1 单片机最小系统 52.2 数码管显示部分 52.3 数码管驱动部分 63、软件设计 73.1 仿真原理图 83.2 仿真参数设置 83.3 仿真结果 94. 总结 105.参考文献 116.附录 13附录1 程序代码 131、绪论1.1背景介绍随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机

3、应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。来自英国Labcenter Electronics公司的Proteus软件很好地诠释了利用现代EDA工具方便快捷开发单片机系统的优势。它包括PROTEUS VSM(Virtual System Modelling)、PROTEUS PCB DESIGN两大组成部分,在PC机上就能实现原理图电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证以及形成PCB文件的完整嵌入式系统设计与研发过程。

4、本文讲述PROTEUS VSM单片机系统的PROTEUS设计与仿真功能,图1-2为基于PROTEUS仿真软件的单片机系统设计流程,它极大地简化了设计工作,得到众多设计师的青睐1.2 AT89C52单片机 下图分别为PDIP封装的AT89C52引脚图和实物图图1.1 引脚图 图1.2 实物图AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52

5、单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。本课程设计中使用的是PDIP封装的AT89C52单片机。1.3 Proteus使用介绍 如图1.3为Proteus7.0的工作界面图 图1.3Proteus

6、软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/1

7、8/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。 Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:1原理布图2PCB自动或人工布线3SPICE电路仿真革命性的特点1互动的电路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。2仿真处理器及其外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理

8、图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境. 在学习单片机的过程中Proteus软件可以很好地代替开发板进行仿真实验,可以使学生比较灵活多样化的学习单片机。1.4 动态数码管设计任务与要求课程设计功能:单片机采用定时器中断方法,制作一个简易时钟,要求用定时器实现精确定时,使用数码管动态显示,完成时钟的秒走时显示。本课程设计是利用两位共阴极数码管显示数字59,然后每隔1s顺序-1,减到00时,再循环从59-00.2、硬件设计2.1 单片机最小系统 图2.1单片机的最小系统是指使单片机能运行程

9、序、正常工作的最简单电路系统,是保证单片正常启动、开始工作的必须电路,缺一不可。单片机最小系统一般由单片机、程序存储器、时钟电路和复位电路组成,它是单片机开发板中的核心部分。 时钟电路:其核心部分是晶振,晶振的作用是为系统提供基本的时钟信号。简单地说,没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。这里选用12MHZ晶振,便于产生精确的uS级时歇,方便定时操作。 复位电路:当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行(这里不加也可以)。2.2 数码管显示部分 如图2.2所示 图2.2数码管有共阴极数码管和共阳极数码管

10、两种(这里选用两位共阴极数码管),如图2.2(b)所示,根据数码管的驱动方式的不同,可以分为静态式和动态式两类,这里只介绍动态方式。 动态显示:将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动

11、。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。2.3 数码管驱动部分这里使用74HC573来控制数码管的显示,如图2.3所示 74HC573是拥有八路输出的透明锁存器,输出为三态门,是一种高性能硅栅CMOS器件。当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。它是数码管显示时通常是采用段

12、选、片选共用同一组并口的驱动方式。驱动数码管需要两个信号,一个是段选信号,一个是片选信号。段选信号是固定的8个(对于普通7段数码管),而片选信号数量是与数码管位数相同的。对于8位数码管的动态扫描来说,片选信号要8根线,这样仅仅驱动数码管就占用了2组共16个IO口,非常浪费使用573锁存器后,只占用8+2=10个IO口,其中2个用于控制锁存器使能,另外8个输出信号。先关闭控制片选信号的573芯片的锁存功能,然后单片机输出片选信号,随后开启锁存,此时无论573的输入端如何变化,输出端都是不变的,也就是原来输入的信号被锁住了。然后,再关闭控制段选的573的锁存功能,输出段选信号,再锁存,这样就巧妙的

13、实现了数据线的复用,让一组IO口既输出段选又输出片选3、软件设计3.1 仿真原理图如图3.1所示 图3.1由51单片机P0口接上拉电阻通过锁存器74HC573控制共阴极数码管段选,P1口控制数码管位选,P21控制74HC573使能端。3.2 仿真参数设置如下列表格3.2所示 元器件编号元器件名称元器件参数说明U1AT89C52AT89C52单片机U274HC573三态锁存器RP1排阻10K上拉排阻DSP共阴极共阴极红色显示C1/C2/C3电容30pF,30pF,10uF负载等R1电阻10K接地S按钮复位电路用表3.2两位共阴极数码管动态扫描显示实验电路元器件及参数值3.3 仿真结果如图3.3

14、图3.3经过多次试验,调试后现象正常,实现功能为:数码管从59秒开始-1,减到0后,重新开始从59循环-1.4. 总结通过这次课程设计,我真的学到了很多,接触到了平时难以接触或者常常忽视的东西。在编辑好程序后,我在用Proteus仿真之前用拥有相同性质和原理的开发箱检验过,结果正常,可是在我用Proteus进行仿真时,发现延时较长数码管会一个一个数码管的显示,情况不正常;缩短延时时间后,数码管却显示的是乱码,围绕这个问题我调试了原理图,程序都换过,可就是行不通,后来通过查阅资料才知道原来软件仿真与硬件试验是有一定差别的,这里一定要进行延时,消隐才可以,终于经过一个多星期的奋战顺利完成了本次课程

15、设计。在此,我非常的感谢我的指导老师,感谢他在整个课程设计中给予我的无私帮助,同时也感谢同学在使用proteus软件时给予的帮助,正是由于老师和同学的热心帮助,我才知道自己的不足,才知道怎么才能及时发现问题并更好的去解决问题,相信通过这次课程设计中,在今后的学习,我会更加注重理论知识与实践的结合,团队合作等。5.参考文献1 吴杰.基于ISP 技术的电子公告牌系统J.科技资讯2008.NO.14:83-87.2 万光毅.单片机实验与实践教程M.北京航空航天大学出版社.2005.1.3 张毅刚.单片机原理及应用M.高等教育出版社.2003:160-190.4 马忠梅.单片机的C 语言应用程序设计M

16、.北京:北京航空航天大学出版社.20065 周润景.基于Proteus的电路与单片机仿真系统设计与仿真M.北京航空航天大学出版社. 2005.6 金炯泰,金奎焕. 如何使用KEIL8051C编译器M . 北京航空航天大学出版社.2002.6.附录附录1 程序代码#include#define uint unsigned int#define uchar unsigned charsbit LE=P20; /定义使能端uchar num,shi,ge,t0;bit flag;uchar code table =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7

17、f,0x6f;void display();void delay(uint z) /延时函数 uint i,j; for(i=z;i0;i-) for(j=50;j0;j-);void main() num=60; TMOD=0x01; TH0=(65536-50000)/256;/定时器赋初值 TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; while(1) if(flag=1) flag=0; num-; if(num=-1) num=59; shi=num/10; ge=num%10; display(); void timer0() interrupt 1 uchar t0; TH0=(65536-50000)/256;/定时器重装初值 TL0=(65536-50000)%256; t0+; if(t0=20) t0=0; flag=1; void display()/显示函数 LE=0; P0=tableshi; LE=1; LE=0; P1=0x7f; LE=1; delay(10); P0=0x00; /消隐(至关重要,否则会显示乱码) LE=0; P0=tablege; LE=1; LE=0; P1=0xbf; LE=1; delay(10); P0=0x00; /消隐(至关重要,否则会显示乱码)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1