基于单片机的时钟设计

时间:2020-09-01 20:08:35 浏览量:

摘要 随着时间的推移,事物的发展越来越趋向于高科技,单片机的出现,受到了社会各界的广泛关注,这是由于单片机具备丰富的功能。单片机的特点为:尺寸小,价格低,抗干扰强,开发容易等。运用的范围也很广,如检测,仪表,电子,机电等设备的各方面都有不可或缺的作用。多功能电子钟是我们最常见的计时工具之一,用STC89C52单片机研究的多功能电子钟系统,加上必要电路,构成了一个能调整误差的多功能数字电子钟。本文论述了其工作原理,对各个功能模块进行了详细的分析和研究,此外还对系统的工作流程以及具备的各项功能进行详细的介绍,从而判断设计方案正确与否。使用C语言对系统的软件部分进行编程,再用keil进行调试分析,通过PROTEL99SE进行电路模拟,可以让单片机显示年、月、日、时、分、秒、周并具有校准功能和和闹钟提醒功能,除此之外还具有测量环境的温湿度功能。

关键词 : 电子钟;
STC89C52;

单片机 Abstract With the passage of time, the development of things tends to be more and more high-tech. The emergence of single-chip computers has attracted widespread attention from all walks of life, which is due to the rich functions of single-chip computers. The characteristics of MCU are: small size, low price, strong anti-interference, easy development and so on. The scope of application is also wide, such as detection, instrumentation, electronics, mechanical and electrical equipment in all aspects have an indispensable role. Multifunctional electronic clock is one of the most common timing tools. The multi-functional electronic clock system studied by STC89C52 microcontroller and the necessary circuit constitute a multi-functional digital clock that can adjust errors. In this paper, the working principle of the system is discussed, and the function modules are analyzed and studied in detail. In addition, the working flow and functions of the system are introduced in detail, so as to judge whether the design scheme is correct or not. The software part of the system is programmed by C language, then debugged and analyzed by keil, and simulated by PROTEL99SE. The microcontroller can display the year, month, day, hour, minute, second, week, and has the function of calibration and alarm clock reminder. Besides, it also has the function of measuring the temperature and humidity of the environment. Key words : electronic clock; STC89C52; Single chip microcomputer 目录 摘要 I Abstract II 目录 IV 第一章 绪论 7 1.1课题研究的意义 7 1.2设计要求 7 1.3系统的关键技术 7 1.4设计思路 8 第二章 电子钟简介 11 2.1 电子时钟简介 11 2.2电子时钟的基本特点 11 2.3电子时钟的原理 11 第三章 方案论证与设计 13 3.1单片机芯片的选择方案和论证 13 3.1.1单片机的选择 14 3.1.2显示器的选择 15 3.1.3电源的选择 15 3.2总体框图设计 15 第四章 主要元件介绍 17 4.1 STC89C52单片机的介绍 17 4.1.1 STC89C52单片机主要功能及PDIP封装 17 4.1.2 STC89C52引脚介绍 17 4.1.3 STC89C52最小系统介绍 19 3.2 DS1302时钟芯片介绍 20 4.2.1 DS1302引脚介绍 21 4.2.2 DS1302使用方法 21 4.3 1602字符液晶介绍 23 4.3.1 1602液晶概述 23 4.3.2 1602引脚介绍 23 4.3.3 1602字符液晶使用方法 24 第五章 系统的硬件设计 25 5.1单片机简介 25 5.2Protel99SE简介 26 5.2时钟电路模块设计 27 5.3误差校正模块设计 29 5.4显示模块的设计 31 5.5 DHT11温湿度采集模块 33 第六章 系统的软件设计 37 6.1程序开发软件简介 38 6.2程序流程图 41 6.3 DS1302时钟程序流程图 43 6.4 LCD显示程序流程图 44 第七章 系统的调试与分析 47 7.1系统制作 47 7.2硬件调试 48 7.3软件调试 51 第八章 总结 55 致 谢 57 参考文献 59 附录 61 附录A:中文译文 61 附录B:英文原文 61 第一章 绪论 1.1课题研究的意义 时间就是金钱,说明时间对我们来说很珍贵,怎么去掌控时间,分配时间是从古至今都不能忽视的问题。随着时代的不断进步,电子技术水平也在不断的提升,时间作为我们最宝贵的财富,对于时钟的准确度要求也在不断提高。从而导致人们对时间更方便,更精确,更灵活的追求,传统的时钟已经不能完全满足人们日益增长的需求了。电子产品的更新换代速度是很快的,所以需要设计出更适合人们使用的多功能数字电子钟。许多电子钟都已经有了闹钟功能,计时功能,温度检测功能等,同时单片机在电子钟领域的运用范围是非常广的。

以单片机为载体设计一个的多功能数字电子钟,不仅需要熟悉单片机的设计原理而且也需要研究单片机的扩展的应用。另外越来越流行的液晶显示的多功能电子钟,被大范围应用在个人住宅以及各种公共场所中,还有定时功能,自动打铃,自动报警,定时开关等功能都是钟表数字化的普及拓展的功能。电子钟的数字化极大的方便了人们的需求,精确度也超过传统的时钟,还对传统时钟的功能进行了完善和创新,其计时功能更加精确使用方便。可以进行掌握分配时间,并且还可以研发出温度检测功能等。所以,多功能数字电子钟作为设计课题值得研究。

1.2设计要求 论文是以单片机为载体做一个多功能数字电子钟。电子钟开启后,LCD屏幕显示年、月、日、时、分、秒、周,还有温湿度,倒计时等,设置4个操作键:分别是时间设置按键,误差调整,闹钟设置按键,时间设置按键。主要研究内容如下:
1、具有年、月、日、时、分、秒、周等功能;

2、具备年、月、日、时、分、秒、周校准功能;

3、具有温湿度测量功能;

4、具有阴历时间查询功能;

5、具有闹钟设置功能;

1.3系统的关键技术 本次设计系统采用单片机作为主控制系统,单片机是整个系统最为主要的部分。通过单片机的IO引脚来实现不同的功能不同的数据处理。那么什么是单片机呢?简要的介绍一下单片机的系统,单片机如下图1.1所示。

图1.1 可以看到单片机就是一个黑色的芯片,这里面的集成度非常的高,是将各种的资源进行缩小,优化然后集成到一个芯片上。白色的引脚是单片机的IO管脚。对系统来说可以作为控制进行输出,也可以作为输入进行数据的采集。

单片机的封装是不同的上图1.1中都是单片机,他们的厂家不同,封装不同,一个是贴片的FQTP封装,这种优点就是体积小,做出的产品小型化。另一个STC的是DIP直插封装。优点就是配合上插座可以随意插拔,更换方便。对这两种单片机的使用是不同的,使用的时候具体的需要根据相关的手册来使用。单片机的发展也是在不断的进步,不断的更新。

本次系统就是采用这种芯片来实现整体的系统协调。整体的系统运转来实现系统的整体功能。需要掌握的关键技术是控制单片机的IO口。单片机IO如果作为输出,首先需要将引脚的方向设置,设置为输入或者输出。单片机的IO引脚输出的是数字量,这个我们必须要知道。也可以说是输出TTL电平,再次直达表意就是输出“0”或者“1”所有的功能都是在“0”与“1”的组合中来实现的。数据的采集是单片机的IO口作为输入,单片机对传感器件,芯片进行数据的采集。采集到的数据根据编写的程序在单片机中就有了数据。通过运算,处理数据实现其具体的功能状态。完成系统的预期目标。

单片机系统中的关键实现点,掌握单片机的应用单片机的数据输入采集,单片机的信号输出,就是掌握了一半的系统关键技术,也为本次的课题设计打下了坚实的基础。

1.4设计思路 电子时钟能够将时间用数字的形式表现出来,它与老式的钟表相比,显示更加清晰、计时更加精准、取消了内部的机械结构,所以随处可见:小到大家手中的手表,大到各种公共场所以及办公场所使用的大型数字时钟等。这种电子时钟的内部由计时模块、晶振模块;

温湿度测量;
校时电路;
时分秒计数器。

此次利用STC89S52单片机来完成对系统的控制工作,系统的显示电路包括闹钟模块,温度测量模块,日期显示器,键盘模块等,此次设计的数字时钟系统能够实现对时 间的实时显示,并且能够显示到具体秒数,报警模式和温度控制模块设计用于使用四个键SB0,SB1,SB2,SB3执行正常时钟显示,定时和报警时间设置。

数字电子钟由第二信号发生器,计数器,计数器,解码显示器和定时电路。第二个信号发生器通常是通过分频晶体振荡器或555振荡器得到的,秒和分钟都由一个十六进制数和一个十六进制计数器组成,时间由24位数字组成,由24位数字组成。显示部分包括解码和数字显示,定时电路包括门电路和开关。

利用74160N来对输出模式进行选择,可以选择十进制数也可以选择十六进制数,在通过数字显示屏将输出信号进行显示,利用各种内部运算,,使用函数信号发生器输出脉冲信号使用。

由于必须校准时钟,因此电路可以选择串行进位模式,每个位可以快速访问脉冲以执行校准。

第二章 电子钟简介 2.1 电子时钟简介 在此次设计的过程中选择AT89C51单片机作为系统的核心控制单元,通过汇编语言对系统的软件进行编程,显示模块需要显示出六位数字分别对应小时,,分钟和秒。最新的电子时钟是基于微控制器的计时工具,使用延迟程序生成1秒钟的特定时间中断,利用60进一的方法实现时钟计时。实现24小时实现计时功能,是我们日常生活中必不可少的东西。

2.2电子时钟的基本特点 大部分对精度要求较高的定时装置都利用晶振电路进行计时,我们常见的石英钟就是利用了石英技术制成的,其具备较高的准确性,具有良好的稳定性,易用性和调试次数少。将电子技术应用到时钟设计过程中,原有的机械结构被解码装置所取代,液晶显示模块代替了传统的指针显示,进而大大降低了计时误差。对时间的准确显示是电子时钟的基础功能,此外电子时钟还具备校验等一系列功能。

2.3电子时钟的原理 电子钟由STC89C52,键盘,8段数码管等组成。60秒为1分,60分钟是1小时,24小时是一天。电路上唯一的控制按钮具有多种功能,您可以实现屏蔽数码管显示屏的功能,通过按下和释放来节省电量。如果按下而不按下按钮就可以实现分钟的累加。累积每分钟增加1,但如果连续按两次按钮,则可以调整小时,然后每按一次又加1小时。

第三章 方案论证与设计 整个系统的设计需要考虑两个方面的内容:
(1)硬件的设计:主要包括了原理的确定,首先需要知道系统要实现什么功能,然后需要选择相关的器件,也就是传感器,哪个满足相关的功能设计,着重的进行深入的研究研究是否与系统可以匹配,是否可以作为最终的型号。然后绘制系统的整体电路图。通过这个整体电路图焊接出系统的实物。

(2)软件的设计:软件与硬件是一个相辅相成的关系,需要配合才能完成最后要实现的功能。软件的编写主要是对各个子程序进行设计,分模块化的来设计程序,优点在于调试的时候具有针对性,可以一边调试一边观察现象进行修改,最后将子程序进行融合调用来实现系统的整体功能。

(3)系统的测试:完成硬件与软件的设计需要按照当初预定的功能进行详细的测试,测试的越加仔细系统的BUG也就会越少,会越加的趋于完美。反复测试,反复的修改是一个成型系统的必备过程,直到最后对整体的性能以及功能满意为止。

3.1单片机芯片的选择方案和论证 从应用层面上来分析,对单片机的研究应当着重把握“单片”以及“规模”这两个显著特征。前者强调的是单片机设计的组成架构,也就是不仅仅涵盖电阻原件、必要的按键单元、电容原件等,其余的逻辑电路也应当囊括在单片机板上[1]。从设计的优势上来看,此类设计方法一方面能够减少开发资金投入,降低材料的使用量,另一方面还可以压缩硬件单元的体积,同时增强运行过程的有效性与稳定性等。所以说由NEC主导研发的四位单片机以及摩托罗拉所研制的八位单片机在该方面发挥了较大优势,但是也应当结合实际需要选取是否集成外部存储单元以及数据I/O接口。就现阶段国内的单片机应用来看,收到单片机硬件开发技术以及开发成本的制约,在开发集成化方面还有较大欠缺,因此大部分单片机产品都集成了外部存储功能单元以及数据传输接口,甚至还会把STD总线进行了功能集成,这也在一定层面上忽视单片机的表现特征。

从全球市场上来看,占据主要市场的仍旧是八位单片机,其中所包含的产品有Intel8048等等,该系列产品应用于电器生产领域等。随着集成电路技术的发展,单片机和ASIC以及RISC技术有了较为广泛的结合,同时这也是单片机在随后十几年的成长趋势。

3.1.1单片机的选择 方案一:采用美国微芯的PIC系列单片机,该系列单片机种类多种多样且具有强大的功能,在工业场合中应用较为管饭,相较于其他型号的PIC单片机而言,PIC16F887A型号应用较多,且已有的参考资料较为完善,PIC单片机所有输入输出接口必须为其分配对应的存储地址,从而判定该接口具体的输入输出情况。但是这种单片机在实际应用 中需要开发专用的软件下载和烧录器,且价格昂贵。

方案二:采用单片机控制模块核心。由于系统的可靠性高,系统的成本低的优势它可称为世界上最小的应用系统。但要求程序长度小于4K,共四个I/O接口供使用。可编程为5伏电压,擦除时间仅为10毫秒,只有8751和的分数之一。与器件相比,设备不易损坏,对电源无要求。当芯片被重写时,可以重复在多个控制领域进行使用。运行状态下的电压区间宽泛(一般维持在2.7V~6V范围内)。而主控芯片在静态模式下运行时,其对应的频率区间是。相比之下,使用8751单片机时工作电压范围较窄。该类型单片机数据总线是在P0节点位置处,并且是三态双向数据连接端口,能够实现外接存储单元的读取以及写入。单片机在主控领域具备较强的竞争优势,在正常工作状态下能耗低,运算速度快,运行较为稳定。芯片具备可多次编写多次擦除的储存器,次数可达1000次,程序可存十年。保存时间为十年。

在单片机模块的选择中,对比了几个可行的方案,发现该型号的单片机除了稳定性强、低功耗、低价格成本以外,还因为该单片机的封装工艺,使得通过自身的两列管脚直接插入到设备的底座上。该型号的单片机的输入输出端口多,具有P0、P1、P2、P4四个端口,后三个是双向端口,而第一个端口则需要外接上拉电阻才能当常规I/O口使用。该型号的单片机的制度存储器能够根据使用需要进行扩展,支持的最大扩展内存为64KB,而系统的随机存储器大小为256字节。经过以上的对比和总结,系统的主控模块选择单片机。

3.1.2显示器的选择 方案一:采用数码管显示电路显示,显示效果较好,通过输入电流到对应的管脚控制其发光,可实现温度、日期等多种参数。它广泛用于电器,尤其是家用电器,如显示屏,空调,热水器,冰箱等。

通常使用的LED数码管是7段LED,它是由7个LED和一个小圆点LED组成的。这7个LED的a~b成“日”字形排列,当某一LED导通时,相应地点和笔画就会亮起来,不同的数字,字母和其他符号由LED不同的明暗组合形成。引线内部连接仅需要绘制它们各自的笔划和公共电极。

方案二:采用液晶显示屏显示。与单片机P0口连接,同时外接上拉电阻,通过上下两行来显示时间,两者可同时限制,单片机P2.3、P2.4、P2.5分别与液晶显示模块的复位、读写和使能端口相连,数据显示参考主程序其他时序。液晶显示器中的每一个字符都是由5*7的点阵组成。该显示方式具有控制简单等优势,同其他液晶控制原理相似。

由于本文所设计的电子时钟所需显示的内容较为丰富,由此本文显示模块采用方案二。

3.1.3电源的选择 方案一:采用交流变压器的方式,这种电源设计方式相对而言较为复杂,同时要考虑变压器参数对于系统正常工作产生的影响,由于存在较高的电眼,一次你在设计时需要进行变压、整流以及滤波等操作。这不仅扩大了系统的体积结构,同时也降低了系统的安全性,若发生电源故障可能会导致电路烧毁。

方案二:采用USB电源的供电方式,这种供电方式应用较多,例如各种终端移动设备以及常见的移动电源等。因此采用USB接口进行供电实现起来较为方便,且电源的选择十分稳定,实现起来安全性高,在没有特殊供电要求的前提下,这种供电方式已经成为主流。

此次系统采用方案二的设计方式。

3.2总体框图设计 此次设计主控模块选择STC89C52单片机,其编程简便而且支持在线操作,该单片机能耗较低,其最小工作电压为3.3V。时钟模块选择了DS1302,该芯片计时准确,能耗低并且拥有内部储存单元。实时时钟芯片使用周期长,准确度高、能耗低等优点,而且还拥有自动降耗的能力,除了能够显示年月日外,还可以显示时间和星期,而且还具备识别闰年的能力,该芯片能够在2.5V到5.5V的电压下工作,显示模块选择了1602液晶显示器,能耗低,使用周期长,额定电压5V。系统整体框图如下3.1所示。

图3.1整体框架图 第四章 主要元件介绍 4.1 STC89C52单片机的介绍 4.1.1 STC89C52单片机主要功能及PDIP封装 统体积小,系统的可靠性高,系统的成本低的优势它可称为世界上最小的应用系统。但要求程序长度小于4K,共四个I/O接口供使用。可编程为5伏电压,擦除时间仅为10毫秒,只有8751和的分数之一。有8K系统内可编程闪存。52采用单芯片,具有智能8位CPU和系统内可编程存储的功能,其具备很高的灵活性以及效率。它继承了51系列单片机的全部优点,并且对51系列单片机的各种功能进了优化和完善,在功能上与51系列单片机相比更加丰富。随着对其不断的优化,其内部拥有一个功能强大的8位中央处理器 ,并且其还支持可编程Flash,因而这款单片机被大广泛应用在各种自动控制系统中,它的出现不仅简化了设计流程,还降低了设计难度。而主控芯片在静态模式下运行时,其对应的频率区间是。相比之下,使用8751单片机时工作电压范围较窄。该类型单片机数据总线是在P0节点位置处,并且是三态双向数据连接端口,能够实现外接存储单元的读取以及写入。单片机在主控领域具备较强的竞争优势,在正常工作状态下能耗低,运算速度快,运行较为稳定。芯片具备可多次编写多次擦除的储存器,次数可达1000次,程序可存十年。保存时间为十年。

封装如表4.1所示 表4.1 STC89C52主要功能 主要功能特性 兼容51系列单片机 8K 用户程序储存器 输入输出接口32个 256x8bit 数据存储器 16位计时器3个 0-24MHz工作频率 内部中断2个 异步串行UART 外部中断源2个 中断源6个 读写中断口线2个 3级加密位 掉电和低耗能待机 唤醒和睡眠 4.1.2 STC89C52引脚介绍 端口:端口是一个双向I/O端口,8位漏极开路,驱动8个逻辑电平来进行数据输出。这样的工作模式,端口内部会出现上拉的阻力,所以在验证程序的时候就需要外部的上拉电阻。

端口:端口也可以进行输入和输出双向作用,并且位数是8位的,和端口一样存在上拉电阻。根据不同的的工作要求,该端口负责接收字节的功能。

引脚所具有的的另一个功能 定时器/计数器:、 端口:端口也可以进行输入和输出双向作用,并且位数是8位的,和端口一样存在上拉电阻。该端口只能够驱动4个逻辑电平。在用高8位地址来获取16位地址的外部数据存储时,会输出闩锁的内容。在进行其他功能时,该端口也承担着接收外部控制信号的责任。

端口:端口也可以进行输入和输出双向作用,并且位数是8位的,和端口一样存在上拉电阻。该端口只能够驱动4个逻辑电平。该端口作为输入端口时是通过上拉电阻升高端口。端口负责输入时,被外部拉下的针脚会由于内部电阻会有输出。

端口还承担这单片机的其他功能:接收外部的控制信号。

  引脚所具有的的另一种功能 定时器/计数器:
、 在进行其他功能时,该端口也承担着接收外部控制信号的责任。

RST:在工作过程中起到对输入进行重置的作用,利用的是两个机器周期内的高电平完成的。

:当系统需要对外部程序器进行访问或者是进行访问数据存储器时,的作用是将地址的低8位脉冲字节索存。因为通常情况下,的输出时间是固定的,是时钟振荡频率的1/6,利用这一特性可以用它来实现计时的功能。但是如果要进行外部数据存储的访问时,系统会自动越过脉冲。

系统编程产生的闪存时,引脚还起到输入输入的作用。

在可能的情况下,禁止操作可以通过在区域的0号位置安装来实现。因为在0号位置之后只有一个固定的指令才能实现的激活。此外,引脚会稍微升高,不执行内部程序时,需要让禁止位无效。

:从外部选取的信号来提供给程序存储器使用。单片机在外部获取指令时,只能产生两次有效的循环,换言之有两个脉冲输出。这时候访问外部数据存储器,系统会自动越过两个信号。

:访问外部的程序内存只能够通过来进行。此时的状态应该是处于接地状态。特别的是,此时编程已经加密了的,则在重置期间,状态将在内部锁定。

单片机封装图如图4.1所示 图4.1 STC89C52 PDIP封装图 4.1.3 STC89C52最小系统介绍 STC89C52是台湾晶宏科技公司所制造出的一种能耗低、性能完善的51内核结构的芯片。它集成了8K的储存器,便于保存数据信息从而确保数据不丢失等功能。具有三十二个通用IO口,同时还包括三个定时器以及1个外部中断等。在使用时成本比较低廉,具有较高的性价比。其中电源电路、复位电路、时钟电路是构成最小系统必不可少的电路,也是电路正常工作不可忽欧俄的三个部分。

①电源电路 芯片引脚VCC与电源模块电联,电源模块的主要功能是为系统其它外接设备供电,在引脚Vcc与GND之间,装有一个0.1uF陶片电容,来提高电路的抗干扰能力,可提升电路的稳定性。

②时钟电路 时钟电路是通过22PF的陶瓷片电容以及晶体振荡器所构成的,两者结合完成启动电路,为微控制器传递定时指令,控制器进行工作。按照生成方式的差异,又能够分类成内部和外部这两种。在芯片的外部,振荡器以及微调电容连接在XTAL1和XTAL2之间,形成一个比较平稳的自激振荡器[ ],在引脚上输出3V的正弦波 ③复位电路 上电复位电路是在上电瞬间开始工作,芯片工作的瞬间RESET引脚相当于直接连在5V电压上,芯片瞬间进入复位状态。随着5V电压不断给电容充电,R1上的电压两端的电压在逐渐地减小,当某个时刻R3电阻上的电压减小为0V时,芯片将从复位状态退出,进入正常的工作状态。利用RST按键控制芯片复位的按键复位也是同一个道理,只要RST按键被下,且该状态保持的时间不低于15ms 以上,芯片即可进入复位状态。RST按键抬起后,芯片自动从复位状态退出。

图4.2 STC89C52最小系统 3.2 DS1302时钟芯片介绍 由Dallas公司主导生产的时钟芯片DS1302是现阶段使用较为广泛的芯片。该类型芯片和主控单片机系统之间是以串行的方式完成数据传输,时间数据包含年、月、日以及时、分、秒等,并且日期是同步完成传递与调整;
芯片的外部电源接入较为便捷,主要是由于集成了电源接入引脚节点,不仅如此,在外部电源断电的情况下,内部仍然可以工作。如图4.3所示。

图4.3 DS1302封装图 4.2.1 DS1302引脚介绍 各引脚功能为:
时钟芯片的VCC1引脚所接入的是系统工作备用电源模块,而VCC2接入的是系统工作主电源模块。因此前者是作为外部电源断电情况下的备用电源,而后者为系统提供主要工作电源。所以VCC1引脚的接入能够显著提升时钟系统工作的稳定性与可靠性。

SCLK:输入串行时钟 IO:
双向数据线 CE:
输入信号必须随时间具有高读取和写入数据 4.2.2 DS1302使用方法 (1) 时钟芯片DS1302的工作原理:
在每次进行读、写程序前完成初始化。对于操作方法,首先将SCLK端子设置为“0”,然后将RST端子设置为“1”,随后输出SCLK脉冲。从DS1302芯片的主要硬件构成上分析,其中涵盖逻辑控制单元、振荡器元件和寄存器。DS1302和单片机的数据传输可以通过RST,I/O以及的数据收发通道来完成。主要的运行阶段可以阐述为:工作初始阶段应当将RST引脚调整为高电平信号,然后借助于信号完成数据指令收发,即从系统的I/O口向DS1302进行传递。(2) DS1302的控制字节 DS1302的控制字如表3.2所示。位7必须为1。若为0,则无法将数据写入DS1302。位6为0,就是访问时钟的数据,位6为1就是访问RAM的数据; 5至1表示操作单元的地址;位0如果0就是执行写的操作,位0为1就是执行读的操作,控制字节一般是从低位开始发送的。

表4.2 DS1302控制字 (3) 数据输入输出(IO) DS1302的数据在下降沿读取。紧跟在8位控制指令字之后的下一个SCLK脉冲,并且数据从低0位读到高7位。其读写时序如下:
图4.4 DS1302读写时序 (4)DS1302寄存器 写地址如下表所示 表4.3 DS1302时钟寄存器 第一行秒寄存器,第二行分寄存器,第三行时寄存器。第八行控制寄存器。

4.3 1602字符液晶介绍 4.3.1 1602液晶概述 本产品用到的是显示器。与单片机P0口连接,同时外接上拉电阻,通过上下两行来显示时间,两者可同时限制,单片机P2.3、P2.4、P2.5分别与液晶显示模块的复位、读写和使能端口相连,数据显示参考主程序其他时序。LCD1602液晶显示器中的每一个字符都是由5*7的点阵组成。该显示方式具有控制简单等优势,同其他液晶控制原理相似。

如图4.5所示。

图4.5 1602字符液晶 4.3.2 1602引脚介绍 引脚功能描述:
表4-4 液晶显示模块引脚介绍 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据/命令选择 12 D5 数据 5 R/W 读/写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 4.3.3 1602字符液晶使用方法 (1)基本操作时序 表4.5 1602字符液晶读写状态表 图4.6 1602液晶写时序图 第五章 系统的硬件设计 5.1单片机简介 单片机是驱动和数据处理的关键器件,利用单片机的资源和各模块的功能实现整体系统调谐。数据连接通过每个引脚的连接进行,J集成系统中的逻辑处理器,系统中的数据收集器以及系统的控制输出。

单片机的最小系统设置如下图3.1所示。主要是每个引脚的功能的引出,单片机的晶振电路。

图5.1 STC89C52系统电路 从图5.1可知,一共具有32个通用的IO端口,这些端口有的具有其特殊的引脚功能,其中P3.0接口是单片机的RXD引脚,可以作为单片机的串口采集端,通过这个接口可以读取其它具有UART接口的设备,P3.1是单片机的TXD引脚可以作为串口的数据输出端。通过这个接口可以向具有UART接口的设备写入数据。除此之外这两个引脚也是单片机下载程序的引脚。单片机的第40引脚是单片机的电源,接入的电压在 3.6V-5.5V之间,可以说具有宽电压适应的功能。单片机要工作就必须给单片机一个正确的供电电源。单片机的第20引脚是单片机的GND引脚这个与系统供电电源的GND连接。单片机只有正确供电之后才可以正常工作。

单片机的第18个引脚是XTAL2,第19个引脚是连接到晶体振荡器电路的两个引脚的XTAL1引脚。单片机接入的晶振是有要求的,只有在一定范围才可以进行正常工作,范围在4M-22.1184M之间大小的晶振都可以正常的进行工作,但是最为常用的是12M晶振与11.0592M的晶振。12M的晶振系统的时钟周期是1us,定时执行准确,11.0592M晶振是适合应用在具有串口通讯的系统中,方便系统的波特率配置。根据项目的具体要求就可以选择出合适的晶振系统。

具备以上的两个条件单片机就可以正常的工作了,根据设计的电路进行单片机引脚程序的控制,可以将引脚作为输入或者输出来连接外围的器件电路,实现系统的整体功能,完成系统数据采集、状态检测、数据运算等功能。单片机系统还具有定时系统和中断系统,根据系统的功能,可以选择性地执行单片机的寄存器配置,并选择单片机的功能。

下面详细介绍了该型号单片机的主要特点:
(1)它是8051单片机的升级优化版本,所以拥有更加强劲的CPU; (2)P3.0/P3.1端口负责芯片的程序编任务; (3)单片机的的工作电压分为3和5V两种; (4)存储器通过片上集成最高达到1280字节; (5)设备的输入输出端口众多; (6)设备的时钟输出有3路; (7)互在系统中可以直接编辑联网供应商; (8)由大规模的集成电路实现可编辑技术列阵/PWN; (9)增强型8051微控制器,6个时钟/机器周期和12个时钟/机器周期是可选的,指令代码与现有的8051完全兼容。

  5.2Protel99SE简介 Protel99SE软件绘制系统的示意图。设计时,必须创建相应的组件库。该系统包括最基本的组件,包括电阻器,电容器和其他常用组件。但是当找到一个特殊组件时,需要自己构建一个组件库。因此,我们必须学会构建组件。是英国公司开发的一款工具软件。该软件具有传统仿真功能,还能支持单片机等微处理器仿真,是当前性能最为强大、运行可靠性良好的外围器件仿真工具,虽然当前在国内的应用处于起步阶段,但在研究者的推动下已经成为各 大高校和科研机构工作者的重要仿真工具。

软件的特点:
(1) 可生成多种电气连接网络表;

(2) 编辑功能强大;

(3) 在原理图可选择一级器件;

(4) 同时运行原理图和PCB。

(5) 可实现原理图和PCB的相互转换;

(6) 满足国际化设计要求;

(7) 支持用CUPL语言;

(8) 强大的“规则驱动”设计环境;

(9) 覆铀可以自动重铺;

内部具有大量的设计模板供使用。

5.2时钟电路模块设计 电子闹钟包含信号发生器、显示模块、案件模块以及电源模块,系统硬件电路图如下图5.2。

系统以AT89C52单片机为核心,通过单片机实现对时钟模块数据的读取,并实现时钟的预期功能。DS1302虽然具有计时的功能,不过它本身是没有调时和显时功能的。在这种情况下,不可避免地要使用单片机STC89C52,它可以用作桥接LCD显示器和DS1302,并利用微控制器的输入/输出端口,实现调整时间的能力。

使用单片机STC89C52实现数据显示和调整是整个系统的关键。在整个系统中,单片机的P0端口用作液晶显示器的显示端口。液晶显示器上显示的数据全部通过P0端口发送,并使用P1端口。制作调节按键的电路连接接口,使MCU可以更好地显示和调整时间。

DS1302电子时钟的总体设计如下图所示。

键盘设计用于完成时钟/日历校对和日历/时钟显示功能。整个电路有两个电源,其+ 5V为电源进行供电,+ 3V作为时钟模块的备用电源。当系统主电源被切断后启用备用电源,安波镇时钟模块正常工作,当主电源恢复之后显示模块仍然会显示当前的正确时间,而不会因为主电源的断开而重置时间 ,有效避免了重新校准。

DS1302是一种DALLAS涓流充电芯片。根据图5-2中的内容,VCC1和VCC2为供电端口以及备用供电端口。DS1302会选择二者电压较大的作为供电接口。所以,当芯片掉电后。仍然能保证时钟的正常运行连。

X1和X2为晶振接口,通过该接口能够为芯片提供晶振频率为32.768KHz振荡信号。

RST为复位接口和芯片选择接口,当该接口处在高电平状态时进行数据交换。

该接口有两种不同的用途。首先,通过该接口能够运行各种命令,并将命令对应的序列传输到寄存器中。其次,通过该接口能够对数据传输进行暂停。当该接口为高电平状态时,全部数据传输将会被复位,为DS1302的启动创造条件。在数据传输过程中该接口变为低电平状态,数据传输断开,输入输出接口转为高阻态。在对DS1302进行上电的过程中,RST接口始终处于低电平状态,当VCC接口的电压超过2.5V后,当SCLK为低电平并且输入输出接口处在数据接收状态,此时可以将RST转成高电平。从而实现对SCLK的控制。

图5.2 DS1302的硬件接线图 图5是DS1302时钟程序的流程图。当芯片运行时,它进入初始化。当出现中断信号时,芯片上的数据被传送到MCU进行处理并通过数码管显示,然后按下菜单按钮。按下此按钮时,数据将传输到时钟芯片并在设置完成后显示。如果不按下按钮,它将直接发送到EPROM。。

图5 DS1302时钟程序流程图 闹钟设置:闹钟电路的设计是通过与DS1302实时对比实现闹铃的功能,采用按键设置闹铃的小时与分钟,当闹铃的小时与DS1302小时相等时候,通过比较闹铃的分钟与时钟读取的分钟,设定闹铃的时间是相一分钟,当超过一分钟之后闹铃不在响。

倒计时功能:这里的倒计时实际采用的是DS1302的显示时钟秒的差值,这个差值是60秒与时钟秒的差值,时钟DS1302每走一秒,倒计时就会减少1秒,当减少到0时候为60秒重新开始。

5.3误差校正模块设计 时间是一个基本物理量,具有连续、自动流失等特性,结合时间的概念和实践误差相关理论,可定义电子钟误差S=S1-S2,S1嗲表程序运行的秒;
S2代表标准秒。S>0时代表走时误差为“慢”;
反之,S<0代表“快”。

在本文所设计的电子时钟中,误差来源于晶体频率误差和延时误差。延迟实践过长或果断都会造成时间走时误差。

按键电路设计的主要功能是实现数据输入和参数设置。硬件原理是用独立按键设计。其中一个独立按键连接到GND接口,另一个连接到单片机的输入和输出接口。当MCU的输入/输出接口被轻微拉动时,按钮被触发,当GND接通时,MCU的引脚将检测到低电平信号。当 MCU检测到信号时,MCU检查是否有按钮按下决定。处理并执行对应的操作。设计按钮时,通常会有一个防止抖动的过程,这是因为MCU的检测速度太快。为避免这个过程,通常会在MCU检测到按键时设计防止抖动的程序。抖动时间为5-10 ms左右。按键电路的硬件电路如图5.3所示。

本次设计的按键主要是实现误差的校整,可以将误差最小校正在1S,通过按键可以设置年、月、日、时、分、秒、周的参数。

图5.4是误差小校正模块的一个工作流程图。首先对DS1302进行初始化,去除写保护,使数据可写入,由于脉冲存在将产生高电平。等到需要校时的时候,这些数据就会存储到新的地址,再读取的时候就可以一把这些新的地址读到1602液晶屏上,这就完成了校时。

图5.4 DS1302校正模块流程图 5.4显示模块的设计 显示电路LCD1602模块有两种形式,其一为背光显示,其二为带电源的显示模块,详细电路图如下。

图5.5 1602LCD尺寸图 参数:
显示容量:字符;

电压:;

电流:;

最优电压数值:5V;

字符规格:
引脚说明 第1脚:接地。

第2脚:系统工作主要供电接口,接入的是5V电压值。

第3脚:VL代表的是显示模块的参数调整接口,主要是对工作状态下的数据显示对比度进行控制。

第4脚:RS表示寄存器选取节点。

第5脚:R/W代表的是数据信号读写接口,若获取的是高电平信号,直接进入数据读取流程,在低电平状态下进行数据写入流程。

第6脚:在E接口端定义为工作使能端,发生电平信号翻转之后,显示模块进入工作环节。

第7~14脚:系统8位双向交互通信。

第15以及16脚:接入背光+/-极信号。

图5.6 1602LCD电路图 图5.7展示了1602的工作流程。首先,也是进行初始化,然后写入数据,下一步就检测是否有数据写入,如果没有数据写入,就一直处于等待钟,等到有数据写入为止,有数据写入就读出数据并显示。

图5.7 1602流程图 5.5 DHT11温湿度采集模块 本设计采用STC89C52单片机的外部中断部分以及LCD1602部分完成测量和显示部分,利用DHT11数字温湿度传感器完成数据采集,DHT11可实现温度和湿度的高效测量,具有单线制串行接口,无需额外部件;
超长的信号传输距离;
超低能耗;
全部校准,数字输出;
保证产品具有良好的稳定性和卓越星,该传感器内置有一个温度感应元件和湿度感应元件,使其成为该类应用中,在苛刻应用场合的最佳选择。

此次设计的系统利用DHT11传感器来实现对环境温湿度的检测功能,DHT11温湿度传感模块相较于传统的传感器而言具有更大的测量优势,例如可实现温度和湿度信息的同时测量,因而相较于传统的测量系统而言结构更为简单,且可有效节省与单片机的通信结构,具有较强的抗静电功能。该传感器最为突出的特点就是将温、湿度传感以及加热器、信号转换、A/D转换汇聚在一起。

引脚图如图5.7。

图5.7 DHT11传感器实物图 (1)引脚介绍:
连接电源正极。

读取数据。

无作用。

Pin4(VDD)接地。

(2)接口说明 :
如当导线的长度不超过20米时,上拉电阻的阻值选择5K,当导线的长度不超过20米时,需要对上拉电阻的阻值进行详细的计算。如图5.8:
图5.8 DHT11典型应用电路 使用它的原因:
1、DHT11时序简单。

2、DHT11是国产的,参考手册是中文的,没有英文可以看懂。

3、功能很少,就只有一个功能,测量温湿度。

该器件使用单总线协议,但我们还需要知道电源范围为3.5-5.5V。超出此范围可能会损坏传感器,超过此范围,传感器可能会读取不正确的温度和湿度数据或从根部发生故障。因此,操作时要小心。

HT11使用单总线协议,一次传输40位数据。换句话说,必须一次读取DHT11数据40 次。也就是说,必须读取40位。前16位数据与湿度有关,中间16位与温度有关,后8位用于验证。验证成功表明温度和湿度结果是正确的。可以使用这些温度和湿度值,如果验证不对,则表示读取的时错误的温度和湿度值。可能是时序错误,或者是传感器的问题。由于时间有限就不进行采样了。

第六章 系统的软件设计 软件设计的实质是编写系统的软件程序。此次设计需要编写个两方面的程序,分别为主程序以及控制程序。在编写程序的过程中需要符合以下要求:
(1)按照软件设计功能需求,将系统模块整体分成一个个独立的部分,结构也要清晰合理,使软件开发更加流畅、合理、方便;

(2)养成良好的编码方式习惯,如注意初始化模块的合理使用、合理使用懒加载、合理使用参数断言。这样的话可以方便的进行代码的调试、移植、修改。

(3)利用仿真描绘合理的电路图模拟演示;

(4)制作程序流程图;

(5)资源分配合理化;

(6)改善软件干扰预防并确保系统稳定性。

控制系统需要正常的操作和操作,但软件的设计和硬件设计必须紧密耦合,以确保系统的正常运行并实现正常运行以满足项目要求和目标。在软件编程的过程中通常会使用模块化的编程方案。该方法是对系统程序进行分解,将其划分为每个函数的子程序,并根据每个函数编写程序代码。软件设计成功后,必须对硬件进行测试,只有在系统硬件中实现实际硬件要求时才能成功。实际上创建了软件的语言来控制硬件。每个程序功能都有特殊含义。执行部分的设计完成后,应启动主程序设计,,结合系统的设计要求对控制程序进行编写,利用最佳的主程序,并根据实时情况对两个类进行适当的排序。

硬件电路的正常操作需要软件的协作,主要设计的程序是单片机系统的执行程序。单片机控制IO引脚实现外围电路的操作,根据系统的要求来编写程序。

(1)在编写程序的时候选择C语言进行程序的编写,掌握基本的C语言语法与用法。

(2在编程的过程中需要编程软件的支持,利用KEIL完成编程工作,需要安装KEIL软件。

(3)熟练掌握单片机的工作原理,利用设置在单片机内部的储存单元以及输入输出接口来实现对外部设备的控制。需要掌握外围器件的使用方法。

(4)编写程序结束后需要将程序转化为以.HEX结尾的可执行文件,并且将该文件载入到单片机中,查看系统整体的运行情况。

以上的4步是编程的基本步骤,同时还有一些技巧与方法,采用模块化的编程思路进行编程,并逐一调试与各模块相对应的程序,在一些时候会节省一些时间减轻工作量。

6.1程序开发软件简介 在单片机系统的开发和应用,我开发是用KEIL软件进行开发和设计,利用该软件完成程序的编写工作。此次选择C语言作为此次的编程语言。单片机只能识别为0或1。

KEIL软件可以在许多方面,如人机接口和编译器进行设计。编译器将包括环境和集成高级语言编译器之间的相互连接,每个模块级语言的连接器,以实现产生机的目的。如果写一个程序,只要设计仅应用层的代码就好,检查相应的语法错误是编译环境自动完成的,如果软件是书面声明错误,编译器发现错误并对程序员的提示错误纠正。

KEIL开发环境对于开发人员来说是非常便利的,不仅可以提供良好的编程界面,而且还提供了丰富的资源和工具。由于KEIL开发环境具有许多优点,程序员使用Keil开发是很常见的。许多设备制造商不得不依靠KEIL的实用性大部分芯片,支持KEIL软件的开发。

KEIL软件开发可以被称为最流行的编译器的开发工具。KEIL软件开发的广泛使用是合理的,因为其使用简单功能强大,所以受到了开发人员的热捧。

由美国企业所主导研发的是现阶段51单片机系统搭建过程中必不可少的工具。该工具主要面向 C程序语言进行开发,和机器汇编语言进行对比得知,使用C语言能够在整体结构以及可读性上有较强的提升。内部集成了较为丰富的库函数以供使用者随时读取调用,并且与微软的系统有较好的兼容性。不仅如此,在该环境下编译程序效率较高,尤其是在完成大型软件与系统设计中更能发挥的优势。对的使用与子功能阐述如下 在编译之后,将创建的以.hex结尾的文件进行保存,并把该文件载入到单片机中,观察系统的整体运行状态是否正常。需要确定系统的开发环境本次设计采用Keil的开发环境,在电脑上安装软件然后进行工程的建立。新建工程界面如下图6.1所示。

图6.1 新建工程界面 建立好工程之后就开始进行程序的编写,程序编写KEIL的界面如下图6.2所示。

图6.2 编写界面 写好程序之后进行程序的编译运行,Keil编译界面如下图6.3所示。当编写的程序都正确的情况下输出的界面会显示0个错误,0个警告。警告没有太大的问题,是一些语法的不严谨。有错误程序是不能生成.HEX文件,也就需要重新查找错误。

图6.3keil的编译界面 当程序成功生成.HEX文件时候,可以将程序下载验证。下载程序界面如图6.4所示。

图6.4 HEX文件下载界面 第一步选择下载程序的单片机器件型号,这里选择是STC89C52单片机第二步需要将程序装载进软件的路径,确定.HEX文件的访问路径。利用软件打开该执行文件,并且将编译后的文件载入到最单片机中。

6.2程序流程图 系统整体流程图如图6.5。系统通电后,首先完成系统的初始化,并开始运行,在运行时若检测按键按下,系统将进入到时间设定状态,如果没有检测到按键动作,将时间以及温湿度等参数发送给显示模块进行显示;
用户设定好时间后将新的参数发送给显示模块。

图6.5系统总流程图 本文所设计的数字时钟运用了多种子程序,子程序的流程如如下。

系统通电后,首先完成系统的初始化,并开始运行,在运行时若检测按键按下,系统将进入到时间设定状态,如果没有检测到按键动作,将时间以及温湿度等参数发送给显示模块进行显示;
用户设定好时间后将新的参数发送给显示模块。由此可显示实现。如图4.1所示:
图4.1主程序流程图 按键处理主要功能是检测按键是否按下,若按下则秒就加1;
否则检测分按键,若按下分加1,同样原理完成时按键的检测。按键处理流程图如下所示:
图4.2 按键处理流程图 定时器中断检测1秒是否到,若到,单元就加1;
若没到,则相同原理完成分和实的检测,最终显示时间。如图4.3所示:
图4.3 6.3 DS1302时钟程序流程图 首先给模块通电,对系统变量进行初始化,使DS1302不具备写保护,因为这个写 保护位要清0才能写入时间数据。写保护是因为担心对1302进行错误操作,从而进行写保护,就相当于上了一把锁,不可以对其进行操作了,如果要对时间进行调整就要取消写保护即可。然后复位电路产生一个高电平,实现电路复位的操作,此时始终处于上升沿,可以写入数据。接下来是写1302地址,一段时间的延时后,向系统写入数据,地址增加,此时判断数据是否写完,没写完继续重复操作,给1302连续脉冲直至地址写完。然后单片机与其进行通信,读取内部地址,直到地址读取完毕,使数据显示在屏幕上,这样流程图的操作就完成了。如图6.6所示 图6.6 时钟主流程图 6.4 LCD显示程序流程图 显示程序流程图如图4-4:
图6.7 LCD显示程序流程图 第七章 系统的调试与分析 7.1系统制作 系统整体制作是需要准备相应的工具,包括了电烙铁、焊锡、电路板、以及元器件。在整体系统焊接完成之后,就到了系统的调试阶段。拟建系统在投入使用之前需要进行调试,系统在设计时可能由于开发者的疏忽产生诸多漏洞,因此需要进行测试来发现这些漏洞并予以完善,验证系统是否可以实现预期的功能需求。不仅如此还要验证系统具有长期运行可靠性和稳定性,这也是调试的重要目的之一,有效防止了系统在使用一段时间后出现问题,若上述测试结果均符合测试标准则说明系统设计较为成功。

在实物系统的完成过程之中主要包括了以下的几个步骤。

1.在制作的过程中需要按照画好的原理图进行焊接,查找相应的器件手册来了解器件的引脚,根据原理图将引脚焊接到单片机。

2.检测焊接完成之后的器件,观察元器件是否有虚焊、漏焊的现象。

3.使用万用表进行系统的硬件电路进行测试,首先测试GND与VCC是否具有短路的现象,也就是万用表是否会发出声响,当有声音时候证明系统焊接错误需要重新查找系统的错误之处,直到万用表测量没有问题为止。

4.系统上电观察,器件是否会有LED指示亮,测量系统电源器件电源是否正常。

5.对程序进行模块化的编写,测试系统各个模块程序是否会正常的执行。

6.进行系统的整体测试,反复进行验证,直到满意为止。

焊接的图片如图7.1所示:
图7.1系统焊接图 系统实物图片如图7.2所示:
图7.2系统实物图 7.2硬件调试 下面介绍系统硬件部分的调试,包含最小系统以及方向电路两部分:
(1)单片机小系统的调试:首先将电路连接完毕并将最小系统上电,随后用万用表测量端口电压情况,查看晶振电路引脚电压是否在在2.0V左右,利用示波器检测ALE口是否有方波信号输出,按下复位按键观察复位引脚是否输出高电平,完成调试后将程序烧录至单片机并重建检验最小系统是否正常工作。

(2)方向识别电路的调试:按照设计的电路图完成连接,将查看实现模块是否能够实现预期的时间显示功能,同时观察是否能够实现时间的调整,调试直到实现其功能。

在焊接时应当谨慎小心,焊接主要步骤为:第一步开始焊接:开始前需要注意要把焊接的位置清理干净,然后把需要焊接的元器件的两个角调整一下位置,向一定的方向用手掰一下。接下来让电烙铁头碰到需要焊接的元器件脚下,放上焊锡丝。第二步给焊 接升温:第二个是步骤加热焊锡丝,将加热的电烙铁放于器件管脚的旁边,轻触焊锡丝并使之慢慢融化。注意电洛铁温度需要保持在400℃左右,加热时间保持在2秒钟左右,时间过长很有可能焊坏面包板焊盘,另外不同类型的器件在具体操作时也是有区别的。第三部清理焊接面:在完成焊接的第二步后,有可能会出现虚焊等问题,此时应当修改,对于焊接不足的地方予以补焊,若焊锡过多,则可通过烙铁头滑动的方式将多余焊锡带走。第四部检查焊点:在完成上述步骤后对焊接结果进行观察,并观察焊点是否紧固,是否与其他管脚相连,当所有点都检查无误之后,焊接完成。

在焊接完成后测试电路是否导通,保证系统可正常工作。

图7.3 系统上电测试图 我试图制作第一块PCB板,因为在我第一次尝试经同学指导后没出现大问题。我仔细检查了整个电路后开始了。尝试后,第一块板是经过多方面考虑后才定稿的,因为是第一次做,所以打板难免出现各种问题,我的板的问题是:液晶屏没数字显示。

图 在这种沮丧之后,我发现很多不该出错的地方都有问题,导致第一次测试失败。但仔细调查后发现并解决大多数问题,第二板很快,但问题又来了, 时钟不走。

图 因为时钟不走的原因,我上网查阅了好多资料,又认真的看了一下书籍文献,最终找到了原因所在:原来是DS1302的两个数据传输线的电流太小,于是我们就在P3.5、 P1.6的端口加上了上拉电阻,加大了电流,最终我们完成了设计。完成的实物如图10所示。

图 、硬件调试有许多小问题:线没接对。焊接不成功,电流无法到达电路。但最大的问题是电路已打开且亮度显示在LCD屏幕上,但时间不会显示。第一个响应是时钟模块代码是否有问题。验证后,我确认没有问题,然后我检查是否是电路短路的问题,但还是解决不了。最后,我在互联网上找到了时钟为什么不会动的问题。在互联网上找到的答案,但我不知道它是否正确,不过试验过后发现,真的会走了,当时心情还是很激动的。

7.3软件调试 本采用C语言进行编程,相较于汇编语言而言,C语言具有一定的优势,首先C语言有出色的便携性,因为它是一种高级语言程序员阅读,容易理解。利用KEIL编程软件通过C语言对系统程序进行编写。在编程的过程中运用了模块化的设计方案。最基本的是要写出下面的应用架构,确保系统能够编译的历史和为不同模块 实现应用程序的创建,完成寄存器的设置,发送和接受字符数据等相关功能,写入功能显示输出,LCD1602的显示程序写入。为了显示时间和日期,需要在DS1302中进行读取读取,并传送到液晶屏中显示,这样需要有1302时钟模块,1602液晶模块,以及时间日期读取程序,液晶显示程序。

主程序的流程图如图7.4所示,首先对DS1302和定时器进行初始化,调用按键程序,程序在外部中断按键调时后,读取DS1302的相关信息到液晶屏显示。

图7.4电子钟主程序流程图 在软件设计过程中首先从子程序进行设计,通过编写显示程序来实现第一个子程序的编写,在编写显示程序的过程中发现数据显示不出来,显示的都是方框,界面如图7.4所示。

图7.4 显示方框程序 通过查找程序,发现程序中引脚设置不正确,将EN与RW引脚的位置互换,显示程序正常的执行。正常显示如图7.5所示:
图7.5 正常显示程序 最后通过整体的调试系统可以正常的工作,如图5.6所示。

图5.6 系统软件正常工作 软件的调试也花费了很多的时间,因为软件方面有问题的话,直接影响硬件的显示,软件调试成功的话,硬件也就能正常显示了。从此次调试中,我深刻体会到了自己知识储备的不足,还有对硬件原件的不够了解。硬件引脚多,某个地方出现错误就会造成错误,调试工作也就显得更加的烦琐,因为一个地方出现错误,很难一下子找到问题的源头,又需要重新看一遍。有时候的设置是因为自己粗心大意,自己认为没错,所以就找不出问题的根源在哪,焦虑的同时又不知道怎么办,第一时间就想到找同学帮忙,都说旁观者清,在同学的指导下,当找到错误时才恍然大悟。这是一项细致的工作,我也需要加强自身的练习,只有多练习,接触的多了,自然就信手沾来了。

第八章 总结 到现在为止,毕设的所有东西已经介绍完毕,这次的挑战难度对于我来说无疑是非常艰难的。从选题开始就处于无从下手的状态,题目看起来感觉不难,通俗易懂,仔细分析之后还是有很多困难的。首先查资料、了解元件功能,再确定设计方案、画图、编写程序到最后仿真调试,制作实物再调试。每一个环节对于我来说都不是那么的乐观,,时间真的有点不够用,可能是平时学习这方面的知识太少了,导致两眼一抹黑。

开题报告做出来的时候感觉还挺轻松,等真正动手了,这也不会那也不会,课堂上学的知识感觉都不够用,比起以前任何一次程序设计都难,就是一个大型的程序设计,参考资料看多了,需要的元件也了解的差不多了,然后就可以动手写了。由于在建设能力的限制,遭遇到了难以突破的瓶颈,无法继续下去,我回校了,因为在学校可以及时找老师同学沟通,图书馆的资料也很丰富,便于及时查阅,学校的学习氛围也比较浓厚,让我放弃偷懒心理,毕竟看着舍友们都在认真完成,自己也会着急。若是抱着侥幸心理,也许在家时无法完成这个设计的。论文的书写基本上就是参考别人的论文模板,就是整体的框架,也可以说是格式吧,然后就直接添加需要的内容上去 写着写着,感觉字数有点不够,第一次写这么多字的论文还是有点头疼的,这就导致了摘抄太多查重太高,降重也是非常头疼的一件事。软件部分使用的是C语言,各方面都有接触过,也是有很多bug。都是需要耐心修改调试的东西,一急就做不了的。硬件方面老师也要求做实物,刚好以前有课程学过焊接,可以自己动手,再向别人请教,做的不是很美观,不过也勉强能用了。这次的毕设是一个对我而言极大的考验,让我开心的是,在我做毕设时,本组同学的帮助对我意义重大,也让我自己有了动力。

通过这次的论文设计,我对单片机的认识更加深刻了一点,对于如何设计单片机系统也有了一个详细的了解。功能上基本上实现了:显时、调时、校时、闹钟、温湿度、倒计时。互联网已经融入了我们的生活中,网络在这一设计中发挥了重要作用,因为传统纸质书籍中没有那么多参考资料。由于每个人的无私奉献,互联网上的资料更是琳琅满目,丰富多彩。本文以51单片机为主控模块,完成各个线路功能模块进行设计研究,最后详细阐述了系统搭建的流程,并使用C语言完成程序的编写。

经过这一次毕业设计,我学了不少的知识,特别是理论和实践结合的重要性,运用我们在现实生活中学到的理论知识进行实践来检验真理。学会了如何对自己所需要的资料进行检索,并且掌握了单片机仿真软件以及keil软件的使用。

致 谢 经过数月的努力,系统设计终于成功完成,也对系统设计进行了测试。我在这个过程中有很多体会。毕业设计是对大学的四年总结测试。我在大学时期学到的东西,我能做的,以及我所学到的知识水平都在这个毕业设计中得到了考验。学习可以获得知识,但没有尝试设计的话不会发现自己掌握的知识水平程度有多少。

这可以称得上是平淡学习的中间的一个真正的解脱尝试,并且从中自己也有了一个深刻的体会,这是一个很好的一步阶梯,遇到困难获得成功,一次又一次得到很大的快乐,没有失败就没有成功。记住失败,不要害怕曲折。这是我毕业设计的最深刻体验。谢谢老师。感谢您的耐心和指导,感谢您的认真和责任,并感谢您给您带来的不便。请在这里向我表示最崇高的敬意。

在这里还必须感谢我的朋友,感谢大家陪伴的日子,很高兴学到了很多,我们之间有趣的讨论,我们将互勉共进,在接下来的人生中希望大家都能闯出自己的一番天地。

最后,我感谢我的父母,支持我的学业,并帮助我。所以我可以自由地追求我的梦想,追求自己的价值观! 参考文献 [1] 刘和平. 单片机原理与应用[M].北京:机械工业出版社,2002,201-209 [2] 刘守义.单片机应用技术[M]. 西安:西安电子科技大学出版社,2002,98-107 [3] 刘勇. 数字电路[M]. 北京:电子工业出版社, 2004,111-118 [4] 康光华.电子技术基础—模拟部分 [M].(第五版)高等教育出版社.2005,247-261 [5] 谭浩强. C程序设计 [M].(第三版)北京:清华大学出版社,2005,256-278 [6] 周润景,张丽娜,刘印群. PROTEUS入门实用教程[M].北京:机械工业出版社,2007,314-325 [7] 戴佳,戴卫恒. 51单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社,2006,231-246 [8] 徐爱钧,彭秀华. Keil Cx51 V7.0 单片机高级语言编程与uVision2应用实践 [M].(第二版)北京:电子工业出版社,2008,156-171 [9] 肖炎根,舒望.基于实时钟芯片的多功能电子钟设计[J].电子技术,2007,卷号(36):91-94 [10] 王怀平,王仁波,胡开明.Proteus仿真设计基于单片机AT89C51的多功能电子钟[J].科技广场,2008,卷号(10):197-198 [11] 鲁刚强. 基于液晶显示器的单片机系统设计[J].科技资讯,2008,卷号(35):22-23 [12] 余威明. MCU语音型多功能电子钟的开发[J]. 浙江工贸职业技术学院学报,2004,卷号(4):20-25 [13] 邱关源. 电路 [M].(第四版)北京: 高等教育出版社, 2006, 241-268. [14] 陈凯. 液晶显示多功能电子钟、时间、星期及温度[D].湖南:湖南理工学院,2009. [15] 张海兵, 李 敏. Protel电路设计实例与分析[M]. 北京:人民邮电出版社, 2005,119-205 [16] 黄劼, 徐晓秋. 单片机原理及接口技术[M]. 北京:国防工业出版社,2008,102-112 [17] 刘迎春. MCS-51单片机原理及应用教程 [M]. 北京:清华大学出版社,2005,145-157 [18] 张齐, 朱宁西.单片机应用系统设计技术:基于C51的Proteus仿真[M].(第二版) 北京:电子工业出版社,2009,245-264 [19] 来清民.传感器与单片机接口及实例[M].北京:北京航空航天大学出版社.2008,134-141 [20] 谢宜仁. 单片机硬件接口电路及实例解析[M]. 北京: 电子工业出版社, 2009, 210-219 [21] 付浩伟,向凤红,程加堂.基于DS18B20传感器的温度数据采集系统的设计[J]. 昆明理工大学信息与自动化学院,2007,卷好(6):131-134 [22] Alexandru Valeanu. Interfacing 8051 MCUs with I2C Serial EEPROMs. [D]. Microchip Technology Inc,2008.

推荐访问:单片机 时钟 设计

《基于单片机的时钟设计.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:

文档为doc格式

一键复制全文 下载 投诉