Proteus大型作业电子时钟仿真系部:电子工程系班级:********姓名:********学号:********指导老师:*****前言时下,家用电器和办公设备的网络化、智能化、遥控化、模糊控制化已成为发展趋向,而这些高性能几乎无一不是靠单片机来实现的。如果不具备单片机方面的知识、不掌握单片机的应用技术,对这些电器设备的日常保养和故障维修都会形成很大的障碍,就更不用说设计和开发以单片机为控制核心的各种电子电路和电器产品了。初学者在没有太多专业基础知识的条件下,能否能过自学在短暂的时间内掌握单片机技术?事实表明是做得到的!如果在学习理论的同时再注意反复演练和动手实践,将自己培养成单片机应用开发工程师也是完全可能的!至今,许多老一辈的工程师,专家、教授当年都是无线电爱好者。如果说20世纪50年代起,无线电世界造就了几代电子英才,那么当今的单片机世界将会造就出新一代的电子精英!国家积极倡导的素质教育和创新工程,旨在提高受教育者的素质和将所学知识转化为生产力、创造力和经济效益。为了很好地适应社会潮流和响应国家号召,我们为您提供了一个容易激发学习兴趣和创作欲望的、可操作性很强的学习途径和实践平台,利用该平台进行学习和应用,一定会为电子、通信、计算机、机电、电力、电气、自动化以及相关领域的爱好者、从业者和在校生快速、深入的掌握单片机应用技术立下汗马功劳。目录第一章电子时钟总体设计............................................................41.1电子时钟简介.........................................................................41.2电子时钟的设计要求.............................错误!未定义书签。1.3电子时钟的计时方案.............................错误!未定义书签。1.4电子时钟的显示方案.............................错误!未定义书签。第二章硬件描述及系统设计构思................................................52.1单片机电子时钟功能............................................................52.2系统硬件描述........................................................................52.3系统设计构思........................................................................62.4电子时钟电路原理图………………………………………6第三章电子钟硬件介绍................................................................73.1单片机的介绍.......................................................................73.2数码管的工作原理...............................................................8第四章控制系统的软件设计........................................................94.1程序设计流程.......................................................................94.2程序设计…………………………………………………14第五章电子钟仿真结果…………………………………………19实训总结..........................................................................................20参考文献..........................................................................................21第一章电子时钟总体设计1.1电子时钟简介电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合都用到电子时钟。很多单片机产品具有实时时钟的功能,例如智能化仪器仪表、工业过程系统及家用电器等。这里要求实现一个具有实时时钟显示和闹钟控制功能的数字钟。通过数字钟的设计与制作,将前面所学的单片机内部定时资源、I/O端口、键盘和显示接口等知识融会贯通,锻炼独立设计、制作和调试应用系统的能力,深入领会单片机应用系统的硬件设计、模块化程序设计及软硬件调试方法等,并掌握单片机应用系统的开发过程。1.2电子钟设计要求设计并制作具有如下功能的数字钟:(1)自动计时,由6位LED先四起显示时、分、秒。(2)具备校准功能,可以设置当前时间。(3)具备定时启动功能,可以设置闹钟时间,启闹10s后自动关闭闹铃。1.3电子钟计时方案(1)采用实时时钟芯片。针对应用系统对实时功能的普遍需求,各大芯片生产厂家陆续推出了一系列实时时钟集成电路,如DS1287、DS12887、DS1302、PCF8563、S35190等。这些实时时钟芯片具备年、月、日、时、分、秒、计时功能和多点定时功能,计时数据每秒自动更新一次,不需程序干预。单片机可通过中断或查询方式读取计时数据。实时时钟芯片的计时功能无须占用CPU时间,功能完善,精度高,软件程序设计相对简单,在实时工业测控系统中多采用这一类专用芯片来实现。(2)软件控制。利用AT89S51内部定时/计数器进行中断定时,配合软件延时、分、秒的计时。该方案节省硬件成本,且能够使读者对前面所学知识进行综合运用,因此,本系统设计采用这一方案。1.4电子钟显示方案(1)利用串行口扩展LED,实现LED静态显示。该方案占用单片机资源少,且静态显示亮度高,但硬件开销大,电路复杂,信息刷新速度慢,比适用于单片机并行口资源较少的场合。(2)利用单片机并行I/O端口,实现LED动态显示。该方案直接使用单片机并行口作为显示接口,无须外扩接口芯片,但占用资源较多,且动态扫描显示方式需占用CPU时间。在非实时测控或单片机具有足够并行口资源的情况下可以采用。这里采用动态显示方案。第二章硬件描述及系统设计构思2.1电子时钟功能模块2.2系统硬件描述1.控制器用AT89S51,12M晶振2.数码管动态扫描驱动——P2口3.数码管段码驱动——P1口4.闹铃驱动——P1.05.调整键K1——P3.2(外部中断0,正常、调时、调分、调秒)6.定时/正常切换键K2——P3.37.时间参数低位加1键K3——P3.48.时间参数高位加1键K4——P3.5主程序函数LED显示函数键盘检测函数查值函数加1修改功能函数闹钟设置函数时钟设置函数定时器中断函数闹钟判断启动函数2.3系统设计构思1.主流程是取时间参数,显示时间参数。2.利用T0中断来完成计时、比较定时时间、驱动闹铃。3.利用T1中断完成动态显示中,调整时间闪烁效果的定时。4.利用外部中断0来完成调整选择功能。5.利用外部中断1完成定时显示,当前时间显示的切换6.K3、K4键完成时间参数的循环加1操作如图为电子时钟电路原理图2.4电子时钟电路原理图第三章电子钟硬件介绍3.1单片机的介绍单片机也被称为微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机芯片单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!3.2数码管的工作原理a.七段数码管分共阳管和共阴管,使用时要注意区分,本项目使用共阳数码管。即公共端接正极。数码管引脚示意图如下:b.该电路使用芯片74LS244来驱动发光两极管,74LS244芯片说明书如下,使用时注意判断芯片的引脚号,引脚示意图如下:c.人眼的视觉暂停时间大约是0.02秒,当画面每秒变化超过24帧时,人眼会将这些快速变动的画面视作连续画面。数码管动态显示正是利用了人的这一特性。123456ABCD654321DCBATitleNumberRevisionSizeBDate:4-Mar-2008SheetofFile:E:\产品\51实验板工程\小福星项目\小福星电路原理图\实验板单元电路.ddbDrawnBy:abfcgdedpdpc79af83g10com6b45com21de第四章控制系统的软件设计4.1程序流程NYYNNYYYNYNN主程序函数main流程时钟、闹钟单元、标志位初始化I/O端口初始化有键按下吗?main定时器、中断初始化时钟显示单元首地址初始化是时钟修改键吗?是抖动吗?调用LED显示函数延时去抖调用查键值函数调用LED显示函数是闹钟修改键吗?是加1功能键吗?调用时钟设置函数调用闹钟设置函数调用加1修改功能函数闹钟设定否?调用闹钟判断启动函数调用键盘检测函数YNYNYN时钟设置函数流程ftion()返回关定时器禁止闹钟修改、清闹钟修改标志设置时钟秒单元为显示首地址将时钟小时修改标志置1时钟单元修改位置记录值清零时钟修改记录值加1将时钟分修改标志置1开定时器将时钟秒修改标志置1记录值为1吗?记录值为2吗?记录值为3吗?闹钟设置函数流程YNN闹钟判断启动函数流程ftion1返回禁止时钟修改将闹钟已设定标志位置1将闹钟秒单元设为显示首地址将闹钟分单元修改标志位置1闹钟修改记录值加1将闹钟小时单元修改标志位置1闹钟修改记录值清零恢复时钟显示单元首地址记录值为1吗?记录值为2吗?返回返回停闹、清楚闹钟标志和10s计时标志启动闹钟标志置位闹钟值与计时值时、分单元相等否?闹钟10s计时到否?加1修改功能函数流程返回秒单元内容加1,十进制调整记录值为2吗?记录值为2吗?记录值为2吗?记录值为2吗?到60s否?到24h否?到60min否?到24h否?记录值为2吗?到60min否?返回分单元内容加1,十进制调整小时单元内容加1,十进制调整分单元内容加1,十进制调整秒单元内容加1,十进制调整清零清零清零清零清零NNYYNNYYNYY定时器中断函数流程250um中断服务开始中断返回关中断250us次数清零10ms次数清零如果已启闹铃则闹铃时间变量加1秒单元清零分单元清零开中断时单元清零分单元加1时单元加1满40次(10ms)否?1s到否?满40次(10ms)否?1h到否?24h到否?时单元加1时单元加1时单元加14.2程序设计本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整程序、闹钟设置程序四大模块。在程序设计过程中,加强了部分软件抗干扰措施,下面对部分模块作介绍。/***************数字钟程序***************/#includereg51.h#defineucharu