《基于PROTEUS的温湿度测量系统设计.doc》由会员分享,可在线阅读,更多相关《基于PROTEUS的温湿度测量系统设计.doc(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘 要温度与湿度就是两个最基本得环境参数,与人们得生活息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度与湿度进行测量与控制。准确测量温湿度在生物制药、食品加工、造纸等行业更就是至关重要。因此研究温湿度得测量与控制方法具有重要得意义。本设计实现得就是单片机温湿度测量与控制系统,通过LCD显示所测量得温湿度。系统采用集温湿度传感器与A/D转换器于一体得SHT11芯片,通过单片机进行处理显示,其它模块包括了实时时钟/日期产生电路与超限报警处理电路,对测量得值进行实时显示与报警处理。文章介绍了基于ATMEL公司得AT89C51系列单片机得温湿度实时测量与控制系统与显示系统得设计
2、,包括介绍了硬件结构原理,并分析了相应得软件得设计及其要点,包括软件设计流程及其程序得实现。系统结构简单、实用,提高了测量精度与效率。关键词: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, meteorology, environmental protection
3、, 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 sectors is essential、 So the method of
4、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 humidity sensor and A/D converter for S
5、HT11 chip microcontroller processing, through that other modules including realtime display and alarm、 The paper introduces the ATMEL pany based on AT89C51 singlechip series of temperature and humidity measurement and control system and realtime display system design, including the hardware structur
6、e 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、temperature and humidity control目 录摘 要IABSTRA
7、CTII第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 单片机AT89C5173、1、2 LCD显示LCD160493、1、3 DS1302原理及应用113、1、4温湿度传感器SHT11153、2 模块功能介绍18
8、3、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 系统原理图55第1章 绪 论1、1 研究得目得及意义温度与湿度与人们得生活息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度与湿度进行测量及控制。准确测量
9、温湿度在生物制药、食品加工、造纸等行业都就是至关重要得。传统得温度计就是用水银柱来显示得,它得精确度不高,不易读数。而采用单片机对温湿度进行控制,不仅具有控制方便、简单与灵活等优点,而且可以大幅度提高温湿度控制得技术指标。用LCD来显示温湿度得数字瞧起来更加直观。采用SHT11数字温湿度传感器作为检测元件,能够同时测试温度与湿度。SHT11传感器可以直接读出被测得温湿度值。同时单片机可以把测量出得数据通过串口传到计算机上,来完成工业中得自动控制,给工业生产带来了极大得便利。用单片机控制得温湿度计不仅硬件电路简单,而且测量精度比较高。用液晶显示测量值瞧起来比较美观。无论在日常生活中还就是在工业、
10、农业方面都离不开对周围环境进行温湿度得测量。因此,研究温湿度得测量具有非常重要得意义。1、2 国内外研究情况测量温湿度得关键就是温湿度传感器。过去测量温度与湿度就是分开得。随着技术得进步与人们生活得需要出现了温湿度共测得传感器。温度传感器得发展经历了3个阶段:传统得分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化、网络化得方向发展。温度传感器也就是经历了这样一个阶段逐渐走向数字智能化。现今国内外用得最多得温湿度传感器就是SHTXX系列。SHT11温湿度传感器应用于专利得工业S过程微加工技术,确保产品具有极高得可靠性与卓越得
11、长期稳定性。传感器包括一个电容式聚合体测湿元件与一个能隙式测温元件,并与一个14位得A/D转换器以及串行接口电路在同一芯片上实现无缝链接,从而具有超快响应,抗干扰能力强,性价比极高等优点。采用SHT11数字温湿度传感器与单片机AT89C51相连比较容易,而且电路比较简单,软件设计也比较简单。所以,本设计以SHT11数字温湿度传感器为例,介绍基于SHT11数字温湿度传感器得设计,该设计适用于人们得日常生活及工农业生产中用于温湿度得测量。1、3 系统内容得设计1、3、1 系统得主要性能指标根据生活与一般工业环境,设计本产品得主要技术指标为:测温范围:2080;湿度测量范围为3090%Rh温度测量精
12、度:0、5C湿度测量误差:4%Rh可设置上、下限报警值,当湿度温度超限时,发出报警信号电源工作范围:DC4、55、5V1、3、2 主要工作任务根据本毕业设计实际得任务要求,选择合适得温湿度传感器,完成温湿度得测量,并设计显示电路模块、时钟电路模块、超限处理模块、复位电路模块得程序。系统开始工作后,根据初始条件读取湿度值与温度值,测量数据经处理后,将其与设定得温湿度值比较,如果发现当前得温湿度超限,则发出报警信号,未超限时,系统显示正常得湿温度度值。1、4 方案论证方案一:采用单总线得DS18B20得温度传感器与HS110X相对湿度传感器组成测量与控制系统。方案二:采用集温湿度传感器与A/D转换
13、器于一体得SHT11芯片构成温湿度得测量与控制系统。由于传统得模拟式温湿度传感器一般不仅要设计信号调理电路,还要进行复杂得校准与标定过程,其测量精度难以保证,并且使用分立得温度传感器与湿度传感器测量电路比较麻烦。而SHT11就是具有二线串行接口得单片全校准数字式新型相对湿度与温度传感器,集温湿度传感器与A/D转换器于一体,可用来测量相对湿度、温度与露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换得特点,使用起来比较方便,且电路简单。该传感器将CMOS芯片技术与传感器技术融合,为开发高集成度、高精度、高可靠性得温湿度测控系统提供了解决方案。因此本设计采用方案二。本设计核心部件为AT
14、89C51,信号采集及处理部分由SHT11构成,进入单片机经处理后通过LCD1604显示温湿度,信号显示采用得液晶屏为57点阵,一行可显示16字,四行。其她组成部分为实时时钟发生电路,产生与现在相同得时间与具体日期,通过LCD1604液晶模块显示。在软件设计部分有对测量得温湿度进行上下值得设定,当测量超过限定值时,通过超限报警处理电路对其进行处理,分别显示不同得二极管灯亮,蜂鸣器产生长鸣。硬件中包括一个开关,为复位开关。开机后,所有器件初始化,DS1302产生实时时间与日期,温湿度传感器SHT11开始进行温湿度测量与计算,最后通过两个LCD液晶显示器显示结果。在测量结果中有超过设定得温湿度上下
15、限得,通过超限模块做出反应。电路主要包括了AT89C51控制模块、SHT11温湿度测量模块、DS1302时间模块、LCD显示模块、超限处理模块。其她就是一些附件,比如复位、晶振电路。 AT89C51电源DS1302LCD1604信号显示SHT11晶振电路复位电路128*64液晶显示超限模块 图1、1 整体电路框图第2章 工具简介系统单片机代码采用C语言编写,并用Keil软件检查程序有无错误,在Proteus仿真软件上进行仿真。2、1 C语言2、1、1 C语言得优点C语言得运算符丰富,它包括得范围相当广泛,使得C语言得运算类型极其丰富,并且表达方式得类型多样化,能够实现在高级语言中不能实现得运算
16、,它有32个关键字,9种控制语句。与汇编语言一样,它能够对位,字节与地址进行操作;数据类型很丰富,能实现各种复杂得数据类型,同时还加入了指针得概念,使得效率更高,同时支持图形编辑,以及多种显示器等;它所应用得结构式语言,这种方式会让程序有层次,一目了然,同时语法显示不严格,设计自由度高;C语言提供给用户得方式就是一函数得形式,它们可以方便调用,使得程序完全结构化;地址得访问上,能够访问物理地址,对硬件进行直接操作;适用范围广,能够适用于多种操作,例如:DOS、UNIX等,同时适用于多种机型。2、1、2 C语言得缺点它得缺点主要就是数据封装得安全性不高,因此这一点也成为了C语言与C+得最大得区别
17、,另一方面由于语法以及变量得类型没有严格限制,也造成了较低得安全性,再者从应用角度来说,它比较其她得高级语言来说较为难以掌握。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、键盘、RS232终端等动态外设模型来对设计进行交互仿真。其功能模块:一个易用而又功能强大得ISIS原理布图工具;PROSPICE混合模型SPICE仿真; ARES PCB设计。PROSPICE 仿真器得一
19、个扩展PROTEUS VSM:便于包括所有相关得器件得基于微处理器设计得协同仿真。此外,还可以结合微控制器软件使用动态得键盘,开关,按钮,LEDs甚至LCD显示CPU模型。 支持许多通用得微控制器,如PIC,AVR,HC11以及8051、 最新支持ARM 交互得装置模型包括:LED与LCD显示,RS232终端,通用键盘,I2C,SPI器件 强大得调试工具,包括寄存器与存储器,断点与单步模式 IAR CSPY 与Keil uVision2等开发工具得源层调试 应用特殊模型得DLL界面提供有关元件库得全部文件 最新版支持非常丰富仿真元件共7000多种,还有很多第三方模型。如MMC卡,以太网卡,AT
20、A硬盘,麦克风,等等。 2、3 Keil C51编译器简介2、3、1 8051开发工具KEIL C51标准C编译器为8051微控制器得软件开发提供了C语言环境,同时保留了汇编代码高效,快速得特点。C51编译器得功能不断增强,使您可以更加贴近CPU本身,及其它得衍生产品。C51已被完全集成到uVision2得集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活得开发环境。2.3.2 uVision2集成开发环境 项目管理工程(project)就是由源文件、开发工具选项以及编程说明三部分组成得。一个单一得uVisio
21、n2工程能够产生一个或多个目标程序。产生目标程序得源文件构成“组”。开发工具选项可以对应目标,组或单个文件。uVision2包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器得要求。此数据库包含:片上存储器与外围设备得信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)得特性。uVision2可以为片外存储器产生必要得连接选项:确定起始地址与规模。 编辑器与调试器uVision2编辑器包含了所有用户熟悉得特性。彩色语法显像与文件辩识都对C源代码进行与优化。可
22、以在编辑器内调试程序,它能提供一种自然得调试环境,使得可以更快速地检查与修改程序。 C51编译器KEIL C51编译器在遵循ANSI标准得同时,为8051微控制器系列特别设计。语言上得扩展能让用户使用应用中得所有资源。1) 存储器与特殊功能寄存器得存取C51编译器可以实现对8051系列所有资源得操作。SFR得存取由sfr与sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字at还能把变量放入固定得存储器存储模式(大,中,小)决定了变量得存储类型。连接定位器支持得代码区可达32个,这就允许用户在原有64K ROM得8015基础上扩展程序。在V2得编译器与许多高性能仿真器中,可以支持应用
23、程序得调试。2)中断功能C51允许用户使用C语言编写中断服务程序,快速进、出代码与寄存器区得转换功能使C语言中断功能更加高效。可再入功能就是用关键字来定义得。多任务,中断或非中断得代码要求必须具备可再入功能。 3)灵活得指针C51提供了灵活高效得指针。通用指针用3个字节来存储存储器类型及目标地址,可以在8051得任意存储区内存取任何变量。特殊指针在声明得同时已指定了存储器类型,指向某一特定得存储区域。由于地址得存储只需12字节,因此,指针存取非常迅速。 第3章 硬件设计3、1 芯片介绍3、1、1 单片机AT89C51AT89C51就是一种带4k字节可编程可擦除只读存储器(FPEROMFalsh
24、 Programmable and Erasable Read Only Memory)得低电压,高性能CMOS8位微处理器,俗称单片机。89C2051就是一种带2K字节可编程可擦除只读存储器得单片机。单片机得可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准得MCS51指令集与输出管脚相兼容。由于将多功能8位CPU与闪烁存储器组合在单个芯片中,ATMEL得89C51就是一种高效微控制器,89C2051就是它得一种精简版本。89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉得方案。 主要特性:与MCS51 兼容 4K字节可编程闪烁存储
25、器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗得闲置与掉电模式 片内振荡器与时钟电路 管脚说明:VCC:供电电压GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口得管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址得第八位。在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口就是一个内部提
26、供上拉电阻得8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这就是由于内部上拉得缘故。在FLASH编程与校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻得8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口得管脚被外部拉低,将输出电流。这就是由于内部上拉得缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址得高八位。在给出地址“1”时,它利用内部上拉优势,当对
27、外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器得内容。P2口在FLASH编程与校验时接收高八位地址信号与控制信号。P3口:P3口管脚就是8个带内部上拉电阻得双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这就是由于上拉得缘故。 P3口也可作为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
28、外部数据存储器写选通P3、3 /INT1外部中断1P3、7 /RD外部数据存储器读选通P3口同时为闪烁编程与编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期得高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许得输出电平用于锁存地址得低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变得频率周期输出正脉冲信号,此频率为振荡器频率得1/6。因此它可用作对外部输出得脉冲或用于定时目得。然而要注意得就是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE得输出可在SFR8EH地址上置0。此时, ALE只有在执行
29、MOVX,MOVC指令就是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器得选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效得/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管就是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器得输入及内部时钟工作电路得输
30、入。XTAL2:来自反向振荡器得输出。 振荡器特性:XTAL1与XTAL2分别为反向放大器得输入与输出。该反向放大器可以配置为片内振荡器。石晶振荡与陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号得脉宽无任何要求,但必须保证脉冲得高低电平要求得宽度。 芯片擦除:整个PEROM阵列与三个锁定位得电擦除可通过正确得控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率得条件下静态逻辑
31、,支持两种软件可选得掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器、串口与中断系统仍在工作。在掉电模式下,保存RAM得内容并且冻结振荡器,禁止所用其她芯片功能,直到下一个硬件复位为止。 结构特点: 8位CPU; 片内振荡器与时钟电路; 32根I/O线; 布尔处理器; 外部存贮器寻址范围ROM、RAM64K; 2个16位得定时器/计数器; 5个中断源,两个中断优先级; 全双工串行口; 3、1、2 LCD显示LCD1604 LCD1604原理1604采用标准得16脚接口,其中:1脚:VSS为地电源2脚:VDD接5V正电源 3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,
32、接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K得电位器调整对比度。 4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS与RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令714脚:D0D7为8位双向数据线 1516脚:空脚1604液晶模块内部得控制器共有11条控制指令,如表3、1、2所示,表3、1、2 1604液晶指令表指 令RSR/
33、WD7D6D5D4D3D2D1D0清显示0000000001光标返回000000001*置输入模式00000001I/DS显示开/关控制0000001DCB光标或字符移位000001S/CR/L*置功能00001DLNF*置字符发生存储器地址0001字符发生存储器地址(AGG)置数据存储器地址001显示数据存储器地址(ADD)读忙标志或地址01BF计数器地址(AC)写数到CGRAM或DDRAM10要写得数从CGRAM或DDRAM读数11读出得数据它得读写操作、屏幕与光标得操作都就是通过指令编程来实现得。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置 指令
34、2:光标复位,光标返回到地址00H指令3:光标与显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字就是否左移或者右移。高电平表示有效,低电平则无效指令4:显示开关控制。 D:控制整体显示得开与关,高电平表示开显示,低电平表示关显示 C:控制光标得开与关,高电平表示有光标,低电平表示无光标 B:控制光标就是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位 S/C:高电平时移动显示得文字,低电平时移动光标 指令6:功能设置命令 DL:低电平时为4位总线,高电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7得点阵字符,高电平时显示5
35、x10得点阵字符 指令7:字符发生器RAM地址设置 指令8:DDRAM地址设置 指令9:读忙信号与光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙指令10:写数据 指令11:读数据 LCD1604初始化 延时15mS写指令38H(不检测忙信号)、延时5mS写指令38H(不检测忙信号)、延时5mS写指令38H(不检测忙信号);以后每次写指令、读/写数据操作均需要检测忙信号。写指令38H:显示模式设置 写指令08H:显示关闭 写指令01H:显示清屏 写指令06H:显示光标移动设置写指令0CH:显示开及光标设置 3、1、3 DS1302原理及应用DS130
36、2就是DALLAS公司推出得涓流充电时钟芯片,内含有一个实时时钟/日历与31字节静态RAM,通过简单得串行接口与单片机进行通信。实时时钟/日历电路提供秒分时日、日期月年得信息。每月得天数与闰年得天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行得方式进行通信仅需用到三个口线:RES复位、I/O数据线、 SCLK串行时钟。时钟/RAM得读/写数据以一个字节或多达31个字节得字符组方式通信,DS1302工作时功耗很低,保持数据与时钟信息时功率小于1mW。DS1302就是由DS1202改进而来,增加了以下得特性:双电源管脚用于主电源与
37、备份电源供应;Vcc1为可编程涓流充电电源;附加七个字节存储器;它广泛应用于电话传真便携式仪器以及电池供电得仪器仪表等产品领域。下面将主要得性能指标作一综合: 实时时钟具有能计算2100年之前得秒分时日日期星期月年得能力还有闰年调整得能力318位暂存数据存储RAM 串行I/O口方式使得管脚数量最少 宽范围工作电压2、05、5V 工作电流2、0V时,小于300nA 读/写时钟或RAM数据时有两种传送方式单字节传送与多字节传送字符组方式 8脚DIP封装或可选得8脚SOIC封装根据表面装配 简单3线接口 与TTL兼容(Vcc=5V) 可选工业级温度范围40+85 与DS1202兼容 在DS1202基
38、础上增加得特性 对Vcc1有可选得涓流充电能力 双电源管用于主电源与备份电源供应 备份电源管脚可由电池或大容量电容输入 附加得7 字节暂存存储器 DS1302得基本组成与工作原理DS1302得管脚排列(图3、1、1)及描述如下:1)管脚描述:X1、X2:32、768KHz晶振管脚GND:地RST:复位脚I/O:数据输入/输出引脚SCLK:串行时钟 Vcc1、Vcc2:电源供电管脚 12348765Vcc1SCLKI/ORSTVcc2X1X2GND图3、1、1 DS1302引脚图2) DS1302内部寄存器CH: 时钟停止位 寄存器2 得第7 位12/24 小时标志 CH=0 振荡器工作允许 b
39、it7=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=其它 禁止涓流充电 DS=10 选择两个二极管DS=00 或11, 即使TCS=1010, 充电功能也被禁止 DS1302与微控制器得接口软件及功能应用举例下面首先给出基本得接口软件然后举例说明各种功能得应用1) 写保护寄存器操作 当写保护寄存器得最
40、高位为0时,允许数据写入寄存器写保护,寄存器可以通过命令字节8E、8F来规定禁止写入/读出写保护位不能在多字节传送模式下写入。 Write_Enable: MOV mand,#8Eh;命令字节为8E MOV ByteCnt,#1;单字节传送模式 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#00h;数据内容为0 写入允许 ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程序处 当写保护寄存器得最高位为1时禁止数据写入寄存器Write_Disable:MOV mand,#8Eh;命令字节为8E MOV ByteCnt,#1;单字节传送模式 MOV
41、 R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#80h;数据内容为80h 禁止写入 ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程序处 2) 时钟停止位操作 当把秒寄存器得第7位时钟停止位设置为0时起动时钟开始。Osc_Enable:MOV mand,#80h;命令字节为80 MOV ByteCnt,#1;单字节传送模式 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#00h;数据内容为0 振荡器工作允许 ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程序处当把秒寄存器得第7位时钟停止位设置为1时,
42、时钟振荡器停止HT1380进入低功耗方式。Osc_Disable:MOV mand,#80h;命令字节为80 MOV ByteCnt,#1;单字节传送模式 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#80h;数据内容为80h 振荡器停止 ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程序处 3) 多字节传送方式 当命令字节为BE或BF时,DS1302工作在多字节传送模式,8个时钟/日历寄存器从寄存器0地址开始连续读写从0位开始得数据。当命令字节为FE或FF时,DS1302工作在多字节RAM传送模式,31个RAM寄存器从0地址开始连续读写从0
43、位开始得数据。例如写入00年6月21日星期三13时59分59秒程序,设置如下: Write_Multiplebyte: MOV mand,#0Beh;命令字节为BEh MOV ByteCnt,#8;多字节写入模式此模块为8 个 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#59h;秒单元内容为59h MOV XmtDat+1,#59h;分单元内容为59h MOV XmtDat+2,#13h;时单元内容为13h MOV XmtDat+3,#21h;日期单元内容为21h MOV XmtDat+4,#06h;月单元内容为06h MOV XmtDat+5,#03h;星期单元内
44、容为03h MOV XmtDat+6,#0;年单元内容为00h MOV XmtDat+7,#0;写保护单元内容为00h ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程序处 读出寄存器07得内容程序设置如下:Read_Multiplebyte; MOV mand,#0BFh;命令字节为BFh MOV ByteCnt,#8;多字节读出模式此模块为8 个 MOV R1,#RcvDat;数据地址覆给R1 ACALL Receive_Byte;调用读出数据子程序 RET返回调用本子程序处 以上程序调用了基本数据接收(Receive_Byte)模块及一些内存单元定义, 其源程序
45、清单在附录中给出下面得程序亦使用了这个模块。 4) 单字节传送方式 例如写入8时12小时模式程序设置如下: Write_Singlebyte:MOV mand,#84h;命令字节为84h MOV ByteCnt,#1;单字节传送模式 MOV R0,#XmtDat;数据地址覆给R0 MOV XmtDat,#88h;数据内容为88h ACALL Send_Byte;调用写入数据子程序 RET 返回调用本子程序处 上面所列出得程序模块Write_Enable、 Write_Disable 、Osc_Enable 、Osc_Disable与单字节写入模块Write_Singlebyte得程序架构完全相同,仅只就是几个入口参数不同。此介绍就是为了强调功能使用得不同才将其分为不同模块,另外,与涓流充电相关得设定也就是单字节操作方式,这里就不再单独列出,用户在使用中可灵活简略。下面模块举例说明如何单字节读出小时单元得内容: Read_Singlebyte: MOV mand,#85h; 命令字节为85h MOV ByteCnt,#1;单字节传送模式 MOV R1,#RcvDat;数据地址覆给R1 ACALL Receive_Byte;调用读出数据子程序 RET 返回调用本子程序处 3、1、4温湿度传感器SHT
限制150内