基于51单片机的数字电子钟设计.doc

上传人:文****钱 文档编号:36260 上传时间:2018-05-06 格式:DOC 页数:44 大小:2.81MB
下载 相关 举报
基于51单片机的数字电子钟设计.doc_第1页
第1页 / 共44页
基于51单片机的数字电子钟设计.doc_第2页
第2页 / 共44页
基于51单片机的数字电子钟设计.doc_第3页
第3页 / 共44页
基于51单片机的数字电子钟设计.doc_第4页
第4页 / 共44页
基于51单片机的数字电子钟设计.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、本科毕业论文(设计)题目基于51单片机的数字电子钟设计院(系)电子工程与电气自动化学院专业电气工程及其自动化学生姓名学号10028116指导教师职称硕士讲师论文字数9682完成日期2014年5月20日巢湖学院本科毕业论文设计诚信承诺书本人郑重声明所呈交的本科毕业论文设计,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。本人签名日期巢湖学院本科毕业论文设计使用授权说明本人完全了解巢湖学院有关收集、保留和使

2、用毕业论文设计的规定,即本科生在校期间进行毕业论文设计工作的知识产权单位属巢湖学院。学校根据需要,有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许毕业论文设计被查阅和借阅;学校可以将毕业论文设计的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编毕业,并且本人电子文档和纸质论文的内容相一致。保密的毕业论文设计在解密后遵守此规定。本人签名日期导师签名日期巢湖学院2014届本科毕业论文(设计)I基于51单片机的数字电子钟设计摘要随着时代的发展,生活节奏的加快,人们的时间观念愈来愈强,同时伴随着自动化、智能化及微电子技术的发展,人们用于计时的工具也在不断的

3、更新,单片机等技术的出现使得数字电子钟有了新的发展方向。基于此本设计以单片机STC89C52为控制核心,采用美国DALLAS公司生产的实时时钟芯片DS12C887和液晶芯片LCD1602,该设计具有电路设计简单,结构合理,能够精确显示时间、星期、日期等优点,并且能够实时更新显示。本设计同时具有闹铃设置功能以及到时报警功能,按键操作简单方便。更重要的是时钟芯片DS12C887具有误差小,内部自带锂电池使得断电时时间不停,再次上电后时间仍然能够准确显示在液晶上的特点。关键词单片机;电子钟;DS12C887;LCD1602基于51单片机的数字电子钟设计IIDESIGNOFDIGITALELECTRO

4、NICCLOCKBASEDON51MCUABSTRACTWITHTHEDEVELOPMENTOFTHETIMESANDTHEACCELERATEDPACEOFLIFE,PEOPLESSENSEOFTIMEHASBECOMESTRONGERANDSTRONGERANDWITHTHEDEVELOPMENTOFAUTOMATED,INTELLIGENTANDMICROELECTRONICTECHNOLOGY,THETOOLFORTIMINGHASBEENCONSTANTLYUPDATEDTHEEMERGENCEOFSINGLECHIPTECHNOLOGYMAKESDIGITALELECTRONICC

5、LOCKANEWDIRECTIONBASEDONTHISDESIGNMICROCONTROLLERSTC89C52ASTHECONTROLCORE,ANDPRODUCEDBYTHEUNITEDSTATESDALLASDS12C887REALTIMECLOCKCHIPANDLCDCHIPLCD1602,THISDESIGNHASASIMPLECIRCUITDESIGN,REASONABLESTRUCTURE,ABLETOACCURATELYDISPLAYTHETIME,DAY,DATE,ETC,ANDCANREALTIMELYUPDATETHEDISPLAYTHISDESIGNALSOHASAN

6、ALARMFUNCTIONASWELLASTOSETALARMFUNCTION,ANDSIMPLEBUTTONOPERATIONMOREIMPORTANTLY,THECLOCKCHIPDS12C887HASASMALLERROR,MAKINGTHEINTERNALLITHIUMBATTERYPOWERWHENTHETIMECOMESSTOP,SOTHATONCEAGAINTIMEAFTERPOWERISSTILLABLETOACCURATELYDISPLAYTHECHARACTERISTICSOFTHELIQUIDCRYSTALKEYWORDSMCU,ELECTRONICCLOCK,DS12C

7、887,LCD1602目录错误未找到引用源。巢湖学院2014届本科毕业论文(设计)11绪论11电子时钟的选题意义随着数字集成电路的发展,数字化已深入到各行各业。数字电子钟是以数字电路实现对年、月、日、星期、时、分、秒数字显示的电子钟,广泛应用于私人及公共场所。比如汽车站、火车站、办公室等场合,给人们的生活、学习、工作及娱乐带来了极大的方面,已成为人们日常生活中不可或缺的物品。如今的电子钟精度已远远超过老式钟表,并且其报时功能也得到加强。例如定时报警系统、定时程序启动控制、定时动力通断设备等等这些都是以数字化为基础的。而且在许多监控系统及电子设备中,往往会进行一些与时间相关的控制与操作,同时需要

8、记录下实时的时间信息并保存下来。例如,在某些数据采集时,对于一些重要的信息不仅要记录下其内容,还要记录下发生该事件时的准确时间;又比如,在建筑视频安防监控系统中,除了要显示实时画面外,还要准确记录下实时的时间信息,其中包括年、月、日、时、分、秒等。传统的计时时钟已不能满足上述要求,为了达到上述目的,就需要实时时钟的参与配合。基于STC89C52单片机为核心的电子钟就可以满足上述要求,为了避免偶然的掉电或晶振的误差造成时间的混乱以及完全用程序设计从而占用大量的系统资源而影响系统其他功能的运行,外加一块独立运行的实时时钟芯片DS12C887,同时配合相应的程序就可以实现上述目的。因此,研究数字电子

9、钟以及扩大其作用,有着非常现实重要的意义。12电子时钟的国内外研究现状从古代利用流体力学计时的刻漏和后来出现的沙漏以及采用机械传动结构计时的浑天仪,水运仪还有应用天文原理计时的日晷到今天的数字电子钟,经历了漫长的岁月。机械表机芯复杂,走时误差较大,石英表机芯采用集成电路,机械结构比机械表简单许多也精准很多。但是随着生活节奏的加快,人们对时间的基于51单片机的数字电子钟设计2精准度要求越来越高。在目前的国内外市场中,数字电子钟的产品随处可见,但是他们大多存在一个致命缺点分两种一种是价格低廉的精度低,体积大;一种是体积小精度高却价格昂贵。基于单片机的电子时钟系统的设计意在解决上述缺点折合为一个适中

10、的产品,实现高精度、体积小、价格适中、易操作的产品,使得数字电子钟的发展日益满足使用者的需求。数字电子钟的设计方法有很多种,可以利用单片机编程配以简单外设来实现电子钟,也可以采用中小规模的集成电路设计电子钟,还可以利用专门的时钟芯片配以显示电路及外围电路来实现电子钟。其中以单片机为核心控制器,利用专门的实时时钟芯片计时,将时间数据经单片机输出,由显示器显示出来,利用键盘定时、校时,显示电路可利用液晶显示技术或者数码管显示技术。在工业控制、智能控制及日常生活中,经常会碰到对时间进行监控的需求。这就为数字电子钟提供了市场需求,随着科学技术的发展,也为数字电子钟的研发提供了前景。本设计就提供了基于5

11、1单片机的数字电子钟的设计方法与实现过程。巢湖学院2014届本科毕业论文(设计)32系统的硬件电路设计21单片机最小系统模块211STC89C52芯片介绍STC89C52是STC公司生产的一种高性能、低功耗的CMOS8位微控制器,具有8K系统可编程FLASH存储器,指令代码完全兼容传统的MCS51单片机,俗称单片机。主要特性如下表21所示表21STC89C52芯片特性工作电压55V33V(5V单片机)/38V20V3V单片机增加型8051单片机,6时钟/机器周期,12时钟/机器周期可以任意选择;工作频率范围040MHZ,相当于普通8051的080MHZ,实际工作频率可达48MHZ;具有看门狗功

12、能,内带2K字节的E2PRAM存储空间通用I/O口(32个),复位后P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为I/O口使用时,需要加上拉电阻,作为总线扩展用时,不需要加上拉电阻;3个16位定时器/计数器;PDIP封装;用户应用程序空间为8K字节;片上集成512字节RAMISP(系统可编程)/IAP(应用可编程),不需要专用的编程器、仿真器,可通过串口(RXD/P30,TXD/P31)经由MAX232电平转换电路下载用户程序到单片机外部中断有4路,下降沿触发或低电平触发电路;4085(工业级)/075(商业级)温度下工作其引脚图如图21所示T2/P101T2EX/P11

13、2P123P134P145P156P167P178RST9RXD/P3010TXD/P3111INT0/P3212INT1/P3313T0/P3414T1/P3515WR/P3616RD/P3717XTAL218XTAL119VSS20P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427P27/A1528PSEN29ALE/PROG30EA31P07/AD732P06/AD633P05/AD534P04/AD435P03/AD336P02/AD237P01/AD138P00/AD039VCC40STC89C52图21STC8

14、9C52RC芯片引脚基于51单片机的数字电子钟设计4引脚大致介绍1电源及时钟引脚(4个)VCC电源接入引脚。VSS接地引脚。XTAL1晶体振荡器接入的一个引脚。XTAL2晶体振荡器接入的另一个引脚。2控制线引脚(4个)RST/VPD复位信号输入引脚/备用电源输入引脚。ALE/PROG地址锁存允许信号输出引脚/编程脉冲输入引脚。EA/VPP内外存储器选择引脚/片内EPROM(或FLASHROM)编程电压输入引脚。PSEN外部程序存储器选通信号输出引脚。3并行I/O引脚(32个,分成4个8位口)P00P07一般I/O口引脚或数据/低位地址总线复用引脚。P10P17一般I/O口引脚。P20P27一般

15、I/O口引脚或高位地址总线引脚。P30P37一般I/O口引脚或第二功能引脚。212复位电路当单片机RST引脚加高电平复位信号(保持2个以上机器周期)时,单片机内部就执行复位操作。复位信号变低电平时,单片机开始执行程序。实际应用中,复位操作有两种形式一种是上电复位,另一种是上电与按键均有效的复位。其原理是上电的瞬间复位引脚(RST)获得高电平,在电容C1充放电的同时,复位引脚(RST)的高电平会慢慢下降。复位引脚(RST)的高电平只要能维持足够的时间(24个晶荡周期),单片机就可以实现复位操作。而按键与上电均有效的复位电路可以在单片机执行任务期间,通过按键实现复位操作。相比较选择按键与上电均有效

16、的复位电路会更有优势1。电路原理图如图22所示巢湖学院2014届本科毕业论文(设计)5VCC5VRSTC110UFR11KR210KS5图22复位电路213晶振电路晶振电路是单片机最小系统的重要环节之一。晶振取110592MHZ(这样可以准确的得到9600波特率和19200波特率),电容取22PF(一般采用1533PF)。电路如图23所示X1X2X1110592MHZC422PFC522PF图23晶振电路22时钟电路模块221DS12C887实时时钟芯片概述DS12C887是美国DALLAS公司设计生产的实时时钟芯片。DS12C887时钟芯片能够自动产生世纪、年、月、日、星期、时、分、秒等时间

17、信息,其内部自带锂电池和晶振,在外部掉电时,其内部时间信息仍能保持10年之久。DS12C887时钟芯片中带有128BRAM,其中11BRAM用来存储时间信息;4BRAM用来存储DS12C887的控制信息,成为控制寄存器;13B通用RAM供用户使用。对于一天内有12和24小时制两种模式的时间记录,而在12小时制的模式中,通过AM和PM来区分上下午;芯片内部时间的存储模式有两种二进制数表示和基于51单片机的数字电子钟设计6BCD码表示。此外,用户还可以通过对DS12C887芯片进行编程来实现多种方波的输出,并且可以对其内部的三路中断通过软件进行屏蔽。DS12C887可以通过一个多路复用的支持INT

18、EL和MOTOROLA模式的单字节接口访问。1DS12C887时钟芯片引脚功能DS12C887芯片引脚和实物图如图24、25所示。MOT1NC2NC3AD04AD15AD26AD37AD48AD59AD610AD711GND12CS13AS14R/W15NC16DS17RESET18IRQ19NC20NC21NC22SQW23VCC24DS12C887图24DS12C887芯片引脚图25时钟芯片实物图各引脚功能说明如下1(MOT)总线模式选择端。有两种总线工作方式,即MOTOROLA和INTEL模式。当接GND或者悬空时,选用INTEL模式;接VCC时,选用MOTOROLA模式。2,3,16,

19、20,21,22(NC)悬空端。411(AD0AD7)复用地址数据总线。总线周期的前半部分AD0AD7上的是地址信息,总线周期的后半部分AD0AD7上的是数据信息。12(GND),24(VCC)芯片电源接入端。其中VCC接5V输入,GND接地。当VCC输入为5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读/写操作;当VCC的输入小于425V时,禁止用户对内部RAM进行读/写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入低于3V时,芯片会自动将电源切换到内部自带的锂电池上,以保证内部电路正常运行。巢湖学院2014届本科毕业论文(设计)713(CS)芯片选择端,低电

20、平有效。14(AS)地址选通输入端。在进行读/写操作时,AS的上升沿将AD0AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0AD7上的地址信息,不论CS是否有效,DS12C887都将执行该操作。15(R/W)读/写输入端。该引脚有两种工作方式,当MOT接VCC时,R/W)工作在MOTOROLA模式。此时该引脚的作用是区分读操作还是写操作,高电平时为读操作,低电平时为写操作;当MOT接GND时,该引脚工作在INTEL模式,此时该引脚作为写允许输入,此信号的上升沿锁存数据。17(DS)数据选择或者读输入脚。有两种工作方式,当MOT接VCC时,选用MOTOROLA模式。当MO

21、T接GND或悬空时,选用INTEL工作模式,此时该引脚为读允许输入引脚。18(RESET)芯片复位引脚。低电平有效,通常将该引脚接VCC即可。19(IQR)中断请求输出。低电平有效,用作处理器的中断申请输入。只要引起中断的状态、中断使能位置位,IRQ将持续保持低电平,通过处理器程序读取C寄存器来清除IRQ引脚输出,同时复位引脚也会清除未处理的中断。在中断未发生时,IRQ为高阻态,这时可以将多个中断器件连接到一条IRQ总线上。IRQ引脚为漏极开路输出,需要外接一个上拉电阻与VCC相连。23(SQW)方波输出引脚。当供电电压VCC大于425V时,SQW引脚可输出方波,此时,用户可以通过对控制寄存器

22、编程来得到13钟方波信号的输出。2DS12C887时钟芯片内部功能DS12C887的存储器分配如图26所示,其中00H09H为闹钟信息与时间信息寄存器,0AH0DH为4个控制寄存器。基于51单片机的数字电子钟设计8秒秒闹钟分分闹钟时时闹钟星期日月年寄存器A寄存器B寄存器C世纪寄存器D000102030405060708090A0B0C0D50000130D140E4931503251331277F图26存储器分配图1状态控制寄存器A(除D7位外可读写)表22寄存器A地址D7D6D5D4D3D2D1D00AHUIPDV2DV1DV0RS3RS2RS1RS0UIP更新位。当UIP1时,即将开始更新

23、;当UIP0时,至少在244US内芯片不会更新。UIP位为只读位且不受复位信号的影响。通过寄存器B中SET位设置为1来禁止更新,并且将UIP位清零。DV2,DV1,DV0晶体振荡器和复位分频器的开与关。当DV00,DV11,DV20时,晶体振荡器开启且保持时钟运行。当DV01,DV11,DV2X时,开启晶体振荡器,分频保持复位状态。这三位的其他组合方式均使振荡器关闭。因此,首次使用时必须设置这三位的状态。RS3,RS2,RS1,RS0速率选择位。这4个速率选择位的不同取值可产生从12207US到500MS之间不同周期的方波输出及周期中断。2状态控制寄存器B(可读写)表23寄存器B地址D7D6D

24、5D4D3D2D1D00BHSETPIEAIEUIESQWEDM12/24DSE巢湖学院2014届本科毕业论文(设计)9SET0,芯片更新正常进行;SET1,芯片更新被禁止。PIE中断周期允许位。PIE1,允许;PIE0,禁止。AIE闹铃中断允许位。AIE1,允许;AIE0,禁止。UIE更新结束中断允许位。UIE1,允许;UIE0,禁止。SQWE1,SQW输出设定频率的方波;SQWE0,SQW引脚为低电平。DM寄存器存储数据格式选择位。DM0,BCD码;DM1,二进制数格式,此位不受复位信号影响。12/24为1,24小时制;为0,12小时制。DSE夏令时允许标志位。在四月的第一个周日的1595

25、9AM,时钟调到30000AM;在十月的最后一个周日的15959AM,时钟调到10000AM。3状态控制寄存器C(只读)表24寄存器C地址D7D6D5D4D3D2D1D00CHIRQFPFAFUF0000IRQF中断请求标志。当PFPIE1,AFAIE1,UFUIE1,IRQFPFPIEAFAIEUFUIE有一种或几种发生时,IRQF置高IRQ脚输出为低电平;为低时,无中断请求发生。所有标志位在读寄存器C或复位后清0。其中PF周期中断标志;AF闹钟中断标志;UF更新中断标志。4状态控制寄存器C(只读)表25寄存器C地址D7D6D5D4D3D2D1D00DHVRT0000000VRTVRT0,表

26、示芯片内的锂电池能量耗尽,此时RAM中的数据的正确性就无法保证了;VRT1,信息有效。3DS12C887时序图分析鉴于本设计MOT引脚接GND,总线选用INTEL模式,故此系统只分析INTEL模式。INTEL模式总线写时序图如图27所示,读时序图如图28所示基于51单片机的数字电子钟设计10图27INTEL模式总线写时序图TCYCPWASHTASDTASDPWELTASLTASEDTCSTAHLTDSWPWEHTCHTDHWASDSR/WCSAD0AD7写图28INTEL模式总线读时序图222硬件电路设计根据芯片的特性和引脚功能来设计外围电路。DS12C887时钟芯片电路如图29所示AD0AD

27、1AD2AD3AD4AD5AD6AD7DSCSDSASDSRWDSDSVCC5VVCC5VDSIRQR310KC210UFMOT1NC2NC3AD04AD15AD26AD37AD48AD59AD610AD711GND12CS13AS14R/W15NC16DS17RESET18IRQ19NC20NC21NC22SQW23VCC24DS12C887U3DS12C887图29时钟电路巢湖学院2014届本科毕业论文(设计)11引脚1这里接地(或悬空)来选取INTEL模式,411引脚接单片机的P1口,18引脚接VCC,19引脚外接一个上拉电阻然后接到单片机P33口,其他的引脚各自接到相应端口。23蜂鸣器

28、声响模块此模块在闹钟设定时间到时发出声响。本模块通过PNP三极管为蜂鸣器放大电流,基极通过33欧的电阻与单片机16(P36)引脚相连。其电路图如图210所示VCC5VBEEPR53312BUZZ1123Q18550图210蜂鸣器声响电路24按键模块按键模块的作用是调节时间及设置闹钟时间。电路图如图211所示S1S2S3S2S3S4图211按键电路基于51单片机的数字电子钟设计1225LCD1602显示模块2511602液晶概述本设计使用的1602液晶为5V驱动,带背光,可显示两行,每行16个字符,不能显示汉字,内置128个字符的ASCII字符集库。1602液晶的引脚及实物图如图212、213所

29、示VSS1VCC2V03RS4R/W5E6D07D18D29D310D411D512D613D714BLA15BLK16图212LCD1602引脚图213LCD1602实物图1引脚说明1602液晶引脚说明如表26所示表26液晶引脚说明编号符号引脚功能说明编号符号引脚功能说明1VSS电源地9D2数据接口32VCC电源正极10D3数据接口43VO液晶显示对比度调节端11D4数据接口54RS数据/命令选择端12D5数据接口65R/W读写选择端13D6数据接口76E使能端14D7数据接口87D0数据接口115BLA背光电源正极8D1数据接口216BLK背光电源负极巢湖学院2014届本科毕业论文(设计)

30、132基本操作时序及时序图基本操作时序读状态输入,RSL,R/WH,EH;输出,D0D7状态字。读数据输入,RSH,R/WH,EH;输出,无。写指令输入,RSL,R/WL,D0D7指令码,E高脉冲;输出,D0D7数据。写数据输入,RSH,R/WL,D0D7数据,E高脉冲;输出,无。根据分析时序图(图214)可知操作1602液晶的流程如下(1)通过RS来确定是写数据还是写命令。写命令包括使液晶的光标显示还是不显示、光标闪烁或者不闪烁、需不需要移屏,在液晶何处位置显示等等;写数据是指显示什么内容。(2)读/写控制端设置为写模式,即低电平。(3)要将数据或命令送到数据线上。(4)给使能端(E)一个高

31、脉冲将数据送入液晶控制器,完成写操作。时序图如下TSP2TSP1THD1TPWTHD1THD2TRTFTC有效数据RSR/WEDB0DB7YN如图2141602液晶写操作时序图3状态字说明表27状态字说明STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0STA0STA6当前地址指针的数值STA7读/写操作使能1禁止;0允许基于51单片机的数字电子钟设计14理论上每次对控制器进行读/写操作之前,都必须进行读/写检测,确保STA7为0。实际上,由于液晶控制器的反应速度快于单片机的操作速度,因此可以不进行读/写检测,或许可以只进行简短延时也行。4RAM地

32、址映射图控制器的内部带有80B的RAM缓冲区,对应关系如图215所示000102030405060708090A0B0C0D0E0F1027404142434445464748494A4B4C4D4E4F5067LCD16字X2行图2151602内部RAM地址映射图当向图中的000F、404F地址中的任一处写入显示数据时,液晶都会立即显示出来,当写入到1027或5067地址时,必须要通过移屏指令将它们移入可显示区域方可正常显示。5数据指针设置表28数据指针设置指令码功能80H地址码(027H,4067H)设置数据地址指针控制器内部设有一个数据地址指针,我们可以通过它们访问内部的全部80B的RA

33、M。6其他设置表29其他设置指令码功能01H显示清屏1数据指针清02所有显示清002H显示回车数据指针清07初始化设置(1)显示模式设置巢湖学院2014届本科毕业论文(设计)15表210显示模式设置指令码功能00111000设置162显示,57点阵,8位数据口(2)显示开/关及光标设置表211显示开/关及光标设置指令码功能00001DCBD1,开显示;D0,关显示C1,光标显示;C0,光标不显示B1,光标闪烁;B0,不显示光标000001NSN1,读或写一个字符后地址指针加1且光标加1;N0,读或写一个字符后地址指针减1且光标减1S1,写一个字符时,显示整体左移(N1)或右移(N0),来得到光

34、标不移动而屏幕移动的效果;S0,写一个字符时,显示整体不移动00010000光标左移00010100光标右移00011000显示整体左移,同时光标跟随移动00011100显示整体右移,同时光标跟随移动2521602液晶电路为防止上电时烧坏背光灯,在15脚(BLA)串接一个10欧姆的电阻来限流;液晶3(VO)脚为对比度调节端,串接一个10K的电位器来调节对比度;液晶4(RS)脚为向液晶控制器写数据/写命令选择端,接单片机P35口;液晶5(R/W)脚为读/写选择端,由于只向液晶写入命令和显示数据,不从液晶读取数据,所以此脚始终选择为写状态,即接地;液晶6(E)脚为使能端,是操作液晶时必须的,接单片

35、机P34口;1(VSS)、2(VCC)脚是电源端;15(BLA)、16(BLK)脚是背光电源端。具体电路图如图215所示基于51单片机的数字电子钟设计16RSLCDEND0D1D2D3D4D5D6D7VCC5VVSS1VCC2V03RS4R/W5E6D07D18D29D310D411D512D613D714BLA15BLK16U2LCD1602W110KR410VCC5V图2151602液晶电路巢湖学院2014届本科毕业论文(设计)173系统的软件设计31软件编译器及烧写工具本设计采用C语言编程。程序的编写和编译在KEILUVISIO4软件上完成。编译及烧写的步骤如下1程序编写与编译打开KEI

36、LUVISIO4软件,新建工程保存,选取芯片类型OK,新建文件保存,添加文件到工程,在文件里完成程序的编写,保存并编译,在无错误的情况下,配置一些系统的设置,再编译一次,生成可以下载到STC89C52芯片上的以HEX为后缀名的二进制文件。界面如图31所示图31KEILUVISIO4编译界面2程序的烧写编译完成后的二进制文件,通过专用的STCISP软件同时借助于开发板烧写到单片机里,对程序进行测试。如图32所示基于51单片机的数字电子钟设计18图32烧写工具界面32软件总体设计思路主程序流程图如图33所示开始DS12C887初始化LCD1602初始化WHILE1按键扫描是否有按键按下执行相应程序

37、闹铃中断执行相应程序读取DS12C887数据送LCD1602显示YYNN图33主程序流程图巢湖学院2014届本科毕业论文(设计)19首先,程序启动后对单片机内部资源初始化,然后对DS12C887时钟芯片初始化,写入控制字,读取芯片内相应寄存器的时间数据并对LCD1602初始化,完成时间日期的显示。接着进入循环程序不停的执行以下任务按键扫描,有按键按下时执行相应操作,没有按键按下就检查闹钟标志位有没有中断触发,有就执行闹铃程序(DS12C887的IRQ管脚在闹铃出发时产生低电平,触发外部中断1,蜂鸣器发声),没有就进行DS12C887时钟芯片的数据读取,向LCD1602发送数据并显示。321蜂鸣

38、器声响模块DS12C887的IRQ管脚在闹铃发声时产生低电平,触发外部中断1,蜂鸣器发声。流程图如图34所示开始检测时间标志位设置时间是否来到执行闹铃程序YN图34蜂鸣器模块流程图322LCD1602模块先向LCD1602写入控制字COM,根据LCD1602时序图进行操作,RS为寄存器选择;再向LCD1602写入数据DATE,根据LCD1602时序图进行操作,最后初始化。流程图如图35所示基于51单片机的数字电子钟设计20开始LCD1602初始化忙碌状态检测(可免)向LCD1602写入命令向LCD1602写入数据返回图35液晶显示模块流程图323DS12C887时钟电路模块先向DS12C887

39、写入数据,然后再读DS12C887芯片数据,接着设置初始化时间,最后对芯片进行初始化。流程图如图36所示开始DS12C887初始化(对A、B寄存器进行相应设置以及设置上电静默时间)向DS12C887写入数据读取DS12C887数据返回图36时钟模块流程图324按键模块此模块有三个弹性小按键。S1键是功能选择键,S2键是“加”键,S3键是巢湖学院2014届本科毕业论文(设计)21“减”键。S1键按下的次数不同,执行的功能也不同流程图如图37所示开始按键扫描S1键是否按下NS2是否按下S3是否按下YNN执行加功能执行减功能YY图37按键模块流程图基于51单片机的数字电子钟设计224系统调试结果在P

40、ROTEL99SE软件上设计原理图,经电气检查无错误后,就在电路板上焊接整个电路。下载好二进制文件到单片机里,通电后,LCD1602显示有乱码。仔细检查焊点和接线,确定无问题后,通电问题依然存在。于是我怀疑是不是有虚焊或者某处焊接出错了,经检查没有问题,最后我认为可能是程序存在些问题,几经修改,做了一下仿真,效果正常。仿真如图41所示图41系统仿真将HEX文件下载到单片机里,连接好硬件,通电后系统正常。如图52所示图42实物图巢湖学院2014届本科毕业论文(设计)23调试流程S1键按1下调秒,如图43图43调秒界面S1键按2下调分,如图44所示图44调分界面S1键按3次调时,如图45所示图45

41、调时界面S1键按4次调星期,如图46所示图46调星期界面S1键按5次调日,如图47所示基于51单片机的数字电子钟设计24图47调日界面S1键按6次调月,如图48所示图48调月界面S1键按7次调年,如图49所示图49调年界面S1键按8次进入闹钟调试,如图410所示图410闹钟调试界面在上一步操作的基础上按1次S2键闹钟调试开,如图411所示巢湖学院2014届本科毕业论文(设计)25图411闹钟开界面在上一步的基础上接着按S1键就可以设置闹钟时间,如图412所示图412设置闹钟界面在进入闹钟设置设置时按下S3键则闹钟关,如图413所示图413闹钟关界面在设置时间状态下,按S2(S3)键进行加(减)

42、设置。当设定的时间到时,蜂鸣器就会发出声响,按S3键蜂鸣器就会停止发声。基于51单片机的数字电子钟设计265总结本设计主要由单片机最小系统模块、时钟电路模块、液晶显示模块、按键模块和蜂鸣器声响模块;软件则是通过C语言编程来实现。本次的设计制作,涉及到以前学过的很多学科知识的综合应用。在整个设计的过程中,对自己的能力有了一个深刻的认知。在某些细节方面以及新的知识点有了新的认识。如在软件设计过程中,对DS12C887芯片的编程问题上,就试过了好几种方法,经过对芯片的充分学习和研究,加之反复编程和调试,最终成功了,也体会到了胜利的欢快感觉。硬件制作过程中,对于器件的选择,线路的安排也花费了一些时间,

43、造成了一些跳线。可见,在焊接电路以前就应该将整体的布局安排好。总之,通过此次设计,让我认识了自己,清楚了自己哪些地方的不足,同时也学到一些新的知识。参考文献1李全利单片机原理及接口技术M北京高等教育出版社,201219202郭天祥51单片机C语言教程M北京电子工业出版社,20093243293王毓银数字电路逻辑设计M2版北京高等教育出版社,20104王云涛,王楠浅谈多功能数字钟的设计J山东电力高等专科学报2005471725张开碧,王浩,曾勇斌基于STC89C52单片机的多功能数字钟的设计J科技信息20103576朱华光LCD1602编程中一些问题怎样解决J电脑编程技巧与维护201015909

44、17赵月飞,郭会平,胡仁喜PROTEL99SEM北京机械工业出版社,2009123103258袁鹏,陈淑芳实时时钟芯片DS12C887与51单片机的接口技术J科技信息2011299刘维红,谭永超基于STC89C52单片机的电子时钟研究J机电产品开发与创新20120510周向红,范伟DS12C887实时时钟芯片及应用研究J企业技术开发2006268附录附录A系统原理图RSTVCC5VRSTX1X2X1X2VCC5VVCC5VD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7VCC5VRSRSLCDENLCDEND0D1D2D3D4D5D6D7VCC5VAD0AD1AD2AD3AD4

45、AD5AD6AD7AD0AD1AD2AD3AD4AD5AD6AD7DSCSDSRWDSASDSASDSRWDSCSDSDSVCC5VVCC5VDSIRQDSIRQVCC5VBEEPS1S2S3S1S2S3VSS1VCC2V03RS4R/W5E6D07D18D29D310D411D512D613D714BLA15BLK16U2LCD1602C110UFR11KR210KX1110592MHZC422PFC522PF123456789RP147KR53312BUZZ1123Q18550R310KC210UFW110KR410S2S3S4VCC1D2D3GND4USB1S1R6680LED1C310

46、UFVCC5VBEEPS5VCC5VDSDSMOT1NC2NC3AD04AD15AD26AD37AD48AD59AD610AD711GND12CS13AS14R/W15NC16DS17RESET18IRQ19NC20NC21NC22SQW23VCC24DS12C887U3DS12C887T2/P101T2EX/P112P123P134P145P156P167P178RST9RXD/P3010TXD/P3111INT0/P3212INT1/P3313T0/P3414T1/P3515WR/P3616RD/P3717XTAL218XTAL119VSS20P20/A821P21/A922P22/A10

47、23P23/A1124P24/A1225P25/A1326P26/A1427P27/A1528PSEN29ALE/PROG30EA31P07/AD732P06/AD633P05/AD534P04/AD435P03/AD336P02/AD237P01/AD138P00/AD039VCC40STC89C52U1STC89C52附录B程序源代码/单位巢湖学院作者于楠/INCLUDEINCLUDE/带返回值的延时子函数/VOIDDELAYUINTZUINTX,YFORXZX0XFORY110Y0Y/蜂鸣器发声控制函数(闹钟响铃),BEEP0发声/VOIDFMQBEEP0DELAY100BEEP1DEL

48、AY100/向LCD写入控制字COM,根据LCD1602时序图进行操作,RS为寄存器选择/VOIDWRITE_COMUCHARCOMRS0/数据/命令选择端命令低电平有效LCDEN0/使能端P0COM/将要写的命令送至数据总线上DELAY5/稍作延迟以待数据稳定LCDEN1/使能端给以高脉冲,因为初始化函数中已将EN置为0DELAY5LCDEN0/将使能端置0以完成高脉冲/向LCD写入数据DATE,根据LCD1602时序图进行操作/VOIDWRITE_DATEUCHARDATERS1LCDEN0P0DATEDELAY5LCDEN1DELAY5LCDEN0/LCD1602初始化/VOIDLCD1

49、602_INITWRITE_COM0X38/初始化1602液晶设置16X2显示,5X7点阵,8位数据口WRITE_COM0X0C/初始化LCD1602设置开显示,不显示光标WRITE_COM0X06/写一个字符后地址指针自动加1WRITE_COM0X01/显示清0,数据指针清0/向DS12C887写入数据子函数/VOIDWRITE_DSUCHARADD,UCHARDATEDSCS0/芯片片选端低电平有效DSAS1/地址选通输入端上升沿锁存地址DSDS1DSRW1/INTEL模式上升沿锁存数据P2ADD/先写地址DSAS0DSRW0P2DATE/再写数据DSRW1DSAS1DSCS1/读DS12C887芯片数据,ADD为寄存器地址/UCHARREAD_DSUCHARADDUCHARDS_DATEDSAS1/地址选通输入端上升沿锁存地址DSDS1DSRW1/INTEL模式上升沿锁存数据DSCS0P2ADD/先写地址DSAS0DSDS0P20XFFDS_DATEP2/再读数据DSDS1DSAS1DSCS1RETURNDS_DATE/首次上电初始化时间函数(首次操作12C887时给予寄存器初始

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。