数电课程设计基于AT89S51单片机的 多功能数字钟的设计_第1页
数电课程设计基于AT89S51单片机的 多功能数字钟的设计_第2页
数电课程设计基于AT89S51单片机的 多功能数字钟的设计_第3页
数电课程设计基于AT89S51单片机的 多功能数字钟的设计_第4页
数电课程设计基于AT89S51单片机的 多功能数字钟的设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计任务书学生姓名: * 专业班级:电子科学与技术0803班指导教师: * 工作单位: 信息工程学院 题 目: 多功能数字钟的设计 初始条件:本设计既可以使用集成译码器、计数器、定时器、脉冲发生器和必要的门电路等。本设计也可以使用单片机系统构建多功能数字钟。用数码管显示时间计数值。要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。2、技术要求: 设计一个数字钟。要求用六位数码管显示时间,格式为00:00:00。具有60进制和24进制(或12进制)计数功能,秒、分为60进制计数,时为24进制(或12进制)计数。有译码、七段数码显示功能,

2、能显示时、分、秒计时的结果。设计提供连续触发脉冲的脉冲信号发生器,具有校时单元、闹钟单元和整点报时单元。确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。3、查阅至少5篇参考文献。按武汉理工大学课程设计工作规范要求撰写设计报告书。全文用a4纸打印,图纸应符合绘图规范。时间安排:1、 2010 年 6 月 28 日集中,作课设具体实施计划与课程设计报告格式的要求说明。2、 2010 年 6 月 29 日,查阅相关资料,学习电路的工作原理。2、 2010 年 6 月 30 日 至 2010 年 7 月 1 日,方案选择和电路设计。2、 20

3、10 年 6 月 30 日 至 2010 年 7 月 1 日,电路调试和设计说明书撰写。3、 2010 年 7 月 2 日上交课程设计成果及报告,同时进行答辩。课设答疑地点:鉴主13楼电子科学与技术实验室。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘要数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。本文基于单片机技术原理,以单片机at89s51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个数字时钟系统。本文设计的系统要求可以对时、分、秒进行动态扫描

4、显示计时,还具有整点提醒和闹铃功能。该电路系统采用at89s51单片机作为核心,功耗小,能在3v的低压工作,电压可选用35v电压供电。本文从硬件电路到单片机控制器再到微处理器程序进行了一系列的设计,最终将各模块整合到proteus中进行仿真,最终在proteus中仿真的结果令人满意。关键字:at89s51,动态扫描abstractdigital clock is a digital circuit technology with the hours, minutes, seconds, timing devices, and mechanical clock higher than the a

5、ccuracy and intuitive, and no mechanical devices, with more longer life, so be widespread use. based on principles of scm technology to mcu at89s51 as the core controller, through hardware design and software programming for the design to produce a digital clock system. system requirements for this

6、design can be hours, minutes, seconds, and dynamic scanning display timing, and also has alarm function to remind the whole point. the circuit system uses at89s51 microcontroller as a core, low power, low-voltage work in 3v, the voltage can choose 3 5v supply voltage.this single chip controller from

7、 the hardware circuit to process and then to a series of microprocessor design, the module will eventually be integrated into the proteus in the simulation, the final in the proteus in the simulation results are satisfactory. keywords: at89s51, dynamic scanning设计目的设计一个数字电子钟,使它满足以下要求: 设计一个数字钟。要求用六位数码

8、管显示时间,格式为00:00:00。具有60进制和24进制(或12进制)计数功能,秒、分为60进制计数,时为24进制(或12进制)计数。有译码、七段数码显示功能,能显示时、分、秒计时的结果。设计提供连续触发脉冲的脉冲信号发生器,具有校时单元、闹钟单元和整点报时单元。方案设计与论证.设计方向选择本数字钟的设计可以采用门电路结合其他芯片来组建数字钟,但考虑到在使用门电路的过程中使用的器件和芯片会很多,接法比较复杂,而且对于有些要求如整点报时和闹铃实现会有点困难。所以选择门电路来设计多功能时钟会比较复杂和繁琐。本次设计还可以使用单片机来设计电路,相对于门电路来说单片机的设计比较简单,而且功能比较全面

9、,但、编写程序会是单片机的一个难点。时钟芯片的选择方案和论证直接采用单片机定时计数器提供秒的信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然存在时间误差,但是可以减少芯片的使用,节约成本,所以采用此方案。电路设计最终方案决定综上各方案所述,对此次作品的方案选定:采用at89s52作为主控制系统;使用内部时钟电路外接晶振提供时钟震荡电路;显示方法采用 led数码管动态扫描方法。图(1)为本次设计的总电路图: 图(1) 设计总电路图部分电路的设计.led数码管电路设计本次设计中我们采用了8个共阳led7段数码管构成了数码显示电路,其中位选接在单片机的p0口,而在实际之中我们会在

10、之间接一个锁存器,实现电流的放大,不然数码管会很暗,影响我们的观察。本设计中锁存器使用的是74hc573,其引脚图和功能表如图(2)所示。数码管的段选接在单片机的p口。电路图如图(3)所示: 图(2)74hc573引脚图和功能表 图(3)led数码管显示电路.蜂鸣器报时系统设计本设计用报时和闹铃采用的是蜂鸣器组成的发声电路,蜂鸣器接在单片机的口,在之间接一个三极管实现电流的放大,这样才可以正常的发出声音。其部分电路图如图()所示:图()蜂鸣器电路图在这个电路中我们选择的三极管是pnp三极管8550,可以有效地完成我们所需要的功能。程序设计.程序流程图我们采用的是c语言编的,其流程图如图(5)所

11、示:开始初始化整点报时?蜂鸣器响闹铃?调用显示函数按键功能调节 图(5)程序流程图语言源程序#include unsigned char code displaycode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned char hour,minute,second;unsigned char clockhour,clockminute;unsigned int num;unsigned char select,oneminute;bit bdata modeselect;void delay();void display(

12、unsigned char temp,unsigned char mode);void sound() while(num2000) p3_0=0; p3_0=1; void initial()p0=0;tmod=0x22;ie=0xcf;it0=1;it1=1;t2con=0;rcap2l=0xf0;rcap2h=0x1f;th2=0x1c;tl2=0xf0;ip=0x06;th0=0x48;tl0=0x48;th1=0x48; tr0=1; pcon=0x01; hour=12;minute=0;second=0;num=0;select=0;clockhour=12;clockminut

13、e=0;modeselect=0; void interrupt0()interrupt 0 using 3 tr1=1; select+; if(select=7) select=0; if(select=1) et2=1;oneminute=second-1;void timer0()interrupt 1 using 3num+;if(num=5000)num=0;second+; if(second=60) minute+;second=0; if(minute=60) hour+;minute=0; if(hour=24) hour=0;void interrupt1()interr

14、upt 2 using 3 oneminute=second-1; modeselect=0; et2=!et2; switch(select) case 4:hour+;if(hour=24)hour=0;break;case 5:minute+;if(minute=60)minute=0;break;case 6:second+;if(second=60)second=0;break;case 2:clockhour+;if(clockhour=24)clockhour=0;break;case 3:clockminute+;if(clockminute=60)clockminute=0;

15、break; default:break;void timer1()interrupt 3 using 3if(select)if(second=oneminute)select=0;tr1=0;void timer2()interrupt 5 using 3sound();tf2=0;if(minute!=clockminute&hour=clockhour)tr2=0;void delay()unsigned char i=255;while(-i);void display(unsigned char temp,unsigned char mode) if(temp=4|temp=2)

16、p0=0; else p0=1; if(mode) p1=displaycodehour/10; else p1=displaycodeclockhour/10; delay(); if(temp=4|temp=2) p0=0; else p0=2; if(mode) p1=displaycodehour%10; else p1=displaycodeclockhour%10; delay(); if(temp=1|temp=2|temp=3) p0=0; else p0=4; p1=0xbf; delay(); if(temp=5|temp=3) p0=0; else p0=8; if(mo

17、de) p1=displaycodeminute/10; else p1=displaycodeclockminute/10; delay(); if(temp=5|temp=3) p0=0; else p0=16; if(mode) p1=displaycodeminute%10; else p1=displaycodeclockminute%10; delay(); if(temp=1|temp=2|temp=3) p0=0; else p0=32; p1=0xbf; delay(); if(temp=6) p0=0; else p0=64; if(mode) p1=displaycode

18、second/10; else p1=displaycode0; delay(); if(temp=6) p0=0; else p0=128; if(mode) if(et2) p1=displaycodesecond%10+128;elsep1=displaycodesecond%10; else p1=displaycode0; delay();void main()initial();sound();while(1)switch(select) case 0: display(0,1); break;case 1:if(num=2500) display(1,0); else displ

19、ay(0,0); break; case 2:if(num=2500) display(2,0); else display(0,0); break; case 3:if(num=2500) display(3,0); else display(0,0); break; case 4:if(num=2500) display(4,1); else display(0,1); break; case 5:if(num=2500) display(5,1); else display(0,1); break; case 6:if(num=2500) display(6,1); else displ

20、ay(0,1); break; default:break;if(second=0)if(minute=0|minute=30)sound(); if(minute=clockminute&hour=clockhour) tr2=1; modeselect=1;if(modeselect=1&hour=clockhour&!(minute-clockminute)%5) tr2=1;电路的设计与仿真我们使用的仿真软件是,系统的仿真图如图()所示:图()系统仿真图心得与体会在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。每次课程设计是一次难得的锻炼机会,让我们能够充分利用所学过的理论知识还有自己

温馨提示

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

评论

0/150

提交评论