基于单片机的电子万历的设计—毕业设计论文.doc

上传人:仙人指路1688 文档编号:4148659 上传时间:2023-04-07 格式:DOC 页数:45 大小:347KB
返回 下载 相关 举报
基于单片机的电子万历的设计—毕业设计论文.doc_第1页
第1页 / 共45页
基于单片机的电子万历的设计—毕业设计论文.doc_第2页
第2页 / 共45页
基于单片机的电子万历的设计—毕业设计论文.doc_第3页
第3页 / 共45页
基于单片机的电子万历的设计—毕业设计论文.doc_第4页
第4页 / 共45页
基于单片机的电子万历的设计—毕业设计论文.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《基于单片机的电子万历的设计—毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子万历的设计—毕业设计论文.doc(45页珍藏版)》请在三一办公上搜索。

1、毕业设计说明书(论文)设计(论文)题目: _ 基于单片机的万年历系统设计 专 业: 班 级: 学 号: 姓 名: 指导教师: 信息职业技术学院毕业设计(论文)任务书学 生姓 名学号01班级应电08-2专业应用电子技术设计(或论文)题目电子万年历的设计指导教师姓名职 称工作单位及所从事专业联系方式备 注讲师学院21设计(论文)内容:利用单片机控制和高性能时钟芯片设计一电子万年历。要求该系统具有如下特点和功能:1.可显示公历及农历年、月、日和时、分、秒;2.走时准确,可调整公历年、月、日和时、分、秒;3.采用市电通过电源适配器供电,当市电停电时,不但万年历所有数据不丢失,且万年历照常运行(有后备电

2、池供电,可供数年);4.万年历设置运行到2099年。进度安排:要有较为详细的时间安排(时间具体到周);第24周:查找资料,选择参考方案; 第56周:确定方案;第78周:查找资料,进行单元电路的设计;第910周:整机电路整机与分析;第1112周:整理报告,定稿; 第1314周:制作PPT,准备答辩;第15周:答辩。主要参考文献、资料(写清楚参考文献名称、作者、出版单位):1 王新颖.单片机原理及应用.北京:北京大学出版社,20082 陈忠平.单片机基础与最小系统实践.北京:北京航空航天大学出版社,20066 沈庆阳.8051单片机实践与应用.北京:清华大学出版社,20034 侯玉宝.基于Prot

3、eus的51系列单片机设计与仿真.北京:电子工业出版社,20085 何立民.单片机应用技术选编.北京:北京航空航天出版社,20066 杨振江.流行单片机实用子程序及应用实例.西安:西安电子科技大学出版社,20077 王明顺.可涓流充电的串行实时时钟芯片DS1302.北京:电子工业出版社,20098 刘和平.单片机原理及接口程序设计.北京:北京航天航空大学出版社,2008审批意见教研室负责人:年 月 日备注:任务书由指导教师填写,一式二份。其中学生一份,指导教师一份。目 录摘要1第1章绪论2第2章设计方案32.1 系统基本方案选择和论证32.1.1 单片机的选择32.1.2 显示模块的选择32.

4、1.3 键盘模块的选择32.1.4 时钟芯片的选择42.1.5 温度传感器的选择42.2 电路设计最终方案决定5第3章硬件设计63.1 AT89C52单片机63.1.1 AT89C52的信号引脚83.2 DS1302时钟模块103.2.1 内部结构及引脚113.2.2 工作原理123.2.3 寄存器和控制命令123.3 DS18B20温度采集模块143.3.1 内部结构及引脚153.3.2 测温原理153.3.3 工作过程及时序163.4 键盘模块203.5 LCD显示模块21第4章软件设计234.1 温度采集软件234.2 阳历软件设计244.3 阴历软件设计264.4 LCD显示系统294

5、.5 按键系统304.6 系统主流程图31第5章系统调试325.1 调试过程325.2 仿真结果33总结34参考文献35附录1整机电路图36附录2元件明细表37附录3 系统主程序38摘要电子万年历能显示:年、月、日、时、分、秒及星期信息,并具有可调整日期和时间功能。选用的是单片机AT89C52来实现电子万年历的功能。该电子万年历主要由单片机、LCD显示电路、DS18B20温度采集模块、DS1302时钟电路模块组成。系统以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高,同时该系统还具有功耗小、成本低的特点,具有很强的实用性。由于该系统所用元器件

6、较少,单片机所被占用的I/O口不多,因此系统具有较强的可扩展性。软件程序均采用C语言编写,便于移植与升级。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。关键词万年历;AT89C52;DS1302;DS18B20第1章绪论随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走

7、时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步。本文介绍了基于AT89C52单片机设计的电子万年历。首先介绍单片机的发展与其在中低端领域中的优势以及课题的开发意义,接着介绍了AT89C52单片机的硬件结构,并在此基础上实现了万年历基本电路的设计,然后使用单片机C语言进

8、行万年历程序的设计,程序采用模块化结构,使得逻辑关系简单明了,维护方便。第2章设计方案2.1 系统基本方案选择和论证2.1.1 单片机的选择方案一:采用传统的AT89C52作为电机的控制核心。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。方案二:采用FTC10F04单片机,还带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。其主要特点如下:8KB Flash ROM,可以擦除1000次以上,数据保存10年。方案比较:由于本系统对CPU运算速

9、度要求很高,需要执行很复杂的运算,方案一成本比较低,适合做设计,方案二运算速度高,性能好,所以两种方案都有可取之处。选用方案一作为主方案,方案二作为备用方案。2.1.2 显示模块的选择 方案一:使用传统的LED数码管显示。 数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。数码管采用BCD编码显示数字,程序编译容易,资源占用较少。但显示不够直观,太过单调,电源设计复杂。方案二:使用液晶显示屏显示时间数字。 液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪

10、烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。方案比较:LED数码管虽然操作简单,实用性高,但显示太过单调。而本设计显示内容量大,采用LCD液晶显示画面效果好,直观明了,故选用方案二。2.1.3 键盘模块的选择在对日期和时间进行控制,对日期和时间进行调节校准过程中,系统需要产生激励电流,因此需要用按键。方案一:使用独立式键盘。独立式键盘是指直接用I/O口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。方案二:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点是简单且不增加成本,这种键盘适合按键数量较多

11、的场合。方案比较:因为本设计键盘部分简单需要的按键少,故采用独立式按键选择方案二。2.1.4 时钟芯片的选择方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA.方案比较:虽然采用单片机定时计数器提供秒信号可实现功能且减少芯片的使用,但误差较大,而DS1

12、302时钟芯片是一种高性能芯片,精度高还具有闰年补偿功能,所以采用方案二。2.1.5 温度传感器的选择方案一:使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。方案二:采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。方案比

13、较:选用DS18B20数字式温度传感器,与单片机连接简单,成本低,还具有测量精度高、测量范围广等优点。而热敏电阻作为传感器,成本高,误差大。所以选用方案二。2.2 电路设计最终方案决定综上各方案所述,对此次作品的方案选定: AT89C52单片机,内部自带有6KB的Flash存储器及256KB RAM单元,不需另外扩展EEPROM及静态RAM,可以在线下载程序,易于日后的升级。DS1302时钟日历芯片,稳定性高误差小。数字式温度传感器DS18B20,测量准确,误差小范围广。LCD液晶显示,显示清晰直观明了。第3章硬件设计该系统硬件设计总体思想是以单片机为控制系统,接受感应信息并进行处理后,将控制

14、指令传出,对各个系统进行对应操作。硬件设计总体框图如图3-1所示。AT89C52 主控模块键盘模块DS18B20温度采集模块LCD 显示模块DS1302时钟模块图 3-1 硬件设计框图主控模块:根据输入信息进行处理,并将控制数据传出。显示模块:显示相关的内容。时钟模块:提供时钟数据。温度采集模块:感应和提供温度。键盘模块:对系统进行操作。3.1 AT89C52单片机单片机实质上是一个芯片。它具有结构简单、控制功能强、可靠性高、体积小、价格低等优点,单片机技术作为计算机技术的一个重要分支,广泛的应用于工业控制、智能化仪器仪表、家用电器、电子玩具等各个领域。ATMEL公司生产的AT89C52单片机

15、采用高性能的静态80C51设计,并采用先进工艺制造,还带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。其主要特点如下:8KB Flash ROM,可以擦除1000次以上,数据保存10年。技术特点有:256字节内部RAM;电源控制模式;时钟可停止和恢复;空闲/掉电模式;6个中断源;4个中断优先级;4个8位I/O口;全双工增强型TUAR;3个16位定时/计数器:T0、T1(标准80C51)和增加的T2(捕获和比较);全静态工作方式:024MHZ;AT89C52单片机的基本结构请参见图3-2,各部分情况介绍如下:中央处理器(CPU):中央处理器是单片机

16、的核心,完成运算和控制功能。AT89C52的CPU能处理8位二进制数或代码。内部数据存储器(内部RAM):AT89C52芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。内部程序存储器(内部ROM):AT89C52共有8KB掩膜ROM,用于存放程序、原始数据或表格,因此称之为程序存储器,简称内部ROM。定时器/计数器:AT89C52共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。T0CPU时钟电路ROM定时/

17、计数器RAM中断系统并行接口串行接口P3TxDx PRxDINT0INT1P2P1P0T1图3-2 AT89C52单片机结构框图并行I/O口:AT89C52共有四个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。串行口:AT89C52单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。中断控制系统:AT89C52单片机的中断功能较强,以满足控制应用的需要。AT89C52共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。全部中断分为高级和低级共二个优先级别。时钟电路:A

18、T89C52芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6MHZ和12MHZ。从上述内容可以看出,AT89C52虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此实际上它已是一个简单的微型计算机系统了。3.1.1 AT89C52的信号引脚AT89C52是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图3-2。信号引脚介绍P0.0P0.7:低八位地址/数据总线分时复用。P1.0P1.7:只能做一般I/O口。P2.0P2.7:高八位地址总线。P3.0P3.7:8位双向口线。ALE:地址锁存控制信号。在系统扩展时,

19、ALE用于控制把P0口输出的低8位地址锁存器锁存起来,以实现低位地址和数据的隔离。此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用。:外部程序存储器读选通信号。在读外部ROM时有效(低电平),以实现外部ROM单元的读操作。:访问程序存储控制信号。当信号为低电平时,对ROM的读操作限定在外部程序存储器;而当信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。RST:复位信号。当输入的复位信号延续2个机器周期以上高电平即为有效,用以完成单片机的复位初始化操作。XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引

20、线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。VCC:+5V电源。以上是AT89C52单片机芯片40条引脚的定义及简单功能说明。P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD9RXD P3.010TXD P3.111INT0 P3.212INT1 P3.313T0 P3.414T1 P3.515WR P3.616RD P3.717XTAL218XTAL119VSS2021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0

21、.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40图3-3 AT89C52引脚图信号引脚的第二功能由于工艺及标准化等原因,芯片的引脚数目是有限制的。例如AT89C52系列把芯片引脚数目限定为40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了需要与可能的矛盾。如何解决这个矛盾,兼职是唯一可行的办法,即给一些信号引脚赋以双重功能。如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。下面介绍一些信号引脚的第二功能。P3口线的第二功能:P3的8条口线都定义有第二功能,详见表3-1。EPROM存储器程序

22、固化所需要的信号:有内部EPROM的单片机芯片,为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚以第二功能的形式提供的,即:编程脉冲:30脚(ALE/PROG)编程电压(25V):31脚(/VPP)备用电源引入:由于万年历在运行过程中需要电源,而在运行过程中有可能出现突发情况,所以引入备用电源。AT89C52单片机的备用电源也是以第二功能的方式由9脚(RST/VPD)引入的。当电源发生故障电压降低到下限值时,备用电源经此端向内部RAM提供电压,以保护内部RAM中的信息不丢失。表3-1 P3口各引脚与第二功能表引脚第二功能第二功能信号名称P3.0RXD串行数据接收P3.1TXD串

23、行数据发送P3.2外部中断0申请P3.3外部中断1申请P3.4T0定时器/计数器0的外部输入P3.5T1定时器/计数器1的外部输入P3.6外部RAM写选通P3.7外部RAM读选通以上把AT89C52单片机的全部信号,分别以第一功能和第二功能的形式列出。各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此在实际使用时,都是先按需要选用第二功能信号,剩下的才以第一功能的身份作数据位的输

24、入输出使用。3.2 DS1302时钟模块DS1302是DALLAS半导体公司推出的时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。此外,DS13

25、02 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。3.2.1 内部结构及引脚电 源 控 制输入移位寄存器振荡器与分频器实时时钟命令与控制逻辑31*8RAMVcc1Vcc2GNDI/OSCLK RSTX1X2图3-4 DS1302内部结构图图3-5 ds1302引脚排列DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc

26、2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向)。SCLK为

27、时钟输入端。3.2.2 工作原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。3.2.3 寄存器和控制命令对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄

28、存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。日历、时间寄存器及控制字如表3-2所示: 表3-2 日历、时钟寄存器与控制字对照表寄存器名称765432101RAM/CKA4A3A2A1A0RD/W秒寄存器1000000分寄存器1000001小时寄存器1000010日寄存器1000011月寄存器1000100星期寄存器1000101年寄存器1000110写保护寄存器1000111慢充电寄存器1001000时钟突发寄存器1011111最后一位RD/W,为“0”时表示进行写操作,为“1”时表示读操作。DS1302内部寄存器列表如表3

29、-3所示:表3-3:DS1302内部主要寄存器分布表寄存器名称命令字取值范围各位内容写读76543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN小时寄存器84H85H01-12或00-2312/240AHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEARDS1302内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为

30、COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。我们现在已经知道了控制寄存器和RAM的逻辑地址,接着就需要知道如何通过外部接口来访问这些资源。单片机是通过简单的同步串行通讯与DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须先向DS1302写入一个命令帧,这个帧的格式如表3-2所示,最高位BIT7固定为1,BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的内部地址,最后一个BIT表示这次操作是读操作抑或是写操

31、作。物理上,DS1302的通讯接口由3个口线组成,即*RST,SCLK,I/O。其中*RST从低电平变成高电平启动一次数据传输过程,SCLK是时钟线,I/O是数据线。具体的读写时序参考图3-5,但是请注意,无论是哪种同步通讯类型的串行接口,都是对时钟信号敏感的,而且一般数据写入有效是在上升沿,读出有效是在下降沿(DS1302正是如此的,但是在芯片手册里没有明确说明),如果不是特别确定,则把程序设计成这样:平时SCLK保持低电平,在时钟变动前设置数据,在时钟变动后读取数据,即数据操作总是在SCLK保持为低电平的时候,相邻的操作之间间隔有一个上升沿和一个下降沿。SCLK*RSTI/O图3-6 DS

32、1302的命令字结构SCLK为0写入的数据SCLK为1SCLK为0读出的数据图3-7 DS1302时钟模块3.3 DS18B20温度采集模块DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使

33、系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。3.3.1 内部结构及引脚高速缓存储存器8位CRC生成器储存器和控制器温度灵敏器件低温触发器TL高温触发器TH64位ROM和单线接口电源检测配置寄存器图3-8 DS18B20内部结构图VCCDQGND图3-9 DS18B20引脚排列3.3.2 测温原理DS18B20的测温原理如图3-9所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数

34、器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图

35、3-9中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。预置低温度系数振荡器高温度系数振荡器减法计数器2斜率累加器减法计数器1=0 =0比较器预置温度寄存器LSB置1/清零+1停止图3-10 DS18B20的测温原理框图3.3.3 工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,温度寄存器

36、被预置成-55,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1,这个过程重复进行,直到计数器2计数到0时便停止。初始时,计数器1预置的是与-55相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1计数器所需要的计数个数。DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25进行比较,若低于0.25,温度寄存器的最低位就置0;若高

37、于0.25,最低位就置1;若高于0.75时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5,四舍五入最大量化误差为1/2LSB,即0.25。温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20进行计数,计数

38、门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。DS18B20工作过程一般遵循以下协议:初始化ROM操作命令存储器操作命令处理数据。1.初始化单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道DS18B20 在总线上且已准备好操作。2.ROM操作命令一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一。所有ROM操作命令均为8位长。这些命令列表如下:Rea

39、d ROM(读ROM)33h此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。此命令只能在总线上仅有一个DS18B20的情况下可以使用。如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。Match ROM( 符合ROM)55h此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。Ski

40、p ROM( 跳过ROM )CCh在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。Search ROM( 搜索ROM)F0h当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。Alarm Search(告警搜索)ECh此命令的流程与搜索ROM命令相同。但是,仅在最近一次温度测量出现告警的情况

41、下,DS18B20才对此命令作出响应。告警的条件定义为温度高于TH 或低于TL。只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的范围之内。贮存在EEPROM内的触发器值用于告警。3.存储器操作命令Write Scratchpad(写暂存存储器)4Eh这个命令向DS18B20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。Read Scratchpad(读暂存存储器)BEh这个命令读取暂存器的内容。读取将从字节0开始,一直进行下

42、去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。Copy Scratchpad(复制暂存存储器)48h这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20 则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。Convert T(温度变换)44h这条命令启动一次温度转换而无需其他数据。温

43、度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。Recall E2(重新调整E2)B8h这条命令把贮存在E2中温度触发器的值重新调至暂存存储器。这种重新调出的操作在对DS18B20上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。在这条命令发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:“0”=忙,“1”=准备就绪。Read

44、 Power Supply(读电源)B4h对于在此命令发送至DS18B20之后所发出的第一读数据的时间片,器件都会给出其电源方式的信号:“0”=寄生电源供电,“1”=外部电源供电。4.处理数据DS18B20的高速暂存存储器由9个字节组成。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。表3-4 DS18B20温度数据表温度 二进制十六进制+1250000 0111 1101 0000 07D0h+850000 0101 0101 0000 0550h+25.06250000 0001 1001 0001 0191h+10.1250000 0000 1010 0010 00A2h+0.50000 0000 0000 1000 0008h0.00000 0000 0000 0000 0000h

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号