多功能电子时钟摘要本文是基于AT89C52单片机数字钟的设计,通过多功能电子时钟的设计思路,详细叙述了系统硬件、软件的具体实现过程。
论文重点阐述了电子时钟硬件中MCU模块、时钟模块和键盘模块、显示模块等的模块化设计与制作;软件同样采用模块化设计思路,包括中断模块、闹钟模块、时间调整模块的设计,并采用C语言编写实现。
本设计实现了时间与闹钟的修改功能,年、月、日和星期的显示功能。
并且通过对比实际的时钟,查找出了误差的来源,确定了调整误差的方法,尽可能的减少误差,使得系统可以达到实际数字钟的允许误差范围内。
本文还涉及到非接触止闹功能,在有效范围内使用者不需用手去寻找开关而关闭闹钟,该功能使本设计更具有人性化。
该时钟还有重要日子倒计时功能,能够提前几天设定好时间,以避免遗忘重要日子。
关键词:AT89C52单片机,电子时钟,模块化设计,C语言Multifunctional electronic clockABSTRACTThis article is based on AT89C52 microcontroller digital clock design, through multi-functional electronic clock design ideas, detailed description of the system hardware and software realization process.Paper focuses on the electronic clock hardware MCU module, clock module and keyboard module, display module, modular design and production; software as a modular design concept, including aninterrupt module, alarm module, module design time to adjust and adopt the C language implementation. The Design and Implementation of the changes of time and alarm functions, year, month, day and week display. And by comparing the actual clock, find out the source of the error, the error method to determine the adjustment, as much as possible to reduce the error, allows the system to achieve the actual number of minutes of allowable error range. This also involves the function of non-contact only trouble in the effective range of users do not need a hand to find switch and turn off the alarm, this feature makes the design more user friendly. There are important days of the countdown clock function, set a good few days ahead of time, to avoid forgetting important occasions.KEY WORDS:AT89C52 microcontroller, electronic clock, modular design, C language前言 (1)第一章系统总体设计 (2)1.1 系统总体设计 (2)1.2 方案论证 (2)1.2.1 总体方案论证 (2)1.2.2 模块方案论证 (3)1.2.3 止闹功能 (3)第2章系统模块设计 (4)2.1 时钟接口电路设计 (4)2.2 键盘接口电路设计 (5)2.3 液晶显示电路设计 (8)2.4 单片机电路设计方案 (11)2.5 跑表功能设计 (14)2.6 非接触止闹电路设计 (14)2.7 报警电路设计 (14)2.8 重要日子倒计时功能设计 (15)2.9 看门狗电路 (15)第3章软件设计 (18)3.1 系统软件设计综述 (18)3.2 系统软件流程图 (18)第4章系统测试 (20)4.1 时钟功能的测试 (20)4.2 闹钟功能的测试 (20)4.3 跑表功能的测试 (20)4.4 重要日子倒计时功能的测试 (21)结论 (22)谢辞 (23)参考文献 (24)附录 (25)前言电子时钟己成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
随着技术的发展,人们己不再满足于钟表原先简单的报时功能,希望出现一些新的功能,诸如日历的显示、闹钟的非接触式止闹、跑表功能、重要日期倒计时显示等,以带来更大的方便,而所有这些,又都是以数字化的电了时钟为基础的。
因此,研究实用电子时钟及其扩展应用,有着非常现实的意义,具有很大的实用价值。
由于数字集成电路技术的发展和采用了先进的石英技术,使电子时钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
虽然现在市场上己有现成的电子时钟集成电路芯片出售,价格便宜,使用也灵活,如可以随意设置时、分、秒的输出,改变显示数字的大小等,并目由于集成电路技术的发展,特别是MOS集成电路技术的发展,使电子时钟具有体积小、携带方便,但是本设计介绍的多功能电子时钟可以满足使用者的一些特殊要求,输出方式灵活、功耗低、计时准确、性能稳定、维护方便等优点。
实用电子时钟是一个时间控制系统,既能作为一般的时间显示器,也可作为一个定时控制器,驱动负载或显示信息,同时可以根据需要扩展其功能。
在此项目的设计研究过程中需综合运用所学的模拟电了技术、数字电了技术、单片机原理与应用、EDA等课程的知识,掌握实用电子时钟的设计、组装与调试方法,利用现代的EDA、单片机等新电了技术以及现代的设计手段,系统地培养了综合设计、操作调试、故障处理的能力,达到综合素质以及创新能力的提高。
第一章系统总体设计1.1 系统总体设计根据题目设计要求,要求实现时间和闹钟的显示及设定、跑表、重要日子倒计时、非接触式止闹等功能。
系统上电自检后,实时实现小时、分钟、秒以及日历的显示和闹钟开关等指示信息的显示,通过按键可实现校对时间、设置闹钟时间、整点报时功能以及进行跑表和对贡要日子倒计时的设定和显示。
当闹钟时间到时,单片机通过晶体管、蜂鸣器来实现声报警。
采用光电开关实现非接触式止闹的功能。
针对此要求,本系统由以下几个模块构成,系统总体设计框图如图1-1所示:图1-1 系统总体设计框图1.2 方案论证1.2.1 总体方案论证采用AT89C52单片机作为系统的控制核心。
单片机是一台简单的计算机,它在结构上的最大特点就是把CPU、存储器、定时器、I/O接口电路集成在一块大规模的集成电路芯片上。
它有集成度高、体积小、控制功能强、低功耗、低电压,便于携带等优点。
1.2.2 模块方案论证时钟模块采用专用时钟芯片实现,市场上现在又很多实时时钟芯片,如DS1302、PF8563、X1227等,芯片内部都集成了时钟/日历功能,给时钟设计带来了很大的方便。
因此,计时功能采用时钟芯片为宜。
键盘模块采用矩阵式键盘,此类键盘采用行列式扫描方式,当按键较多时可以有效的降低占用单片机I/O口的数目。
由于本系统采用的是4×4式矩阵键盘,I/O口的接线比较多。
显示模块采用液晶显示,液晶特别是具有汉字显示功能的液晶显示器,来实现本设计的显示功能,不仅可以显示基本的信息,而且还可以显示丰富的符号及文字指示信息,信息量丰富且直观。
液晶显示具有功耗低、体积小、重量轻、寿命长,不产生电磁辐射等优点。
1.2.3 止闹功能止闹功能采用光电开关实现非接触止闹功能。
因为光电开关利用物体对红外线的反射,可检测到物体的有无,方便有效,人体只需要靠近传感器20CM以内就可产生信号,完成止闹功能。
第2章系统模块设计2.1 时钟接口电路设计本电子时钟系统的重要部分在于时钟和闹钟功能模块,这里所选用串行日历时钟芯片PCF8563。
与采用并行总线与单片机进行数据通信的时钟芯片相比,PCF8563与单片机的连线大为减少,极大的节省了单片机的系统资源。
时钟芯片与单片机的接口电路如图2所示。
PCF8563是PHILIPS 公司推出的一款工业级内含I²C总线接口功能的具有极低功耗的多功能时钟/日历芯片。
PCF8563的多种报警功能、定时器功能、时钟输出功能以及中断输出功能能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能。
内部时钟电路、内部振荡电路、内部低电压检测电路(1. 0V)以及两线制I²C总线通信方式,不但使外围电路极其简洁,而目也增加了芯片的可靠性。
同时每次读写数据后,内嵌的字地址寄存器会自动产生增量。
当然作为时钟芯片,PCF8563亦解决了2000年问题。
因而,PCF8563是一款性价比较高的时钟芯片,它己被广泛用于电表、水表、气表、移动电话、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。
图2-1 PCF8563时钟电路PCF8563采用了I²C总线接口,虽然总线时序关系复杂,但我们可以利用PHILIPS公司提供的软件包,使得编程极为简单,可靠性极强。
在设计中我们卞要用到了PCF8563的计时功能和报警功能。
PCF8563内部共有16个寄存器。
其中OOH, 01H为控制方式寄存器,02H-08H为时间寄存器,09H-OCH为报警功能寄存器,ODH为时钟输出寄存器,OEH和OFH为定时器功能寄存器。
由此可以看出芯片内部时间寄存器和报警寄存器在地址上是连在一起的,并且数据全部是以BCD码形式存放的,这样使得数据读写和处理变得相当简洁和便利。
在本设计中,PCF8563通过SCL, SDA,/INT, CLKOUT与单片机相连,SDA, SCL,/INT, CLKOUT均为漏极开路,必须接上拉电阻。
SCL为时钟输入端,数据随时钟信号同步输入器件或从器件输出;SDA为双向引脚,用于行数据的输入输出;/INT是中断信号输出端,与单片机的P3. 3相连,可通过设置报警寄存器按指定时间在该脚产生报警信号,低电平有效;CLKOUT是时钟输出端,接至单片机的P2. 1脚,当闹铃时间到时,在PCF8563的内部产生中断标志AF,同时在/INT端产生一个中断(低电平有效),中断服务程序中通过软件编程使得CLKOUT,也就是单片机的P2. 1脚输出1Hz的脉冲,启动报警电路,蜂鸣器发出报警声。