1、 基于51单片机智能数字闹钟设计与实现摘 要单片机自20世纪70年代问世以来,由于单片机极高 性 能 价 格 比,越发受到了人们注重 和 关 注 , 应 用 领 域 广 泛 、发展不久。而51单片机是各单片机中最为典型,也是最具备代表性一种。本设计是一款基于AT89C51智能数字钟,该数字钟表由主控模块、按键模块、定期模块、温度检测模块和显示模块构成。主控模块由主控芯片AT89C51、晶振电路和复位电路构成;定期模块采用时钟芯片DS1302实现精准定期;用温度传感器DS18B20作为温度采集源 , 检 测 当 前 温 度;用液晶显示屏1602显示年、月、日、时间及温度。通过这种办法实现,使智能
2、数字闹钟电路简朴 , 性 能 可 靠 , 实 时 性 好 , 时 间 和温度精度高,操作简朴。在Proteus和Keil vision4环境下,完毕了电路原理图绘制以及程序编译后,用焊接办法在电路板上焊接实物,将Keil vision4中生成.hex文献程序烧到电路中,检测并调试电路,实现智能数字闹钟功能。该智能数字闹钟可以应用于人们生活和工作中,也可通过改装,将智能数字闹钟性能提高,还可以增长新功能,让智能数字闹钟显示更多方面内容与功能,给人们生活和工作带来更多以便。核心词:单片机,时钟芯片,温度传感器,液晶显示屏,智能数字钟AT89S52 based Digital Clock Desig
3、n 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 representa
4、tive one.The designer is 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 elect
5、ric circuit 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 wit
6、h 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 compiling program,We
7、lding 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 and work
8、ing,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.1 方案论证22.2 方案选取4第三
9、章 硬件电路设计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显示屏,通过独立式按键可以切换模式,修改显示时间数据。电路设计合理,具备了三大特点:简朴,操作以便,美观大方。本设计智能数字闹钟重要功能为:(1)连接电源,1602LCD显示屏上可显示正常时间、日期
13、及温度显示;(2)可实现12小时/24小时时间显示切换;(3)通过独立式按键手动修改时间日期;(4)可以设立三个闹钟时间,当到闹钟响铃时间,可手动关闭;1.3 智能数字闹钟发展趋势基于51单片机智能数字闹钟体现了当代化电子产品高性价比,成本低,电路简朴,功能齐全。对于家庭生活中,具备了相称普遍性和实用性,使得人们在生活中对智能数字闹钟产生了依赖性,在各个方面不可缺少,用一句夸张话说:离开了它就不能活了,感觉身边总是少了些什么。时钟发展已经从老式钟表发展到如今电子时钟以及智能化数字时钟时代,通过时代发展,高科技研制和广泛应用,智能数字闹钟发展前景将不可预计,智能数字闹钟所实现功能不但仅只有报时功
14、能,在不久将来,智能数字闹钟可以设立闹钟,可以实现通话功能,可以是一本记事本,随时记录发生事情,或允许以实现导航功能等,以上功能只要一种小小智能数字闹钟就可实现,人们生活更加以便。同步,智能数字闹钟电路只需使用简朴芯片,加以合理设计,使得电路简朴、操作非常以便、美观实用,但是其精准度不是很高。一方面,随着着更多性能更好新材料、更完善设计办法、更先进大规模集成电路发展以及驱动技术进步,时钟系统将会更加高精度,也将会更加完善。另一方面,随着显示屏件,如液晶显示屏件性能拓展,老式机械时钟显示形式也将演变成高清晰度显示方式。最后,时钟系统在将来应用将更加广泛,以其高精度显示以及其多内容显示界面将更受到
15、人们青睐。第二章 方案论证与选取2.1 方案论证方案一:这边可以问下教师是不是可以居行首基于低成本数字集成电路及七段译码器构成数字闹钟设计【10】 系统由数字逻辑集成芯片构成纯硬件电路,其电路由秒信号发生器、走时电路、校时电路、闹钟电路等某些构成。秒信号发生器使用LM555构成多谐振荡器,调节电阻可变化频率,使之产生秒信号。走时电路涉及秒计时器、分计时器、时计时器,每个某些都由两片计数器级联构成。其中秒计数器和分计数器都是用十进制与六进制计数器级联构成,时计数器由三进制计数器与十进制计数器级联构成。时计数器需要个位为十进制、十位只要计到2即可,但是需要清零电路。当个位计数到“4”,同步十位计数
16、到“2”时及时清零,时钟就会从零开始重新计数。当时间与原则时间不吻合时候,需要校准时间,对照原则时间将此时时间秒信号加速运营,加快时钟计时速度,当到达原则时间后再切换回对的输入信号,达到校准目。闹钟是在在预定期间到达时能输出闹铃声。这种方案电路搭建起来非常庞大,大小不同芯片,总共需要用到18个,工程非常繁琐,需要耗费很长时间在电路排版和连线上。 方案二:基于VHDL数字时钟设计【5】 基于VHDL数字时钟设计重要由晶体振荡器、分频器、计数器、译码器显示屏构成。基于VHDL数字时钟设计中需要有一种时钟脉冲信号,因而用一种石英晶体振荡器产生一种高频脉冲信号,然后要用分频器将这个时钟脉冲信号分频,得
17、到1Hz时钟信号,将这个时钟信号分别接入计数器中,然后再为其她模块提供时钟。计数器用一种100进制计数器和两个60进制计数器进行级联。最后在三个计数器输出接到七段译码管,总共要用到8个这样数码管。 晶体振荡器分 频 器计数器模块七段码译码器模 块 方案三:基于单片机智能数字闹钟设计【13】基于单片机数字时钟设计是要分好几种模块,单独对各类模块设计,以单片机AT89C51作为主控芯片,控制其她模块运作,将数据控制输出到显示模块。对各个模块进行程序编写,最后将编译链接生成一种.hex文献,将这个文献烧到AT89C51单片机芯片中,从而实现时钟功能。当时钟电路上电后,电路初始化,系统保持原有显示,通
18、过按下不同按键,切换到不同模式中,实现12/24小时切换,以及修改年、月、日、时、秒时间设立;当进入闹钟设立模式下,可设立三个闹钟时间,到设定期间蜂鸣器鸣响,无人操作时鸣响30s自动关闭闹钟;当需要设立更多功能时,只需多设立相应功能按键就可实现。对上述方案进行比较,方案一由硬件构成,比较容易实现,但由硬件搭建电路不够稳定,译码管显示效果差,功能单一不能扩展,且电路功耗大,在将这种方案做成实物过程中很漫长,更需要投入诸多精力,因浮现故障而检查电路时很复杂,难找。方案二运用FPGA精度高、解决速度快特点,运用外部50M石英晶振提供高精度系统频率,可以满足更高精度规定,并且设计比较人性化。方案三显示
19、精确、直观、易于调节。2.2 方案选取本次设计采用方案三,即以AT89C51作为主控芯片,采用1602液晶作为显示屏件,独立轻触式按键作按键模块,DS1302为定期来源,能准拟定期,DS18B20作温度采集源。拟定系统构成框图如图2.1所示,各功能模块如下:显示模块主 控 模 块定期模块按键模块温度模块 图2.1 系统框架主控模块:由主控芯片AT89C51,外接时钟电路、复位电路和P0口上拉电阻构成,可以驱动程序运营,在显示屏上实现智能数字闹钟各个功能。温度模块:由芯片DS18B20和上拉电阻构成,实现温度采集,当周边有高温物体时,温度示数会逐渐增长,离开时温度会慢慢下降。定期模块:由DS13
20、02、晶振,3.6V纽扣电池构成,可以提供年、月、日、时、分和日期,纽扣电池可以支持时钟走时,虽然显示屏没电不显示时,时间也在计时。显示模块: 由1602LCD液晶显示屏构成,把单片机传来数据进行显示,显示位数多,。按键模块:由五个独立轻触式按键构成,可切换各种模式状态,能对数据进行修改。第三章 硬件电路设计本设计采用AT89C51单片机作为本次设计重要控制模块。单片机可把由DS18B20、DS1302中数据运用软件来进行解决,从而把数据传播到显示模块,此模块实现温度、时间显示。以1602LCD液晶显示屏为显示模块,把单片机传来数据显示出来,在显示电路中,重要靠按键来实现各种显示规定选取与切换
21、。3.1 主控电路模块主控电路模块采用AT89C51作为核心元件来控制各某些,其电路原理图如图3.1。单片机上面一种图没加序号引脚功能阐明,见下表3.1表3.1 单片机引脚功能引脚号符号引脚功能18P1口8位,准双向I/O口,具备内部上拉电阻9RST复位,高电平有效1017P3口8位,准双向I/O口,具备内部上拉电阻18、19XTAL时钟引脚20VSS接数字地2128P2口8位,准双向I/O口,具备内部上拉电阻29片外程序存储器读选通信号,低电平有效30ALE为CPU访问外部程序存储器或外部数据存储器提供一种地址锁存信号31外部存储器容许访问控制端3239P0口8位,漏极开路双向I/O口,作为
22、通用I/O口使用时,需加上上拉电阻40Vcc接+5V电源下面给出了单片机内部构造图,如图3.2图3.2 单片机内部构造图 由图3.2单片机内部构造图中看出,单片机是在半导体硅片上集成了中央解决器、存储器、并行I/O口、串行I/O口、定期器/计数器、中断系统、系统时钟电路及系统总线微型计算机。普通把单片机称为嵌入式控制器或微控制器。单片机最小系统只需要最小配备可以让单片机里程序运营,如果要用IO口去驱动LCD显示,写好程序就能运营。单片机P0口接上上拉电阻,排除外界对其有效电平干扰,电路抗干扰能力大大增强。单片机最小系统构成重要是由时序电路以及复位电路两个某些构成。1、时序电路简介,下面给出了时
23、序电路图:时序所有图都图要有序号电路由晶振与电容构成,其重要目是滤波,这样可以使晶振输出波形更加平滑,以便予以单片机合用信号,至于大小应当是一种经验值,这样滤波效果最佳。电路中电容C1和C2典型值普通选取为30pF,该电容大小会影响振荡器频率高低、振荡器 稳 定 性 和 起 振 快 速性。晶体频率越高,系统时钟频率越高,单片机运营速度也就越快【7】。但反过来。运营速度快对存储器速度规定就高,对印制电路板工艺规定也高,即规定线间寄生电容要小。2、 复位电路简介,下面给出了复位电路图:复位电路重要由电阻、电容、独立轻触所有图都图要有序号式开关构成,运用复位电路把电路恢复到起始状态,就像计算器清零按
24、钮作用同样,或者你输入错误,计算失误时都要进行清零操作。以便回到原始状态,重新进行计算。复位电路启动可以有三种方式,一是在给电路通电时立即进行复位操作;二是在必要时可以由手动操作;三是依照程序或者电路运营需要自动地进行。主控模块运用了单片机最小系统,需要外接时钟电路和复位电路。但是,在智能数字闹钟设计中,由于一定因素,省略了接复位电路连接,然而这种接法对电路不会导致很大影响,依然可以实现智能数字闹钟功能。3.2 按键电路模块按键模块电路重要是由5个独立式按键构成,其电路图如图3.3。图3.3 按键模块电路图3.3按键模块电路中,S1、S2、S3、S4、S5分别接单片机AT89C51P3口P3.
25、0、P3.1、P3.2、P3.3、P3.7,经单片机控制,可通过不同按键接通实现相应功能(参数设立、闹钟设立等)。独立式按键构造很简朴,使用时只需要接其中两个引脚即可。开机后,电路进入初始化状体,初始化完毕过后,按下开关S1进入调节模式,依次按下S1设立年、月、日、星期、时、分、秒和三个闹钟时间,S2递增调节,S3递减调节,按下S4关闭闹钟/退出调节模式,显示屏上正常显示。S5按键12小时、24小时切换。3.3 定期电路模块定期电路模块重要由芯片DS1302控制,电路图如图3.4。 图3.4 定期模块电路DS1302芯片各管脚描述如下,见表3.2表3.2 DS1302功能引脚阐明引脚号符号引脚
26、功能1、8Vcc2、Vcc1为电源供电管脚2、3X2、X3接32.768KHz晶振4GND接地5RST复位端6I/O为数据输入/输出引脚7SCLK接串行时钟DS1302有12个寄存器,其中7个寄存器与日历、时钟有关,存储数据形式是BCD码,其寄存器及控制字见表3.3表3.3 DS1302日历、时钟寄存器及其控制字寄存器名命令字取值范畴各位内容写操作读操作76543210秒寄存器80H81H00-59CH10SECSEC分钟寄存器82H83H00-59010MINMIN小时寄存器84H85H01-12或00-2312/240HRHR日期寄存器86H87H01-28,29,30,310010DAT
27、EDATE月份寄存器88H89H01-1200010MMONTH周日寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR单片机容易受外界环境影响,时钟时常会浮现混乱现象,导致时钟精度不高。DS1302作用重要用来记录数据,特别是对某些具备特殊意义数据点记录,除此之外,DS1302可以同步记录两个时间,一是记录数据时间,二是浮现该数据时间,因而在测量系统中广泛应用。采用时钟芯片DS1302可以精确记录数据浮现时间,不需要占用硬件资源,不消耗单片机资源。使用DS1302芯片,可以提供稳定精准地走时,单片机只需要在第一次上电时进行必要时间设定,后来需要时间
28、时候只需要从DS1302中读取数据即可。DS1302芯片自带长短月、闰年补偿等功能,只用51实现时间各种功能会非常麻烦。掉电后只需要薄弱电流即可保持精准走时,因而,在DS1302芯片连接中连有3.6V纽扣电池,可以在掉电后支持时间走时。3.4 温度电路模块温度采集电路模块由DS18B20对温度进行采集测试,其电路图如图3.5。图3.5 温度模块电路DS18B20引脚简介,见表3.4表3.4 DS18B20引脚简介 序 号名称引脚功能1GND接地端2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3Vcc接+5V电源DS18B20产品具备如下特点:(1)
29、只规定一种端口即可实现通信。(2) 在DS18B20中只有三个引脚即可实现温度采集,不需要外部任何电路。(3) 测量温度范畴在50到120之间;数字温度计辨别率顾客可以从9位到12位选取。(4) 内部设立温度上、下限告警。DS18B20将采集到信号送入单片机P2.5口,给电路提供一种温度数据。R2为上拉电阻,为DS18B20提供能量,最佳可以外接+5V电源,有些电路仅仅依托一种4.7K上拉电阻是远远不够,不能给其芯片足够能量,如果采用各种DS18B20来采集温度数据时,这4.7K电阻将供不应求,无法满足其需求【11】。温度采集电路还可将DS18B201脚和3脚同步接地,但是这样有也许 由 于
30、电 压 不 足 而 造 成温度读书不精确。如图3.5中接法虽然电源电压只有4V电路也可以正常工作,DS18B20采集温度数据也不会有很大误差,因而这种接法在适当但是。由图3.5温度模块电路中所示,DS18B20只有三个引脚,3脚接+5V电源,1脚接地,2脚接信号输出口,同步接了一上拉电阻,由于DS18B20是单线温度传感器,数据线是漏极开路,如果DS18B20没接电源,则需要数据线强上拉,给DS18B20供电;如果DS18B20接有电源,则需要一种上拉即可稳定工作。用小循环来移动8次,将内部寄存器8位数据全读出来,再通过数学解决来显示温度。3.5 显示电路模块显示电路模块是用1602LCD液晶
31、显示屏显示时间、温度等数据,其电路图如图3.6。图3.6 显示模块电路图1602液晶显示屏引脚定义,见表3.3表3.3 1602液晶显示屏引脚定义引脚号引脚名电平输入/输出作用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输入/输出数据总
32、线line412DB50/1输入/输出数据总线line513DB60/1输入/输出数据总线line614DB70/1输入/输出数据总线line7(最高位)15A+VccLCD背光电源正极16K接地LCD背光电源负极与数码管相比该模块有如下长处:1、显示字数多,可显示32位,使用数码管,这样数据以及其位置摆放是相称庞大。2、显示内容丰富,可显示所有数字和大、小写字母。3、程序简朴,如果用数码管动态显示,刷新显示时间长,但1602能自动完毕这个功能。1602LCD分为带背光和不带背光两种形式,基控制器大某些为HD44780,带背光比不带背光厚,在应用中没有太大差别,使用时不需要分太清晰,两者尺寸差
33、别如下图3.7所示:图3.6 图序号错了1602LCD尺寸图如图3.6同上LCD1602尺寸图所示,从显示屏正看,这两种显示屏没有差别;从侧面看,将这两种显示屏一比较,明显可以看出无背光厚度要比带背光厚度小,有3.5mm差距,其她某些尺寸都是同样大,没有很大区别。依照显示内容,可以将1602LCD液晶分为字符 型 液 晶 , 图 形 液 晶,本设计模块中是采用字符 型 液 晶 ;依照显 示 容 量 又 可 以分为单行16字,2行16字,两行20字等等【3】。因而,1602LCD液晶显示屏可以同步实现这几种功能:在LCD1602显示屏上显示日期、时间、温度以及三个闹钟设立时间。用数码管显示这样多
34、功能将是一种非常庞大工程量。第四章 软件设计 为了利于实现本设计智能化,提高编程效率,本毕业设计项目采用C语言进行软件开发与设计。在智能数字闹钟软件中,先单独编辑各个模块程序,对各模块程序进行编译链接,程序没有任何错误可以完全运营操作,接着将各模块C语言程序综合连接,使编程构造清晰明了,整个程序发现错误检查时候更加以便,不会令人头疼烦躁。软件设计重要分为了四个某些来编写程序,主程序重要对整个模块进行定义、初始化,重要在按键模块切换模式状况进行详细设计,同步也对闹钟某些进行了详细设计,通过设立闹钟时间与显示时间比较,当两个时间相似时闹钟就会鸣响;温度模块重要是依照DS18B20芯片进行温度采集,
35、显示程序编写则依照其控制字规定将温度在LCD1602显示屏上显示;定期模块是用芯片DS1302实现定期功能,提高走时精准度。4.1总体系统软件设计软件程序设计是依照硬件电路图连接和各个元器件功能进行设计。在编写软件时,可以按各个程序功能将软件细分为各个功能模块,再通过主程序调用来实现整个软件系统。 系统主程序流程图如图4.1,如下所示:图4.1 主程序流程图数字钟开机后,进入初始状态,通过调节各个独立轻触式按键来修改数据和各个模式切换。图4.1主程序流程图中Y表达按下开关,N表达开关没有按下。开机后,按下S5可对时间进行12/24小时形式切换;按下S1可以切换不同模式,可以依照自己规定进行切换
36、,这时显示屏上会显示相相应调节项;切换在某个模式上,按下S2进入数据调节,可将预设参数作加设立,按下S3进入数据调节,可将预设参数作减设立;当参数设立完毕后按下开关S4,退出该模式,电路进入正常显示状态。当时间到设立闹钟时间时会有闹铃,无人操作时响铃30s后自动关闭,或者按下S4关闭闹钟。4.1.1 主程序设计主程序:初始化各个功能模块,对闹钟、温度、定期、显示、按键等功能进行定义。其核心代码如下:void main()/主函数LCD_Init();/lcd初始化InitDs1302(); TimeInit();/定期器初始化BEEP = 1;time.alarm_hour = 8;time.
37、alarm_min = 30;time.alarm_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= (65536-50000)/256; TL1 = (65536-50
38、000)%256;/初始值定期 Count=Count+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(); Writ
39、eAChar(0xCC);/跳过读序号列号操作 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 = temp1|m;if
40、 ( 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;return(d
41、at);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_LCD_S
42、j(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(0
43、x06);/设立输入方式delayms(1);Write_LCD_Command(0x0c);/显示总数据delayms(1);/初始化void Set_LCD_POS(uchar pos) Write_LCD_Command(pos|0x80);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仿真软件
44、环境下进行调试,在Proteus中画出智能数字闹钟电路原理图,在此过程中,寻找元器件要有耐心、认真负责态度,精确无误找到相相应元器件,哪怕一种小小不同就会影响设计成果。通过查阅各种资料和教师协助下,可以不久画出电路原理图,并在仿真软件中实现功能。由于本设计中有五个模块,在完毕各个模块后,需要把各某些相应连接起来,在安装各模块同步,可以更多掌握每个某些功能。每个模块安装完毕后,不阐明就已经完毕了所有工作,需要多次进行电路检测,发现局限性与问题所在,不要影响电路工作。并运用万用表等实验器材对整体进行检测,避免由于接线错误导致不必要故障,并且保证安全。一切准备工作结束后,开始焊接工作,在完毕整个焊接工作过程中,得到教师和同窗协助,工作