目录1课题背景1.1系统设计1.2总体方框图2设计方案简述2.2DS18B20数字温度传感器2.2.1DS18B20的性能特点错误!未定义书签。.2.2DS18B20的管脚分布2.2.3DS18B20的内部结构和工作方式2.3AT89C52单片机2.41602型LCD2.4.11602型LCD的特性2.4.21602型LCD的操作控制2.5DS1302模块分析2.6zigbee无线发送模块3.1温度采集模块3.2单片机控制系统3.3温度和时间显示模块3.4软件设计3.4.1DS18B20的温度采集程序3.5系统主程序4设计结果及分析4.1测试环境及工具4.2测试方法和测试结果5总结附录一系统总电路图附录二实验结果测试图附录三系统源代码摘要I本次单片机课程设计本人设计了智能数字温度计,其功能主要有,可以测试温度,精确到小数点后三位;其次还附加了时钟功能,其可以显示秒到年的具体时间;并且本人还利用了zigbee无线传输模块,将采集到的温度值无线发送到电脑上。。。。具体设计在下面详细分析。关键词:温度计;ds18b20,zigbee模块,ds1302,89c521课题背景1.1系统设计本课程设计的任务是设计一个数字温度计。由于在生产生活中都有很多领域需要测量温度,所以温度计的好坏即测量灵敏度,测温范围,稳定度以及实用性和适用性就显得尤为重要。传统温度计通常利用固体、液体、气体受温度的影响而热胀冷缩等的现象为设计的依据,因此这种方法无论从设计原理还是视觉读数都有很大的误差。本次课程设计以DS18B20作为数字温度传感器,其具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,可以大大提高测量温度的精度,并且该设计还具备了无线传输功能,采集到的温度可实时地传送到电脑,有利于对温度设备的远程监控,和远程控制,这是未来智能设备(包括智能家居)的发展方向。。。1.2总体方框图现将系统模块总体设计框图列于下图1中:图1总体设计方框图单片机控制系统LCD显示模块温度采集模块复位电路晶振电路按键控制电路过温报警读取ds1302时钟Zigbee无线发送温度到电脑II2设计方案简述2.1数字温度计设计方案论证由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。2.1.2方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。2.2DS18B20数字温度传感器DS18B20温度传感器是美国DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。2.2.1DS18B20的性能特点DS18B20从功能和技术的角度来说有以下性能特点:采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)测温范围为-55℃至+125℃,测量分辨率最小为0.0625℃内含64位经过激光修正的只读存储器ROMDS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内III适配各种单片机或系统机测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力用户可分别设定各路温度的上、下限适应电压范围宽,3.0~5.5V,在寄生电源方式下可由数据线供电2.2.2DS18B20的管脚分布独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需备用电源测量温度范围为-55℃至+125℃,华氏相当于是-10℉至+85℉范围内精度为±0.5℉。其引脚排列见图2和表1。123图2DS18B20的管脚分布图表1DS18B20的管脚分布说明2.3.3DS18B20的内部结构和工作方式DS1820主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分内部,其内部结构框图如图3所示。图3DS18B20内部结构64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。本实验采用第一种。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1序号名称引脚功能描述1Vcc可选择的Vcc引脚。当工作于寄生电源时,此引脚必须接地。2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3GND地信号。C64位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器VddIV的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍关闭就重复上述过程,直到温度寄存器值大致等于被测温度值。由于DS18B20的单线通讯功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行,操作协议为:初始化DS18B20发复位脉冲写ROM功能指令发存储器操作命令处理数据。DS18B20有六条控制命令如表2所示:指令约定代码操作说明温度转换44H启动DS18B20进行温度转换读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM中重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU表2DS18B20的控制指令2.3AT89C52AT89C52是此次课程设计的核心部分。其管脚图如下:AT89C52管脚图AT89C52是低功耗、高性能的CMOS8位单片机。片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。另外,AT89C52的指令系统和引脚与80C52完全兼容。AT89C52各管脚功能如下:VCC:供电电压;GND:接地;P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。;P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流;P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流;P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入;P3口管脚功能:P3.0是RXD(串行输入口);P3.1是TXD(串行输出口);P3.2是/INT0(外部中断0);P3.3是/INT1(外部中断1);P3.4是T0(记时器0外部输入);P3.5是T1(记时器1外部输入);P3.6是/WR(外部数据存储器写选通);P3.7是/RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许输出电平用于锁存地址的地位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。V2.41602型LCD本温度计的读数的显示是通过1602型LCD实现的,其具有微功耗、体积小、显示内容丰富、超薄轻巧的特点,常用在袖珍式仪表和低功耗应用系统中。2.4.11602型LCD的特性1602型LCD归纳起来有以下6大特点:+5V电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAM2.4.21602型LCD的操作控制1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A'。以下是1602的16进制ASCII码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号'!'的ASCII为0x21,字母B的ASCII为0x42。附加功能模块2.5DS1302模块分析DS1302的RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。其管脚图如下:DS1302管脚图各引脚功能:Vcc1为后备电源,VCC2为主电源,X1和X2是振荡源,SCLK为输入端RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数