![作息时间控制器(基于51单片机和DS1302的时钟)要点_第1页](http://file4.renrendoc.com/view/9b19a8115cac2b7b2f9a263e3f50820f/9b19a8115cac2b7b2f9a263e3f50820f1.gif)
![作息时间控制器(基于51单片机和DS1302的时钟)要点_第2页](http://file4.renrendoc.com/view/9b19a8115cac2b7b2f9a263e3f50820f/9b19a8115cac2b7b2f9a263e3f50820f2.gif)
![作息时间控制器(基于51单片机和DS1302的时钟)要点_第3页](http://file4.renrendoc.com/view/9b19a8115cac2b7b2f9a263e3f50820f/9b19a8115cac2b7b2f9a263e3f50820f3.gif)
![作息时间控制器(基于51单片机和DS1302的时钟)要点_第4页](http://file4.renrendoc.com/view/9b19a8115cac2b7b2f9a263e3f50820f/9b19a8115cac2b7b2f9a263e3f50820f4.gif)
![作息时间控制器(基于51单片机和DS1302的时钟)要点_第5页](http://file4.renrendoc.com/view/9b19a8115cac2b7b2f9a263e3f50820f/9b19a8115cac2b7b2f9a263e3f50820f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、桂林电子工业学院课程设计论文报吿用低第|页共28页GUILIMUNIVERSITYOFELECTRONICTECHNOLOGY课程设计(论文)题目:作息时间控制器院(系):电子工程与自动化学院专业:测控技术与仪器学生姓名:学号:指导教师:职称:讲师2012年12月27日桂林电子工业学院课程设计论文报吿用低第II页共28页桂林电子工业学院课程设计论文报吿用低第II页共28页摘要本次作息时间控制器设计是采用AT89S52单片机作为系统的核心元件,在其最小系统基础上与DS1302时钟芯片配合,四个独立按键控制,六位七段数码管显示,无源蜂鸣器发声。单片机最小系统作为核心处理和控制单元;时钟芯片用来实现
2、实时时间的精准输出和闹钟信息的存储,并可用纽扣电池供电以保持时间的连续运行;独立按键用于进行时间及闹钟的设定;数码管用于显示时间及闹钟信息;蜂鸣器用于在达到设定的时间后进行及时提醒。关键词:时间控制;AT89S52;单片机;DS1302;时钟芯片;闹铃;定时报警AbstractThisworkandresttimecontrollerdesignistouseAT89S52SCMasthecoreofthesystemcomponents,initsminimumsystemwithDS1302clockchipbasedoncoordination,fourindependentkeycon
3、trol,sixsevenperiodofdigitaltubedisplay,passivebuzzersound.Singlechipmicrocomputerminimumsystemasthecoreprocessingandcontrolunit;Clockchiptorealizereal-timetimeaccurateoutputandalarminformationstorage,andusebuttonbatteriestokeepcontinuousoperationtime,IndependentkeyfortimeandalarmclockSettings;Digit
4、altubeisusedtodisplaythetimeandalarminformation;Buzzertoreachasettimefortimelyremind.Keywords:Timecontrol;AT89S52devices;SCM;DS1302;Clockchip;Alarm;Timingalarm桂林电子工业学院课程设计(迭文报吿用纸第III页共28页桂林电子工业学院课程设计(迭文报吿用纸第III页共28页目录TOC o 1-5 h z HYPERLINK l bookmark6 o Current Document 引言1 HYPERLINK l bookmark8 o
5、Current Document 课程设计任务及要求1 HYPERLINK l bookmark10 o Current Document 硬件设计12.1总体设计思路及系统框图1 HYPERLINK l bookmark12 o Current Document 2.2中央处理控制器22.3晶振电路3 HYPERLINK l bookmark14 o Current Document 2.4时钟信号产生电路32.5显示电路42.6控制电路62.7闹铃电路8 HYPERLINK l bookmark30 o Current Document 2.8电源及下载电路8 HYPERLINK l bo
6、okmark34 o Current Document 程序设计93.1主程序流程图93.2按键扫描程序流程图93.3响铃扫描程序10 HYPERLINK l bookmark36 o Current Document 制板、组装与调试114.1PCB制作114.2制作PCB板流程11 HYPERLINK l bookmark38 o Current Document 4.3调试11 HYPERLINK l bookmark40 o Current Document 方案总结11 HYPERLINK l bookmark42 o Current Document 心得体会12 HYPERLIN
7、K l bookmark44 o Current Document 谢辞13 HYPERLINK l bookmark46 o Current Document 参考文献14 HYPERLINK l bookmark48 o Current Document 附录15桂林电子工业学院课程设计论文报吿用低第 页共28页桂林电子工业学院课程设计论文报吿用低第 页共28页引言时间是人类生活必不可少的重要元素,从古至今它都扮演着一个非常重要的角色。时间对人们来说总是那么宝贵,学习、工作的忙碌性和繁杂容易使人忘记当前的时间。随时提醒那些容易忘记时间的人,电子钟无疑最为直观。所以一个能够帮助人们提醒时间的
8、事物对于人们来说有着非常重要的意义。数字钟通过数字电路实现时、分、秒。数字显示的计时装置,广泛用于人家庭、车站、码头办公室等公共场所成为人们日常生活中不可少的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。多功能数字钟的应用非常普遍。由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来,通过键盘可以进行校时、定时闹钟等功能,输出设备显示器可以用液晶显示技术和数码管来显示技术。作息时间控制器利用单片机控制技术将时钟电子化、数字化,拥有时钟精确、体积小等特点,拥有人性化的闹铃提醒功能,可被广泛应用
9、于我们日常的学习、工作和生活当中。1课程设计任务及要求掌握单片机最小系统的设计方法;熟悉单片机定时器的原理。了解数码显示器与MCU的接口方法;掌握独立按键的使用方法;要求显示时钟的时、分、秒,在预定的时间内响铃,可同时预置5次以上时间扩展:按键后才显示时间(低功耗),液晶显示记事。2硬件设计2.1总体设计思路及系统框图通过时钟信号产生电路产生时钟信号,然后将信号送入中央处理单元,然后由控制电路控制中央处理单元控制时钟闹钟的设定及修改、显示电路的显示和蜂鸣器的闹铃。系统结构框图2.2中央处理控制器AT89S52是一种低功耗、高性能的CMOS工艺的8位单片机。它带有8KB的可在线编程的Flash存
10、储器,该单片机采用了ATMEL公司的高密度、非易失性存储器技术,与工业上标准型80C51单片机的指令系统及引脚完全兼容;片内的Flash存储器可在线重新编程,或使用通用的非易失性存储器编程器;通用的8位CPU与在线可编程Flash集成在一块芯片上,从而使AT89S52功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景。VCCSDPi:X2:iXi19P10KOF1MlF12PJ3PJ4pj2ragr?亦piusajFI(SCK)W7P5rKT)ETveKX2vccF3&:7XD;i跆TXDALEP兀I?ATi-Qyi4kPll21-L单片机结构图桂林电子
11、工业学腕课程设计迭文)报吿用紙第3页共28页桂林电子工业学腕课程设计迭文)报吿用紙第3页共28页2.3晶振电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。常用的时钟电路有两种方式,一种为内部时钟方式,另一种为外部时钟方式。外部时钟方式是使用外部振荡脉冲信号,常用于多片单片机同时工作,以便于同步。对外部脉冲信号只要求高电平的持续时间大于20uS,般为低于12MHz的方波。在单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2,这两个引脚跨接石英晶体振荡器可微调电容,就构成一个稳定的自
12、激振荡器,下图是单片机内部时钟方式的振荡器电路。本时钟电路是采用内部时钟方式,在XT1和X2引脚之间外接振荡器,构成一个自激振荡器,自激振荡器与单片机内部的时钟发生器构成单片机的时钟电路。C2Cap20pF晶振电路电路中电容的大小会影响振荡器频率的咼低、振荡器的稳定性和起振的快速性,C1和C2的典型取值通常选择为30pF左右。晶振的振荡频率的范围通常是在1.2MHz12MHz之间,常选择振荡频率6MHz或12MHz的石英晶体。2.4时钟信号产生电路方案一:单片机内部定时器利用单片机内部定时器设计时间计时处理,采用单片机内部的T0定时器溢出中断来实现,工作在方式2下,8位定时器,具有自动重装载功
13、能,具有精确定时功能。优点:电路简单,充分利用现有资源,节约资源和成本缺点:掉电后数据丢失,需重新设定时间和闹钟桂林电子工业学院课程设计论文报吿用低第 页共28页桂林电子工业学院课程设计论文报吿用低第 页共28页(2)方案二:DS1302时钟芯片DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),
14、可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。本次设计中,使用DS1302提供的RAM区保存5个闹铃数据,达到掉电不丢失功能。优点:掉电后不掉数据,可以保存时间和闹钟,比较符合实际使用缺点:成本稍高,使用程序相对复杂VCCGKD32.768GNDC5CaC+CapVCC2XIX2GNIDS1302BT1VCC1-SCLK-0-RST占P35R104-k?kJP3?时钟芯片应用电路考虑到实际使用需求,为方便用户使用,故采用方案二。2.5显示电路(1)
15、方案一:0CM12864带中文字库的128*64是一种具有4位/8位并行、2线或3线串行多种并行方式。内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块,其分辨率为128*64,内置8192个16*16点汉字,和128个16*8点ASCII字符集,利用该模块可构成全中文人机交互图形界面。优点:屏幕较大,使用方便,可显示信息量大缺点:体积大,价格昂贵,在较远处无法清晰看到屏幕内容DS?0CM12864前匕口-口11寸匸小E-口一.WCO?UH口口口H工口加朋H旧AAA二出U口口口口口二口UUHA00-1128640CM12864(2)方案二:LCM16021602液晶也叫1602字符型液晶
16、,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。优点:体积较小,使用方便,显示信息量较大缺点:成本稍高,在较远处无法清晰看到屏幕内容DS?O-QCLCM1602匚-em寸sU-3QQQQQQ;3VBACK+aVBACK-卜0C6寸寸9LCM-1602LCM1602桂林电子工业学曉课程设计迭文)报吿用紙第6页共28页桂林电子工业学曉课程设计迭文)报吿用紙第6页共28页(3)方案三:数码管常用的数码管
17、有7段和“米”段之分,又有共阳极和共阴极两种。该系统采用7段共阳极数码管。共阳极数码管内的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。数码管有静态显示和动态显示两种显示方式。静态显示方式程序简单,显示度高,但占用1/O口资源较多,硬件成本高,且功耗大。本系统需要显示时分秒,所以采用动态显示,当要显示信息时,由P0口输出字符的段码,P2口对相应的位输出低电平,三极管导通,点亮相应的数码管,就可以把要显示的字符在数码管上显示。在这种显示电路中,一个字位一个字位地轮流点亮各LED,每一个字位停留1ms左右,由于人的视觉暂留,
18、不会察觉有闪烁现象。优点:体积较小,价格便宜,使用方便,亮度高,远处也可看清缺点:可现实信息量小DS2DS1POOHP017出:_P04iP05P06-POT-aAlbDIED应D0DIGA2EIBSEP12P27P26匸P平P24POOJPOlPM&POT7M4P06rDTG1DTG2AlA2DP10P23P22HDSP-B04EHDSM-577G由于实际使用中需要在较远处也可清洗看到显示的时间,结合成本和体积,故援用2.6控制电路常用到的一般有编码键盘和非编码键盘。编码键盘是靠硬件电路对每个键位进行编码,当有键按下时,输出固定的数码,并用来判断键位。编码键盘一般需要较多的硬件电路,成本较高
19、。单片机一般采用非编码键盘。非编码键盘是指不是靠固定的编码来实现键位的识别,而是用软件确定一种算法对键位进行扫描。非编码键盘能实现实现软件的资源的充分利用。常见的非编码键盘有独立按键和矩阵键盘两种。矩阵式键盘与独立按键相比同样多的按键使用的1/O口较少,节省资源,但编程、电路设计较复杂。独立式按键则只需读对应的I/O口,来确定键位,而且考虑到作息时间控制器中需要的I/O口较少,所以采用独立式按键。键盘模块连接的I/O口为P3口,P3口的引脚都有第二桂林电子工业学院课程设计论文报吿用低第 页共28页桂林电子工业学院课程设计论文报吿用低第 页共28页功能。电子闹钟的时间校准时需要把定时器的标志位和
20、寄存器等与系统时间相关的参数恢复到计时初始状态,虽说在一般的函数内部也可以做到,但如果用单片机自带的外部中断方式会更方便,便于人工随时设置。键盘输入采用P3口使得软件设计更灵活。方案一:两个按键两个按键调整是在日常生活中最长见的一种。其中一个键用来切换需要调整的内容,另一个键用来改变当时选定的数值,一般为增量改变。优点:节约资源,节省整体体积缺点:如遇需切换量大,修改值比当前值稍小时,使用极不方便方案二:三个按键在方案一的基础上,增加减量修改按钮。优点:节约资源,节省整体体积缺点:如遇需切换量大,使用不方便方案三:四个按键在方案二的基础上增加一个辅助切换按钮,即:按键A为切换时间与闹钟循环显示
21、按键;按键B为修改按钮,即在当前显示值需要修改时,按下此按键即可修改,同时此按键还有切换修改数的功能,即切换所需修改的“时”“分”“秒”;剩余两个位增量修改和减量修改键。优点:使用方便,符合实际使用需求缺点:按键复用较多,编程较复杂VCCPL2P13PL4P3G111111QS1I0S2S3QS4SW-PB|OSW-PBGND控制按键电路考虑到板子体积,故没有采用按键较多的矩阵式键盘。再结合考虑实际使用需求,故选用方案三。2.7闹铃电路MVCC蜂鸣器报警的发音器件常采用压电式蜂鸣器。压电式蜂鸣器约需10mA的驱动电流,可以用一个晶体三极管驱动,如图1.2.5所示。P1.0接晶体管的基极输入端,
22、当P1.0输出低电平“0”时,三极管导通并对I/O口的灌电流放大驱动蜂鸣器;当P1.0输出高电平“1”时,三极管截止,蜂鸣器停止发声。LED闹铃电路VCC1K4321P17P16RESET:P15DLD2CON42.8电源及下载电路考虑到在实际使用中,需要有电源指示灯来指示当前电源供电时候正常,故增加电源指示灯(红色LED)个;考虑到实际使用中的需要和节能功能,设置电源开关(自锁式开关)一个,以方便使用;考虑到实际使用中,程序已经写入单片机内,无需频繁修改,故将普通九针式牛角座下载口改换为排针式,以节约空间,减小实物体积。CSWDPDT电源电路桂林电子工业学腕课程设计迭文报吿用紙第9页共28页
23、桂林电子工业学腕课程设计迭文报吿用紙第9页共28页3程序设计3.1主程序流程图桂林电子工业学腕课程设计迭文报吿用紙第 页共28页桂林电子工业学腕课程设计迭文报吿用紙第 页共28页4制板、组装与调试4.1PCB制作硬件电路的调试首先是系统原理图的检查。根据所学的理论知识检查原理图是否有不合理之处,各部分的参数是否合理。其次检查绘制的PCB的封装和实物是否相符。再次检查PCB各网络间的连接是否和原理图相符,以及做出来的电路板是否有在制作过程中断线的情况。电路板的初步检查就完成了。4.2制作pcb板的流程设计好原理图schff改变封装ff绘制pcb板ff布局布线ff打印pcb图纸ff印制铜板ff腐蚀
24、铜板ff钻孔ff焊接兀器件ff测板ff修改电路ff测试。4.3调试对硬件电路的检查需借助万用表,用来检测每一条线路之间是否通路,以及有没有虚焊,还要检测一些靠的比较近的线之间是否出现短路。将检测出来的问题解决后,就可以进行第二步的调试然后进行上电调试。对最小系统板,看下载口是否能正常工作。如果不能正常工作,检查与下载相关的下载接口和复位电路。如果能正常工作,编写与模块相应的程序检查模块是否能正常工作。5方案总结AT89S52除8K在系统可编程Flash外,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适用于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系
25、统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时/计数器,全双工串行口,片内晶振及时钟电路。另外,AT89S52支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保护,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。作息时间控制器是以AT89S52为核心,辅以必要的电路,设计的带有闹铃功能的数字电子时钟。通过12864液晶显示时
26、间,可调整时间。系统的重点是基于AT89S52单片机的编程,通过设计系统从而达到学习、设计、开发软、硬件的能力。桂林电子工业学院课程设计论文报吿用低第 页共28页桂林电子工业学腕课程设计迭文报吿用紙第 页共28页电子时钟采用液晶实现对“时”、“分”、“秒”数字显示。相比老式的机械钟表单就显示而言就遥遥领先。电子时钟小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化使得数字时钟功能大大的得到了扩展。诸如定时自动报警、按时自动响铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱等,所有的这些都是以钟表数字化为基础的。因此,研究电子时钟及扩大其应用,有着非常现实的意义。心得体会两个星期
27、的课程设计结束了,我们从中获益匪浅。从选题、确定方案、设计原理图、焊接、调试的过程中,我们体会到了课本联系实际并学以致用,设计思想、动手能力都有所提高,这对我们来说是一次将课本所学知识应用到具体实践中的一次考验。在课程设计之初,首先对题目要求做一个分析,构思好每一个功能要通过什么电路来实现。要做好一个课程设计,还必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该
28、让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。在焊接每个元件的时候一定要注意各个输入、输出引脚,因为每个引脚都是不一样的,只要让各个引脚互相对应,才能得出正确的结果,否则,出现任何一点小的误差就会对整个系统造成毁灭性的打击。通过课程设计,对一些已学过的知识,是一个很好的回顾,巩固了自己所学的知识,又从实践中验证了理论知识,实践与理论相结合。谢辞转眼课程设计已接近尾声,老师们治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。在课程设计开始之初,徐老师就
29、告诉我们要认真对待自己的课程设计,并在过程中经常抽出时间来关心我们的设计进度情况,帮助我们分析问题,督促我们抓紧学习。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式。特别是徐老师在课程设计期间投注了大量的时间及精力关注我们的设计进度,指导我们的论文写作。在此我衷心的感谢各位老师,并向各位老师表达我崇高的敬意。最后,我也向各位在课程设计期间帮助我,给予我支持的同学表达我的谢意。参考文献1白驹珩,雷晓平编著.单片计算机及其应用.北京:高等教育出版社,2010郭天祥.51单片机C语言教程.电子工业出版社.2009.康华光电
30、子技术基础(模拟部分)M.高等教育出版社.1998谭浩强.C程序设计清华大学出版社.2005王选民.智能仪器原理及设计.清华大学出版社.2008桂林电子工业学院课程设计论文报吿用低第15页共28页桂林电子工业学院课程设计论文报吿用低第15页共28页附录附录一整体原理图附录二整体PCB图附录三整体实物图附录四整体程序第16页共28页竺竺0L身岳.SIS帛隊身岳衣2,蓉-占-一占-卷召二m二却yEm口8QAH3R-DUKixNZKdB3TTtKIJI-l蛊OKeFdrasasSI唇r-J芳駁一丄-r-卩DE-TKOB一Gdrq8s寸呂s9-KOMa醫IX苣廿呂口匕曽ontua口ErnEftcotU
31、Lld=ftsrn呂EldHa兽a2di巴&.I初口-d4r叮宙hl9L寸i!I1gIJ寸呂9BJ.JlnfTF_g-g舌呂曇口曇口口曾二ns毘2r13I迢13A桂林电子工业学院课程设计论文)报吿用低第17页共28页桂林电子工业学院课程设计论文)报吿用低第17页共28页E/I1!OO0900820中362,1031352IE|ooooo5o51桂林电子工业学腕课程设计迭文报吿用紙第 页共28页桂林电子工业学腕课程设计迭文报吿用紙第 页共28页/完整程序源代码#includereg52.h#includeds1302.h#defineucharunsignedchar#defineuintuns
32、ignedint#defineDuanP0#defineWeiP2#defineKey_value(P1&0X1C)1)|k4)ucharcodetableA=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e;ucharcodetableP=0 x40,0 x79,0 x24,0 x30,0 x19,0 x12,0 x02,0 x78,0 x00,0 x10,0 x08,0 x03,0 x46,0 x21,0 x06,0 x0e;SYSTEMTIMECT
33、ime6;sbitbeep=P1A0;sbitlight=PlAl;sbitk4=P3A0;uintstate,gai,keyl,key2,key3,key4,temp,bee,count,ring_flag,m,i,j;voiddisplay(uchar,uchar,uchar,uchar,uchar,uchar);voidkeyscan();voidbeepscan();voidbeepring();voiddelay(uchar);voiddelay2(uchar);voidmain()EA=l;ETl=l;TMOD=0 xl0;THl=(65536-5000)/256;TLl=(655
34、36-5000)%256;TRl=l;Initial_DSl302();Read_Alarmdata(CTime+l);while(l)if(gai=0)DSl302_GetTime(&CTime);if(state=0)display(CTimestate.Hour/l0,CTimestate.Hour%l0,CTimestate.Minute/l0,CTimestate.Minute%l0,CTimestate.Second/l0,CTimestate.Second%l0);elsedisplay(CTimestate.Hour/l0,CTimestate.Hour%l0,CTimesta
35、te.Minute/l0,CTimestate.Minute%l0,CTimestate.Second,state);keyscan();beepscan();beepring();voiddisplay(ucharA,ucharB,ucharC,ucharD,ucharE,ucharF)if(gai=0)Wei=0;delay(l);Duan=tableAA;Wei=0 x80;delay(5);Wei=0;Wei=0;delay(1);delay(1);Duan=tableAA;Wei=0 x80;delay(5);if(F%2=0)Duan=tablePB;elseDuan=tableA
36、B;Wei=0;delay(1);Wei=0 x40;delay(5);if(F%2=0)Duan=tablePB;elseDuan=tableAB;Wei=0 x40;delay(5);Wei=0;delay(1);Duan=tableAC;Wei=0 x20;delay(5);Wei=0;delay(1);Duan=tableAD;Wei=0 x10;delay(5);Wei=0;delay(1);Duan=tableAE;Wei=0 x08;delay(5);Wei=0;delay(1);Duan=tableAF;Wei=0 x04;delay(1);if(gai=1)if(gai=2)
37、Wei=0;delay(1);Duan=tableAC;Wei=0 x20;delay(5);Wei=0;delay(1);Duan=tableAD;Wei=0 x10;delay(5);if(gai=3)Wei=0;delay(1);Duan=tableAE;Wei=0 x08;delay(5);if(state=0)Wei=0;delay(1);Duan=tableAF;Wei=0 x04;delay(5);voidkeyscan()temp=Key_value;if(temp!=0 x0f)delay(10);temp=Key_value;if(temp!=0 x0f)switch(te
38、mp)case0 x0d:key1=1;break;case0 x0b:key2=1;break;case0 x07:key3=1;break;case0 x0e:key4=1;break;while(Key_value!=0 x0f)if(state=0)display(CTimestate.Hour/10,CTimestate.Hour%10,CTimestate.Minute/10,CTimestate.Minute%10,CTimestate.Second/10,CTimestate.Second%10);elsedisplay(CTimestate.Hour/10,CTimestat
39、e.Hour%10,CTimestate.Minute/10,CTimestate.Minute%10,CTimestate.Second,state);if(key1)if(gai)gai=0;if(state=0)modif_time(CTimestate.Second,CTimestate.Minute,CTimestate.Hour);elseWirte_Alarmdata(CTime+state,state-1);state=0;elseif(5=state)state=0;elsestate+;key1=0;elseif(key2)if(gai=3)gai=1;elsegai+;k
40、ey2=0;elseif(key3)/if(state=0)&(gai!=0);Stop_DS1302();if(gai=1)if(CTimestate.Hour=23)CTimestate.Hour=0;elseCTimestate.Hour+;elseif(gai=2)if(CTimestate.Minute=59)CTimestate.Minute=0;elseCTimestate.Minute+;elseif(state=0)if(CTimestate.Second=59)CTimestate.Second=0;elseCTimestate.Second+;elseif(CTimest
41、ate.Second=0)CTimestate.Second=1;elseCTimestate.Second=0;key3=0;elseif(key4=1)if(state=0)&(gai!=0);/Stop_DS1302();if(gai=1)if(CTimestate.Hour=0)CTimestate.Hour=23;elseCTimestate.Hour-;elseif(gai=2)if(CTimestate.Minute=0)CTimestate.Minute=59;elseCTimestate.Minute-;elseif(state=0)if(CTimestate.Second=
42、0)CTimestate.Second=59;elseCTimestate.Second-;elseif(CTimestate.Second=0)CTimestate.Second=1;elseCTimestate.Second=0;key4=0;voidbeepscan()ring_flag=0;if(i=5)i=1;elsei+;if(CTimei.Second=1)&(CTimei.Minute=CTime0.Minute)&(CTimei.Hour=CTime0.Hour)ring_flag=1;elseif(CTimei.Second=1)&(CTimei.Minute+1=CTim
43、e0.Minute)&(CTimei.Hour=CTime0.Hour)ring_flag=0;beep=1;light=1;elsering_flag=0;beep=beep;light=light;elsering_flag=0;voidtime1()interrupt3TH1=(65536-5000)/256;TL1=(65536-5000)%256;count+;voiddelay(unsignedcharx)unsignedchari,j;for(i=x;i0;i-)for(j=20;j0;j-);voidbeepring()if(count=2)count=0;if(ring_fl
44、ag)vdsl302.h文件内容Ki彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、*THEREALTIMERDSl302DRIVERLIBCOPYRIGHT(c)2005BYJJJ.-ALLRIGHTSRESERVED-FileName:Author:Created:Modified:NOTOC o 1-5 h zRevision:l.0DSl302.hJiangJianJun2003/7/2lKiKi彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、
45、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、KlKl彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、*/#ifndef_DSl302_H_#define_DSl302_H_sbitDS1302_CLK=P3A5;/实时时钟时钟线引脚sbitDS1302_RST=P3A7;/实时时钟数据线引脚sbitDS1302_IO=P3A6;/实时时钟复位线引脚sbitACC7=ACCA7;typedefstruct_SYSTEMTIME_unsignedcharSecond;unsignedcharMinu
46、te;unsignedcharHour;SYSTEMTIME;/定义的时间类型#defineAM(X)X#definePM(X)(X+12)/转成24小时制#defineDS1302_SECOND0 x80#defineDS1302_MINUTE0 x82#defineDS1302_HOUR0 x84#defineDS1302_WEEK0 x8A#defineDS1302_DAY0 x86#defineDS1302_MONTH0 x88#defineDS1302_YEAR0 x8C#defineDS1302_RAM(X)(0 xC0+(X)*2)/用于计算DS1302_RAM地址的宏voidD
47、S1302InputByte(unsignedchard)/实时时钟写入一字节(内部函数)unsignedchari;for(i=0;i=1;DS1302_CLK=0;unsignedcharDS1302OutputByte(void)/实时时钟读取一字节(内部函数)unsignedchari;for(i=8;i0;i-)ACC=ACC1;/相当于汇编中的RRCACC7=DS1302_IO;DS1302_CLK=1;DS1302_CLK=0;return(ACC);voidWrite1302(unsignedcharucAddr,unsignedcharucDa)/ucAddr:DS1302地址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 住建部咨询编制合同范本
- 化工购货合同范本
- 不定时劳务合同范本
- 保编合同范例
- 加盟合作洽谈合同范本
- 刚模租赁合同范本
- 企业筹划合同范例
- 乡镇施工道路合同范本
- 买房银行出合同范本
- 漏壳行业深度研究报告
- 校长在行政会上总结讲话结合新课标精神给学校管理提出3点建议
- T-CSUS 69-2024 智慧水务技术标准
- 2025年护理质量与安全管理工作计划
- 湖南大学 嵌入式开发与应用(张自红)教案
- 地下商业街的规划设计
- 长安大学《画法几何与机械制图一》2021-2022学年第一学期期末试卷
- 2024-2030年全球及中国低密度聚乙烯(LDPE)行业需求动态及未来发展趋势预测报告
- 2024年新华东师大版七年级上册数学全册教案(新版教材)
- 医院物业管理制度
- 初中数学思维训练双十字相乘法因式分解练习100道及答案
- (正式版)QC∕T 625-2024 汽车用涂镀层和化学处理层
评论
0/150
提交评论