




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用系统项目设计报告江阴职业技术学院毕业论文课题: 基于AT89C52多功能数 字钟的设计与仿真 专 业 学生姓名 班 级 学 号 指导教师 完成日期 摘 要时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型的时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED 显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。本文利用单片机实现数字时钟计时功能的主要内容,其中AT89C52 是核心元件,同时采用数码管动态显示“时”、“分”、“秒”的现代计时装置。与传统机械表相比,它具有走时精确、显示直观等特点。它的计时周期为24 小时,显满刻度为“23时59 分59秒”。AbstractClock, since it invented the day to become the friend of mankind, but as time goes on, science and technology The continuous development of the precision measurement of time people have become increasingly demanding, more and more widely. How to make the clock better Serve the people, how to make our old friend rejuvenated it? This requires that people continue to design a new type of clock. Today, the majority of high-precision timing tools are used in crystal oscillator, the electronic clock, quartz clock Have used quartz technology, so take the time and high precision, good stability, easy to use, does not require frequent calibration, digital Time clock integrated circuit, the decoding instead of mechanical transmission, display with LED display instead of a pointer and then were Show time, reduce the timing error, this table has hours, minutes and seconds time display function, also can be hours and minutes Proof-reading, the flexibility of a good chip select. In this paper, single chip digital clock timing function of the main elements, which AT89C52 is a core component, while using digital dynamic display when, sub, second of the modern fashion dollars Home. Compared with the traditional mechanical watch, it has the exact travel time, visual display and so on. Its time period is 24 hours, Full scale was 23:59:59.目 录摘 要IAbstractII目 录III第一章绪论11.1设计目的11.2设计步骤11.3设计指标1第二章总体方案22.1摘要22.2方案的选择22.3方案比较32.4方案二设计基本原理4第三章 硬件设计63.1元器件选择63.2总设计连接图11第四章软件设计124.1主要流程图及程序124.2软件的主要模块164.3总体流程图17第五章 系统的调试185.1调试主要思路、方法、步骤185.2Keil调试215.3Keil hex文件生成22致谢23总结心得24参考资料25附录26电原理图26仿真效果图27源程序28- IV -第一章绪论1.1设计目的1)巩固和加强“模拟电子技术”,“数字电子技术”课程的理论知识;2)掌握电子电路一般的设计方法,并了解电子产品研制开发过程;3)基本掌握电子电路安装和调试的方法;4)培养独立分析问题和解决问题的能力以及创新能力和创新思维。 分析问题和解决问题的能力以及创新能力和创新思维。 1.2设计步骤1)分析题目,寻找相关资料;2)策划设计方案;3)设计电路,编写源程序;4)对程序和原理进行仿真;(1)在keil软件中对源程序进行编译,生成.hex文件; (2)在proteus软件中画出电路图,单片机中添加上一步的.hex文件; (3)运行并调试;1.3设计指标芯片:AT89C52按键:共四个key1key4数码显示器:LED0-LED7共8个key1:当key1键按下时处于停止状态,同时按key2实现秒加加,一次加一,再按一下key1就可以实现调分,再按key2实现分加加,按第三次key1实现时加加。在按一下key1时间正常走动。key3可以实现闹钟调试 ,按一下整个界面跳为00-00-00,在按key2实现闹钟的秒加加,在按key3实现闹钟分调状态,按下key2实现分加加,在按下key2实现闹钟调时,key2闹时加加,在按key3时钟又到正常工作状态。Key4实现打开闹钟的关闭模式。第二章总体方案2.1摘要数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命。已成为人们日常生活中不可缺少的必需品,已得人们到广泛的使用。2.2方案的选择1)时钟模块方案方案一: 用基本门电路来实现数字钟一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发现胡一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。译码显示电路将“时”、“分”、“秒”计数器的输出状态送入七段显示译码器译码,通过六位LED七段显示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的。图2.2.1 基本门电路搭建数字钟框图方案二: 单片机编程 用软硬件结合方式实现数字钟基于单片机技术原理,以单片机芯片AT89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,利用单片机的控制作用通过LED数码管直接显示时、分、秒,并能对其分别进行甚至、修改。图2.2.2 基于单片机的数字钟框图2.3方案比较方案一门电路搭建数字钟:1) 与机械化时钟相比较具有较高的准确性。但相对于单片机略显劣势。2) 门电路搭建较于偏向复杂,相对于第二种方案,故障系数大大增大。不利于调试。3) 多元化的电路搭建,硬件多,大大增加了材料的消耗,从而增加了生产的成本。4) 古板的搭建,不适合小规模的改动,不利于调试与仿真。5) 对于处于信息时代的我们,满足不了人们多功能的需求。方案二软硬件相结合的方式:1) 集成度高,体积小、有较高的可靠性。单片机把各功能部件集成在一个芯片上,内部采用总体结构,减少了各芯片之间的连接,大大提高了单片机的可靠性与抗干扰能力。2) 其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。节约成本。3) 控制功能强。为了满足工业控制的要求,一般单片机的指令系统均有及其丰富的转移指令、I/O口得逻辑操作以及处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。4) 低功耗、低电压,便于生产便携式产品。5) 通过软件编程实现,时间更加精准。便于调试。综合方案一方案二优缺点,方案一更适合设计要求,所以选择方案一。2.4方案二设计基本原理基本设计基于单片机技术原理,以单片机芯片AT89C52作为核心控制器,通过硬件电路的制作以及软件的编程,设计制作出一个多功能数字钟系统。单片机扩展的LED数码管用来显示时、分、秒计数单元中的值。整个设计包括两大部分:硬件部分和软件部分,以单片机为核心,配以一定的外围电路和软件。硬件是整个系统的基础,软件部分则要合理、充分的支持和使用系统的硬件,从而完成系统所要完成的任务。该时钟系统主要有主控模块、计时模块、键盘控制模块、显示模块组成。1)主控方案选用MCS-51系列主流芯片AT89C52,内部带有8KB的Flash ROM,无需外扩程序存储器。由于数字钟没有大量运算和暂存数据,片内256 B的ROM可以满足设计需求,无需外扩片外ROM。此外考虑到以下情况(1) 开发方便,具有良好的开发工具、开发环境和软硬件技术的支持。(2) 市场货源(包括外部扩展器件)在较长时间内供应充足。 2)计时方案(1)采用实时时钟芯片。它的计时周期为24小时,显示满刻度为23时59分59秒,另外有校时功能。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。 (2)软件控制。利用AT89C51内部计数器进行中断定时,配合软件延时实现时、分、秒的计时。3) 按键方案采用独立式按键电路每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。但是当按键较多时占用单片机的I/O数目较多。4) 显示方案利用单片机并行端口I/O端口,实现多个数码管LED显示。LED数码管是利用二极管发光显示数字和字母,具有亮度大、接口设计比较容易,价格相对较便宜等优点。该方案直接使用单片机并行口作为显示接口,无须外扩接口芯片,但占用资源较多,且动态显示方式需占用CPU时间。在非实时测控或单片机具有足够并行口资源的情况下可以采用。图2.2.3 LED数码管5)总体控制方案按键:共四个key1key4当key1键按下时处于停止状态,同时按key2实现秒加加,一次加一,再按一下key1就可以实现调分,再按key2实现分加加,按第三次key1实现时加加。在按一下key1时间正常走动。key3可以实现闹钟调试 ,按一下整个界面跳为00-00-00,在按key2实现闹钟的秒加加,在按key3实现闹钟分调状态,按下key2实现分加加,在按下key2实现闹钟调时,key2闹时加加,在按key3时钟又到正常工作状态。Key4实现打开闹钟的关闭模式。6)系统所能实现的功能(1) 时间为24小时一个周期(2) 7段数码管显示时、分、秒。(3) 有校时功能,可以分别对时及分及秒进行单独校时,使其校正到标准时间。(4) 可调闹,整点报时功能。 第三章 硬件设计3.1元器件选择1)单片机AT89C52AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52的芯片有四个IO口,分别是P0 ,P1, P2, P3。P0口:P0 口是开漏双向口可以写为1 使其状态为悬浮用作高阻输入P0 也可以在访问外部程序存储器时作地址的低字节在访问外部数据储器时作数据总线此时通过内部强上拉输出1。因为p0口没有上拉电阻,所以外接的时候要接上拉电阻。P1与P2口:两个口的功能差不多,都是IO口。P3口:P3口有第二功能,第一功能和P2口一样有IO输入输出的功能第二功能为图3.1.1 AT89C52RxD(p3.0) 串行输入口TxD(P3.1) 串行输出口INT0(P3.2) 外部中断0INT1(P3.3) 外部中断T0(P3.4) 定时器0 外部输入T1(P3.5) 定时器1 外部输入WR(P3.6) 外部数据存储器写信号RD(P3.7) 外部数据存储器读信号这就是P3口的第二功能叙述。XTAL1与XTAL2的功能:分别是晶振的输入与输出。REST:复位 当晶振在运行中只要复位管脚出现2 个机器周期高电平即可复位内部有扩散电阻连接到Vss 仅需要外接一个电容到Vcc 即可实现上电复位。89c52还具有定时、计数的功能。我这里主要用到定时功能所以我先介绍一下定时功能。定时有两种状态,定时器0、定时器1。AT89C52 共有6个中断向量:两个外中断(INT0 和INT1),3个定时器中断(定时器0、1、2)和串行口中断。所有这些中断源可通过分别设置专用寄存器IE 的置位或清0来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,它能控制所有中断的允许或禁止。程序员不应将“1”写入这些位,它们是将来AT89 系 列产品作为扩展用的。 定时器2 的中断是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软件清除中断标志位。定时器0和定时器1的标志位TF0和TF1在定时器溢出那个机器周期的S5P2状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2的标志位TF2在定时器溢出的那个机器周期的S2P2 状态置位,并在同一个机器周期内查询到该标志。2)7段led数码管下图为7段led数码管的共阳的,位码接高电平,段码接低电平是后亮,多位七段LED数码显示器结构 利用人的视觉延迟的特点,采用扫描的方式驱动多位七段LED数码管,节省驱动电路,降低功耗。 保证一定的扫描循环。 如图3.1.2 7段共阳极led码管数LED数码管驱动:LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要58=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。3) 74LS245驱动图3.1.3 74ls24574LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,/E端接地,保证数据现畅通。8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.iDi),其它时间处于输出(P0.iDi)。图3.1.4 74ls2454)蜂鸣器图3.1.5蜂鸣器由于单片机的IO驱动能力有限(10MA左右),所以若是直接将蜂鸣器接至单片机的IO,上电以后很会将单片机的IO烧坏。所以一般都是通过三极管的放大作用来控制。电阻R4的作用是限流,使通过单片机的IO电流不至于过大而烧坏单片机。三极管的作用是放大,图中所示的是PNP型三极管。为什么用PNP而不是用NPN型。因为51单片机在上电的时候IO引脚默认是高电平,而在IO为高情况下,PNP三极管8550的不导通的,也就是蜂鸣器不工作。若是三极管是NPN型,在IO为高电平的时候上电蜂鸣器即工作,也就是说实验板一上电,蜂鸣器就会发出声音,这将是非常不方便的。5)限流电阻图3.1.6 上拉电阻因为89C51芯片的p0口里面少个上拉电阻,所以要加一个,因为7段数码管的一般电流约10ma左右,vcc为5V,段码的所承受的电压为1.7V左右所以。5-1.7=3.3V左右,3.3/10ma=330所以上拉电阻就接一个大约330左右的电阻了。6)微动开关开关这里设计的要在程序中设计一个去抖的延时程序,已达到不要硬件去抖的效果,如果要接硬件的话接一个RS触发器,它是由两个与非门交叉耦合而成,S和R是信号的输入端,低电平有效,Q和Q既表示触发器的状态,又是触发器的输出端。在启动过程中,S端一旦下降到开门平,Q端电平就会上升,反馈到门B的输入端,促使B由截止转向导通,Q端的电平下降,反馈到门A的输入端,进一步促使门A截止,Q端电平进一步上升,Q端电平上升的结果又会使Q的电平进一步下降,这样的过程,是的门A很快截止、门B很快导通,触发器在极短的时间内完成由截止到导通的转换。通过R段的复位时也有类似的正反馈过程发生,从而完成按键开关的消抖功能。图3.1.7 开关3.2总设计连接图 图3.2.1程序流程图第四章软件设计4.1主要流程图及程序软件设计方案软件采用模块化设计,在程序中以一个主函数,多个子函数的方式编写,这样多有利程序的可读、可移植等。函数共包含:1主函数;2闹钟对比函数;3秒、分、时加1函数;4缓冲函数;5显示扫描函数;6闹铃函数;7时分秒刷新函数;8时、分、秒缓冲函数。在软件设计中有部分程序代码是非常重要的,对一些非常重要的程序代码必须要很深刻和很深入的理解。重要点:1秒的产生,在数字钟里面,主要功能是计时,所以1秒的产生是最重要的。单片机要产生计时有两种方法,一种是利用软件延时,还有一种是利用定时器来硬件计时,但是在一个项目设计里面很显然利用软件延时是不现实的,单片机在利用软件延时时,CPU会一直工作在延时代码上面,无法对其他代码运行,而利用定时器计时时,单片机的CPU仍可以去处理其他代码,只需要在计时时间到后去处理产生的相应中断的代码。所以在这个项目设计中采用定时器计时,单片机中要利用定时器必须要对定时器进行设置,其中TMOD寄存器就是用于对定时器设置的,TMOD是8位特殊寄存器,单片机共有两个定时器,分别是T1、T0,TMODTMOD(89H)T1T0GATEC/TM1M0GATEC/TM1M0方式000000000000100011001000102001100113中高4位是设置T1,低4位是设置T0用的,在这里使用T0定时器,在TMOD低4位的低2位是设置定时器工作方式的,定时器有4中计时方式,这里使用方式1,所以设置低两位是【0,1】,16位计数,最大计数值是2的16次方65536个机器周期,在一个机器周期1us即12Mhz晶振下对定时器设置初值为15536,定时器产生一次中断的计时时间是65536-15536=50000us=50ms,这样要产生一秒就需要定时器中断20次,所以在程序中设置一个秒标志位cout,cout在定时器中断中进行自增1操作,最终对秒标志cout判断,达到20即已达到1秒。定时器0中断函数如下:void dingshiqi0()interrupt 1/定时器0程序TH0=0x3c;TL0=0xb0;cout+;1)主函数用单片机扫描键值。若无键值输入,不做任何处理继续扫描。若有键值输入则扫描到键值并取键值送往单片机,并复位键值。有单片机内部程序来进行相应的操作。最后送往数码管显示。图4.1.1主函数流程图2)键盘测试原理:在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。流程:当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。 键盘扫描过程:1)判别有无按键按下;2)扫描键值;3)取键值;4)动态显示;图4.1.2键盘扫描unsigned char test(void) /键盘测试unsigned char k;P3=0XFF;k=P3;k=k;return k;unsigned char smiao(void)/键盘扫描unsigned char k,i;if(test()i=5;while(i-)display();if(k=test() while(test()display();return k;return 0;3)动态显示工作原理:从P0口送段代码,P1口送位选信号。段码虽同时到达 8个LED,但一次仅一个LED被选中。利用“视觉暂留”,每送一个字符并选中相应位线,延时一会儿,再送/选下一个循环扫描即可。图4.1.3动态扫描void display() /动态显示unsigned char b=0x80,i,t;for(i=0;i8;i+)t=timei; P0=segt;P1=b;b=_cror_(b,1);yanshi();P1=0x00;4)时分秒刷新 图4.1.4时分秒时、分、秒刷新子函数功能:对于时间的累加,在计时过程中时间总是在不断叠加的,所以在单片机上电运行,定时器开始计数后,就要对秒标志定期的判断,如果秒标志cout达到20了,那么就如在,4.1节中描述的那样,1秒的时间到了,必须对秒数据增加1了,秒数据增加后还要考虑到秒数据本身是否已到60,如果达到60就是1分了,秒必须清0,分需要加1,同样分和时也要判断。可以看到流程图,程序一开始就是对秒标志进行判断是否达到20,没有达到那么什么也不用做就返回了,达到20,则1秒已到,判断是否处于调时状态,处于调试时状态的话那么在秒表志清0后还要判断是否目前有键按下,有键按下必须对按键长按标志加1,然后就可以返回了。如果在上面判断时不处于调时状态那么秒清0后也是判断是否有按键按下,如果有键按下那么长按标志加1,接着就是看秒是否已到60,不到60就可以反回了,到60就把秒清0,分加1,接着看分是否到60,不到就可以返回了,到60就分清0,时加1,如果时到24了那么时清0就返回,时不到24就直接返回。4.2软件的主要模块unsigned char test(void);键盘测试unsigned char smiao(void);键盘扫描void display();动态显示void delay();延时void miaojj(void);秒+1void minadd(void);分+1void shijj(void); 时+1void change(void);缓冲区void mchange(void);秒缓冲区 void fchange(void);分缓冲区void schange(void);时缓冲区4.3总体流程图图4.3.1总体流程图第五章 系统的调试5.1调试主要思路、方法、步骤调试所用的工具为软件keil,protuce。具体步骤如下:我写好程序然后调试、比如写一段延时程序。例如:void delay()unsigned int a,b;for(a=0;a500;a+)for(b=0;b500;b+);这一段程序就是延时0.74s。当我把这段程序写在keil里进行调试的时候,然后运行看有没有错误,然后点击start按钮,开始设置中断的点我设置在最后的括号里,然后运行看左边的时间结果sec为0.74999约为0.74s。动态显示的调试,就是单写一个动态显示的程序,我写了的是秒到六十清零的程序如下:#includeconst unsigned char seg10=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;unsigned char cout=0,sec=0,time6=0;void display();void delay();void display()unsigned char b=0x20,t,i;for(i=0;i1;delay();P2=0x00;void delay()unsigned char i=250;while(i-);main()TMOD=0X01;TH0=0X3C;TL0=0XB0;ET0=1;EA=1;TR0=1;while(1)display(); void at0() interrupt 1 TH0=0X3C;TL0=0XB0;cout+;if(cout=20)cout=0;sec+;if(sec=60)sec=0; time0=sec/10;time1=sec%10;这段程序写好后进行调试,在keil里面运行进行联机调试,先在protuce里面选择好debug里面的use remote use monitor这个按钮打勾,然后进行联机调试,到keil里面选择option for targettarget。选择里面的debug,use的protuce VSM simulator,然后点击ok。点完后再看那个protuce仿真的效果,点击start,run全速运行。方法如下图:图 5.1.1图5.1.2总体调试效果如下图所示:图5.1.3总的效果动态效果调试如下图图5.1.4动态效果调试5.2Keil调试将写好程序调试,找出菜单中的project/built target然后看没有错误继续找菜单中的projcet/rebuilt all target files图5.2.15.3Keil hex文件生成找菜单中的project/option for targettarget1这个按钮点击出来如下图所示的选择output将create HEX file前面的小框打钩然后确认,点击projcet/rebuilt all target files将生成hex文件。最后在protuce中调试用到。图 5.3.1致谢在这里我最先感谢是组长,在从第一步开始到最后结束,我遇到了很多问题,问题都无法预测的出现,让我错手不急,但是在他耐心的指导与辛勤的帮助下,让我懂得了如何看待问题,如何分析问题原因,如何理清思路去解决问题。在这些前提下,我慢慢的找到的感觉,慢慢的懂得如何自己解决问题,通过最终的努力,我解决了所遇到的种种困难。在这个遇到问题,解决问题反反复复的过程中,让我学到了很多,让我进一步的把为掌握的知识系统化,所遇到的问题理论化。这次毕业设计中他给予我很大的帮助,让我不断成长,非常感谢他。还有要感谢的就是我的同组成员,每次我完成进度之后,他过目总能找到我疏漏的地方,这让我所做的设计更加的严谨,更加的完善。通过这次的设计使我认识到我对单片机方面的知识知道的太少了。对于书本上的很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。本次的设计使我从中学到了一些很重要的东西,理论知识固然很重要,但是一旦转到实际操作中,变的无法适应用突然.所以最重要的那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。让理论知识变为实践的开拓先锋.在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,让理论知识服务于我的实际操作,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活、实践中锻炼自己的动手能力,使自己的创造力不断得以实现。没有做不到,只有想不到!只要专心于设计,慢慢的渗透,了解,加深。最终便能完成看似完不成的事情。在付诸一切努力之后,所看到的成果显而易见。一种莫名的成就感悠然而来。总结心得通过这次课程设计,加强了我们动手、思考和解决问题的能力。在整个设计过程中,我们通过这个方案包括了一套电路原理和PCB连接图,和芯片的选择。我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。平时看课本时,有时问题老是弄不懂,遇到问题都感觉很陌生,无从下手,但是通过这个课程设计,很多问题问题都迎刃而解了。而且还可以记住很多东西,比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻,并能深入的了解它们的功能。这个设计让我懂得:认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。经过设计程序和调试成功,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长,在我人生的旅途上留下了美好的回忆。这次独立的设计之后,让我懂得一件事情,没有人天生什么都懂。也没有人做事情总是一番风顺。然而,只有那些坚持不懈,精心求解的人,才能不断的进步,不断的完善自我。没有汗水的浇盖,就没有欣慰的泪水。一分耕耘,一分收获。很多时候,遇到问题,我们要自信,相信自己能,有了自信心才会有用不完的动力,自信心才是力量的源泉。相信自己,我相信我也能!参考资料1.张永枫 单片机应用实训教程M.清华大学出版社,2008年12月;2.刘守义 单片机应用技术第二版M.西安大学出版社,2007.1;3.李光飞 ,李良儿.楼然苗单片机C程序设计实例指导M.北京航空航天大学出版社,2006;4.李华.MCS-51系列单片机实用接口技术M.北京航空航天大学,1993;5.薛永毅,王淑英 何希才.新型电源电路应用实例M.北京: 电子工业出版社,2001;6.楼然苗 ,李光飞.51系列单片机设计实例M.北京:航空航天大学出版社,2006;7.赵继文.传感器与应用电路设计M.北京科学出版社,2002;附录电原理图图6.1 pcb原理图仿真效果图图6.2 仿真效果图源程序#include#include#define key1 0x01#define key2 0x02#define key3 0x04#define key4 0x08const unsigned char seg12=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xbf,0xff;unsigned char fen=59,miao=50,shi=23,cout=0,naom=0,naof=0,naos=0,time8=0,0,10,0,0,10,0,0;/秒变量,显示缓冲/bit flag=0;bit Cflag=0,Aflag=0,alarm=0;/工作/调时标志,工作/调闹标志,闹有效标志sbit spk=P20;/蜂鸣器unsigned char test(void);unsigned char smiao(void);void display(void);void yanshi(void);void change(void);void mchange();void fchange(); void schange();void naomc();void naofc();void naosc();void shijj();void miaojj();void fenjj();void alarmspk(bit flag);/闹钟控制unsigned char comp();/闹时比较void naoh();void yanshi()unsigned char p=250;while(p-);void on()time2=10;time5=10;void off()time2=11;time5=11;void display()unsigned char b=0x80,i,t;for(i=0;i8;i+)t=timei; P0=segt;P1=b;b=_cror_(b,1);yanshi();P1=0x00;main() /主函数unsigned char t,work=0;TMOD=0X01;TH0=0X3C;TL0=0XB0;TR0=1;ET0=1;EA=1;while(1) display();t=smiao();if(alarm)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行鄂州市鄂城区2025秋招笔试EPI能力测试题专练及答案
- 农发行临沂市莒南县2025秋招半结构化面试题库及参考答案
- 农发行渭南市华阴市2025秋招金融科技岗笔试题及答案
- 农发行三明市沙县区2025秋招信息科技岗笔试题及答案
- 农发行梅州市五华县2025秋招信息科技岗笔试题及答案
- 农发行池州市东至县2025秋招笔试专业知识题专练及答案
- 国家能源沧州市东光县2025秋招笔试言语理解与表达题专练及答案
- 国家能源吉林市桦甸市2025秋招笔试言语理解与表达题专练及答案
- 国家能源黄冈市罗田县2025秋招面试典型题目及答案
- 国家能源大同市云州区2025秋招半结构化面试模拟30问及答案
- 2024版2025秋贵州黔教版综合实践活动五年级上册全册教案教学设计
- 骨科术后并发肺栓塞护理
- 转作风重实干课件
- 甲状腺课件类型
- 2025年融媒体中心招聘考试笔试试题(60题)含答案
- 单招备考科学方案
- 2025年秋新人教版数学三年级上册全册教学课件
- 社区工作者网格员考试题库及答案
- 快乐主义伦理学课件
- 运筹学:原理、工具及应用肖勇波习题答案(可编辑)
- 医美咨询培训课件
评论
0/150
提交评论