收藏 分销(赏)

51单片机温度传感器课程设计.pdf

上传人:丰**** 文档编号:4287225 上传时间:2024-09-03 格式:PDF 页数:19 大小:662.05KB
下载 相关 举报
51单片机温度传感器课程设计.pdf_第1页
第1页 / 共19页
51单片机温度传感器课程设计.pdf_第2页
第2页 / 共19页
51单片机温度传感器课程设计.pdf_第3页
第3页 / 共19页
51单片机温度传感器课程设计.pdf_第4页
第4页 / 共19页
51单片机温度传感器课程设计.pdf_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、基于单片机的温度传感器课程设计报告1随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中温度传感器就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的温度传感器与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,该设计控制器使用单片机STC89S52,测温传感器使用 DS18B20,用 LCD 实现温度显示,能准确达到以上要求。随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个

2、领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的温度传感器。关键词关键词:单片机,数字控制,温度传感器1.1.温度传感器设计内容温度传感器设计内容1.11.1 传感器三个发展阶段传感器三个发展阶段一是模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等特点,适合远距离测温、控温,不需要进行非线性校准,且外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135 等。二是模拟集成温度控

3、制器。模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有 LM56、AD22105 和 MAX6509。某些增强型集成温度控制器(例如 TC652/653)中还包含了 A/D 转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别。三是智能温度传感器。智能温度传感器内部都包含温度传感器、A/D 转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器基于单片机的温度传感器课程设计报告 2的特点是能输出温度数据及相关的

4、温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,当然,其智能化程度也取决于软件的开发水平。1.21.2 设计目的设计目的通过基于 MCS-51 系列单片机 AT89C51 和 DS18B20 温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,汇编语言的设计;并且把我们这两年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查

5、阅能力的作用,为毕业设计和以后工作打下一个良好的基础。1.31.3 设计任务和要求设计任务和要求以 MCS-52 系列单片机为核心器件,组成一个温度传感器,采用数字温度传感器 DS18B20 为检测器件,进行单点温度检测,检测精度为0.5 摄氏度。温度显示采用 LCD1602 显示,两位整数,一位小数。2.2.设计思路与总体框图设计思路与总体框图.采用 AT89S52 单片机作为控制核心对温度传感器 DS18B20 控制,读取温度信号并进行计算处理,并送到液晶显示器 LCD1602 显示。按照系统设计功能的要求,确定系统由 3 个模块组成:主控制器、测温电路和显示电路。基于单片机的温度传感器课

6、程设计报告3EA/VPP31XTAL119XTAL218RST9P3.7(RD)17P3.6(WR)16P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78(AD0)P0.039(AD1)P0.138(AD2)P0.237(AD3)P0.336(AD4)P0.435(AD5)P0.534(AD6)P0.633(AD7)P0.732(A8)P2.021(A9)P2.122(A10)P2.223(A11)P2.324(A12)P2.425(A13)P2.526(A14)P2.627(

7、A15)P2.728PSEN29ALE/PROG30(TXD)P3.111(RXD)P3.010GND20VCC40U1AT89C5130uFC1Cap30uFC2Cap1KR110kS1SW-PBVCCVDD3I/O2GND1U2DS18B2047KR2Res2VCCP1BNCVCCVCCVCCVCCGND12Y1XTAL10uFC3Cap Pol21122334455667788991010111112121313141415151616LCDComponent_1112233445566778899RP1Component_1 温度传感器原理图XTAL218XTAL119ALE30EA3

8、1PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122

9、PFC222PFC310uFX112MR110kR24.7k10.6DQ2VCC3GND1U2DS18B20D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016L234567891RP1RESPACK-8图 1 仿真电路图基于单片机的温度传感器课程设计报告 4PCB 版图3.3.温度传感器详细设计温度传感器详细设计3.13.1 管脚电路图管脚电路图图 2 AT89S52 管脚封装3.23.2 主要特性主要特性与 MCS-51 兼容 基于单片机的温度传感器课程设计报告54K 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留

10、时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路3.33.3 管脚说明管脚说明P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1

11、口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时

12、,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示:口管脚 备选功能 P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2

13、/INT0(外部中断 0)基于单片机的温度传感器课程设计报告 6 P3.3/INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号.RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此

14、它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时,ALE 只有在执行 MOVX,MOVC指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密

15、方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。4.4.温度传感器模块温度传感器模块基于单片机的温度传感器课程设计报告7图 3 DS18B20 相关资料4.1DS18B204.1DS18B20 原理与分析原理与分析 DS18B20 是美国 DALLAS 半导体公司继 DS1820 之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简

16、单的编程实现 912 位的数字值读数方式。可以分别在93.75 ms 和 750 ms 内完成 9 位和 12 位的数字量,并且从 DS18B20 读出的信息或写入 DS18B20 的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的 DS18B20 供电,而无需额外电源。因而使用 DS18B20 可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较 DS1820 有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。以下是 DS18B20 的特点:(1)独特的单线接口方式:DS18B20 与微处理器连接时仅需要一条口线

17、即可实现微处理器与 DS18B20 的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:+3.0+5.5 V。(4)测温范围:-55-+125。固有测温分辨率为0.5。(5)通过编程可实现 9-12 位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个 DS18B20 可以并联在惟一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。DS18B20 的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡

18、频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开基于单片机的温度传感器课程设计报告 8始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄

19、存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111

20、 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H图 4一部分温度对应值表另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作按协议进行。操作协议为:初使化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。4.24.2 DS18B20DS18B20 温度传感器与单片机的接口电路温度传感器与单片机的接口电路DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20

21、的 1 脚接地,2脚作为信号线,3 脚接电源。另一种是寄生电源供电方式,如图 4 所示单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个 MOSFET 管来完成对总线的上拉。当 DS18B20 处于写存储器操作和温度 A/D 转换操作时,总线上必须有强的上拉,上拉开启基于单片机的温度传感器课程设计报告9时间最大为 10us。采用寄生电源供电方式时 VDD 端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于 DS18B20 是在一根 I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正

22、确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。5 5软件设计软件设计系统程序主要包括主程序、读出温度子程序、温度转换子程序、计算温度子程序、显示等等。5.15.1 主程序主程序主要功能是完成 DS18B20 的初始化工作,并进行读温度,将温度转化成为压缩 BCD 码 并在显示器上显示传感器所测得的实际温度。5.25.2 读出温度子程序读出温度子程序读出温度子程序的

23、主要功能是读出 RAM 中的 9 字节,在读出时需要进行 CRC 校验,校验有错时不进行温度数据的改写。其程序流程图 1 如下图所示。基于单片机的温度传感器课程设计报告 10图 5程序流程图 15.35.3 温度转换命令子程序温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用 12 位分辩率时转换时间约为750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。流程图图 2 如下图 6程序流程图 25.45.4 计算温度子程序计算温度子程序计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算,并进行温度值正负的判定。流程基于单片机的温度传感器课程设计报告11

24、图 3 如下:图 7程序流程图 36.6.完整程序如下:完整程序如下:#include#include typedef unsigned char uint8;#define uint unsigned int#define uchar unsigned charsbit DQ=P33;/定义 DQ 引脚为 P3.3uchar code Bw10=0 x30,0 x31,0 x32,0 x33,0 x34,0 x35,0 x36,0 x37,0 x38,0 x39;/百位编码uchar code Xsw16=0 x30,0 x31,0 x31,0 x32,0 x33,0 x33,0 x34,0

25、 x34,0 x35,0 x36,0 x36,0 x37,0 x38,0 x38,0 x39,0 x39;/小数位编码基于单片机的温度传感器课程设计报告 12sbit RS=P20;sbit RW=P21;sbit EN=P22;sbit BUSY=P07;uchar wendu;uchar temp_g,temp_d;unsigned char code word1=Temperature:;void delay(uint xms)uint i,j;for(i=xms;i0;-i)for(j=110;j0;-j);void Delayus(int t)/在 11.059MHz 的晶振条件下调

26、用本函数需要 24s,然后每次计数需 16s int s;for(s=0;st;s+);/等待繁忙标志void wait(void)P0=0 xFF;do RS=0;RW=1;EN=0;EN=1;while(BUSY=1);EN=0;基于单片机的温度传感器课程设计报告13/写数据void w_dat(uint8 dat)wait();EN=0;P0=dat;RS=1;RW=0;EN=1;EN=0;/写命令void w_cmd(uint8 cmd)wait();EN=0;P0=cmd;RS=0;RW=0;EN=1;EN=0;/发送字符串到 LCDvoid w_string(uint8 addr_

27、start,uint8*p)w_cmd(addr_start);while(*p!=0)基于单片机的温度传感器课程设计报告 14w_dat(*p+);/初始化 1602void Init_LCD1602(void)w_cmd(0 x38);/16*2 显示,5*7 点阵,8 位数据接口w_cmd(0 x0c);/显示器开、光标开、光标允许闪烁w_cmd(0 x06);/文字不动,光标自动右移w_cmd(0 x01);/清屏uchar Reset()/完成单总线的复位操作。uchar d;DQ=0;/将 DQ 线拉低 Delayus(29);/保持 480s.复位时间为 480s,因此延时时间为

28、(480-24)/16=28.5,取 29s。DQ=1;/DQ 返回高电平 Delayus(3);/等待存在脉冲.经过 70s 之后检测存在脉冲,因此延时时间为(70-24)/16=2.875,取 3s。d=DQ;/获得存在信号 Delayus(25);/等待时间隙结束 return(d);/返回存在信号,0=器件存在,1=无器件void write_bit(uchar bitval)/向单总线写入 1 位值:bitval DQ=0;/将 DQ 拉低开始写时间隙基于单片机的温度传感器课程设计报告15 if(bitval=1)DQ=1;/如果写 1,DQ 返回高电平 Delayus(5);/在时

29、间隙内保持电平值,DQ=1;/Delayus 函数每次循环延时 16s,因此 Delayus(5)=5*16+24=104svoid ds18write_byte(char val)/向单总线写入一个字节值:val uchar i;uchar temp;for(i=0;ii;temp&=0 x01;write_bit(temp);Delayus(5);uchar read_bit()/从单总线上读取一位信号,所需延时时间为 15s,因此无法调用前面定义 的 Delayus()函数,而采用一个 for()循环来实现延时。uchar i;DQ=0;/将 DQ 拉低开始读时间隙 DQ=1;/然后返回

30、高电平 for(i=0;i3;i+);/延时 15s return(DQ);/返回 DQ 线上的电平值uchar ds18read_byte()/从单总线读取一个字节的值 基于单片机的温度传感器课程设计报告 16 uchar i;uchar value=0;for(i=0;i8;i+)/读取字节,每次读取一个字节 if(read_bit()value|=0 x01i;/然后将其左移 Delayus(6);return(value);int Readtemperature()/如果单总线节点上只有一个器件则可以直接掉用本函数。如果节点上有多个器件,为了避免数据冲突,应使用 Match ROM 函

31、数来选中特定器件。uchar temp_d,temp_g,k,get2,temp;Reset();ds18write_byte(0 xcc);/跳过 ROM ds18write_byte(0 x44);/启动温度转换 Delayus(5);Reset();ds18write_byte(0 xcc);/跳过 ROM ds18write_byte(0 xbe);/读暂存器 for(k=0;k4)|(temp_g&0 x0f)4)|(temp_g&0 x0f)4);w_cmd(0 xc1);w_dat(Bwtemp/100);基于单片机的温度传感器课程设计报告 18 return temp;main

32、()Init_LCD1602();w_string(0 x80,word1);while(1)wendu=Readtemperature();temp_g=wendu%100/10+0;/这里要特别注意啊少了%100 就差很多 temp_d=wendu%10+0;w_cmd(0 xc2);delay(2);w_dat(temp_g);delay(2);w_dat(temp_d);delay(2);w_cmd(0 xc4);delay(2);w_dat(0 x2e);/小数点 delay(2);w_cmd(0 xc6);delay(2);w_dat(0 xdf);/温度符号 delay(2);w

33、_dat(0 x43);基于单片机的温度传感器课程设计报告19 7.7.总结与体会总结与体会课程设计给我们带来的不只是一个项目的一系列学习,更重要的是我在这个设计过程中所锻炼的能力和培养的一种精神。在本次课程设计中,比起上学期,更多是靠自己,去查阅资料,去寻找解决办法,还有就是和同学们互相帮助学习。我们这次课题虽然不难,但要去做好它,让它实现正确的功能,也少不了不断的研究和探索,可能废寝忘食,可能绞尽脑汁。不仅是现在的学习,在以后的生活中工作也,以这样一种态度和精神去完成自己的梦想,实现自己的价值。8.8.参考文献参考文献1单片机原理及应用(第二版)张毅刚 彭喜元 彭宇 编著2 Protel Dxp 2004 简明教程和考证指南 电子工业出版社3 C 单片机原理及应用 4数字电路基础技术康华光 第五版5数字温度传感器 DS18B20 的原理与应用EB/OL

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服