




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. 题 目:_基于单片机的数字温度计设计_学院名称:_ _专业名称:_ _年 级:_学生姓名:_:目录摘要.1Abstract.2第1章 绪论31.1课题背景及研究意义31.2课题的设计目的31.3课题的主要工作31.4本文研究内容3第2章系统概述52.1方案选择52.1.1方案一52.1.2方案二62.2系统设计原理62.3系统组成6第3章 系统硬件设计83.1 89S51单片机83.1.1 89S51单片机管脚图83.2 温度显示模块设计93.2.1液晶模块简介93.2.2液晶显示部分与89S51的接口93.3 温度测试模块设计103.3.1 DS18B20温度传感器工作原理113.3.2
2、 DS18B20温度传感器与单片机的接口电路11第4章 系统软件设计144.1主程序设计144.2 温度采集模块144.2.1 DS18B20初始化144.5程序仿真18结论20参考文献21附录A22系统整体电路22附录B 全部程序清单23致谢28II基于单片机的数字温度计设计摘要: 在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术已经比较成熟。传统的测温元件有热电偶和热电阻。
3、而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。本文采用一种相对比较简单的方式来测量。本文介绍一种基于AT89S51单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0+100,使用LCD液晶屏显示所测温度值,能实现温度报警,灵活地掌握温度变化情况。论文详细介绍了软硬件系统的各部分组成,描述了集成温度传感器DS18B20的原理、AT89S51单片机功能和应用、液晶显示屏LCD1602的原理和显示控制过程。该电路设计新颖、功能强大、结构简单。关键词:温度测量;单片机;数字温度传感器Design of Digi
4、tal Thermometer Based on SCMAbstract: In daily life and industrial production process, often used in the detection and control of temperature, temperature is the production process and scientific experiments in general and one of the important physical parameter. In the production process, in order
5、to efficiently carry out the production, to be its main parameters, such as temperature, pressure, flow control, etc. Temperature control in the production process of a large proportion. Temperature measurement is the basis of temperature-controlled, more mature technology. Traditional thermocouple
6、and temperature components are the second resistor.The thermocouple and thermal resistance are generally measured voltage, and then replaced by the corresponding temperature, these methods are relatively complex, requiring a relatively large number of external hardware support. We use a relatively s
7、imple way to measure.This paper describes a AT89S51 microcontroller-based temperature measurement and an alarm circuit, the circuit as the temperature monitoring device DS18B20, measuring range 0 - 100 , using the LCD display of the measured temperature values, upper and lower temperature alarm can
8、be set and flexible control the temperature changes. Text gives the software and hardware focused on parts of the system components, introduces the principle of integrated temperature sensor DS18B20, AT89S51 microcontroller features and applications of the principles and LCD1602 LCD display process.
9、 The circuit design of novel, powerful, simple structure.Keywords:Temperature measurement; SCM; Digital Temperature Sensor 第1章 绪论1.1课题背景及研究意义随着新技术的不断开发与应用,近年来单片机发展十分迅速,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业1。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的一个重要的被控参数。近几年来快速发展了多种先进的温度控制方式,这些
10、控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。由于单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途,所以本设计采用单片机作为核心控制元件。1.2课题的设计目的1. 巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。2. 培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。3. 通过对课题设计方案的分析、选择、比较,熟悉单片机用系统开发、研制的过程,软硬件设计的方法
11、、内容及步骤。1.3课题的主要工作本课题的研究重点是设计一种基于单片机的数字温度计控制系统。利用数字温度传感器DS18B20,此传感器能读取被测量温度值,进行转换。课题要求如下:1. 温度测量基本范围0100。2. 温度测量误差小于1。3. 采用LCD液晶显示温度测量值。4. 具有低温和高温报警提示功能。1.4本文研究内容数字温度计采用温度传感器,将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等2,这个电信号可以使用模数转换的电路即A/D转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经
12、过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。这样就完成了数字温度计的基本测温功能。 本文是基于AT89S51单片机,采用数字温度传感器DS18B20,利用DS18B20不需要A/D转换,能直接进行温度采集显示,报警的数字温度计设计。包括传感器数据采集电路,温度显示电路,报警提示电路,单片机主板电路等组成。第2章 系统概述2.1方案选择该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中经常用到的实现方案。2.1.1方案一采用热电
13、偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成3。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,再对测量温度产生的变化电压或电流进行采集,经A/D 转换后,就可以用单片机进行数据的处理,利用显示电路,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D 转换电路,感温电路比较麻烦。系统主要包括对A/D080
14、9 的数据采集,自动手动工作方式检测,温度的显示等,这几项功能的信号通过输入输出电路经单片机处理4。此外还有复位电路,晶振电路,启动电路等。故输入硬件有手动复位键、A/D 转换芯片,处理芯片是51 芯片,执行机构有4 位数码管、报警器等。系统框图如图 2.1所示。图 2.1 热电偶温差电路测温系统框图2.1.2方案二采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性能很稳定,它能用做工业测温元件,此元件线形较好。在0100 摄氏度时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据
15、传输,由数字温度计DS18B20和微控制器AT89S51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC 机通信上传数据,另外AT89S51 在工业控制上也有着广泛的应用。该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS13
16、02以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。2.2系统设计原理利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设
17、置的温度报警限比较,超过限度后通过发光二极管报警。同时处理后的数据送到液晶显示屏中显示。2.3系统组成本课题以89S51单片机为核心设计的一种数字温度控制系统,系统整体框图主要由主控制器、单片机复位、温度传感器、时钟振荡、液晶显示、报警提示组成。系统框图如图2.2所示。图2.2 系统基本方框图1. 主控制器单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要。2. 显示电路显示电路采用LCD液晶显示屏,从P2口输出数据。3. 温度传感器温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。DS18B20输出信号全数字化。便于单片机处
18、理及控制,在0100 摄氏度时,最大线形偏差小于1 摄氏度,采用单总线的数据传输,可直接与计算机连接。用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。第3章 系统硬件设计3.1 89S51单片机89S51有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含6个中断源,2个优先级,2个16位定时/计数器。89S51的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。3.1.1 89S51单片机管脚图 图3.1 89S51单片机管脚图部分引脚说明:1. 时钟电路引脚XT
19、AL1 和XTAL2:XTAL2(18 脚):接外部晶体和微调电容的一端;在89S51 片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。2. 控制信号引脚RST,ALE,PSEN 和EA:RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。ALE/PROG(30 脚):地址锁存允许信号端。PSEN(29 脚):程序存储允许输出信号端。EA/Vpp(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。3.输入/输出端口P0/P1/
20、P2/P3:3.2 温度显示模块设计液晶显示器(LCD)英文全称为Liquid Crystal Display,它一种是采用了液晶控制透光度技术来实现色彩的显示器。和CRT显示器相比,LCD的优点是很明显的。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD液晶模块,采用一个16×2的字符型液晶显示模块。 3.2.1液晶模块简介LM016L(lcd1602)的结构及功能:LM016L液晶模块采用HD44780控制器,HD44780具有简单而功能较强的指令集,可以实现字
21、符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,LM016L液晶模块的引脚图如图3.2所示。 图3.2 1601引脚图 LM016L引脚介绍:Vss(1脚):一般接地。Vdd(2脚):接电源。Vee(3脚):液晶显示器对比度调整端,接电源时对比度最弱,接地时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。RS(4脚):RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。R/W(5脚):R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。E(6脚):E(或EN)端为使能(enable)
22、端,下降沿使能。DB0DB7(7脚14脚):传输数据接口(DB0(最低位),DB7(最高位)。3.2.2液晶显示部分与89S51的接口 如图3.3所示。用89S51的P2口作为数据线,用P3.2、P3.1、P3.0分别作为LCD的E、R/W、RS。其中E是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为1行,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,
23、完成后再统一显示。首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。 图3.3 液晶与89S51的接口3.3 温度测试模块设计DS18B20引脚如图3.4所示。 图3.4 DS18B20引脚图DALLAS 半导体公司最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测
24、温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。3.3.1 DS18B20温度传感器工作原理DS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置
25、值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。3.3.2 DS18B20温度传感器与单片机的接口电路DS18B20可以采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。如图3.5 所示单片机端口接单线总线。图3.5 DS18B20与单片机的接口电路3.4 报警提示模块设计 报警提示部分主要是由两个发光二极管实现,与单片机的连接如图3.6所示。图 3.6 报警提示电路3.5 ISP下载模块设计ISP下载模
26、块是用于从电脑上直接下载程序到单片机AT89S51与给单片机系统提供电源,其引脚图3.7所示。图 3.7 ISP下载接口3.6硬件整体设计 硬件整体设计原理图如图3.8所示。图 3.8 数字温度计的整体原理图第4章 系统软件设计4.1主程序设计本系统大致流程包括先开始,对89S51和温度传感器DS18B20的初始化,然后判定所测温度是否在设定范围内,若在设定范围内则等灭,显示温度,结束;否则将所测温度与设定值相比较,大于设定最大值则黄灯亮报警,显示温度,结束,小于设定最小值绿灯亮报警,显示温度,结束。主程序流程见图4.1。图 4.1 系统软件流程图4.2 温度采集模块4.2.1 DS18B20
27、初始化1. 先将数据线置高电平“1”。2. 延时(该时间要求的不是很严格,但是尽可能的短一点)。3. 数据线拉到低电平“0”。4. 延时750微秒(该时间的时间范围可以从480到960微秒)。5.数据线拉到高电平“1”。6. 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制7. 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。8.将数据线再次拉高到高电平“1”后结束。 DS
28、18B20的初始化大致步骤如图4.2所示: 图 4.2 DS18B20的初始化部分程序如下:void Init_DS18B20()/初始化ds1820unsigned char x=0;DQ = 1; /DQ复位tmpDelay(8); DQ = 0; tmpDelay(80); DQ = 1; tmpDelay(14);x=DQ; tmpDelay(20);4.2.2 读取温度 温度的读取主要是先读取两个字节数据,然后进行十进制转换。部分程序如下:unsigned int Readtemp()/读取温度unsigned char a=0;unsigned char b=0;unsigned
29、int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器a=ReadOneChar(); /连续读两个字节数据 /读低8位 b=ReadOneChar(); /读高8位t=b;t<<=8;t=t|a; /两字节合成一个整型变量。tt=t*0.0625; /得到真实十进制温度值,因为DS18B20可以精确到0
30、.0625度,所以读回数据的最低位代表的是0.0625度t= tt*10+0.5; /放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。return(t);4.3 液晶显示模块液晶显示部分主要显示“the temperature is”和所测温度值。显示开始先对LCD初始化,把LCD定位到首行首列,然后显示字符“the temperature”到第一行,此时第一行以写满,LCD跳到第二行,显示字符“is”和所测的温度值。其大致流程图4.3所示。图 4.3 液晶显示流程图4.4报警提示模块报警提示是由两个发光二极管实现,温度值大于37度时灯1亮,温度值小于15度
31、时灯2亮,温度值在15到37度之间两个灯都不亮。部分程序如下:unsigned int num,num1; num=Readtemp();num1=num/10;if(num1>37) d1=0;d2=1;delay(500);if(num1<15) d1=1;d2=0;delay(500);else d1=1;d2=1;4.5程序仿真4.5.1 仿真软件Proteus软件是英国Labcenter electronics公司出版的EDA工具软件5。它是目前最好的仿真单片机及外围器件的工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品
32、的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台6。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用7。应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存建立工程并添加源文件设置工程编译/汇编、连接,产生目标文件程序调试。4.5.2 仿真结果设置温度上限为37度,温度下限为15度。1.当温度为43度时,超出设定温度上限,仿真结果如图4.4所示。此时黄灯亮,实现报警。图4.4仿真12.当温度为6度时,低于设定温度下限,
33、仿真结果如图4.5所示。此时红灯亮,实现报警。图4.5 仿真23.当温度为30度时,处于设定温度范围内,仿真结果如图4.6所示。此时两灯都没亮,说明温度正常。图4.6 仿真3结论本文介绍了基于89S51单片机的数字温度计的设计,对整个硬件电路和软件程序设计进行分析,文中介真软件能更直观的反应设计的正确性,缩短设计时间一些人不能直在温室中,可以方便的控制温室中的温度,当温度超过所要求的温度时,可发生报警。参考文献附录A系统整体电路系统整体PCB图附录B 全部程序清单#include<reg51.h>#define uchar unsigned char #define uint un
34、signed int uchar i;sbit lcdrs=P30;sbit lcdrw=P31;sbit lcden=P32;sbit d1=P10;sbit d2=P11;uchar code t0="the temperature "uchar code t1=" is "uchar code wendu="0123456789" /利用一个温度表解决温度显示乱码sbit DQ = P37;/定义ds18B20总线IO/液晶显示模块void delay(uint z)uint x,y;for(x=100;x>1;x-)fo
35、r(y=z;y>1;y-);void write_com(uchar com)lcdrs=0;P2=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)lcdrs=1;P2=date;delay(5);lcden=1;delay(5);lcden=0;void init_lcd()lcden=0;lcdrw=0;write_com(0x38);write_com(0x01);write_com(0x0c);write_com(0x06);write_com(0x80);for(i=0;i<16;i+)wr
36、ite_date(t0i);delay(0);write_com(0x80+0x40);for(i=0;i<16;i+)write_date(t1i);delay(0);/温度采集模块void tmpDelay(int num)/延时函数while(num-) ;/*/void Init_DS18B20()/初始化ds1820unsigned char x=0;DQ = 1; /DQ复位tmpDelay(8); /稍做延时DQ = 0; /单片机将DQ拉低tmpDelay(80); /精确延时 大于 480usDQ = 1; /拉高总线tmpDelay(14);x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败tmpDelay(20); unsigned char ReadOneChar()/读一个字节unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0; / 给脉冲信号d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论