基于51单片机的智能数字闹钟设计实现分析_第1页
基于51单片机的智能数字闹钟设计实现分析_第2页
基于51单片机的智能数字闹钟设计实现分析_第3页
基于51单片机的智能数字闹钟设计实现分析_第4页
基于51单片机的智能数字闹钟设计实现分析_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-PAGE . z. 基于51单片机的智能数字闹钟设计与实现摘 要单片机自20世纪70年代问世以来,因为单片机极高的性能价格比,越发受到了人们的重视和关注,应用 领 域 广泛、开展很快。而51单片机是各单片机中最为典型的,也是最具有代表性的一种。本设计是一款基于AT89C51的智能数字钟,该数字钟表由主控模块、按键模块、定时模块、温度检测模块和显示模块构成。主控模块由主控芯片AT89C51、晶振电路和复位电路构成;定时模块采用时钟芯片DS1302实现准确定时;用温度传感器DS18B20作为温度采集源,检测当前温度;用液晶显示器1602显示年、月、日、时间及温度。通过这种方法的实现,使智能数字闹

2、钟的电路简单,性能可靠,实时性好,时间和温度精度高,操作简单。在Proteus和Keil vision4的环境下,完成了电路原理图的绘制以及程序的编译后,用焊接的方法在电路板上焊接实物,将Keil vision4中生成的.he*文件的程序烧到电路中,检测并调试电路,实现智能数字闹钟的功能。该智能数字闹钟可以应用于人们的生活和工作中,也可通过改装,将智能数字闹钟的性能提高,还可以增加新的功能,让智能数字闹钟显示更多方面的容与功能,给人们的生活和工作带来更多的方便。关键词:单片机,时钟芯片,温度传感器,液晶显示器,智能数字钟-. z.AT89S52 based Digital Clock Desi

3、gn of Intelligent Abstract AbstractSCM since the advent of the 1970s , because of high performance and low cost single chip , has been more and more peoples attention and concern , widely used in the field , has developed rapidly. The microcontroller 51 is the most typical each MCU is the most repre

4、sentative one.The designeris one section based on AT89C51 intelligent digit clock, this clock and watch by the master control module, fi*ed time the module, the temperature e*amines the module and the display module constitution. Master control module by master control chip AT89C51, crystal oscillat

5、or electric circuit and reset circuit constitution; Fi*ed time the module uses clock chip DS1302 to realize precisely fi*ed time; Gathers the source with temperature sensor DS18B20 as the temperature, the e*amination current temperature; 1602 demonstrate the year, the month, Japan, the time and the

6、temperature with the liquid-crystal display. The method has the advantage of being simple circuit, reliable performance, good real-time, high precision of the time and temperature, simply operation【19】.Under the environment of Proteus and Keil vision4 , after finishing drawing circuit schematic and

7、piling program, Welding material on the circuit board by welding method. Then, .He* files, the generation of Keil vision4 ,is made into the circuit. Finally, testing and debugging the circuit, and to realize the function of Intelligent digital alarm clock.The electronic clock can be applied to the g

8、eneral living and working, can also be modified to improve performance add new functions and brings more convenient to peoples life and work.Key Words:NC machining; NC verification; Machining environment; Help files本页的页码貌似是居右-. z.目 录TOC o 1-3 h u HYPERLINK l _Toc9502 摘 要 PAGEREF _Toc9502 i HYPERLINK

9、 l _Toc11713 Abstract PAGEREF _Toc11713 ii HYPERLINK l _Toc13778 第一章 引 言 PAGEREF _Toc13778 1 HYPERLINK l _Toc17502 1.1 智能数字闹钟的研究背景和意义 PAGEREF _Toc17502 1 HYPERLINK l _Toc15986 1.2智能数字闹钟的功能 PAGEREF _Toc15986 1 HYPERLINK l _Toc20801 1.3 智能数字闹钟的开展趋势 PAGEREF _Toc20801 2 HYPERLINK l _Toc32545 第二章 方案的论证与选

10、择 PAGEREF _Toc32545 2 HYPERLINK l _Toc17993 2.1 方案的论证 PAGEREF _Toc17993 2 HYPERLINK l _Toc13160 2.2 方案的选择 PAGEREF _Toc13160 4 HYPERLINK l _Toc17783 第三章 硬件电路的设计 PAGEREF _Toc17783 4 HYPERLINK l _Toc24438 3.1 主控电路模块 PAGEREF _Toc24438 5 HYPERLINK l _Toc19366 3.2 按键电路模块 PAGEREF _Toc19366 7 HYPERLINK l _T

11、oc6266 3.3 定时电路模块 PAGEREF _Toc6266 8 HYPERLINK l _Toc32263 3.4 温度电路模块 PAGEREF _Toc32263 10 HYPERLINK l _Toc10419 3.5 显示电路模块 PAGEREF _Toc10419 11 HYPERLINK l _Toc6241 第四章 软件设计 PAGEREF _Toc6241 13 HYPERLINK l _Toc13617 4.1总体系统软件设计 PAGEREF _Toc13617 13 HYPERLINK l _Toc31316 4.1.1 主程序设计 PAGEREF _Toc3131

12、6 14 HYPERLINK l _Toc1174 4.1.2 温度采集模块设计 PAGEREF _Toc1174 16 HYPERLINK l _Toc7565 4.1.3 定时模块设计 PAGEREF _Toc7565 18 HYPERLINK l _Toc17908 4.1.4 显示模块设计 PAGEREF _Toc17908 18 HYPERLINK l _Toc32514 第五章 系统的安装与调试 PAGEREF _Toc32514 20 HYPERLINK l _Toc31399 5.1 系统硬件的安装与调试 PAGEREF _Toc31399 21 HYPERLINK l _To

13、c20606 5.2 系统软件的调试 PAGEREF _Toc20606 22 HYPERLINK l _Toc32019 第六章 总结与展望 PAGEREF _Toc32019 25 HYPERLINK l _Toc5047 参 考 文 献 PAGEREF _Toc5047 27 HYPERLINK l _Toc18069 致 PAGEREF _Toc18069 28 HYPERLINK l _Toc9678 附 录 PAGEREF _Toc9678 29目录页也要有页码,罗马字体-. z.第一章 引 言不要加粗1.1 智能数字闹钟的研究背景和意义随着当今社会的快速开展,人类面临着很多问题,

14、时间和空间的缺乏就是其问题之一。作为新一代技术型人才,日益开展的社会势必会面临这一严峻的问题。围绕这个即将到来的问题,本课题定为智能数字闹钟设计。钟表只是一种简单的显示时间的工具,本身不能给人们带来想要抓住时间的紧迫感,但如能把时钟时间的显示准确到分、秒,则面对这种时间飞逝的重压感,人们就会重视它并有效地利用它,更懂得把握分寸,不白白浪费时间。当然假设在钟表的显示中融入了其他人们日常工作出行必须的功能,智能并简单利用,可以大大为我们节省出空间来。人们生活水平逐渐提高,并且越来越重视人性化事物,传统的指针式时钟也只能简单的满足人们的针对时间的需求,但是人们更着重追求高科技新事物,在现在日益充满物

15、质的社会里,人们也追求在小的围显示更多的信息。而普通的时钟是模电技术、数电技术和单片机技术的结合,才使得现在的时钟实现更多功能。早期运用的时间控制器都是用模拟电路设计制作的,准确性及各方面的性能都不是很理想。随着单片机性价比的不断提高,新的产品应用越来越广泛,逐渐取代了昔日的模拟化产品,变得高端上档次。单片机系列产品已经遍布到工业控制,以及各个重要的公共场所,单片机的快速开展与应用更加大围的扩展,在人们的日常生活中日需常见化,更加依赖单片机,给人类生活带来了极大的便利,单片机将与人们的生活、娱乐等不同方面都存在密不可分的关系。单片机在智能数字闹钟的应用中具有相当普遍的意义,是一件必不可少的元器

16、件,在生活中起着关键性作用。由于时代的大变化开展,加快了数字 集 成 电 路 技 术的开展步伐,石 英 技 术 更加精进,使得数字钟能够走时准确,能够实现更多的功能,携带在身上很便捷,性能高。单片机部构造有定时器/计数器,能够实现自动计时功能,单片机的使用大围地出现在人们的周围,无处不在【16】。这种具有人们所需要的智能化特性产品为人们节省了大量时间和空间,扩大了数字化的围,为家庭数字化奠定了根底。1.2智能数字闹钟的功能电路采用了单片机AT89C51、温度传感器DS18B20、时钟芯片DS1302、1602LCD显示器,通过独立式按键可以切换模式,修改显示时间的数据。电路设计合理,具备了三大

17、特点:简单,操作方便,美观大方。本设计智能数字闹钟的主要功能为:1连接电源,1602LCD显示器上可显示正常的时间、日期及温度的显示;2可实现12小时/24小时时间显示的切换;3通过独立式按键手动修改时间日期;4可以设置三个闹钟时间,当到闹钟响铃时间,可手动关闭;1.3 智能数字闹钟的开展趋势基于51单片机的智能数字闹钟表达了现代化电子产品的高性价比,本钱低,电路简单,功能齐全。对于家庭生活中,具有了相当普遍性和实用性,使得人们在生活中对智能数字闹钟产生了依赖性,在各个方面不可缺少的,用一句夸的话说:离开了它就不能活了,感觉身边总是少了些什么。时钟的开展已经从老式钟表开展到如今电子时钟以及智能

18、化数字时钟的时代,通过时代的开展,高科技研制和广泛应用,智能数字闹钟的开展前景将不可估量,智能数字闹钟所实现的功能不仅仅只有报时功能,在不久的未来,智能数字闹钟可以设置闹钟,可以实现通话功能,可以是一本记事本,随时记录发生的事情,或许可以实现导航功能等,以上功能只要一个小小的智能数字闹钟就可实现,人们的生活更加方便。同时,智能数字闹钟的电路只需使用简单芯片,加以合理设计,使得电路简单、操作非常方便、美观实用,但是其准确度不是很高。首先,伴随着更多性能更好新材料、更完善的设计方法、更先进的大规模集成电路的开展以及驱动技术的进步,时钟系统将会更加高精度,也将会更加完善。其次,随着显示器件,如液晶显

19、示器件性能的拓展,传统的机械时钟显示形式也将演变成高清晰度的显示方式。最后,时钟系统在未来的应用将更加广泛,以其高精度的显示以及其多容的显示界面将更受到人们的青睐。方案的论证与选择2.1 方案的论证方案一:这边可以问下教师是不是可以居行首基于低本钱数字集成电路及七段译码器组成的数字闹钟设计【10】 系统由数字逻辑集成芯片构成纯硬件电路,其电路由秒信号发生器、走时电路、校时电路、闹钟电路等局部组成。秒信号发生器使用LM555构成多谐振荡器,调整电阻可改变频率,使之产生秒信号。走时电路包括秒计时器、分计时器、时计时器,每个局部都由两片计数器级联构成。其中秒计数器和分计数器都是用十进制与六进制计数器

20、级联构成,时计数器由三进制计数器与十进制计数器级联构成。时计数器需要个位为十进制、十位只要计到2即可,不过需要清零电路。当个位计数到4,同时十位计数到2时立即清零,时钟就会从零开场重新计数。当时间与标准时间不吻合的时候,需要校准时间,对照标准时间将此时的时间的秒信号加速运行,加快时钟的计时速度,当到达标准时间后再切换回正确的输入信号,到达校准目的。闹钟是在在预定的时间到达时能输出闹铃声。这种方案的电路搭建起来非常的庞大,大小不同芯片,总共需要用到18个,工程非常的繁琐,需要花费很长的时间在电路的排版和连线上。 方案二:基于VHDL的数字时钟设计【5】基于VHDL的数字时钟设计主要由晶体振荡器、

21、分频器、计数器、译码器显示器组成。基于VHDL的数字时钟设计中需要有一个时钟脉冲信号,因此用一个石英晶体振荡器产生一个高频脉冲信号,然后要用分频器将这个时钟脉冲信号分频,得到1Hz的时钟信号,将这个时钟信号分别接入计数器中,然后再为其他模块提供时钟。计数器用一个100进制的计数器和两个60进制的计数器进展级联。最后在三个计数器的输出接到七段译码管,总共要用到8个这样的数码管。 晶体振荡器分 频 器计数器模块七段码译码器模 块方案三:基于单片机智能数字闹钟设计【13】基于单片机的数字时钟设计是要分好几个模块,单独对各类模块设计,以单片机AT89C51作为主控芯片,控制其他模块的运作,将数据控制输

22、出到显示模块。对各个模块进展程序的编写,最后将编译生成一个.he*文件,将这个文件烧到AT89C51单片机芯片中,从而实现时钟的功能。当时钟电路上电后,电路初始化,系统保持原有的显示,通过按下不同的按键,切换到不同的模式中,实现12/24小时的切换,以及修改年、月、日、时、秒的时间设置;当进入闹钟设置模式下,可设置三个闹钟时间,到设定时间蜂鸣器鸣响,无人操作时鸣响30s自动关闭闹钟;当需要设置更多功能时,只需多设置相应的功能按键就可实现。对上述方案进展比拟,方案一由硬件构成,比拟容易实现,但由硬件搭建的电路不够稳定,译码管显示效果差,功能单一不能扩展,且电路功耗大,在将这种方案做成实物的过程中

23、很漫长,更需要投入很多的精力,因出现故障而检查电路时很复杂,难找。方案二利用FPGA精度高、处理速度快的特点,利用外部50M石英晶振提供高精度系统频率,能够满足更高精度的要求,并且设计比拟人性化。方案三显示准确、直观、易于调整。2.2 方案的选择本次设计采用方案三,即以AT89C51作为主控芯片,采用1602液晶作为显示器件,独立轻触式按键作按键模块,DS1302为定时来源,能准确定时,DS18B20作温度采集源。确定系统组成框图如图2.1所示,各功能模块如下:显示模块主 控 模 块定时模块按键模块温度模块图2.1 系统框架主控模块:由主控芯片AT89C51,外接时钟电路、复位电路和P0口的上

24、拉电阻构成,能够驱动程序的运行,在显示屏上实现智能数字闹钟的各个功能。温度模块:由芯片DS18B20和上拉电阻构成,实现温度采集,当周围有高温物体时,温度的示数会逐渐的增加,离开时温度会慢慢下降。定时模块:由DS1302、晶振,3.6V的纽扣电池构成,能够提供年、月、日、时、分和日期,纽扣电池可以支持时钟的走时,即使显示屏没电不显示时,时间也在计时。显示模块: 由1602LCD液晶显示屏构成,把单片机传来的数据进展显示,显示的位数多,。按键模块:由五个独立轻触式按键构成,可切换各种模式状态,能对数据进展修改。第三章 硬件电路的设计本设计采用AT89C51单片机作为本次设计的主要控制模块。单片机

25、可把由DS18B20、DS1302中的数据利用软件来进展处理,从而把数据传输到显示模块,此模块实现温度、时间的显示。以1602LCD液晶显示器为显示模块,把单片机传来的数据显示出来,在显示电路中,主要靠按键来实现各种显示要求的选择与切换。3.1 主控电路模块主控电路模块采用AT89C51作为核心元件来控制各局部,其电路原理图如图3.1。单片机上面一个图没加序号引脚功能的说明,见下表3.1表3.1 单片机的引脚功能引脚号符号引脚功能18P1口8位,准双向I/O口,具有部上拉电阻9RST复位,高电平有效1017P3口8位,准双向I/O口,具有部上拉电阻18、19*TAL时钟引脚20VSS接数字地2

26、128P2口8位,准双向I/O口,具有部上拉电阻29片外程序存储器的读选通信号,低电平有效30ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存信号31外部存储器允许访问控制端3239P0口8位,漏极开路的双向I/O口,作为通用I/O口使用时,需加上上拉电阻40Vcc接+5V电源下面给出了单片机的部构造图,如图3.2图3.2 单片机的部构造图由图3.2单片机的部构造图中看出,单片机是在半导体硅片上集成了中央处理器、存储器、并行I/O口、串行I/O口、定时器/计数器、中断系统、系统时钟电路及系统总线的微型计算机。通常把单片机称为嵌入式控制器或微控制器。单片机的最小系统只需要最小的配

27、置能够让单片机里的程序运行,如果要用IO口去驱动LCD显示,写好程序就能运行。单片机的P0口接上上拉电阻,排除外界对其有效电平的干扰,电路的抗干扰能力大大增强。单片机最小系统构成主要是由时序电路以及复位电路两个局部构成。1、时序电路的介绍,下面给出了时序电路图:时序所有图都图要有序号电路由晶振与电容构成,其主要目的是滤波,这样可以使晶振输出的波形更加平滑,方便给予单片机适用的信号,至于大小应该是一个经历值,这样的滤波效果最好。电路中的电容C1和C2的典型值通常选择为30pF,该电容的大小会影响振荡器频率的上下、振荡器 的 稳 定 性 和 起 振 的 快 速性。晶体的频率越高,系统的时钟频率越高

28、,单片机的运行速度也就越快【7】。但反过来。运行速度快对存储器的速度要求就高,对印制电路板的工艺要求也高,即要求线间的寄生电容要小。复位电路的介绍,下面给出了复位电路图:复位电路主要由电阻、电容、独立轻触所有图都图要有序号式开关构成,利用复位电路把电路恢复到起始状态,就像计算器的清零按钮的作用一样,或者你输入错误,计算失误时都要进展清零操作。以便回到原始状态,重新进展计算。复位电路启动可以有三种方式,一是在给电路通电时马上进展复位操作;二是在必要时可以由手动操作;三是根据程序或者电路运行的需要自动地进展。主控模块运用了单片机的最小系统,需要外接时钟电路和复位电路。但是,在智能数字闹钟的设计中,

29、由于一定的原因,省略了接复位电路的连接,然而这种接法对电路不会造成很大的影响,仍然能够实现智能数字闹钟的功能。3.2 按键电路模块按键模块电路主要是由5个独立式按键组成,其电路图如图3.3。图3.3 按键模块电路图3.3按键模块电路中,S1、S2、S3、S4、S5分别接单片机AT89C51的P3口的P3.0、P3.1、P3.2、P3.3、P3.7,经单片机的控制,可通过不同按键的接通实现相应的功能参数设置、闹钟设置等。独立式按键的构造很简单,使用时只需要接其中两个引脚即可。开机后,电路进入初始化状体,初始化完成过后,按下开关S1进入调节模式,依次按下S1设置年、月、日、星期、时、分、秒和三个闹

30、钟时间,S2递增调节,S3递减调节,按下S4关闭闹钟/退出调节模式,显示屏上正常显示。S5按键12小时、24小时的切换。3.3 定时电路模块定时电路模块主要由芯片DS1302控制,电路图如图3.4。 图3.4 定时模块电路DS1302芯片各管脚描述如下,见表3.2表3.2 DS1302功能引脚说明引脚号符号引脚功能1、8Vcc2、Vcc1为电源供电管脚2、3*2、*3接32.768KHz的晶振4GND接地5RST复位端6I/O为数据输入/输出引脚7SCLK接串行时钟DS1302有12个存放器,其中7个存放器与日历、时钟相关,存放的数据形式是BCD码,其存放器及控制字见表3.3表3.3 DS13

31、02的日历、时钟存放器及其控制字存放器名命令字取值围各位容写操作读操作76543210秒存放器80H81H00-59CH10SECSEC分钟存放器82H83H00-59010MINMIN小时存放器84H85H01-12或00-2312/240HRHR日期存放器86H87H01-28,29,30,310010DATEDATE月份存放器88H89H01-1200010MMONTH周日存放器8AH8BH01-0700000DAY年份存放器8CH8DH00-9910YEARYEAR单片机容易受外界环境的影响,时钟时常会出现混乱现象,导致时钟的精度不高。DS1302的作用主要用来记录数据,特别是对*些具

32、有特殊意义的数据点的记录,除此之外,DS1302能够同时记录两个时间,一是记录数据的时间,二是出现该数据的时间,因此在测量系统中广泛应用。采用时钟芯片DS1302可以准确记录数据出现的时间,不需要占用硬件资源,不消耗单片机的资源。使用DS1302芯片,可以提供稳定准确地走时,单片机只需要在第一次上电时进展必要的时间设定,以后需要时间的时候只需要从DS1302中读取数据即可。DS1302芯片自带长短月、闰年补偿等功能,只用51实现时间的各种功能会非常麻烦。掉电后只需要微弱的电流即可保持精准走时,因此,在DS1302芯片的连接中连有3.6V的纽扣电池,可以在掉电后支持时间的走时。3.4 温度电路模

33、块温度采集电路模块由DS18B20对温度进展采集测试,其电路图如图3.5。图3.5 温度模块电路DS18B20的引脚介绍,见表3.4表3.4 DS18B20的引脚介绍序 号名称引脚功能1GND接地端2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3Vcc接+5V电源DS18B20产品具有以下特点:1 只要求一个端口即可实现通信。2 在DS18B20中的只有三个引脚即可实现温度的采集,不需要外部任何的电路。3 测量温度围在50到120之间;数字温度计的分辨率用户可以从9位到12位选择。4 部设置温度上、下限告警。DS18B20将采集到的信号送入单片机P2

34、.5口,给电路提供一个温度数据。R2为上拉电阻,为DS18B20提供能量,最好能够外接+5V的电源,有些电路仅仅依靠一个4.7K的上拉电阻是远远不够的,不能给其芯片足够的能量,如果采用多个DS18B20来采集温度数据时,这4.7K的电阻将供不应求,无法满足其需求【11】。温度采集电路还可将DS18B20的1脚和3脚同时接地,但是这样有可能 由 于 电 压 的 不 足 而 造 成温度读书不准确。如图3.5中的接法即使电源电压只有4V电路也可以正常工作,DS18B20采集的温度数据也不会有很大的误差,因此这种接法在适宜不过。由图3.5温度模块电路中所示,DS18B20只有三个引脚,3脚接+5V电源

35、,1脚接地,2脚接信号输出口,同时接了一上拉电阻,因为DS18B20是单线温度传感器,数据线是漏极开路,如果DS18B20没接电源,则需要数据线强上拉,给DS18B20供电;如果DS18B20接有电源,则需要一个上拉即可稳定的工作。用小循环来移动8次,将部存放器的8位数据全读出来,再通过数学处理来显示温度。3.5 显示电路模块显示电路模块是用1602LCD液晶显示屏显示时间、温度等数据,其电路图如图3.6。图3.6 显示模块电路图1602液晶显示屏的引脚定义,见表3.3表3.3 1602液晶显示屏的引脚定义引脚号引脚名电平输入/输出作用1Vss电源地2Vcc电源+5V3Vee比照调整电压4RS

36、0/1输入0=输入指令1=输入数据50/1输入0=向LCD写入指令或数据1=从LCD读取信息6E1,10输入使能信号,1时读取信息,10下降沿行指令7DB00/1输入/输出数据总线line0低位8DB10/1输入/输出数据总线line19DB20/1输入/输出数据总线line210DB30/1输入/输出数据总线line311DB40/1输入/输出数据总线line412DB50/1输入/输出数据总线line513DB60/1输入/输出数据总线line614DB70/1输入/输出数据总线line7最高位15A+VccLCD背光电源正极16K接地LCD背光电源负极与数码管相比该模块有如下优点:1、显

37、示字数多,可显示32位,使用数码管,这样的数据以及其位置的摆放是相当的庞大。2、显示的容丰富,可显示所有数字和大、小写字母。3、程序简单,如果用数码管动态显示,刷新显示时间长,但1602能自动完成这个功能。1602LCD分为带背光和不带背光两种形式,基控制器大局部为HD44780,带背光的比不带背光的厚,在应用中没有太大的差异,使用时不需要分太清楚,两者尺寸差异如下列图3.7所示:图3.6 图序号错了1602LCD尺寸图如图3.6同上LCD1602尺寸图所示,从显示屏的正看,这两种显示屏没有差异;从侧面看,将这两种显示屏一比拟,明显能够看出无背光的厚度要比带背光的厚度小,有3.5mm的差距,其

38、他局部的尺寸都是一样大的,没有很大的区别。根据显示的容,可以将1602LCD液晶分为字符 型 液 晶 , 图 形 液 晶,本设计模块中是采用字符 型 液 晶 ;根据显 示 容 量 又 可 以分为单行16字,2行16字,两行20字等等【3】。因此,1602LCD液晶显示屏能够同时实现这几个功能:在LCD1602显示屏上显示日期、时间、温度以及三个闹钟的设置时间。用数码管显示这么多的功能将是一个非常庞大的工程量。第四章 软件设计为了利于实现本设计的智能化,提高编程的效率,本毕业设计工程采用C语言进展软件开发与设计。在智能数字闹钟的软件中,先单独编辑各个模块的程序,对各模块程序进展编译,程序没有任何

39、错误可以完全运行操作,接着将各模块的C语言程序综合连接,使编程构造清晰明了,整个程序发现错误检查的时候更加方便,不会令人头疼烦躁。软件设计主要分为了四个局部来编写程序,主程序主要对整个模块进展定义、初始化,主要在按键模块切换的模式情况进展详细的设计,同时也对闹钟局部进展了详细的设计,通过设置的闹钟时间与显示时间比拟,当两个时间一样时闹钟就会鸣响;温度模块主要是根据DS18B20芯片进展温度的采集,显示程序的编写则根据其的控制字要求将温度在LCD1602显示屏上显示;定时模块是用芯片DS1302实现定时的功能,提高走时的准确度。4.1总体系统软件设计软件程序的设计是根据硬件电路图的连接和各个元器

40、件的功能进展设计。在编写软件时,可以按各个程序的功能将软件细分为各个功能模块,再通过主程序的调用来实现整个软件系统。系统主程序流程图如图4.1,如下所示:图4.1 主程序流程图数字钟开机后,进入初始状态,通过调节各个独立轻触式按键来修改数据和各个模式的切换。图4.1主程序流程图中Y表示按下开关,N表示开关没有按下。开机后,按下S5可对时间进展12/24小时形式的切换;按下S1可以切换不同的模式,可以根据自己的要求进展切换,这时显示屏上会显示相对应的调节项;切换在*个模式上,按下S2进入数据调节,可将预设参数作加设置,按下S3进入数据调节,可将预设参数作减设置;当参数设置完成后按下开关S4,退出

41、该模式,电路进入正常显示状态。当时间到设置的闹钟时间时会有闹铃,无人操作时响铃30s后自动关闭,或者按下S4关闭闹钟。4.1.1 主程序设计主程序:初始化各个功能模块,对闹钟、温度、定时、显示、按键等功能进展定义。其关键代码如下:void main()/主函数LCD_Init();/lcd初始化InitDs1302(); TimeInit();/定时器初始化BEEP = 1;time.alarm_hour = 8;time.alarm_min = 30;time.alarm_hour1 = 18;time.alarm_min1 = 30;time.alarm_hour2 = 23;time.a

42、larm_min2 = 30; while(1) TimeAdjust();ReadTime();pareTime();Display_String(dispbuf,0*00);/lcd1602显示第一行数据 Display_String(warn,0*40);/lcd1602显示第二行数据 void time1() interrupt 1 TH1= (65536-50000)/256; TL1 = (65536-50000)%256;/初始值的定时 Count=Count+1; if (count = 20) sec-; if(sec = 0) TR0 = 0; BEEP = 1; coun

43、t = 0; 4.1.2 温度采集模块设计通过温度传感器将实时温度信息进展采集,将检测到的温度数据数字化,并使其在显示器上输出。其关键代码如下:/读取温度long int ReadTemperature(void) unsigned char a=0; unsigned char b=0; long int t=0,temp1=0; float tt; char flag = 1;Init_DS18B20(); WriteAChar(0*CC); /跳过读序号列号的操作 WriteAChar(0*BE); /读取温度存放器等共可读9个存放器 前两个存放器对应温度 delay_18B20(100

44、); m=ReadAChar(); n=ReadAChar(); Init_DS18B20(); WriteAChar(0*CC); / 跳过读序号列号的操作 WriteAChar(0*44); / 启动温度转换 /传感器返回值除16得实际温度值 /为了得到2位小数位,先乘100,再除16,考虑整型数据长度, /技巧处理后先乘25,再除4,除4用右移实现temp1 = n;temp1 = 8;temp1 = temp1|m;if ( temp1 = 0*800)flag = 1;temp1 = temp1 + 1; tt = temp1 * 0.0625;temp1 = tt * 10 + 0

45、.5; if (flag = 1) temp1 = temp1 *(-1);return temp1;4.1.3 定时模块设计对当前时间,日期等信息进展设定,通过本程序对年月日以及时分读取设定。其关键代码如下:/读时钟uchar read(uchar addr) uchar dat=0; rst=0;sclk=0;rst=1; send(addr);/发送地址 dat=receive();/接收 rst=0;return(dat);void InitDs1302()write(0*8e,0*00);/开 write(0*80,0*53);/写初始状态秒钟的数值write(0*82,0*28);

46、/写初始状态分钟的数值write(0*84,0*08);/写初始状态小时的数值write(0*86,0*09);/写日 write(0*88,0*05);/写月 write(0*8c,0*14);/写年 write(0*8e,0*80);/关4.1.4 显示模块设计显示正常的时间、日期及温度,并且可实现对12小时/24小时时间切换的显示,对设置三个闹钟时间,闹钟响铃时间进展显示。其关键代码如下:void Write_LCD_Sj(uchar sj)/写数据函数 LCD_Busy_Wait();RS=1;RW=0;EN=0;P0=sj;EN=1;delayms(1);EN=0;void Writ

47、e_LCD_mand(uchar )/写指令函数 LCD_Busy_Wait();RS=0;RW=0;EN=0;P0=;EN=1;delayms(1);EN=0;void LCD_Init() Write_LCD_mand(0*38);/设置8位格式delayms(1);Write_LCD_mand(0*01);/屏幕显示容去除清屏delayms(1);Write_LCD_mand(0*06);/设置输入方式delayms(1);Write_LCD_mand(0*0c);/显示总数据delayms(1);/初始化void Set_LCD_POS(uchar pos) Write_LCD_man

48、d(pos|0*80);void Display_String(uchar *pos, uchar LineNo)/屏幕的显示 uchar j;Set_LCD_POS(LineNo);for(j=0;sj != 0 & j 16;j+)Write_LCD_Sj(sj);delayms(1); 第五章 系统的安装与调试5.1 系统硬件的安装与调试系统硬件在Proteus 7.8仿真软件环境下进展调试,在Proteus中画出智能数字闹钟的电路原理图,在此过程中,寻找元器件要有耐心、认真负责的态度,准确无误的找到相对应的元器件,哪怕一个小小的不同就会影响设计的成果。通过查阅各种资料和教师的帮助下,能

49、够很快的画出电路原理图,并在仿真软件中实现功能。由于本设计中有五个模块,在完成各个模块后,需要把各局部对应的连接起来,在安装各模块的同时,可以更多掌握每个局部的功能。每个模块安装完成后,不说明就已经完成了全部工作,需要屡次进展电路的检测,发现缺乏与问题所在,不要影响电路的工作。并利用万用表等实验器材对整体进展检测,防止由于接线的错误造成不必要的故障,并且保证平安。一切准备工作完毕后,开场焊接工作,在完成整个焊接工作过程中,得到教师和同学的帮助,工作起来更加得心应手。开场焊接的是单片机的最小系统系统,根据仿真原理图很顺利的完成此次工作,接下来依次焊接了按键模块,温度采集模块,定时模块,显示模块以

50、及各局部的连接,在焊接过程中遇到了很多的问题,有时候把引脚焊错,心情会很烦躁,影响下面的进度,焊接过程中需要用到很多的工具,如:万能表,烙铁,示波器等。在焊接DS1302的时候出现一些问题,编程的时候显示不正常,经过不断的检查电路以及反复使用万能表的检测,最后终于发现了问题的所在,引脚接反了,造成芯片的损坏,庆幸当时多购置了此芯片,不然又要到处跑了。焊接1602显示屏与单片机时,花费了一些时间,一开场焊接的时候没有注意显示屏与单片机P0口顺序,将连接的引脚接反了,显示的时候出现了乱码,在焊接的时候用的锡线太多,不好把该显示屏插在板子上,只好重新焊接,保证其美观。通过不断的拆拆改改,最后调试的时

51、候终于成功,实现了智能数字闹钟的功能。系统的焊接是本设计中最重要的局部,它要求理论和实际的实物进展很好的结合,焊接工作也是一份细致的工作,需要有耐心,才能将各个元器件正确的焊在电路板上,完本钱次设计,实现智能数字闹钟的所有功能。一旦焊接过程中出现错误就要拆下线路重新焊接,工作量会很庞大。焊接好电路,一定要严格检查,由于本设计采用的是万用板,因此在检测时务必要认真仔细。发现万用板上有多余的锡点时及时地清理,防止造成电路的短路,发生事故,同时,要注意各跳线有无错接或者接触不良的现象,虚焊情况,各元器件的引脚是否接正确,电源、地是否已接完善等现象,对以上情况都要作相应的检查,并作必要的处理。系统的焊

52、接过程主要有以下几个阶段:1、根据仿真电路图购置相关的元器件,准备好工具,为实物的焊接做准备。2、在电路板上合理的安放好元器件,保证实物的美观,尤其是要注意那些易受干扰的电容的位置设计。3.用万能表检测电路板上引脚情况,对照仿真原理图用烙铁连接起来,把握整个焊接过程,其中一定要细心,注意平安。4.根据仿真原理图,将元器件焊接好,保证其元器件不受损伤。安装:将各模块的跳线接好,注意引脚。各模块的供电端和接地端,接入单片机的引脚一定要认清引脚好,防止接错,造成不必要的损失。调试:检测引脚电压是否正常,按键是否接好,电路中有无短路,虚焊。在硬件电路无误情况下,接入电源,系统就可以正常工作了,翻开显示

53、器开关产品就可以实现相应功能。5.2 系统软件的调试Proteus【2】这个序号加了有什么用,文章中还有很多其他的的调试运行ISIS 7 Professional出现下面的窗口,在这个窗口中绘制智能数字闹钟的仿真原理图:添加元件到上图要有序号元件表中:智能数字闹钟的设计中主要用到的元件有:AT89C51、DS1302、1602LCD、DS18B20、地、电源等。单击P按钮,出现挑选元件对话框,在此对话框的KEYWORD中输入要找的元件名称,单击OK。放置元器件:在元件列表中左键选取对应的元器件,在原理图编辑窗口中单击左键,这样所需要的元件就被添加到原理图编辑窗口中。添加地、电源的时候左键点击工

54、具栏中的Terminals Mode,分别选择GOUND、POWER,在原理图编辑窗口点击左键,分别将地、电源放置在原理图编辑窗口中。连线:将智能数字闹钟各个模块综合连接。4序号格式不统一,详见批注17添加仿真文件:双击单片机,出现下面的对话框,在Program File中单击出现文件浏览对话框,找到new.he*文件,单击确定完成添加文件,单击OK退出。5仿真:单击开场仿真上图要有序号。在进展Proteus仿真软件的调试时,在寻找元上图要有序号器件的过程中遇到了一些麻烦,在仿真元件中找不到想对应的器件,通过询问同学以及资料的查询,终于找到了全部的元件,并将其各个模块进展总和连接,连线过程中平

55、安的通过了,但是消耗了我大量的时间。在仿真软件绘制原理图的过程并没有出现很大的错误,主要就是花费了较长的时间寻找元件盒电路的连线上。在调试过程中,发现在设置第一个闹钟的时候,出现了一个问题,例如现在的时间是08:27,设置的闹钟时间是08:30,仿真运行开场,闹钟在08:28,08:29的时候都会响铃,当到达闹钟时间响铃完毕后,不会再警报,出现正常,这个主要的调试方法在程序的调试中解决。当解决完这个问题,重新将程序烧到单片机,又出现一个问题,时间不走了,当时疑心DS1302定时芯片出现问题,于是用万用表对其电路进展检测,也没有发现什么问题,一切都很正常,最后没方法就将DS1302芯片拆下来,重

56、新将芯片安装,在进展仿真的时候,时间终于走了,但又迎来了一个问题,第一个定的闹钟没有想,于是在程序中再次检查,找到了原因,终于都没有问题,智能数字闹钟的电路能够运行,完全的实现所要求的功能。Keil vision4的调试系统的软件开发环境是Keil vision4,具体程序编写调试的步骤如下:在菜单Project中选择New Project,设立文件夹,保存文件名,在弹出的对话框中选择Atmel公司的AT89C51单片机。在File菜单中选择New,在弹出的对话框中编辑所需C语言程序【4】。程序初步完成后,点击保存,并设置文件名为*.c。用鼠标右键单击Sorce grop 1选择Add Fil

57、es GropSorce grop1,关闭窗口,程序中命令字符变成绿色。4、你的一级标题用的是1. 2.3.4.等,二级标题用的是123这里与上一段不符编辑,确定程序无误后,用鼠标点击Options for Target,在Target菜单中设置晶振为12MHz,在Ot pt中添加Create He* Fi选项,输出He*文件。如图5.1所示。图5.1 程序调试确认无误后,翻开PROTEUS仿真软件,画出所设计的电路图,检查电路,在电路无误后导入Keil vision4软件生成的HE*文件,点击运行,这时就可以在PROTEUS仿真软件中进展仿真了。在编译调试完成后,可以通过编程器,就可以将所编

58、译的正确程序写入到AT89C51单片机中了,软件安装调试完毕。程序的编写主要有4个大模块:主程序的编写、定时DS1302模块的编写、温度采集DS18B20模块的编写以及1602LCD显示模块的编写。主程序对各个模块进展初始化,对各模块进展定义,同时对三个闹钟时间的设置进展了详细的编写;定时模块主要是对时钟的读写,以及工作方式的编写;温度模块编写该模块怎样读字节,写字节以及温度的读取;显示模块是编写怎样接收日期、时间、温度、三个闹钟时间的数据并在显示屏中显示。程序的编写调试中主要是温度采集模块的编写,在大学四年的学习中并没有学习过该方面的知识,编写此局部程序的时候最感到吃力,有点不知道从哪里着手

59、。通过图书馆资料的查找,以及在教师的讲解和同学的帮助下,此段程序才慢慢的形成,通过不断的编译找到错误,再到及时修改,如此反复进展,终于将此模块程序运行正常。做液晶主界面包括显示时间,日期,星期,温度时,必须每一步进展调试,烧程序到单片机,花了很长时间,这个过程非常烦琐。在编写DS1302模块的时候,现了好多问题,读和写都不行,结果发现是硬件焊接错了,经过调整,对底层函数进展了相应修改,最后终于完成,幸好有同学和教师的帮助。在调试过程中,发现在设置第一个闹钟的时候,出现了一个问题,例如现在的时间是08:27,设置的闹钟时间是08:30,仿真运行开场,接下来的过程中主要出现了两个问题,一是在未到第一个闹

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论