《基于51单片机的数字温度计设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的数字温度计设计.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 课程设计题目: 基于51单片机的数字温度计设计 姓 名: 张鹏 班级名称: 采矿1109班 学 号: 2011002828 指导老师: 曹金燕 2015年 学习文档 仅供参考设计任务书课程设计题目:基于51单片机的数字温度计设计学生:张鹏学号:2011002828专业:采矿工程班级:1109班1、设计的主要任务及目标本设计是以AT89S51单片机为核心,利用DS18B20温度传感器作为温度采集点,通过3个SM4105共阳极数码管以及74LS244等元件组成的数字温度计。此温度计能够根据温度的变化自动调节显示。最大显示温度为100度,最小显示-10度。2、主要内容189S51单片机的原理2DS
2、18B20温度传感器结构374LS224反相器简介4电路原理图3、基本要求1严格按照学院机电专业课程设计格式要求2必须从硬件和软件方面对设计内容进行阐述3在附录中包有整个电子琴系统设计的电路图4设计时,能正确理解电子琴系统设计的目的和要求,掌握系统设计的一般程序5通过设计具有收集参考资料加以消化、归纳的能力6通过设计具有调研、收集、查阅资料、分析判断确定设计方案的能力7通过设计具有归纳、整理技术资料,撰写技术文件的能力0通过设计具有阐述论证设计成果及其技术答辩的能力4、主要参考文献1 张洪润单片机应用技术教程M北京:清华大学出版社,19972 李广弟单片机基础M北京:北京航空航天大学出版社,2
3、0013 万光毅单片机实验与实践教程M北京:北京航空航天大学出版社,20014 何立名MCS-51系列单片机应用系统设计系统配置与接口技术M北京:北京航空航天大学出版社,19905 蔡美琴MCS-51单片机系统及应用M北京:高等教育出版社,19926 马彪单片机应用技术M上海:同济大学出版社,20097 陈忠平单片机原理及接口M北京:清华大学出版社,20078 李华MCS-51系列单片机实用接口技术M北京:北京航空航天大学出版社,20009 韩志军,刘新民数字温度传感器DS18B20 及其应用J 南京工程学院学报:自然科学版,20031:9-1410 陈惠明,李燕华,王静滨单片机控制 的软硬件
4、接口技术及应用J 微电脑信息,20051:139-141学习文档 仅供参考目 录第1章概述11.1 简述11.2 任务描述11.3 设计思路2第2章系统主要元器件介绍22.1 单片机的选用及功能介绍22.2 DS18B20 温度传感器介绍5引脚功能62.2.4 DS18B20的测温原理122.3 74LS244反相器简介14第3章硬件电路的设计153.1 接口设计153.2 主板电路设计153.3 其他电路设计16第4章软件设计19主程序194.2 读出温度子程序194.3 温度转换命令子程序204.5 显示数据刷新子程序214.6 主要设计程序214.7 调试23第5章结束语24参考文献25
5、致 谢26附录一27学习文档 仅供参考摘 要本文主要介绍了一种基于AT89S51单片机和DS18B20数字温度传感器来进行测温的方法。具体设计时,作者对AT89S51和DS18B20进行了接口电路设计,同时利用74LS244进行段码驱动、实现数码管的显示输出;并在此基础上,通过软件设计实现温度的数据采集和传输。由于DS18B20数字温度传感器是单总线器件,与AT89S51单片机组成一个测温系统,具有线路简单、体积小等特点,并且由于是在同一根通信线上,因此可以扩展、挂接很多这样的测温系统,十分方便。关键词:数字温度计;AT89S51;DS18B20;74LS2第一章概述1.1 简述单片机在测控领
6、域中具有十分广泛的应用,它既可以直接处理电信号,也可以间接处理温度、湿度、压力等非电信号。由于该特点,因而被广泛应用于工业控制领域。 另一方面,由于单片机的接口信号是数字信号,因此使用它来进行温度、湿度、压力等这类非电信号的信息处理,必须使用对应的传感器进行A/D或D/A转换,最后再传输给单片机进行最终的数据处理和显示。在测温领域,人们通常使用温度传感器,将温度信息转换为电流或电压进行输出,进而完成数据的处理和显示。本文正是基于温度传感器和单片机而构建的电路,进而完成温度的测量和显示。 温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器。目前使用最广
7、的是智能温度传感器 (亦称数字温度传感器) ,是在20世纪90年代中期问世的。它是微电子技术、电脑技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配于各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍了智能集成温度传感器DS18B20的结构特征及控制方法,并以此传感器为测温元件,AT89S51单片机为控制核心,构成的数字温度测
8、量装置,并对其的工作原理及程序设计作了详细的介绍。1.2 任务描述设计要以AT89S51单片机为核心,利用DS18B20温度传感器作为温度采集点,通过3个SM4105共阳极数码管以及74LS244等元件组成的数字温度计。此温度计能够根据温度的变化自动调节显示。最大显示温度为100度,最小显示-10度。1.3 设计思路单片机的接口信号是数字信号。要想用单片机获取温度这类非电信号的信息,必须使用温度传感器,将温度信息转换为电流或电压输出。如果转换后的电流或电压输出是模拟信号,还必须进行AD转换,以满足单片机接口的需要。传统的温度检测大多以热敏电阻作为温度传感器。但是,热敏电阻的可靠性较差、测量温度
9、准确率低,而且还必须经专门的接口电路转换成数字信号后才能由单片机进行处理。本文介绍一种采用数字温度传感器实现的基于单片机的数字温度计。设计单片机数字温度计需要考虑以下3个方面: 温度传感器芯片的选择; 单片机和温度传感器的接口电路; 控制温度传感器实现温度信息采集以及数据传输的软件。学习文档 仅供参考第1章 系统主要元器件介绍2.1 单片机的选用及功能介绍AT89S51 是美国ATMEL公司生产的低功耗,高性能CMOS型8位单片机,片内含4Kbytes 的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚。它集Flash ROM程序存储器,并支持可在线编程ISP功能;另一方面,由
10、于价格低、因而被广泛应用于许多高性价比的场合,如工业控制、消费电子等各种控制领域,对于简单的测温系统而言,它已经足够。单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。设计中采用89S51单片机。其主要特性如下: 与MCS-51产品指令系统完全兼容; 4K字节可编程闪烁存储器; 1000擦写周期; 4.05.5V工作电压范围; 全静态工作:0Hz-33MHz; 程序存储器具有3级加密保护; 128*8位内部RAM; 32可编程I/O线; 两个16位定时器/计数器; 6个中断源和2个优先级; 可编
11、程全双工串行通道; 图2.1 89S51单片机引脚图 低功耗的闲置和掉电模式; 看门狗WDT及双数据指针; 具有JTAG接口,可方便地在线编程或在系统编程。AT89S51 单片机为40引脚双列直插式封装。其引脚排列和逻辑符号如图2.1 所示。各引脚功能简单介绍如下: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。
12、P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址
13、“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD(串行输口);P3.1TXD(串行输出口) ;P3.2 INT0(外部中断0);P3.3 INT1(外部中断1) ;P3.4 T0(定时器0外部输入)
14、;P3.5 T1(定时器1外部输入);P3.6 WR (外部数据存储器写选通);P3.7 RD (外部数据存储器读选通)。同时P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在
15、SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。 EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振
16、荡器的输出。2.2 DS18B20 温度传感器介绍DS18B20是美国DALLAS半导体公司推出的一款智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式,可以分别在93.75750ms内完成912位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需一根线读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无须额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。它在测温精度、转换时间、传输距离、分辨率等方面都给用户的使用带来了方便,效果也令人满意。其主要特点如下:
17、独特的单线接口方式:DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。 可用数据线供电,电压范围:+3.0+5.5V。 测温范围:55125,固有测温分辨率为。 通过编程可实现912位的数字读书方式。 用户可自设非易失性的报警上下限值。 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作DS18B20的管脚排列、各种封装形式如图 所示NC NC Vdd NC N
18、C NC 1 2 3 4 6 5 DQ GN 7 8 DS18B20Z 8-PIN SOIC(150-MIL) GND DQ Vdd N N N DS18B20P TSOC 1 2 3 4 6 5 图2.2 DS18B20的外形及管教排列DS18B20为三引脚元件,外形同普通三极管,见图2.1,引脚功能详见表2-1表2-1 DS18B20详细引脚功能描述序号 名称 引脚功能描述 1 GND 地信号 2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 2.2.2 DS18B20内部结
19、构DS18B20主要由64位ROM、温度传感器、非挥发的温度报警触发器TH和TL及配置寄存器等组成,见图2.3。 64 位 ROM 和 单 线 接 口 高速缓存 存储器与控制逻辑 温度传感器 高温触发器TH 低温触发器TL 配置寄存器 8位CRC发生器 VDD DQ VD1 VD2 C 图2.3 DS18B20内部结构图1) 64位光刻ROM。开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。64位闪速ROM的结构如下表2-2所示。表2-2 ROM结构8b位检验CRC 48位序列
20、号 8位工厂代码10H MSB LSB MSB LSB MSB LSB2) 9字节高速缓存存储器,结构如表2-3所示表2-3 DS18B20内部存储器结构字节0 温度测量值LSB50H 字节1 温度测量值MSB50H E2PROM 字节2 TH高温寄存器 - TH高温寄存器 字节3 TL低温寄存器 - TL 低温寄存器 字节4 配位寄存器 - 配位寄存器 字节5 预留FFH 字节6 预留0CH 字节7 预留IOH 字节8 循环冗余码校验CRC DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PRAM。高速暂存RAM的结构为8字节的存储器。头2个字节包含
21、测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。它的内部存储器结构和字节定义如表2-4和表2-5所示。低5位一直为,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。 表2-4 DS18B20字节定义TM R1 R0 1 1 1 1 1 DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,详见表2-5。表2-5 DS18B20分辨率设置R1 R0 分辨率/位温度最大转向时间/
22、ms 0 0 9 93.75 0 1 10 187.5 1 0 11 375 1 1 12 750 由表2-5可见,分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。3) 温度数据值格式。LSB形式表示。温度值格式见表2-6所示。表2-6 温度数据值格式23 22 21 20 2-1 2-2 2-3 2-4 LS 字节 S S S S S 26 25 24 MS字节 其中“S”为标志位,对应的温度计算:当符号位S0时,
23、表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2-7是一部分温度值对应的二进制温度数据。表2-7一部分温度对应值表温度/ 二进制表示 十六进制表示 +125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H +25.0625 0000 0001 1001 0000 0191H +10.125 0000 0000 1010 0001 00A2H +0.5 0000 0000 0000 0010 0008H 0 0000 0000 0000 100
24、0 0000H -0.5 1111 1111 1111 0000 FFF8H -10.125 1111 1111 0101 1110 FF5EH -25.0625 1111 1110 0110 1111 FE6FH -55 1111 1100 1001 0000 FC90H 2.2.3 DS18B20的工作原理工作时,主机控制DS18B20使各种命令对DS18B20进行操作:初始化DS18B20,发ROM功能指令、发存储器操作指令。这些ROM和RAM指令集如表2-8和表2-9所示。学习文档 仅供参考表2-8 ROM指令表指令 约定代码 功 能 读ROM 33H 读DS18B20 ROM中的编码
25、 匹配ROM 55H 发出此命令之后,接着发出64位ROM编码,访问单线总线上与该编码相对应的DS18B20 使之作出响应,为下一步对该DS18B20的读写作准备 搜索ROM 0F0H 用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备 跳过ROM 0CCH 忽略64位ROM地址,直接向DS18B20发温度变换命令,适用于单片工作。 报警搜索 命 令 0ECH 执行后,只有温度超过设定值上限或者下限的片子才做出响应 表2-9 RAM指令表温度变换 44H 启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中 读暂存器 0BE
26、H 读内部RAM中9字节的内容 写暂存器 4EH 发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据 复制暂存器 48H 将E2PRAM中第3,4字节内容复制到E2PRAM中 重调E2PRAM 0BBH 将E2PRAM中内容恢复到RAM中的第3,4字节 读 供 电 方 式 0B4H 读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1” 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:1. 每一次读写之前都必须要对DS18B20进行复位;2. 复位成功后发送一条ROM指令;3.
27、 最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1560微秒左右后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。其工作时序包括初始化时序、写时序和读时序,具体工作方法如图2.4,2.5,2.6所示。(1) 初始化时序 图2.4 初始化时上拉电阻将总线拉高,延时1560us,并进入接受模式,以产生低电平应答脉冲,假设为低电平,再延时480us。(2) 写时序图2.5 写时序写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总
28、线拉低开始。写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。学习文档 仅供参考(3) 读时序 总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us。2.2
29、.4 DS18B20的测温原理DS18B20的测温原理如图所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预
30、置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值到达被测温度值,这就是DS18B20的测温原理。另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20发复位脉冲发ROM功能命令发
31、存储器操作命令处理数据。增加 停止 减法计数器 斜坡累加器 减到0 减法计数器 预 置 低温度系数 振 荡 器 高温度系数 振 荡 器 计数比较器 预 置 温度寄存器 减到0 图2.7 DS18B20测温原理图在正测温情况下,DS1820的测温分辨力为,可采用下述方法获得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令BEH读出以为分辨率的温度测量结果,然后切去测量结果中的最低有效位LSB,得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。考虑到DS1820测量温度的整数部分以、为进位界限的关系,实际温度Ts可用下式计算: Ts=+(CD
32、-Cs)/CD学习文档 仅供参考2.3 74LS244反相器简介74LS244为三态输出的八组缓冲器和总线驱动器,其主要电器特性的典型值如表2-10所示(不同厂家具体值有差异):表2-10 电器特性的典型值 型号 tPLH tphl PD 74LS244 12ns 12ns 110Mw 1) 引出端符号:1A11A4,2A12A4输入端/1G, /2G三态允许端(低电平有效)1Y11Y4,2Y12Y4输出端2) 逻辑图:图2.8 双列直插封装3) 功能表:图2.9 功能表学习文档 仅供参考第2章 硬件电路的设计硬件电路由单片机主控电路、显示电路、DS18B20温度传感器、电路晶振电路、复位电路等组成,通过接口的设计将各电路与单片机引脚接口相连接组成完整的数字温度计硬件电路。详细见附录一3.1 接口设计DS18B20可以采用两种方式供电:一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源;另一种是寄生电源供电方式,如图3.1所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。本设计采用