电气工程及其自动化专业本科毕业论文(设计) .doc

上传人:文库蛋蛋多 文档编号:4029700 上传时间:2023-04-01 格式:DOC 页数:43 大小:2.82MB
返回 下载 相关 举报
电气工程及其自动化专业本科毕业论文(设计) .doc_第1页
第1页 / 共43页
电气工程及其自动化专业本科毕业论文(设计) .doc_第2页
第2页 / 共43页
电气工程及其自动化专业本科毕业论文(设计) .doc_第3页
第3页 / 共43页
电气工程及其自动化专业本科毕业论文(设计) .doc_第4页
第4页 / 共43页
电气工程及其自动化专业本科毕业论文(设计) .doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《电气工程及其自动化专业本科毕业论文(设计) .doc》由会员分享,可在线阅读,更多相关《电气工程及其自动化专业本科毕业论文(设计) .doc(43页珍藏版)》请在三一办公上搜索。

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

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

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

4、n of Digital Electronic Clock Based on 51 MCUAbstractWith the development of the times and the accelerated pace of life, peoples sense of time has become stronger and stronger. And with the development of automated, intelligent and microelectronic technology, the tool for timing has been constantly

5、updated; the emergence of single-chip technology makes digital electronic clock a new direction. Based on this design microcontroller STC89C52 as the control core, and produced by the United States DALLAS DS12C887 real-time clock chip and LCD chip LCD1602, this design has a simple circuit design, re

6、asonable structure, able to accurately display the time, day, date, etc., and can real-timely update the display. This design also has an alarm function as well as to set alarm function, and simple button operation. More importantly, the clock chip DS12C887 has a small error, making the internal lit

7、hium battery power when the time comes stop, so that once again time after power is still able to accurately display the characteristics of the liquid crystal.Key words: MCU, Electronic Clock, DS12C887, LCD1602目 录1. 绪论11.1 电子时钟的选题意义11.2 电子时钟的国内外研究现状12. 系统的硬件电路设计32.1 单片机最小系统模块32.1.1 STC89C52芯片介绍32.1.

8、2 复位电路42.1.3 晶振电路52.2 时钟电路模块52.2.1 DS12C887实时时钟芯片概述52.2.2 硬件电路设计102.3 蜂鸣器声响模块112.4 按键模块112.5 LCD1602显示模块112.5.1 1602液晶概述112.5.2 1602液晶电路153. 系统的软件设计163.1 软件编译器及烧写工具163.2 软件总体设计思路173.2.1 蜂鸣器声响模块183.2.2 LCD1602模块183.2.3 DS12C887时钟电路模块193.2.4 按键模块194. 系统调试结果215. 总结25参考文献26附录271. 绪论1.1 电子时钟的选题意义随着数字集成电路

9、的发展,数字化已深入到各行各业。数字电子钟是以数字电路实现对年、月、日、星期、时、分、秒数字显示的电子钟,广泛应用于私人及公共场所。比如:汽车站、火车站、办公室等场合,给人们的生活、学习、工作及娱乐带来了极大的方面,已成为人们日常生活中不可或缺的物品。如今的电子钟精度已远远超过老式钟表,并且其报时功能也得到加强。例如定时报警系统、定时程序启动控制、定时动力通断设备等等这些都是以数字化为基础的。而且在许多监控系统及电子设备中,往往会进行一些与时间相关的控制与操作,同时需要记录下实时的时间信息并保存下来。例如,在某些数据采集时,对于一些重要的信息不仅要记录下其内容,还要记录下发生该事件时的准确时间

10、;又比如,在建筑视频安防监控系统中,除了要显示实时画面外,还要准确记录下实时的时间信息,其中包括年、月、日、时、分、秒等。传统的计时时钟已不能满足上述要求,为了达到上述目的,就需要实时时钟的参与配合。基于STC89C52单片机为核心的电子钟就可以满足上述要求,为了避免偶然的掉电或晶振的误差造成时间的混乱以及完全用程序设计从而占用大量的系统资源而影响系统其他功能的运行,外加一块独立运行的实时时钟芯片DS12C887,同时配合相应的程序就可以实现上述目的。因此,研究数字电子钟以及扩大其作用,有着非常现实重要的意义。1.2 电子时钟的国内外研究现状从古代利用流体力学计时的刻漏和后来出现的沙漏以及采用

11、机械传动结构计时的浑天仪,水运仪还有应用天文原理计时的日晷到今天的数字电子钟,经历了漫长的岁月。机械表机芯复杂,走时误差较大,石英表机芯采用集成电路,机械结构比机械表简单许多也精准很多。但是随着生活节奏的加快,人们对时间的精准度要求越来越高。在目前的国内外市场中,数字电子钟的产品随处可见,但是他们大多存在一个致命缺点分两种:一种是价格低廉的精度低,体积大;一种是体积小精度高却价格昂贵。基于单片机的电子时钟系统的设计意在解决上述缺点折合为一个适中的产品,实现高精度、体积小、价格适中、易操作的产品,使得数字电子钟的发展日益满足使用者的需求。数字电子钟的设计方法有很多种,可以利用单片机编程配以简单外

12、设来实现电子钟,也可以采用中小规模的集成电路设计电子钟,还可以利用专门的时钟芯片配以显示电路及外围电路来实现电子钟。其中以单片机为核心控制器,利用专门的实时时钟芯片计时,将时间数据经单片机输出,由显示器显示出来,利用键盘定时、校时,显示电路可利用液晶显示技术或者数码管显示技术。在工业控制、智能控制及日常生活中,经常会碰到对时间进行监控的需求。这就为数字电子钟提供了市场需求,随着科学技术的发展,也为数字电子钟的研发提供了前景。本设计就提供了基于51单片机的数字电子钟的设计方法与实现过程。2. 系统的硬件电路设计2.1 单片机最小系统模块2.1.1 STC89C52芯片介绍STC89C52是STC

13、公司生产的一种高性能、低功耗的CMOS 8位微控制器,具有 8K 系统可编程Flash存储器,指令代码完全兼容传统的MCS-51单片机,俗称单片机。主要特性如下表2-1所示:表2-1 STC89C52芯片特性工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)增加型8051单片机,6时钟/机器周期,12时钟/机器周期可以任意选择;工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz;具有看门狗功能,内带2K字节的E2PRAM存储空间通用I/O口(32个),复位后P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为I/O口使

14、用时,需要加上拉电阻,作为总线扩展用时,不需要加上拉电阻;3个16位定时器/计数器;PDIP封装;用户应用程序空间为8K字节;片上集成512字节RAMISP(系统可编程)/IAP(应用可编程),不需要专用的编程器、仿真器,可通过串口(RXD/P3.0,TXD/P3.1)经由MAX232电平转换电路下载用户程序到单片机外部中断有4路,下降沿触发或低电平触发电路;-40+85(工业级)/075(商业级)温度下工作其引脚图如图2-1所示:图2-1 STC89C52RC芯片引脚引脚大致介绍:1.电源及时钟引脚(4个)l VCC:电源接入引脚。l VSS:接地引脚。l XTAL1:晶体振荡器接入的一个引

15、脚。l XTAL2:晶体振荡器接入的另一个引脚。2.控制线引脚(4个)l RST/VPD:复位信号输入引脚/备用电源输入引脚。l ALE/PROG:地址锁存允许信号输出引脚/编程脉冲输入引脚。l EA/VPP:内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚。l PSEN:外部程序存储器选通信号输出引脚。3.并行I/O引脚(32个,分成4个8位口)l P0.0P0.7:一般I/O口引脚或数据/低位地址总线复用引脚。l P1.0P1.7:一般I/O口引脚。l P2.0P2.7:一般I/O口引脚或高位地址总线引脚。l P3.0P3.7:一般I/O口引脚或第二功能引脚。Err

16、or! No bookmark name given.2.1.2 复位电路当单片机RST引脚加高电平复位信号(保持2个以上机器周期)时,单片机内部就执行复位操作。复位信号变低电平时,单片机开始执行程序。实际应用中,复位操作有两种形式:一种是上电复位,另一种是上电与按键均有效的复位。其原理是上电的瞬间复位引脚(RST)获得高电平,在电容C1充放电的同时,复位引脚(RST)的高电平会慢慢下降。复位引脚(RST)的高电平只要能维持足够的时间(24个晶荡周期),单片机就可以实现复位操作。而按键与上电均有效的复位电路可以在单片机执行任务期间,通过按键实现复位操作。相比较选择按键与上电均有效的复位电路会更

17、有优势1。电路原理图如图2-2所示:图2-2 复位电路2.1.3 晶振电路晶振电路是单片机最小系统的重要环节之一。晶振取11.0592MHz(这样可以准确的得到9600波特率和19200波特率),电容取22pF(一般采用1533pF)。电路如图2-3所示:图2-3 晶振电路2.2 时钟电路模块2.2.1 DS12C887实时时钟芯片概述DS12C887是美国DALLAS公司设计生产的实时时钟芯片。DS12C887时钟芯片能够自动产生世纪、年、月、日、星期、时、分、秒等时间信息,其内部自带锂电池和晶振,在外部掉电时,其内部时间信息仍能保持10年之久。DS12C887时钟芯片中带有128B RAM

18、,其中11B RAM用来存储时间信息;4B RAM用来存储DS12C887的控制信息,成为控制寄存器;13B通用RAM供用户使用。对于一天内有12和24小时制两种模式的时间记录,而在12小时制的模式中,通过AM和PM来区分上下午;芯片内部时间的存储模式有两种:二进制数表示和BCD码表示。此外,用户还可以通过对DS12C887芯片进行编程来实现多种方波的输出,并且可以对其内部的三路中断通过软件进行屏蔽。DS12C887可以通过一个多路复用的支持Intel和Motorola模式的单字节接口访问。1.DS12C887时钟芯片引脚功能DS12C887芯片引脚和实物图如图2-4、2-5所示。图2-4 D

19、S12C887芯片引脚图2-5 时钟芯片实物图各引脚功能说明如下:1(MOT):总线模式选择端。有两种总线工作方式,即Motorola和Intel模式。当接GND或者悬空时,选用Intel模式;接VCC时,选用Motorola模式。2,3,16,20,21,22(NC):悬空端。411(AD0AD7):复用地址数据总线。总线周期的前半部分AD0AD7上的是地址信息,总线周期的后半部分AD0AD7上的是数据信息。12(GND),24(VCC):芯片电源接入端。其中VCC接+5V输入,GND接地。当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读/写操作;当VCC

20、的输入小于+4.25V时,禁止用户对内部RAM进行读/写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入低于+3V时,芯片会自动将电源切换到内部自带的锂电池上,以保证内部电路正常运行。13(CS):芯片选择端,低电平有效。14(AS):地址选通输入端。在进行读/写操作时,AS的上升沿将AD0AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0AD7上的地址信息,不论CS是否有效,DS12C887都将执行该操作。15(R/W):读/写输入端。该引脚有两种工作方式,当MOT接VCC时,R/W)工作在Motorola模式。此时该引脚的作用是区分读操作还是写操作,高电平时

21、为读操作,低电平时为写操作;当MOT接GND时,该引脚工作在Intel模式,此时该引脚作为写允许输入,此信号的上升沿锁存数据。17(DS):数据选择或者读输入脚。有两种工作方式,当MOT接VCC时,选用Motorola模式。当MOT接GND或悬空时,选用Intel工作模式,此时该引脚为读允许输入引脚。18(RESET):芯片复位引脚。低电平有效,通常将该引脚接VCC即可。19(IQR):中断请求输出。低电平有效,用作处理器的中断申请输入。只要引起中断的状态、中断使能位置位,IRQ将持续保持低电平,通过处理器程序读取C寄存器来清除IRQ引脚输出,同时复位引脚也会清除未处理的中断。在中断未发生时,

22、IRQ为高阻态,这时可以将多个中断器件连接到一条IRQ总线上。IRQ引脚为漏极开路输出,需要外接一个上拉电阻与VCC相连。23(SQW):方波输出引脚。当供电电压VCC大于4.25V时,SQW引脚可输出方波,此时,用户可以通过对控制寄存器编程来得到13钟方波信号的输出。2. DS12C887时钟芯片内部功能DS12C887的存储器分配如图2-6所示,其中00H-09H为闹钟信息与时间信息寄存器,0AH-0DH为4个控制寄存器。图2-6存储器分配图(1)状态控制寄存器A(除D7位外可读写)表2-2 寄存器A地址D7D6D5D4D3D2D1D00AHUIPDV2DV1DV0RS3RS2RS1RS0

23、UIP:更新位。当UIP=1时,即将开始更新;当UIP=0时,至少在244us内芯片不会更新。UIP位为只读位且不受复位信号的影响。通过寄存器B中SET位设置为1来禁止更新,并且将UIP位清零。DV2,DV1,DV0:晶体振荡器和复位分频器的开与关。当DV0=0,DV1=1,DV2=0时,晶体振荡器开启且保持时钟运行。当DV0=1,DV1=1,DV2=X时,开启晶体振荡器,分频保持复位状态。这三位的其他组合方式均使振荡器关闭。因此,首次使用时必须设置这三位的状态。RS3,RS2,RS1,RS0:速率选择位。这4个速率选择位的不同取值可产生从122.07us到500ms之间不同周期的方波输出及周

24、期中断。(2)状态控制寄存器B(可读写)表2-3 寄存器B地址D7D6D5D4D3D2D1D00BHSETPIEAIEUIESQWEDM12/24DSESET=0,芯片更新正常进行;SET=1,芯片更新被禁止。PIE:中断周期允许位。PIE=1,允许;PIE=0,禁止。AIE:闹铃中断允许位。AIE=1,允许;AIE=0,禁止。UIE:更新结束中断允许位。UIE=1,允许;UIE=0,禁止。SQWE=1,SQW输出设定频率的方波;SQWE=0,SQW引脚为低电平。DM:寄存器存储数据格式选择位。DM=0,BCD码;DM=1,二进制数格式,此位不受复位信号影响。12/24:为1,24小时制;为0

25、,12小时制。DSE:夏令时允许标志位。在四月的第一个周日的15959 AM,时钟调到30000 AM;在十月的最后一个周日的15959 AM,时钟调到10000 AM。(3)状态控制寄存器C(只读)表2-4 寄存器C地址D7D6D5D4D3D2D1D00CHIRQFPFAFUF0000IRQF:中断请求标志。当PF=PIE=1,AF=AIE=1,UF=UIE=1,IRQF=PFPIE+AFAIE+UFUIE有一种或几种发生时,IRQF置高IRQ脚输出为低电平;为低时,无中断请求发生。所有标志位在读寄存器C或复位后清0。其中PF:周期中断标志;AF:闹钟中断标志;UF:更新中断标志。(4)状态

26、控制寄存器C(只读)表2-5 寄存器C地址D7D6D5D4D3D2D1D00DHVRT0000000VRT:VRT=0,表示芯片内的锂电池能量耗尽,此时RAM中的数据的正确性就无法保证了;VRT=1,信息有效。3.DS12C887时序图分析鉴于本设计MOT引脚接GND,总线选用Intel模式,故此系统只分析Intel模式。Intel模式总线写时序图如图2-7所示,读时序图如图2-8所示:图2-7 Intel模式总线写时序图图2-8 Intel模式总线读时序图2.2.2 硬件电路设计根据芯片的特性和引脚功能来设计外围电路。DS12C887时钟芯片电路如图2-9所示: 图2-9时钟电路引脚1这里接

27、地(或悬空)来选取Intel模式,411引脚接单片机的P1口,18引脚接VCC,19引脚外接一个上拉电阻然后接到单片机P3.3口,其他的引脚各自接到相应端口。 2.3 蜂鸣器声响模块此模块在闹钟设定时间到时发出声响。本模块通过PNP三极管为蜂鸣器放大电流,基极通过33欧的电阻与单片机16(P3.6)引脚相连。其电路图如图2-10所示:图2-10 蜂鸣器声响电路2.4 按键模块按键模块的作用是调节时间及设置闹钟时间。电路图如图2-11所示:图2-11 按键电路2.5 LCD1602显示模块2.5.1 1602液晶概述本设计使用的1602液晶为5V驱动,带背光,可显示两行,每行16个字符,不能显示

28、汉字,内置128个字符的ASCII字符集库。1602液晶的引脚及实物图如图2-12、2-13所示:图2-12 LCD1602引脚图2-13 LCD1602实物图1. 引脚说明1602液晶引脚说明如表2-6所示:表2-6 液晶引脚说明编号符号引脚功能说明编号符号引脚功能说明1VSS电源地9D2数据接口32VCC电源正极10D3数据接口43VO液晶显示对比度调节端11D4数据接口54RS数据/命令选择端12D5数据接口65R/W读写选择端13D6数据接口76E使能端14D7数据接口87D0数据接口115BLA背光电源正极8D1数据接口216BLK背光电源负极2.基本操作时序及时序图基本操作时序:读

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

30、一个高脉冲将数据送入液晶控制器,完成写操作。时序图如下:如图2-14 1602液晶写操作时序图3.状态字说明表2-7 状态字说明STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0STA0STA6当前地址指针的数值STA7读/写操作使能1禁止;0允许理论上每次对控制器进行读/写操作之前,都必须进行读/写检测,确保STA7为0。实际上,由于液晶控制器的反应速度快于单片机的操作速度,因此可以不进行读/写检测,或许可以只进行简短延时也行。4.RAM地址映射图控制器的内部带有80B的RAM缓冲区,对应关系如图2-15所示:图2-15 1602内部RAM地址映

31、射图当向图中的000F、404F地址中的任一处写入显示数据时,液晶都会立即显示出来,当写入到1027或5067地址时,必须要通过移屏指令将它们移入可显示区域方可正常显示。5.数据指针设置表2-8 数据指针设置指令码功能80H+地址码(027H,4067H)设置数据地址指针控制器内部设有一个数据地址指针,我们可以通过它们访问内部的全部80B的RAM。6.其他设置表2-9 其他设置指令码功能01H显示清屏:1.数据指针清0 2.所有显示清002H显示回车:数据指针清07.初始化设置(1)显示模式设置表2-10 显示模式设置指令码功能00111000设置162显示,57点阵,8位数据口(2)显示开/

32、关及光标设置表2-11 显示开/关及光标设置指令码功能00001DCBD=1,开显示;D=0,关显示C=1,光标显示;C=0,光标不显示B=1,光标闪烁;B=0,不显示光标000001NSN=1,读或写一个字符后地址指针加1且光标加1;N=0,读或写一个字符后地址指针减1且光标减1S=1,写一个字符时,显示整体左移(N=1)或右移(N=0),来得到光标不移动而屏幕移动的效果;S=0,写一个字符时,显示整体不移动00010000光标左移00010100光标右移00011000显示整体左移,同时光标跟随移动00011100显示整体右移,同时光标跟随移动2.5.2 1602液晶电路为防止上电时烧坏背

33、光灯,在15脚(BLA)串接一个10欧姆的电阻来限流;液晶3(VO)脚为对比度调节端,串接一个10K的电位器来调节对比度;液晶4(RS)脚为向液晶控制器写数据/写命令选择端,接单片机P3.5口;液晶5(R/W)脚为读/写选择端,由于只向液晶写入命令和显示数据,不从液晶读取数据,所以此脚始终选择为写状态,即接地;液晶6(E)脚为使能端,是操作液晶时必须的,接单片机P3.4口;1(VSS)、2(VCC)脚是电源端;15(BLA)、16(BLK)脚是背光电源端。具体电路图如图2-15所示:图2-15 1602液晶电路3. 系统的软件设计3.1 软件编译器及烧写工具本设计采用C语言编程。程序的编写和编

34、译在Keil uVisio4软件上完成。编译及烧写的步骤如下:1.程序编写与编译打开Keil uVisio4软件,新建工程保存,选取芯片类型OK,新建文件保存,添加文件到工程,在文件里完成程序的编写,保存并编译,在无错误的情况下,配置一些系统的设置,再编译一次,生成可以下载到STC89C52芯片上的以.hex为后缀名的二进制文件。界面如图3-1所示:图3-1 Keil uVisio4编译界面2.程序的烧写编译完成后的二进制文件,通过专用的STC-ISP软件同时借助于开发板烧写到单片机里,对程序进行测试。如图3-2所示:图3-2 烧写工具界面3.2 软件总体设计思路主程序流程图如图3-3所示:图

35、3-3 主程序流程图首先,程序启动后对单片机内部资源初始化,然后对DS12C887时钟芯片初始化,写入控制字,读取芯片内相应寄存器的时间数据并对LCD1602初始化,完成时间日期的显示。接着进入循环程序不停的执行以下任务:按键扫描,有按键按下时执行相应操作,没有按键按下就检查闹钟标志位有没有中断触发,有就执行闹铃程序(DS12C887的IRQ管脚在闹铃出发时产生低电平,触发外部中断1,蜂鸣器发声),没有就进行DS12C887时钟芯片的数据读取,向LCD1602发送数据并显示。3.2.1 蜂鸣器声响模块DS12C887的IRQ管脚在闹铃发声时产生低电平,触发外部中断1,蜂鸣器发声。流程图如图3-

36、4所示:图3-4 蜂鸣器模块流程图3.2.2 LCD1602模块先向LCD1602写入控制字com,根据LCD1602时序图进行操作,RS为寄存器选择;再向LCD1602写入数据date,根据LCD1602时序图进行操作,最后初始化。流程图如图3-5所示: 图3-5 液晶显示模块流程图3.2.3 DS12C887时钟电路模块先向DS12C887写入数据,然后再读DS12C887芯片数据,接着设置初始化时间,最后对芯片进行初始化。流程图如图3-6所示:图3-6 时钟模块流程图3.2.4 按键模块此模块有三个弹性小按键。S1键是功能选择键,S2键是“加”键,S3键是“减”键。S1键按下的次数不同,

37、执行的功能也不同流程图如图3-7所示:图3-7 按键模块流程图4. 系统调试结果在Protel99SE软件上设计原理图,经电气检查无错误后,就在电路板上焊接整个电路。下载好二进制文件到单片机里,通电后,LCD1602显示有乱码。仔细检查焊点和接线,确定无问题后,通电问题依然存在。于是我怀疑是不是有虚焊或者某处焊接出错了,经检查没有问题,最后我认为可能是程序存在些问题,几经修改,做了一下仿真,效果正常。仿真如图4-1所示:图4-1 系统仿真将.hex文件下载到单片机里,连接好硬件,通电后系统正常。如图5-2所示:图4-2 实物图调试流程: S1键按1下调秒,如图4-3:图4-3 调秒界面S1键按

38、2下调分,如图4-4所示:图4-4 调分界面S1键按3次调时,如图4-5所示:图4-5 调时界面S1键按4次调星期,如图4-6所示:图4-6 调星期界面S1键按5次调日,如图4-7所示:图4-7 调日界面S1键按6次调月,如图4-8所示:图4-8 调月界面S1键按7次调年,如图4-9所示:图4-9 调年界面S1键按8次进入闹钟调试,如图4-10所示:图4-10 闹钟调试界面在上一步操作的基础上按1次S2键闹钟调试开,如图4-11所示:图4-11 闹钟开界面在上一步的基础上接着按S1键就可以设置闹钟时间,如图4-12所示:图4-12 设置闹钟界面在进入闹钟设置设置时按下S3键则闹钟关,如图4-1

39、3所示:图4-13 闹钟关界面在设置时间状态下,按S2(S3)键进行加(减)设置。当设定的时间到时,蜂鸣器就会发出声响,按S3键蜂鸣器就会停止发声。5. 总结本设计主要由单片机最小系统模块、时钟电路模块、液晶显示模块、按键模块和蜂鸣器声响模块;软件则是通过C语言编程来实现。本次的设计制作,涉及到以前学过的很多学科知识的综合应用。在整个设计的过程中,对自己的能力有了一个深刻的认知。在某些细节方面以及新的知识点有了新的认识。如在软件设计过程中,对DS12C887芯片的编程问题上,就试过了好几种方法,经过对芯片的充分学习和研究,加之反复编程和调试,最终成功了,也体会到了胜利的欢快感觉。硬件制作过程中

40、,对于器件的选择,线路的安排也花费了一些时间,造成了一些跳线。可见,在焊接电路以前就应该将整体的布局安排好。总之,通过此次设计,让我认识了自己,清楚了自己哪些地方的不足,同时也学到一些新的知识。参考文献1 李全利.单片机原理及接口技术M.北京:高等教育出版社,2012:19-202 郭天祥.51单片机C语言教程M.北京:电子工业出版社,2009:324-3293 王毓银.数字电路逻辑设计M.2版.北京:高等教育出版社,2010.4 王云涛,王楠.浅谈多功能数字钟的设计J.山东电力高等专科学报.2005.4:71-725 张开碧,王浩,曾勇斌.基于STC89C52单片机的多功能数字钟的设计J.科

41、技信息.2010.35:76 朱华光.LCD1602编程中一些问题怎样解决J.电脑编程技巧与维护.2010.15:90-917 赵月飞,郭会平,胡仁喜.Protel 99 SEM北京:机械工业出版社,2009.12:310-3258 袁鹏,陈淑芳.实时时钟芯片DS12C887与51单片机的接口技术J. 科技信息. 2011(29)9 刘维红,谭永超.基于STC89C52单片机的电子时钟研究J.机电产品开发与创新. 2012(05)10 周向红,范伟.DS12C887实时时钟芯片及应用研究J.企业技术开发. 2006.2:6-8附录附录A:系统原理图附录:B 程序源代码/*单 位:巢湖学院作 者

42、:于楠*/#include#include/*带返回值的延时子函数*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*蜂鸣器发声控制函数(闹钟响铃),beep=0发声*/void fmq()beep=0;delay(100);beep=1;delay(100);/*向lcd写入控制字com,根据lcd1602时序图进行操作,rs为寄存器选择*/void write_com(uchar com)rs=0;/数据/命令选择端(命令低电平有效)lcden=0;/使能端P0=com;/将要写的命令送至数据总线上delay(5);/

43、稍作延迟以待数据稳定lcden=1;/使能端给以高脉冲,因为初始化函数中已将EN置为0delay(5);lcden=0;/将使能端置0以完成高脉冲/*向lcd写入数据date,根据lcd1602时序图进行操作*/void write_date(uchar date) rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;/*LCD1602初始化*/void LCD1602_init()write_com(0x38);/初始化1602液晶 设置16X2显示,5X7点阵,8位数据口write_com(0x0c);/初始化lcd1602 设置开显示,不显示光标 write_com(0x06);/写一个字符后地址指针自动加1write_com(0x01);/显示清0,数据指针清0/*向DS12c887写入数据子函数*/void write_ds(uchar add,uchar date)dscs=0;/芯片片选端 低电平有效dsas=1;/地址选通输入端 上升沿锁存地址dsds=1;dsrw=1;/intel模式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号