《基于单片机的电子万历设计毕业论文1.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子万历设计毕业论文1.doc(39页珍藏版)》请在三一办公上搜索。
1、 毕业设计(论文)说明书课题名称:基于单片机的电子万年历设计院 (系): 专 业: 班级: 学生姓名: 学 号: 指导教师: 摘 要电子万年历是一种应用非常广泛日常计时工具,对现代社会越来越重要。此电子万年历在硬件方面主要采用STC89C52单片机作为主控核心,由DS1302时钟芯片提供时钟、1602LCD液晶显示屏显示。STC89C52单片机是由宏晶公司推出的,功耗小,电压可选用46V电压供电;DS1302时钟芯片是美国DALLAS公司推出的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;对于数字电子万年历采用
2、直观的数字显示,数字显示是采用的1602LED液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。此外,该电子万年历还具有时间校准等功能。在软件方面,主要包括日历程序、时间调整程序,显示程序等。所有程序编写完成后,在Keil软件中进行调试,确定没有问题后,烧写到单片机上进行测试。 此设计主要由时钟芯片DS1302和温度传感器DS18B20采集数据到单片机进行处理再通过LCD1602显示出来,本论文主要研究了液晶显示器LCD及时钟芯片DS1302,温度传感器DS18B20与单片机之间的硬件互联及通信,对数种硬件连接方案进行了详尽的比较,在软件方面对日历算法也进行了论述。关键词:单片
3、机;DS1302;DS18B20;LCD1602Abstract Electronic calendar is a widely used tool for the daily time, more and more important in modern society. The electronic calendar in terms of hardware as the main control mainly STC89C52 microcontroller core, provided by the DS1302 clock chip clock, 1602LCD LCD displa
4、y. STC89C52 microcontroller by Hongjing introduced, the power consumption, voltage can be selected 4 6V voltage power supply; DS1302 clock chip introduced in the United States DALLAS low-power real time clock chip, which can be year, month, day, week, hours, minutes and seconds time, but also has le
5、ap-year compensation, and other functions, and the DS1302s long life, small error; for digital electronic calendar using an intuitive digital display, digital display is used 1602LED LCD screen to display, you can also shows year, month, day, week, hours, minutes, seconds and other information. In a
6、ddition, the electronic calendar is also a time calibration and other functions. In terms of software, including calendar, time to adjust procedures, display procedures. All programming is completed, the Keil software debugging, make sure that no problem, programmed into the microcontroller for test
7、ing. This design mainly by the clock chip DS1302 temperature sensor to the microcontroller DS18B20 collect data for processing and then through the LCD1602 display, this thesis, the liquid crystal display LCD and clock chip DS1302, temperature sensor and microcontroller DS18B20 interconnection and c
8、ommunication between the hardware on Several hardware connection scheme for a detailed comparison of algorithms in software on the calendar have also been discussed.Key words: SCM; DS1302; DS18B20; LCD1602 目 录摘 要IAbstractII第 1 章 绪 论11.1课题背景11.2 课题意义11.3国内外现状及水平1第2章基于单片机万年历的方案研究22.1 系统基本方案选择和论证22.1.1
9、 单片机芯片的选择22.1.2 显示模块选择方案和论证32.1.3 时钟芯片的选择方案和论证32.1.4 温度传感器的选择方案与论证32.2 电路设计最终方案决定42.3 DS1302,DS18B20和LCD1602的原理及说明42.3.1 LCD1602工作原理及说明42.3.2 DS1302原理及说明52.3.3 DS18B20工作原理及说明6第3章 系统的硬件设计与实现73.1电路设计框图73.2系统硬件概述83.3 主要模块电路的设计83.3.1 STC89C52单片机主控制模块的设计83.3.2时钟电路模块的设计103.3.3温度采集模块设计113.3.4 显示模块的设计123.4各
10、模块电路原理图123.4.1电源电路123.4.2复位电路123.4.3振荡电路133.4.4温度采集电路133.4.5蜂鸣器电路143.4.6显示电路153.4.7键盘电路15第4章 系统的软件设计164.1 程序流程框图:16第5章 系统测试185.1 硬件测试185.2 软件测试18结束语19致谢19参考文献20附录1:程序22第 1 章 绪 论1.1课题背景 在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响,随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温
11、度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势。伴随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。由其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便,作为一种附加功能,现在越来越广泛的被应用于各种电子产品中,具有广阔的市场前景。1.2 课题意义电子万年历作为电子类小产品不仅是市场上的宠儿,也是是单片机设计培训中一个很实用的题目。因为这个课题有很好的开放性和可发挥性,对制作者的要求比较高,不仅考察了对单片机的掌握能力更
12、加强调了对单片机扩展的应用。而且要求设计的电子万年历在操作上力求简洁,功能上尽量齐全,显示界面也要出色。所以,电子万年历制作无论从实用目的,还是从培养能力的角度来看都是很有价值的毕业设计课题。本电子万年历的设计在硬件方面主要采用STC89C52单片机作为主控核心,由DS1302时钟芯片提供时钟、1602LCD液晶显示屏显示。STC89C52单片机是由宏晶公司推出的,功耗小,电压可选用46V电压供电;DS1302时钟芯片是美国DALLAS公司推出的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,而且DS1302的使用寿命长,误差小;数字显示是采用的LED液晶显示屏来显示,可以同
13、时显示年、月、日、星期、时、分、秒等信息。此外,该电子万年历还具有时间校准等功能。在软件方面,主要包括日历程序、时间调整程序,显示程序等。所有程序编写完成后,在Keil软件中进行调试,确定没有问题后,烧写到单片机上进行测试。最后在老师同学的帮助以及自己的努力下完成了此次电子万年历的设计。1.3国内外现状及水平诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。因此,研究万年历及扩大其应用,有着非常现实的意义。它可以对年、月、日、周日、时、分、秒进行计时,对于数字电子万年历采用
14、直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。近些年我国也开始重视对电子万年历的开发与设计,让更多的电子时钟能够走进人民生活,跟多人能够应用到功能强大,精度高的电子时钟。但是仍然存在很多问题。中国电子万年历产业发展出现的问题中,许多情况不容乐观,如产业结构不合理、产业集中于劳动力密集型产品;技术密集型产品明显落后于发达工业国家;生产要素决定性作用正在削弱;产业能源消耗大、产出率低、环境污染严重、对自然资源破坏力大;企业总体规模偏
15、小、技术创新能力薄弱、管理水平落后等。从什么角度分析中国电子万年历产业的发展状况?以什么方式评价中国电子万年历产业的发展程度?中国电子万年历产业的发展定位和前景是什么?中国电子万年历产业发展与当前经济热点问题关联度如何诸如此类,都是电子万年历产业发展必须面对和解决的问题中国电子万年历产业发展已到了岔口;中国电子万年历产业生产企业急需选择发展方向。中国电子万年历产业发展研究报告阐述了世界电子万年历产业的发展历程,分析了中国电子万年历产业发展现状与差距,开创性地提出了“新型电子万年历产业” 及替代品产业概念,在此基础上,从四个维度即“以人为本”、“科技创新”、“环境友好”和“面向未来”准确地界定了
16、“新型电子万年历产业” 及替代产品的内涵。根据“新型电子万年历产业” 及替代品的评价体系和量化指标体系,从全新的角度对中国电子万年历产业发展进行了推演和精准预测,在此基础上,对中国的行政区划和四大都市圈的电子万年历产业发展进行了全面的研究。第2章基于单片机万年历的方案研究2.1 系统基本方案选择和论证2.1.1 单片机芯片的选择本设计采用STC89C52芯片作为硬件核心,该芯片采用Flash ROM,内部具有8KB ROM存储空间,相对于本设计而言程序空间完全够用。能于5V电压工作,而且与MCS-51系列单片机完全兼容,而且运用于电路设计中时具备ISP在线编程技术,当在对电路进行调试时,由于程
17、序的错误修改或对程序的新增功能需要烧入程序时,避免芯片的多次拔插对芯片造成的损坏。2.1.2 显示模块选择方案和论证方案一: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案二: 采用LED数码管动态扫描,LED数码管价格虽适中,对于显示数字也最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。但是由于数码管动态扫描需要借助74LS164移位寄存器进行移位,该芯片在电路调试时往往会有很多障碍,所以不采用LED数码管作为显示。方案三: 采用LCD液晶显示屏,液晶显示屏的显示功
18、能强大,可显示大量文字,图形,显示多样,清晰可见,对于电子万年历而言,一个1602的液晶屏即可,价格也还能接受,需要的接口线较多,但会给调试带来诸多方便,所以此设计中采用LCD1602液晶显示屏作为显示模块。2.1.3 时钟芯片的选择方案和论证方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然可以减少时钟芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时
19、,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。因此,本设计中采用DS1302提供时钟。2.1.4 温度传感器的选择方案与论证方案一: 使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热
20、敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。方案二: 采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以避免A/D模数转换模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。因此,本设计DS18B20温度传感器作为温度采集模块。2.2 电路设计最终方案决定 综上各模块的选择方案与论证,确定最后的主要硬件资源如下:采用STC89C52作为主控制系统;
21、DS1302提供时钟;DS18B20作为数字式温度传感器;LCD1602液晶屏作为显示。2.3 DS1302,DS18B20和LCD1602的原理及说明 2.3.1 LCD1602工作原理及说明(1)寄存器选择控制 1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符,图形寄存器选择控制表如表2.1所示:表2.1 LCD1602寄存器选择控制表 RS R/W 操作说明 0 0 写入指令寄存器(清屏指令等) 0 1 读busy flag,以及读取位址计数器(DB0DB6)的值
22、1 0 写入数据寄存器(显示各字型等) 1 1 从数据寄存器读取数据 (2)指令集 1602通过D0D7的8位数据端传输数据和指令。显示模式设置(初始化)001110000x38设置162显示,57点阵,8位数据接口;显示开关及光标设置:(初始化) 00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)。000001NS N=1(读或写一个字符后地址指针加1并且光标加1),N=0(读或写一个字符后地址指针减1并且光标减1),S=1且N=1(当写一个字符后,整屏显示左移),S=0当写一个字符后,整屏显示不移动。数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(
23、0-27H,40-67H)。其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。2.3.2 DS1302原理及说明(1) 时钟芯片DS1302的工作原理DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图2.2所示。图2.1为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进
24、行的是写操作。控制字节总是从最低位开始输入/输出的。表2.2为DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。 (2) DS1302的控制字DS1302的控制字如图2.1所示。控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示
25、要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。图2.1 DS1302的控制字 (3) 数据输入输出在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图2.2所示: 图2.2 DS1302读与写的时序图(3) DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2.2。 表2.2 DS1302的日历、时间寄存器 此外,DS13
26、02 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 2.3.3 DS18B20工作原理及说明DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s
27、减为750ms。 DS18B20测温原理如图2.3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2.3中的斜率累加器用于补偿和修正测温过程中的非线
28、性,其输出用于修正计数器1的预置值。图2.3 DS18B20测温原理框图第3章 系统的硬件设计与实现3.1电路设计框图 本系统的电路系统框图如图3.1所示。STC89C52单片机对DS1302和DS18B20写入控制字并读取相应的数据,继而控制LCD1602作出对应的显示。STC89C52主控模块LCD1602液晶显示模块按键控制模块蜂鸣器模块DS1302时钟模块温度采集模块 图3.1 系统硬件框图3.2系统硬件概述本电路是由STC89C52单片机作为控制核心,能在5V电压工作,STC89C52是一个低功耗,高性能CMOS 8位单片机,片内含8kBytes ISP(In-system prog
29、rammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C52引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方案;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个3
30、1*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20完成,它具有独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,测温范围 55125,固有测温分辨率0.5,支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温,工作电源:35V/DC,在使用中不需要任何外围元件;显示部份由LCD1602液晶显示器完成,该显示器为工业字符型液
31、晶,能够同时显示16x02即32个字符(16列2行)。3.3 主要模块电路的设计3.3.1 STC89C52单片机主控制模块的设计 STC系列单片机是由STMicroelectronics 公司生产,并有宏晶公司做大陆代理的。本设计使用STC89C52作为控制核心,其管脚兼容其他51系列的单片机,以下对STC89C52进行简单讲解。STC89C52单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。采用40Pin封装的双列直接DIP结构,图3.2是它们的引脚配置,40个引脚中,正电源和地
32、线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在对各引脚功能说明如下(图3.2):图3.2 STC89C52单片机管脚图(1)主电源引脚Vcc :接5V电源正端。Vss :接5V电源地端。(2)输入输出引脚P.0P0.7:P0口的8个引脚。在不接片外存储器与不扩展IO接口时,可作为准双向输入输出接口。在接有片外存储器或扩展IO接口时,P0口分时复用为低8位地址总线和双向数据总线。P1.0P1.7:P1口的8个引脚。可作为准双向IO接口使用。对于52子系列,P1.0 与 P1.1还有第二种功能:P1.0 可用作定时器计数器2的计数脉冲输入端T2。P1.1
33、可用作定时器计数器2的外部控制端T2EX。P2.0P2.7:P2口的8个引脚。可作为准双向IO接口;有接有片外存储器或扩展IO接口且寻址范围超过256个字节时,P2口用作高8位地址总线。P3.0P3.7:P3口的8个引脚。除作为准双向IO接口使用外,还具有第二种功能 ,详见表3.1。表3.1 P3口第二功能表 引脚第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD(串行口输入)TXD(串行口输出)INT0(外部中断0输入)INT1(外部中断1输入)T0(定时器0的外部输入)T1(定时器1的外部输入)WR(片外数据存储器写控制信号)RD(片外数据存储器读控制信号)(3
34、)控制总线ALEPROG:地址锁存有效信号输出端。在访问片外程序存储器期间,每机器周期该信号出现两次,其下降沿用于控制锁存P0口输出的低8位地址。对于片内含EPROM的机型,在编程期间,此引脚用作编程脉冲PROG的输入端。PSEN:片外程序存储器读选通信号输出端,或称片外取指信号输出端。在向片外程序存储器读取指令或常数期间,每个机器周期该信号两次有效(低电平),以通过数据总线P0口读回指令或常数。在访问片外数据存储器期间,PSEN信号将不出现。RSTV:(RST 是 RETET 简略写法。)是复位端。单片机的振荡器工作时,该引脚上出现持续两个机器周期的高电平就可实现复位操作,使单片机回复到初始
35、状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位。Vcc掉电期间,该引脚如接备用电源VPD(电压范围+4.5V至+5.5V),可用于保存片内RAM中的数据。当Vcc下降到某规定值以下VPD,便向片内RAM供电。EAVDD:片外程序存储器选用端。该引脚有效(低电平)时只选用片外程序存储器,否则计算机上电或6复位后先选用片内程序存储器。(4)外接晶振引脚XTAL1:片内反相放大器输入端。XTAL2:片内反相放大器输出端。外接晶体时,XTAL1和 XTAL2各接晶体的一端,借外接晶体与片内反相放大器构成振荡器。图3.3单片机最小系统3.3.2时钟电路模块
36、的设计 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周、时、分、秒进行计时,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vc
37、c2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只
38、有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),SCLK为时钟输入端。DS1302的控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位
39、7。DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。DS1302与CPU的连接需要三条线,即SCLK(7)、I/O
40、(6)、RST(5)。实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。3.3.3温度采集模块设计采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用3.5与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需
41、备用电源 测量温度范围为-55度至+125度。-10度至+85度范围内精度为0.5度温度传感器可编程的分辨率为912位。3.3.4 显示模块的设计采用LCD1602液晶显示器,单片机P0口作为数据输出口,通过10R的上拉电阻连接到VCC,VCC接5V电源,GND接地。GND为液晶显示器对比度调整端,可以通过滑动变阻器RH1调显示器的对比度(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。E(或EN)端为使能(enable)端,下
42、降沿使能。DB0-DB7为双向数据总线,同时最高位DB7也是忙信号检测位。BLA、BLK分别为显示器背光灯的正、负极。3.4各模块电路原理图3.4.1电源电路由电池盒接口供5V电压,此电源电路能够给单片机提供稳定的电压,使系统能够稳定工作如图3.7所示图3.7电源电路3.4.2复位电路无论用户使用哪种类型的单片机 ,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的,本电路设计采用可靠的手动复位方式,单片机复位电路如图3
43、.8所示图3.8复位电路3.4.3振荡电路对于一个高可靠性的系统设计,晶体的选择非常重要。在振荡回路中,晶体既不能过激励(容易产生高次谐波)也不能欠激励(不容易起振)。晶体的选择至少必须考虑:谐振频点,负载电容,激励功率,温度特性,长期稳定性。在本设计中采用了12MHZ的晶振。单片机振荡电路如图图3.9所示。图3.9震荡电路3.4.4温度采集电路单片机使用VCC与上拉电阻相连,再与DS18B20的2号引脚相接,上拉电阻取值10K。温度传感器采用外部供电方案,由1、3引脚提供电源。电路图如下图3.10:图3.10温度采集电路3.4.5蜂鸣器闹铃电路采用三极管驱动蜂鸣器的方式 图3.11串口通信电
44、路3.4.6显示电路 显示电路由1602液晶接口插槽组成,如下图3.12所示。液晶显示器R/W端接P0.1。使能端E由单片机P0.2引脚控制,数据/命令选择端由单片机的P0.0引脚控制。由于P0口是开漏,所以控制端分别接上拉电阻。偏压信号VL端与滑动变阻器相连,通过滑动变阻器可以调节显示器的显示对比度。显示器数据端口与单片机的P2对应相连,单片机通过P2口可以向显示器中输入控制命令或要显示的字符。图3.12显示电路3.4.7键盘电路 按键电路采用独立按键方式,用来设置闹铃,调整时间等。图3.13按键电路第4章 系统的软件设计4.1 程序流程框图:开始系统初始化判断DS1302是否设置过时间初始
45、化时间 NYWhile(1)大循环YN按键扫描flag是否为1 N YY闹钟设置 显示时间图4.1主程序流程图主程序流程图如上图4.1所示。由于LCD1602,DS18B20,DS1302的数据读取及指令写入函数均已在各自的头文件中完成,在主程序中只须引用即可。第5章 系统测试5.1 硬件测试在调试硬件时遇到过很多问题,但只要细心、认真检查这些问题都是可以避免的,主要问题及解决办法现列如下:(1) 认真检查电路是否有短路的地方,线与线之间,管脚刺破邻近的漆包线之间是否连接在一起,有的话要用刀划开,或者重新焊接。(2) 检查完毕后接通电源后LCD1602没有正确的显示。在不通电状态下用万用表检测电路是否正常连接,在检查回路时发现有的点之间看似连接,但由于虚焊导致其并无电气连接,只能对焊脚进行在加工直到解决问题。5.2 软件测试 由于本系统涉及到多个子程序,多个芯片的编程。首先必须对可编程芯片的控制字即其控制指令要熟记于心。其次,芯片很多都有时钟输入端,需要晶振支持。对芯片的读写都需要在相应的触发沿到来时才能进行。由于DS18B20是串行通信数据,只用一个口线传输,在处理采集的模拟信号时需要一定的时间,会对延时有较高要求。