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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于proteus的数字电子钟的仿真设计Word格式.docx

1、2015年5月24六、4基于Proteus的数字电子钟的设计与仿真1、设计目的与要求 设计目的:通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。设计要求:设计一个时、分可调的数字电子钟、开机显示“9-58-00”。2、设计内容与方案制定具有校时功能,按键控制电路其中时键、分键两个键分别控制时、分时间的调整。按分键分加1;按时键时加1。以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。3、设计步骤 1、硬件电路设计.硬件电路组成框图 电源 晶振电

2、路 显示电路AT89C52复位电路 按键控制电路.各单元电路及工作原理(1)晶振电路 单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中AT89C51单片机采用内部时钟方式。采用外接晶体和电容组成的并联谐振回路。其电路图如下:(2)键盘控制电路 键盘可实现对时间的校对,用两个按键来实现。按时键来调节小时的时间,按分键来调节分针的时间。其电路连接图如下:(3)显示电路LED显示器是现在最常用的显示器之一发光二极管(LED)分段式显示器由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。显示电

3、路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,其硬件连接方式如下图所示。.绘制原理图 其计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。整个设计图由晶振电路、复位电路、AT89C51单片机、键盘控制电路组成。 显示电路将“时”、“分”、“秒”通过七段显示器显示出来,6个数码管的段选接到单片机的P0口,位选接到单片机的P2口。数码管按照数码管动态显示的工作原理工作。 把定时器定时时间设为50ms,则计数溢出20次即得时钟计时最小单位秒,而20次计数可用软件方法实现,每累计60秒进1分,每累计60分钟,进1小时。时采用24进制计

4、时器,可实现对一天24小时的累计。 校时电路时用来对“时”、“分”显示数字进行校对调整,时分秒三个控制键分别接单片机的、进行控制。按一下分键秒单元就加1 ,按一下时键分就加1。.元件清单列表单片机AT89C51*1电解电容CAP-ELEC 10uF瓷片电容CAP 22pF*2电阻RES*10晶振CRYSTAL 数码管7SEG-MPX8-CA-BLUE三极管NPN*8按钮BUTTON*3上位排阻RESPACK-8 2.程序设计程序程序 数字电子钟采用内部硬件定时器来进行定时,计时最小单位sec100为10ms。若sec100每计满100次时,表示已经计时1s,则sec100清零且sec加1。如果

5、sec等于60,应将sec清零,同时min加1。如果min等于60,应将min清零,同时hour加1。如果hour大于23时,应将hour清零。通过分析可知,程序中可分别由inc_sec()、inc_min()、inc_hour()这是三个函数负责秒、分、时的计时。Sec100的计时由Timer0()中断函数来实现。 按钮K1(INT0)和K1(INT1)为调时、调分控制按键。这两个按钮信号的输入采用外部中断方式来实现。若产生外部中断时,通过调用inc_hour()或inc_min()函数来实现调时或调分操作。编写显示函数display()时,应考虑小时数小于10时,应屏蔽时的十位数,使其不显

6、示。汇编程序c语言编写的程序如下:#include#define uchar unsigned char#define unit unsigned intsbit k1=P32;sbit k2=P33; uchar tab=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF; uchar dis_buff8; uchar sec100,sec,min,hour; void delay(unit k) unit m,n; for(m=0;mk;m+) for(n=0;n9) P

7、2=0x01; else P2=0X00; P0=tabdis_buff7; void disp_data(void) dis_buff7=hour/10; dis_buff6=hour%10; dis_buff5=16; dis_buff4=min/10; dis_buff3=min%10; dis_buff2=16; dis_buff1=sec/10; dis_buff0=sec%10;void inc_hour(void) hour+;23) hour=0;void inc_min(void) min+; if(min59) min=0; inc_hour();void inc_sec(

8、void) sec+; if(sec sec=0; inc_min();void int0()interrupt 0 delay(100); if(INT0=0)void int1()interrupt 2void timer0()interrupt 1 TH0=0xDC; TL0=0x00; sec100+; if(sec100=100) sec100=0; inc_sec();void int_init(void) TMOD=0x01; TR0=1; ET0=1; EX0=1; IT0=0; EX1=1; IT1=0; EA=1;void main(void) int_init(); P0

9、=0xFF; P2=0x00; hour=9; min=58; while(1) disp_data(); display();四、调试与仿真打开keil程序,创建“数字电子钟”项目,输入c语言源程序,保存为“数字电子钟.c”。在项目管理窗口中选中文件组,单击鼠标右键,在弹出的菜单中选择“Add File to GrouSource Group1”,添加源程序“数组电子钟.c”到项目组。执行命令“Project”-”Build Target”,编译源程序,如果编译成功,则在输出窗口中显示没有错误,并创建了”数字电子钟.hex“文件。在已绘制好原理图的Proteus ISIS中,双击单片机,在弹

10、出的对话框选择“数字电子钟.hex”。开始仿真,刚运行时1,数码管显示“9-80-00”,而后每隔1s进行累计显示,如图所示,每按一次K1时,小时数会加1,每按一次K2时,分钟数加1。5、心得体会 按分键对分进行调整,按一下加一分;按时键对时进行调整,按一下加一小时,从而达到快速设定时间的目的。若满足以上要求则符合方案要求。若按一下连续加若干位,则按键延时时间设置太短,可以通过增大延时时间进行改进。 通过本次仿真设计,基本掌握了简单的单片机应用设计,以及proteus仿真设计,数字电子钟设计比较简单,以后应多注意设计方面的问题并解决。6、参考文献 1陈中平、基于proteus的51系列单片机设计与仿真(第二版)、电子工业出版社.2012. 2谭浩强、C程序设计(第四版)、清华大学出版社.2010.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2