1、 基于51单片机的智能数字闹钟设计与实现摘 要单片机自20世纪70年代问世以来,因为单片机极高的性能价格比,越发受到了人们的重视和关注,应用 领 域 广泛、发展很快.而51单片机是各单片机中最为典型的,也是最具有代表性的一种.本设计是一款基于AT89C51的智能数字钟,该数字钟表由主控模块、按键模块、定时模块、温度检测模块和显示模块构成。主控模块由主控芯片AT89C51、晶振电路和复位电路构成;定时模块采用时钟芯片DS1302实现精确定时;用温度传感器DS18B20作为温度采集源,检测当前温度;用液晶显示器1602显示年、月、日、时间及温度。通过这种方法的实现,使智能数字闹钟的电路简单,性能可
2、靠,实时性好,时间和温度精度高,操作简单。在Proteus和Keil vision4的环境下,完成了电路原理图的绘制以及程序的编译后,用焊接的方法在电路板上焊接实物,将Keil vision4中生成的.hex文件的程序烧到电路中,检测并调试电路,实现智能数字闹钟的功能.该智能数字闹钟可以应用于人们的生活和工作中,也可通过改装,将智能数字闹钟的性能提高,还可以增加新的功能,让智能数字闹钟显示更多方面的内容与功能,给人们的生活和工作带来更多的方便。关键词:单片机,时钟芯片,温度传感器,液晶显示器,智能数字钟AT89S52 based Digital Clock Design of Intellig
3、ent 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 representative one。
4、The designeris one section based on AT89C51 intelligent digit clock, this clock and watch by the master control module, fixed time the module, the temperature examines the module and the display module constitution。 Master control module by master control chip AT89C51, crystal oscillator electric ci
5、rcuit and reset circuit constitution; Fixed time the module uses clock chip DS1302 to realize precisely fixed time; Gathers the source with temperature sensor DS18B20 as the temperature, the examination current temperature; 1602 demonstrate the year, the month, Japan, the time and the temperature wi
6、th the liquidcrystal display. The method has the advantage of being simple circuit, reliable performance, good realtime, high precision of the time and temperature, simply operation【19】。Under the environment of Proteus and Keil vision4 , after finishing drawing circuit schematic and compiling progra
7、m, Welding material on the circuit board by welding method. Then, .Hex 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 general living
8、 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本页的页码貌似是居右目 录摘 要iAbstractii第一章 引 言11。1 智能数字闹钟的研究背景和意义11.2智能数字闹钟的功能11.3 智能数字闹钟的发展趋势2第二章 方案的论证与选择22。
9、1 方案的论证22.2 方案的选择4第三章 硬件电路的设计43。1 主控电路模块53.2 按键电路模块73。3 定时电路模块83。4 温度电路模块103。5 显示电路模块11第四章 软件设计134。1总体系统软件设计134.1。1 主程序设计144。1.2 温度采集模块设计164.1。3 定时模块设计184。1。4 显示模块设计18第五章 系统的安装与调试205。1 系统硬件的安装与调试215。2 系统软件的调试22第六章 总结与展望25参 考 文 献27致 谢28附 录29目录页也要有页码,罗马字体第一章 引 言不要加粗1.1 智能数字闹钟的研究背景和意义随着当今社会的快速发展,人类面临着很
10、多问题,时间和空间的不足就是其问题之一。作为新一代技术型人才,日益发展的社会势必会面临这一严峻的问题。围绕这个即将到来的问题,本课题定为智能数字闹钟设计。钟表只是一种简单的显示时间的工具,本身不能给人们带来想要抓住时间的紧迫感,但如能把时钟时间的显示精确到分、秒,那么面对这种时间飞逝的重压感,人们就会重视它并有效地利用它,更懂得把握分寸,不白白浪费时间。当然若在钟表的显示中融入了其他人们日常工作出行必须的功能,智能并简单利用,可以大大为我们节省出空间来。人们生活水平逐渐提高,并且越来越重视人性化事物,传统的指针式时钟也只能简单的满足人们的针对时间的需求,但是人们更着重追求高科技新事物,在现在日
11、益充满物质的社会里,人们也追求在小的范围内显示更多的信息。而普通的时钟是模电技术、数电技术和单片机技术的结合,才使得现在的时钟实现更多功能。早期运用的时间控制器都是用模拟电路设计制作的,准确性及各方面的性能都不是很理想。随着单片机性价比的不断提高,新的产品应用越来越广泛,逐渐取代了昔日的模拟化产品,变得高端上档次。单片机系列产品已经遍布到工业控制,以及各个重要的公共场所,单片机的快速发展与应用更加大范围的扩展,在人们的日常生活中日需常见化,更加依赖单片机,给人类生活带来了极大的便利,单片机将与人们的生活、娱乐等不同方面都存在密不可分的关系。单片机在智能数字闹钟的应用中具有相当普遍的意义,是一件
12、必不可少的元器件,在生活中起着关键性作用。由于时代的大变化发展,加快了数字 集 成 电 路 技 术的发展步伐,石 英 技 术 更加精进,使得数字钟能够走时准确,能够实现更多的功能,携带在身上很便捷,性能高.单片机内部结构有定时器/计数器,能够实现自动计时功能,单片机的使用大范围地出现在人们的周围,无处不在【16】。这种具有人们所需要的智能化特性产品为人们节省了大量时间和空间,扩大了数字化的范围,为家庭数字化奠定了基础。1。2智能数字闹钟的功能电路采用了单片机AT89C51、温度传感器DS18B20、时钟芯片DS1302、1602LCD显示器,通过独立式按键可以切换模式,修改显示时间的数据.电路
13、设计合理,具备了三大特点:简单,操作方便,美观大方.本设计智能数字闹钟的主要功能为:(1)连接电源,1602LCD显示器上可显示正常的时间、日期及温度的显示;(2)可实现12小时/24小时时间显示的切换;(3)通过独立式按键手动修改时间日期;(4)可以设置三个闹钟时间,当到闹钟响铃时间,可手动关闭;1.3 智能数字闹钟的发展趋势基于51单片机的智能数字闹钟体现了现代化电子产品的高性价比,成本低,电路简单,功能齐全。对于家庭生活中,具有了相当普遍性和实用性,使得人们在生活中对智能数字闹钟产生了依赖性,在各个方面不可缺少的,用一句夸张的话说:离开了它就不能活了,感觉身边总是少了些什么。时钟的发展已
14、经从老式钟表发展到如今电子时钟以及智能化数字时钟的时代,通过时代的发展,高科技研制和广泛应用,智能数字闹钟的发展前景将不可估量,智能数字闹钟所实现的功能不仅仅只有报时功能,在不久的未来,智能数字闹钟可以设置闹钟,可以实现通话功能,可以是一本记事本,随时记录发生的事情,或许可以实现导航功能等,以上功能只要一个小小的智能数字闹钟就可实现,人们的生活更加方便.同时,智能数字闹钟的电路只需使用简单芯片,加以合理设计,使得电路简单、操作非常方便、美观实用,但是其精确度不是很高.首先,伴随着更多性能更好新材料、更完善的设计方法、更先进的大规模集成电路的发展以及驱动技术的进步,时钟系统将会更加高精度,也将会
15、更加完善.其次,随着显示器件,如液晶显示器件性能的拓展,传统的机械时钟显示形式也将演变成高清晰度的显示方式.最后,时钟系统在未来的应用将更加广泛,以其高精度的显示以及其多内容的显示界面将更受到人们的青睐。第二章 方案的论证与选择2。1 方案的论证方案一:这边可以问下老师是不是可以居行首基于低成本数字集成电路及七段译码器组成的数字闹钟设计【10】 系统由数字逻辑集成芯片构成纯硬件电路,其电路由秒信号发生器、走时电路、校时电路、闹钟电路等部分组成。秒信号发生器使用LM555构成多谐振荡器,调整电阻可改变频率,使之产生秒信号。走时电路包括秒计时器、分计时器、时计时器,每个部分都由两片计数器级联构成。
16、其中秒计数器和分计数器都是用十进制与六进制计数器级联构成,时计数器由三进制计数器与十进制计数器级联构成。时计数器需要个位为十进制、十位只要计到2即可,不过需要清零电路.当个位计数到“4”,同时十位计数到“2”时立即清零,时钟就会从零开始重新计数。当时间与标准时间不吻合的时候,需要校准时间,对照标准时间将此时的时间的秒信号加速运行,加快时钟的计时速度,当到达标准时间后再切换回正确的输入信号,达到校准目的。闹钟是在在预定的时间到达时能输出闹铃声。这种方案的电路搭建起来非常的庞大,大小不同芯片,总共需要用到18个,工程非常的繁琐,需要花费很长的时间在电路的排版和连线上. 方案二:基于VHDL的数字时
17、钟设计【5】基于VHDL的数字时钟设计主要由晶体振荡器、分频器、计数器、译码器显示器组成.基于VHDL的数字时钟设计中需要有一个时钟脉冲信号,因此用一个石英晶体振荡器产生一个高频脉冲信号,然后要用分频器将这个时钟脉冲信号分频,得到1Hz的时钟信号,将这个时钟信号分别接入计数器中,然后再为其他模块提供时钟.计数器用一个100进制的计数器和两个60进制的计数器进行级联。最后在三个计数器的输出接到七段译码管,总共要用到8个这样的数码管. 晶体振荡器分 频 器计数器模块七段码译码器模 块方案三:基于单片机智能数字闹钟设计【13】基于单片机的数字时钟设计是要分好几个模块,单独对各类模块设计,以单片机AT
18、89C51作为主控芯片,控制其他模块的运作,将数据控制输出到显示模块。对各个模块进行程序的编写,最后将编译链接生成一个.hex文件,将这个文件烧到AT89C51单片机芯片中,从而实现时钟的功能。当时钟电路上电后,电路初始化,系统保持原有的显示,通过按下不同的按键,切换到不同的模式中,实现12/24小时的切换,以及修改年、月、日、时、秒的时间设置;当进入闹钟设置模式下,可设置三个闹钟时间,到设定时间蜂鸣器鸣响,无人操作时鸣响30s自动关闭闹钟;当需要设置更多功能时,只需多设置相应的功能按键就可实现.对上述方案进行比较,方案一由硬件构成,比较容易实现,但由硬件搭建的电路不够稳定,译码管显示效果差,
19、功能单一不能扩展,且电路功耗大,在将这种方案做成实物的过程中很漫长,更需要投入很多的精力,因出现故障而检查电路时很复杂,难找。方案二利用FPGA精度高、处理速度快的特点,利用外部50M石英晶振提供高精度系统频率,能够满足更高精度的要求,并且设计比较人性化。方案三显示准确、直观、易于调整.2.2 方案的选择本次设计采用方案三,即以AT89C51作为主控芯片,采用1602液晶作为显示器件,独立轻触式按键作按键模块,DS1302为定时来源,能准确定时,DS18B20作温度采集源。确定系统组成框图如图2。1所示,各功能模块如下:显示模块主 控 模 块定时模块按键模块温度模块图2。1 系统框架主控模块:
20、由主控芯片AT89C51,外接时钟电路、复位电路和P0口的上拉电阻构成,能够驱动程序的运行,在显示屏上实现智能数字闹钟的各个功能。温度模块:由芯片DS18B20和上拉电阻构成,实现温度采集,当周围有高温物体时,温度的示数会逐渐的增加,离开时温度会慢慢下降。定时模块:由DS1302、晶振,3。6V的纽扣电池构成,能够提供年、月、日、时、分和日期,纽扣电池可以支持时钟的走时,即使显示屏没电不显示时,时间也在计时。显示模块: 由1602LCD液晶显示屏构成,把单片机传来的数据进行显示,显示的位数多,.按键模块:由五个独立轻触式按键构成,可切换各种模式状态,能对数据进行修改。第三章 硬件电路的设计本设
21、计采用AT89C51单片机作为本次设计的主要控制模块。单片机可把由DS18B20、DS1302中的数据利用软件来进行处理,从而把数据传输到显示模块,此模块实现温度、时间的显示。以1602LCD液晶显示器为显示模块,把单片机传来的数据显示出来,在显示电路中,主要靠按键来实现各种显示要求的选择与切换。3。1 主控电路模块主控电路模块采用AT89C51作为核心元件来控制各部分,其电路原理图如图3。1。单片机上面一个图没加序号引脚功能的说明,见下表3。1表3。1 单片机的引脚功能引脚号符号引脚功能18P1口8位,准双向I/O口,具有内部上拉电阻9RST复位,高电平有效1017P3口8位,准双向I/O口
22、,具有内部上拉电阻18、19XTAL时钟引脚20VSS接数字地2128P2口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口、定时器/计数器、中断系统、系统时钟电路及系统总线的微型计算机
23、。通常把单片机称为嵌入式控制器或微控制器。单片机的最小系统只需要最小的配置能够让单片机里的程序运行,如果要用IO口去驱动LCD显示,写好程序就能运行。单片机的P0口接上上拉电阻,排除外界对其有效电平的干扰,电路的抗干扰能力大大增强.单片机最小系统构成主要是由时序电路以及复位电路两个部分构成。1、时序电路的介绍,下面给出了时序电路图:时序所有图都图要有序号电路由晶振与电容构成,其主要目的是滤波,这样可以使晶振输出的波形更加平滑,方便给予单片机适用的信号,至于大小应该是一个经验值,这样的滤波效果最好。电路中的电容C1和C2的典型值通常选择为30pF,该电容的大小会影响振荡器频率的高低、振荡器 的
24、稳 定 性 和 起 振 的 快 速性。晶体的频率越高,系统的时钟频率越高,单片机的运行速度也就越快【7】。但反过来。运行速度快对存储器的速度要求就高,对印制电路板的工艺要求也高,即要求线间的寄生电容要小。2、 复位电路的介绍,下面给出了复位电路图:复位电路主要由电阻、电容、独立轻触所有图都图要有序号式开关构成,利用复位电路把电路恢复到起始状态,就像计算器的清零按钮的作用一样,或者你输入错误,计算失误时都要进行清零操作。以便回到原始状态,重新进行计算.复位电路启动可以有三种方式,一是在给电路通电时马上进行复位操作;二是在必要时可以由手动操作;三是根据程序或者电路运行的需要自动地进行.主控模块运用
25、了单片机的最小系统,需要外接时钟电路和复位电路.但是,在智能数字闹钟的设计中,由于一定的原因,省略了接复位电路的连接,然而这种接法对电路不会造成很大的影响,仍然能够实现智能数字闹钟的功能。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,经单片机的控制,可通过不同按键的接通实现相应的功能(参数设置、闹钟设置等)。独立式按键的结构很简单,使用时只需要接其中两个引脚即可。开机后,电路进入初始化状体,初始化完成过
26、后,按下开关S1进入调节模式,依次按下S1设置年、月、日、星期、时、分、秒和三个闹钟时间,S2递增调节,S3递减调节,按下S4关闭闹钟/退出调节模式,显示屏上正常显示。S5按键12小时、24小时的切换。3.3 定时电路模块定时电路模块主要由芯片DS1302控制,电路图如图3。4。 图3。4 定时模块电路DS1302芯片各管脚描述如下,见表3。2表3.2 DS1302功能引脚说明引脚号符号引脚功能1、8Vcc2、Vcc1为电源供电管脚2、3X2、X3接32。768KHz的晶振4GND接地5RST复位端6I/O为数据输入/输出引脚7SCLK接串行时钟DS1302有12个寄存器,其中7个寄存器与日历
27、、时钟相关,存放的数据形式是BCD码,其寄存器及控制字见表3。3表3.3 DS1302的日历、时钟寄存器及其控制字寄存器名命令字取值范围各位内容写操作读操作76543210秒寄存器80H81H00-59CH10SECSEC分钟寄存器82H83H00-59010MINMIN小时寄存器84H85H0112或00-2312/240HRHR日期寄存器86H87H0128,29,30,310010DATEDATE月份寄存器88H89H01-1200010MMONTH周日寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR单片机容易受外界环境的影响,时钟时常会出
28、现混乱现象,导致时钟的精度不高.DS1302的作用主要用来记录数据,特别是对某些具有特殊意义的数据点的记录,除此之外,DS1302能够同时记录两个时间,一是记录数据的时间,二是出现该数据的时间,因此在测量系统中广泛应用。采用时钟芯片DS1302可以准确记录数据出现的时间,不需要占用硬件资源,不消耗单片机的资源。使用DS1302芯片,可以提供稳定精确地走时,单片机只需要在第一次上电时进行必要的时间设定,以后需要时间的时候只需要从DS1302中读取数据即可。DS1302芯片自带长短月、闰年补偿等功能,只用51实现时间的各种功能会非常麻烦。掉电后只需要微弱的电流即可保持精准走时,因此,在DS1302
29、芯片的连接中连有3。6V的纽扣电池,可以在掉电后支持时间的走时。3。4 温度电路模块温度采集电路模块由DS18B20对温度进行采集测试,其电路图如图3。5。图3。5 温度模块电路DS18B20的引脚介绍,见表3.4表3。4 DS18B20的引脚介绍序 号名称引脚功能1GND接地端2DQ数据输入/输出引脚。开漏单总线接口引脚.当被用着在寄生电源下,也可以向器件提供电源。3Vcc接+5V电源DS18B20产品具有以下特点:(1) 只要求一个端口即可实现通信。(2) 在DS18B20中的只有三个引脚即可实现温度的采集,不需要外部任何的电路.(3) 测量温度范围在50到120之间;数字温度计的分辨率用
30、户可以从9位到12位选择.(4) 内部设置温度上、下限告警.DS18B20将采集到的信号送入单片机P2.5口,给电路提供一个温度数据。R2为上拉电阻,为DS18B20提供能量,最好能够外接+5V的电源,有些电路仅仅依靠一个4.7K的上拉电阻是远远不够的,不能给其芯片足够的能量,如果采用多个DS18B20来采集温度数据时,这4。7K的电阻将供不应求,无法满足其需求【11】.温度采集电路还可将DS18B20的1脚和3脚同时接地,但是这样有可能 由 于 电 压 的 不 足 而 造 成温度读书不准确.如图3。5中的接法即使电源电压只有4V电路也可以正常工作,DS18B20采集的温度数据也不会有很大的误
31、差,因此这种接法在合适不过。由图3。5温度模块电路中所示,DS18B20只有三个引脚,3脚接+5V电源,1脚接地,2脚接信号输出口,同时接了一上拉电阻,因为DS18B20是单线温度传感器,数据线是漏极开路,如果DS18B20没接电源,则需要数据线强上拉,给DS18B20供电;如果DS18B20接有电源,则需要一个上拉即可稳定的工作.用小循环来移动8次,将内部寄存器的8位数据全读出来,再通过数学处理来显示温度。3.5 显示电路模块显示电路模块是用1602LCD液晶显示屏显示时间、温度等数据,其电路图如图3。6。图3。6 显示模块电路图1602液晶显示屏的引脚定义,见表3.3表3.3 1602液晶
32、显示屏的引脚定义引脚号引脚名电平输入/输出作用1Vss电源地2Vcc电源(+5V)3Vee对比调整电压4RS0/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输入/输出数据
33、总线line7(最高位)15A+VccLCD背光电源正极16K接地LCD背光电源负极与数码管相比该模块有如下优点:1、显示字数多,可显示32位,使用数码管,这样的数据以及其位置的摆放是相当的庞大.2、显示的内容丰富,可显示所有数字和大、小写字母.3、程序简单,如果用数码管动态显示,刷新显示时间长,但1602能自动完成这个功能。1602LCD分为带背光和不带背光两种形式,基控制器大部分为HD44780,带背光的比不带背光的厚,在应用中没有太大的差别,使用时不需要分太清楚,两者尺寸差别如下图3。7所示:图3.6 图序号错了1602LCD尺寸图如图3。6同上LCD1602尺寸图所示,从显示屏的正看,
34、这两种显示屏没有差别;从侧面看,将这两种显示屏一比较,明显能够看出无背光的厚度要比带背光的厚度小,有3。5mm的差距,其他部分的尺寸都是一样大的,没有很大的区别。根据显示的内容,可以将1602LCD液晶分为字符 型 液 晶 , 图 形 液 晶,本设计模块中是采用字符 型 液 晶 ;根据显 示 容 量 又 可 以分为单行16字,2行16字,两行20字等等【3】。因此,1602LCD液晶显示屏能够同时实现这几个功能:在LCD1602显示屏上显示日期、时间、温度以及三个闹钟的设置时间。用数码管显示这么多的功能将是一个非常庞大的工程量。第四章 软件设计为了利于实现本设计的智能化,提高编程的效率,本毕业
35、设计项目采用C语言进行软件开发与设计。在智能数字闹钟的软件中,先单独编辑各个模块的程序,对各模块程序进行编译链接,程序没有任何错误可以完全运行操作,接着将各模块的C语言程序综合连接,使编程结构清晰明了,整个程序发现错误检查的时候更加方便,不会令人头疼烦躁。软件设计主要分为了四个部分来编写程序,主程序主要对整个模块进行定义、初始化,主要在按键模块切换的模式情况进行详细的设计,同时也对闹钟部分进行了详细的设计,通过设置的闹钟时间与显示时间比较,当两个时间相同时闹钟就会鸣响;温度模块主要是根据DS18B20芯片进行温度的采集,显示程序的编写则根据其的控制字要求将温度在LCD1602显示屏上显示;定时
36、模块是用芯片DS1302实现定时的功能,提高走时的精确度。4.1总体系统软件设计软件程序的设计是根据硬件电路图的连接和各个元器件的功能进行设计。在编写软件时,可以按各个程序的功能将软件细分为各个功能模块,再通过主程序的调用来实现整个软件系统.系统主程序流程图如图4.1,如下所示:图4.1 主程序流程图数字钟开机后,进入初始状态,通过调节各个独立轻触式按键来修改数据和各个模式的切换。图4.1主程序流程图中Y表示按下开关,N表示开关没有按下.开机后,按下S5可对时间进行12/24小时形式的切换;按下S1可以切换不同的模式,可以根据自己的要求进行切换,这时显示屏上会显示相对应的调节项;切换在某个模式
37、上,按下S2进入数据调节,可将预设参数作加设置,按下S3进入数据调节,可将预设参数作减设置;当参数设置完成后按下开关S4,退出该模式,电路进入正常显示状态。当时间到设置的闹钟时间时会有闹铃,无人操作时响铃30s后自动关闭,或者按下S4关闭闹钟。4.1.1 主程序设计主程序:初始化各个功能模块,对闹钟、温度、定时、显示、按键等功能进行定义。其关键代码如下:void main()/主函数LCD_Init();/lcd初始化InitDs1302();TimeInit();/定时器初始化BEEP = 1;time。alarm_hour = 8;time。alarm_min = 30;time.alar
38、m_hour1 = 18;time.alarm_min1 = 30;time。alarm_hour2 = 23;time。alarm_min2 = 30; while(1) TimeAdjust();ReadTime();CompareTime();Display_String(dispbuf,0x00);/lcd1602显示第一行数据Display_String(warn,0x40);/lcd1602显示第二行数据 void time1() interrupt 1 TH1= (6553650000)/256; TL1 = (65536-50000)%256;/初始值的定时Count=Coun
39、t+1; if (count = 20) sec-; if(sec = 0) TR0 = 0; BEEP = 1; count = 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(0xCC); /跳过读序号列号的操作
40、WriteAChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个寄存器对应温度 delay_18B20(100); m=ReadAChar(); n=ReadAChar(); Init_DS18B20(); WriteAChar(0xCC); / 跳过读序号列号的操作 WriteAChar(0x44); / 启动温度转换 /传感器返回值除16得实际温度值 /为了得到2位小数位,先乘100,再除16,考虑整型数据长度, /技巧处理后先乘25,再除4,除4用右移实现temp1 = n;temp1 = 8;temp1 = temp1m;if ( temp1 0x800)flag =
41、 0;else if ( temp1 = 0x800)flag = 1;temp1 = temp1 + 1; tt = temp1 0。0625;temp1 = tt * 10 + 0。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;retu
42、rn(dat);void InitDs1302()write(0x8e,0x00);/开 write(0x80,0x53);/写初始状态秒钟的数值write(0x82,0x28);/写初始状态分钟的数值write(0x84,0x08);/写初始状态小时的数值write(0x86,0x09);/写日 write(0x88,0x05);/写月 write(0x8c,0x14);/写年 write(0x8e,0x80);/关4.1.4 显示模块设计显示正常的时间、日期及温度,并且可实现对12小时/24小时时间切换的显示,对设置三个闹钟时间,闹钟响铃时间进行显示.其关键代码如下:void Write_
43、LCD_Sj(uchar sj)/写数据函数LCD_Busy_Wait();RS=1;RW=0;EN=0;P0=sj;EN=1;delayms(1);EN=0;void Write_LCD_Command(uchar com)/写指令函数LCD_Busy_Wait();RS=0;RW=0;EN=0;P0=com;EN=1;delayms(1);EN=0;void LCD_Init()Write_LCD_Command(0x38);/设置8位格式delayms(1);Write_LCD_Command(0x01);/屏幕显示内容清除(清屏)delayms(1);Write_LCD_Command
44、(0x06);/设置输入方式delayms(1);Write_LCD_Command(0x0c);/显示总数据delayms(1);/初始化void Set_LCD_POS(uchar pos)Write_LCD_Command(pos0x80);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仿
45、真软件环境下进行调试,在Proteus中画出智能数字闹钟的电路原理图,在此过程中,寻找元器件要有耐心、认真负责的态度,准确无误的找到相对应的元器件,哪怕一个小小的不同就会影响设计的成果.通过查阅各种资料和老师的帮助下,能够很快的画出电路原理图,并在仿真软件中实现功能。由于本设计中有五个模块,在完成各个模块后,需要把各部分对应的连接起来,在安装各模块的同时,可以更多掌握每个部分的功能.每个模块安装完成后,不说明就已经完成了全部工作,需要多次进行电路的检测,发现不足与问题所在,不要影响电路的工作。并利用万用表等实验器材对整体进行检测,避免由于接线的错误造成不必要的故障,并且保证安全.一切准备工作结束后,开始焊接工作,在完成整个焊接工作过程中,得到老师和同学的帮助,工作起来更加得心应手。开始焊接的是单片机的最小系统系统,根据仿真原理图很顺利的完成此次工作,接下来依次焊接了按键模块,温
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100