1、河南城建学院本科毕业设计(论文) 摘要毕业设计基于PROTEUS的温湿度测量系统设计摘 要温度和湿度是两个最基本的环境参数,与人们的生活息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度和湿度进行测量和控制。准确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要。因此研究温湿度的测量和控制方法具有重要的意义。本设计实现的是单片机温湿度测量和控制系统,通过LCD显示所测量的温湿度。系统采用集温湿度传感器与A/D转换器于一体的SHT11芯片,通过单片机进行处理显示,其它模块包括了实时时钟/日期产生电路和超限报警处理电路,对测量的值进行实时显示和报警处理。文章介绍了基于AT
2、MEL公司的AT89C51系列单片机的温湿度实时测量与控制系统和显示系统的设计,包括介绍了硬件结构原理,并分析了相应的软件的设计及其要点,包括软件设计流程及其程序的实现。系统结构简单、实用,提高了测量精度和效率。关键词:AT89C51、SHT11、LCD、DS1302、温湿度控制ABSTRACTTemperature and humidity are two basic environmental parameters which are closely related to peoples lives. In the industrial and agriculture production
3、, meteorology, environmental protection, national defense, scientific research and other departments, we often need to measure and control the temperature and humidity of the environment. Accurate measurement of temperature and humidity in the pharmaceutical, food processing, paper making and other
4、sectors is essential. So the method of temperature and humidity control and measurement is of great significance.The design implementation of measurement and control temperature and humidity is MCU system, through which the temperature and humidity measurement LCD. System adopts set temperature and
5、humidity sensor and A/D converter for SHT11 chip microcontroller processing, through that other modules including real-time display and alarm. The paper introduces the ATMEL company based on AT89C51 single-chip series of temperature and humidity measurement and control system and real-time display s
6、ystem design, including the hardware structure and principle, and the corresponding software design, including the design of the software and its key process and procedure. System structure is simple, practical, and improve the measuring precision and efficiency.Key words: AT89c51, SHT11、LCD、DS1302、
7、temperature and humidity control III河南城建学院本科毕业设计(论文) 目录目 录摘 要IABSTRACTII第1章 绪 论11.1 研究的目的及意义11.2 国内外研究情况11.3 系统内容的设计21.3.1 系统的主要性能指标21.3.2 主要工作任务21.4 方案论证2第2章 工具简介42.1 C语言42.1.1 C语言的优点42.1.2 C语言的缺点42.2 Proteus简介42.3 Keil C51编译器简介52.3.1 8051开发工具52.3.2uVision2集成开发环境5第3章 硬件设计73.1 芯片介绍73.1.1 单片机AT89C517
8、3.1.2 LCD显示LCD160493.1.3 DS1302原理及应用113.1.4温湿度传感器SHT11153.2 模块功能介绍183.2.1 复位电路部分183.2.2 DS1302时钟电路模块193.2.3 SHT11传感器模块193.2.4 显示电路模块203.2.5 超限处理电路模块203.3 整体电路图21第4章 软件设计224.1 程序框图224.1.1 主程序框图224.1.2 温湿度采集及处理框图234.1.3 LCD显示框图234.2 主函数解析24第5章 仿真与调试26结 论29致 谢30参考文献31附录A 系统源程序32附录B 系统原理图55IV河南城建学院本科毕业设
9、计(论文) 绪论第1章 绪 论1.1 研究的目的及意义温度和湿度与人们的生活息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度与湿度进行测量及控制。准确测量温湿度在生物制药、食品加工、造纸等行业都是至关重要的。传统的温度计是用水银柱来显示的,它的精确度不高,不易读数。而采用单片机对温湿度进行控制,不仅具有控制方便、简单和灵活等优点,而且可以大幅度提高温湿度控制的技术指标。用LCD来显示温湿度的数字看起来更加直观。采用SHT11数字温湿度传感器作为检测元件,能够同时测试温度和湿度。SHT11传感器可以直接读出被测的温湿度值。同时单片机可以把测量出的数据通过串口传到计算机上,
10、来完成工业中的自动控制,给工业生产带来了极大的便利。用单片机控制的温湿度计不仅硬件电路简单,而且测量精度比较高。用液晶显示测量值看起来比较美观。无论在日常生活中还是在工业、农业方面都离不开对周围环境进行温湿度的测量。因此,研究温湿度的测量具有非常重要的意义。1.2 国内外研究情况测量温湿度的关键是温湿度传感器。过去测量温度与湿度是分开的。随着技术的进步和人们生活的需要出现了温湿度共测的传感器。温度传感器的发展经历了3个阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。温度传感器也是经历了这样一
11、个阶段逐渐走向数字智能化。现今国内外用的最多的温湿度传感器是SHTXX系列。SHT11温湿度传感器应用于专利的工业COMS过程微加工技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式聚合体测湿元件和一个能隙式测温元件,并与一个14位的A/D转换器以及串行接口电路在同一芯片上实现无缝链接,从而具有超快响应,抗干扰能力强,性价比极高等优点。采用SHT11数字温湿度传感器与单片机AT89C51相连比较容易,而且电路比较简单,软件设计也比较简单。所以,本设计以SHT11数字温湿度传感器为例,介绍基于SHT11数字温湿度传感器的设计,该设计适用于人们的日常生活及工农业生产中用于温湿度
12、的测量。1.3 系统内容的设计1.3.1 系统的主要性能指标根据生活和一般工业环境,设计本产品的主要技术指标为:测温范围:2080;湿度测量范围为3090%Rh温度测量精度:0.5C湿度测量误差:4%Rh可设置上、下限报警值,当湿度温度超限时,发出报警信号电源工作范围:DC4.55.5V1.3.2 主要工作任务根据本毕业设计实际的任务要求,选择合适的温湿度传感器,完成温湿度的测量,并设计显示电路模块、时钟电路模块、超限处理模块、复位电路模块的程序。系统开始工作后,根据初始条件读取湿度值和温度值,测量数据经处理后,将其与设定的温湿度值比较,如果发现当前的温湿度超限,则发出报警信号,未超限时,系统
13、显示正常的湿温度度值。1.4 方案论证方案一:采用单总线的DS18B20的温度传感器和HS110X相对湿度传感器组成测量和控制系统。方案二:采用集温湿度传感器和A/D转换器于一体的SHT11芯片构成温湿度的测量和控制系统。由于传统的模拟式温湿度传感器一般不仅要设计信号调理电路,还要进行复杂的校准和标定过程,其测量精度难以保证,并且使用分立的温度传感器和湿度传感器测量电路比较麻烦。而SHT11是具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器,集温湿度传感器和A/D转换器于一体,可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换的特点,使用起来比较
14、方便,且电路简单。该传感器将CMOS芯片技术与传感器技术融合,为开发高集成度、高精度、高可靠性的温湿度测控系统提供了解决方案。因此本设计采用方案二。本设计核心部件为AT89C51,信号采集及处理部分由SHT11构成,进入单片机经处理后通过LCD1604显示温湿度,信号显示采用的液晶屏为57点阵,一行可显示16字,四行。其他组成部分为实时时钟发生电路,产生与现在相同的时间和具体日期,通过LCD1604液晶模块显示。在软件设计部分有对测量的温湿度进行上下值的设定,当测量超过限定值时,通过超限报警处理电路对其进行处理,分别显示不同的二极管灯亮,蜂鸣器产生长鸣。硬件中包括一个开关,为复位开关。开机后,
15、所有器件初始化,DS1302产生实时时间和日期,温湿度传感器SHT11开始进行温湿度测量和计算,最后通过两个LCD液晶显示器显示结果。在测量结果中有超过设定的温湿度上下限的,通过超限模块做出反应。电路主要包括了AT89C51控制模块、SHT11温湿度测量模块、DS1302时间模块、LCD显示模块、超限处理模块。其他是一些附件,比如复位、晶振电路。 AT89C51电源DS1302LCD1604信号显示SHT11晶振电路复位电路128*64液晶显示超限模块 图1.1 整体电路框图3河南城建学院本科毕业设计(论文) 工具简介第2章 工具简介系统单片机代码采用C语言编写,并用Keil软件检查程序有无错
16、误,在Proteus仿真软件上进行仿真。2.1 C语言2.1.1 C语言的优点C语言的运算符丰富,它包括的范围相当广泛,使得C语言的运算类型极其丰富,并且表达方式的类型多样化,能够实现在高级语言中不能实现的运算,它有32个关键字,9种控制语句。和汇编语言一样,它能够对位,字节和地址进行操作;数据类型很丰富,能实现各种复杂的数据类型,同时还加入了指针的概念,使得效率更高,同时支持图形编辑,以及多种显示器等;它所应用的结构式语言,这种方式会让程序有层次,一目了然,同时语法显示不严格,设计自由度高;C语言提供给用户的方式是一函数的形式,它们可以方便调用,使得程序完全结构化;地址的访问上,能够访问物理
17、地址,对硬件进行直接操作;适用范围广,能够适用于多种操作,例如:DOS、UNIX等,同时适用于多种机型。2.1.2 C语言的缺点它的缺点主要是数据封装的安全性不高,因此这一点也成为了C语言和C+的最大的区别,另一方面由于语法以及变量的类型没有严格限制,也造成了较低的安全性,再者从应用角度来说,它比较其他的高级语言来说较为难以掌握。2.2 Proteus简介Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,
18、他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发,被电子世界在其对PCB设计系统的比较文章中评为最好产品“The Route to PCB CAD”。Proteus 产品系列也包含了革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘
19、、RS232终端等动态外设模型来对设计进行交互仿真。其功能模块:一个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真; ARES PCB设计。PROSPICE 仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型。 支持许多通用的微控制器,如PIC,AVR,HC11以及8051. 最新支持ARM 交互的装置模型包括:LED和LCD显示,RS232终端,通用键盘,I2C,SPI器件 强大的调试工具,包括寄存器和存储器,断点和单步模式 IAR
20、 C-SPY 和Keil uVision2等开发工具的源层调试 应用特殊模型的DLL界面-提供有关元件库的全部文件 最新版支持非常丰富仿真元件共7000多种,还有很多第三方模型。如MMC卡,以太网卡,ATA硬盘,麦克风,等等。 2.3 Keil C51编译器简介2.3.1 8051开发工具KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。
21、uVision2 IDE可为它们提供单一而灵活的开发环境。2.3.2 uVision2集成开发环境 项目管理工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。一个单一的uVision2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。uVision2包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math acceler
22、ator)的特性。uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模。 编辑器和调试器uVision2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使得可以更快速地检查和修改程序。 C51编译器KEIL C51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。1) 存储器和特殊功能寄存器的存取C51编译器可以实现对8051系列所有资源的操作。SFR的存取由sfr和sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字at还能把变
23、量放入固定的存储器存储模式(大,中,小)决定了变量的存储类型。连接定位器支持的代码区可达32个,这就允许用户在原有64K ROM的8015基础上扩展程序。在V2的编译器和许多高性能仿真器中,可以支持应用程序的调试。2)中断功能C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。 3)灵活的指针C51提供了灵活高效的指针。通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区
24、域。由于地址的存储只需12字节,因此,指针存取非常迅速。 6河南城建学院本科毕业设计(论文) 硬件设计7755第3章 硬件设计3.1 芯片介绍3.1.1 单片机AT89C51AT89C51是一种带4k字节可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于
25、将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 管脚说明:VCC:供电电压GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电
26、流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管
27、脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也
28、可作为AT89C51的一些特殊功能口,如下表所示:表3.1.1 P3口管脚备选功能P3.0 RXD串行输入口P3.4 T0计时器0外部输入P3.1 TXD串行输出口P3.5 T1计时器1外部输入P3.2 /INT0外部中断0P3.6 /WR外部数据存储器写选通P3.3 /INT1外部中断1P3.7 /RD外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以
29、不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),
30、不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除:整个PEROM阵列和三个锁定
31、位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 结构特点: 8位CPU; 片内振荡器和时钟电路; 32根I/O线; 布尔处理器; 外部存贮器寻址范围ROM、RAM64K; 2个16位的定时器/计数器; 5个中
32、断源,两个中断优先级; 全双工串行口; 3.1.2 LCD显示LCD1604 LCD1604原理1604采用标准的16脚接口,其中:1脚:VSS为地电源2脚:VDD接5V正电源 3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数
33、据。6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令714脚:D0D7为8位双向数据线 1516脚:空脚1604液晶模块内部的控制器共有11条控制指令,如表3.1.2所示,表3.1.2 1604液晶指令表指 令RSR/WD7D6D5D4D3D2D1D0清显示0000000001光标返回000000001*置输入模式00000001I/DS显示开/关控制0000001DCB光标或字符移位000001S/CR/L*置功能00001DLNF*置字符发生存储器地址0001字符发生存储器地址(AGG)置数据存储器地址001显示数据存储器地址(ADD)读忙标志或地址01BF计数器地址(A
34、C)写数到CGRAM或DDRAM10要写的数从CGRAM或DDRAM读数11读出的数据它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置 指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令
35、5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 指令6:功能设置命令 DL:低电平时为4位总线,高电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 指令7:字符发生器RAM地址设置 指令8:DDRAM地址设置 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙指令10:写数据 指令11:读数据 LCD1604初始化 延时15mS写指令38H(不检测忙信号)、延时5mS写指令38H(不检测忙信号)、延时5mS写指令38H(不检测忙信号);
36、以后每次写指令、读/写数据操作均需要检测忙信号。写指令38H:显示模式设置 写指令08H:显示关闭 写指令01H:显示清屏 写指令06H:显示光标移动设置写指令0CH:显示开及光标设置 3.1.3 DS1302原理及应用DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒分时日、日期月年的信息。每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线:RES复位、I/O数据线、 S
37、CLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信,DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。DS1302是由DS1202改进而来,增加了以下的特性:双电源管脚用于主电源和备份电源供应;Vcc1为可编程涓流充电电源;附加七个字节存储器;它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域。下面将主要的性能指标作一综合: 实时时钟具有能计算2100年之前的秒分时日日期星期月年的能力还有闰年调整的能力318位暂存数据存储RAM 串行I/O口方式使得管脚数量最少 宽范围工作电压2.0-5.5V 工作电流2.0V时,小于300nA 读/写
38、时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式 8脚DIP封装或可选的8脚SOIC封装根据表面装配 简单3线接口 与TTL兼容(Vcc=5V) 可选工业级温度范围-40+85 与DS1202兼容 在DS1202基础上增加的特性 -对Vcc1有可选的涓流充电能力 -双电源管用于主电源和备份电源供应 -备份电源管脚可由电池或大容量电容输入 -附加的7 字节暂存存储器 DS1302的基本组成和工作原理DS1302的管脚排列(图3.1.1)及描述如下:1)管脚描述:X1、X2:32.768KHz晶振管脚GND:地RST:复位脚I/O:数据输入/输出引脚SCLK:串行时钟Vcc1、Vc
39、c2:电源供电管脚 12348765Vcc1SCLKI/ORSTVcc2X1X2GND图3.1.1 DS1302引脚图2) DS1302内部寄存器CH: 时钟停止位 寄存器2 的第7 位12/24 小时标志 CH=0 振荡器工作允许 bit7=1,12 小时模式 CH=1 振荡器停止 bit7=0,24 小时模式 WP: 写保护位 寄存器2 的第5 位:AM/PM 定义WP=0 寄存器数据能够写入 AP=1 下午模式 WP=1 寄存器数据不能写入 AP=0 上午模式 TCS: 涓流充电选择 DS: 二极管选择位 TCS=1010 使能涓流充电 DS=01 选择一个二极管 TCS=其它 禁止涓流
40、充电 DS=10 选择两个二极管DS=00 或11, 即使TCS=1010, 充电功能也被禁止 DS1302与微控制器的接口软件及功能应用举例下面首先给出基本的接口软件然后举例说明各种功能的应用1) 写保护寄存器操作 当写保护寄存器的最高位为0时,允许数据写入寄存器写保护,寄存器可以通过命令字节8E、8F来规定禁止写入/读出写保护位不能在多字节传送模式下写入。 Write_Enable: MOV Command,#8Eh;命令字节为8E MOV ByteCnt,#1;单字节传送模式 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#00h;数据内容为0 写入允许 ACAL
41、L Send_Byte;调用写入数据子程序 RET 返回调用本子程序处 当写保护寄存器的最高位为1时禁止数据写入寄存器Write_Disable:MOV Command,#8Eh;命令字节为8E MOV ByteCnt,#1;单字节传送模式 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#80h;数据内容为80h 禁止写入 ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程序处 2) 时钟停止位操作 当把秒寄存器的第7位时钟停止位设置为0时起动时钟开始。Osc_Enable:MOV Command,#80h;命令字节为80 MOV ByteCnt
42、,#1;单字节传送模式 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#00h;数据内容为0 振荡器工作允许 ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程序处当把秒寄存器的第7位时钟停止位设置为1时,时钟振荡器停止HT1380进入低功耗方式。Osc_Disable:MOV Command,#80h;命令字节为80 MOV ByteCnt,#1;单字节传送模式 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#80h;数据内容为80h 振荡器停止 ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程
43、序处 3) 多字节传送方式 当命令字节为BE或BF时,DS1302工作在多字节传送模式,8个时钟/日历寄存器从寄存器0地址开始连续读写从0位开始的数据。当命令字节为FE或FF时,DS1302工作在多字节RAM传送模式,31个RAM寄存器从0地址开始连续读写从0位开始的数据。例如写入00年6月21日星期三13时59分59秒程序,设置如下: Write_Multiplebyte: MOV Command,#0Beh;命令字节为BEh MOV ByteCnt,#8;多字节写入模式此模块为8 个 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#59h;秒单元内容为59h MOV
44、 XmtDat+1,#59h;分单元内容为59h MOV XmtDat+2,#13h;时单元内容为13h MOV XmtDat+3,#21h;日期单元内容为21h MOV XmtDat+4,#06h;月单元内容为06h MOV XmtDat+5,#03h;星期单元内容为03h MOV XmtDat+6,#0;年单元内容为00h MOV XmtDat+7,#0;写保护单元内容为00h ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程序处 读出寄存器0-7的内容程序设置如下:Read_Multiplebyte; MOV Command,#0BFh;命令字节为BFh MOV ByteCnt,#8;多字节读出模式此模块为8 个 MOV R1,#RcvDat;数据地址覆给R1 ACALL Receive_Byte;调用读出数据子程序 RET返回调用本子程序处 以上程序调用了基本数据接收(Receive_Byte)模块及一些内存单元定义, 其源程序清单在附录中给出下面的程序亦使用了这个模块。 4) 单字节传送方式 例如写入8时12小时模式程序设置如下: Write_Singlebyte: