智能仪器课程设计08.docx
- 文档编号:3780351
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:26
- 大小:281.55KB
智能仪器课程设计08.docx
《智能仪器课程设计08.docx》由会员分享,可在线阅读,更多相关《智能仪器课程设计08.docx(26页珍藏版)》请在冰豆网上搜索。
智能仪器课程设计08
内蒙古科技大学
智能仪表综合训练设计说明书
题目:
基于DS18B20的测温仪设计
学生姓名:
张超
学号:
0867112337
专业:
测控技术与仪器
班级:
2008-3
指导教师:
王志春副教授
基于DS18B20的测温仪设计
摘要:
温度是一种基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量。
因此研究温度的测量方法和装置具有重要意义。
测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:
传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。
目前,国际上新型温度传感器正从模拟式向数字式,集成化向智能化、网络化的方向飞速发展。
本文所介绍的智能温度测量系统是基于DS18B20型数字式温度传感器,在89C52单片机的控制下,对环境温度进行实时控制的装置。
该系统测量范围宽、测量精确度高,该系统可广泛适用于人民的日常生活和工、农业生产的温度测量。
关键词:
DS18B20;测温仪
SolarthermometerdesignbasedonDS18B20
Temperatureisoneofthebasicparametersoftheenvironment,people'slivesandtheenvironmenttemperatureiscloselyrelatedto,intheprocessofindustrialproductionneedsofreal-timemeasurementoftemperature,inagriculturalproductioncannotbeseparatedfromthetemperaturemeasurement.Thestudyoftemperaturemeasurementmethodandthedevicehasimportantsignificance.Measurementoftemperatureisthekeytothetemperaturesensor,thetemperaturesensordevelopmentexperiencedthreestagesofdevelopment:
thetraditionalseparationoftemperaturesensor,analogintegratedtemperaturesensor,intelligentintegratedtemperaturesensor.Atpresent,thenewtemperaturesensorfromanalogtodigital,integratedtotheintelligent,networkeddirectionofrapiddevelopment.ThispaperintroducestheintelligenttemperaturemeasuringsystembasedonDS18B20typedigitaltemperaturesensor,inthe89C51underthecontrolofasingle-chipmicrocomputer,theambienttemperaturereal-timecontroldevice.Thesystemwithwidemeasuringrange,highmeasurementaccuracy,thesystemcanbewidelyusedinpeople'sdailylifeandindustrialandagriculturalproduction,temperaturemeasurement.
Keywords:
DS18B20;thermometer
前言
日常生活及工农业生产中经常要用到温度的检测及控制,在冶金、食品加工、化工等工业生产过程中,广泛使用的各种加热炉、热处理炉、反应炉等,都要求对温度进行严格控制。
在日常生活中,电烤箱、微波炉、电热水器、烘干箱等电器也需要进行温度检测与控制。
传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。
而采用单片机对温度进行控制,不仅具有控制方便,简单和灵活等优点,而且可以大幅度提高温度控制的技术指标。
测量温度的关键是温度传感器,温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。
在测温电路中,可以使用热敏电阻之类的器件利用其感温效应,将随被测温度变化的电压或电流采集过来,先进行A/D转换,然后用单片机进行数据的处理,再在显示电路上,将被测温度显示出来。
这种设计需要用到A/D转换电路,因此感温电路的设计比较复杂。
进而想到采用智能温度传感器来设计数字温度计。
本数字温度计的设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,其温度值可以直接被读出来,通过核心器件单片机AT89C52控制温度的读写和显示,用LED数码管显示。
测温范围为-55℃~+125℃,最大分辨率可达0.0625℃。
而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
按照系统设计功能的要求,确定系统有3个模块组成:
主控制器、温度传感器DS18B20及显示电路。
控制器使用AT89C52,温度传感器使用DS18B20,用4位共阴极LED数码管以静态显示实现温度显示。
系统程序主要包括主程序、温度控制子程序及显示子程序等等。
综上所述,本设计以智能集成温度传感器DS18B20为例,介绍基于DS18B20传感器的数字温度计的设计,该设计适用于人们的日常生活及工农业生产中用于温度的检测及控制。
第一章设计任务及方案分析
1.1设计目的和要求
运用<<单片机原理及应用>>课程等相关知识,根据题目要求进行控制电路原理设计、电路板设计与制作、控制软件设计、系统调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等得到显著提高。
1.2设计方案
智能温度测量系统主要由数字温度计、单片机控制电路、数字式温度显示电路三部分组成。
系统原理框图如图1所示。
图1智能温度测量系统原理框图
1.3设计思路
在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。
本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进智能温度传感器DS18B20作为检测元件,测温范围为-55℃~+125℃,最大分辨率可达0.0625℃。
DS18B20可以直接读出被测量的温度值,而采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
1.4系统的性能指标
温度测量范围:
-55℃-+125℃
温度测量精度:
0.0879℃
电路板工作温度:
0℃-+70℃
第二章电路组成及工作原理
2.1温度传感器功能模块
美国DALLAS公司生产的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器,使用户可轻松地组建温度传感器检测网络,为检测系统的构建引入全新的概念。
DS1820特点如下:
(1)DS1820在与微处理器连接时仅需要一条传输线即可实现两者之间的双向通讯。
(2)DS1820支持多点组网络功能,多个DS1820可以并联在唯一的三线上,实现组网多点测量。
(3)DS1820在使用中不需要任何外围元件,其传感元件及A/D转换电路都集成在一只形如三极管的芯片内。
(4)DS1820可把温度信号直接转换成串行数字信号供单片机处理,测量结果以9~12位数字量方式串行传送。
由于每片DS1820含有唯一的串行序列号,所以在一条总线上可挂接任意多个DS1820芯片。
从DS1820读出的信息或写入DS1820的信息,仅需要一根传输线(单总线接口)。
读写及温度变换功率来源于数据总线,总线本身也可以向所挂接的DS1820供电,而无需额外电源。
DS1820提供九位温度读数,构成多点温度检测系统而无需任何外围硬件。
为DS1820的内部框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL解发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。
图2.1是DS1820温度传感器的封装图与引脚接线方式
,DS1820引脚及功能及指标如下:
GND:
地; VDD:
电源电压
I/O:
数据输入/输出脚(单线接口,可作寄生供电)
图2.1DS1820封装图与接线方式
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2.2所示。
图2.2DS18B20内部结构图
64位ROM的位结构如图2.3所示。
开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
非易失性温度报警器触发器TH和TL,可通过软件写入户报警上下限。
图2.364位ROM结构图
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可擦除的EERAM。
高速暂存RAM的结构为8字节的存储器。
头2个字节包含测得的温度信息,第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。
该字节各位的定义如图2.4所示。
低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要改动,R1和R0决定温度转换得精度位数,即用来设置分辨率,定义方法如图2所示。
图2.4配置寄存器
图2DS18B20分辨率的定义规定
由表1可见,DS18B20温度转换的时间比较长,而且设定的分辨率越高。
所需要的温度转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑.高速暂存RAM的第6、7、8字节保存未用,表现为逻辑1。
第9字节读出前面所有8字节的CRC码可用来检验数据从而保证通信数据的正确性。
当DS18B20接收温度转换命令后,开始启动转,转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
温度值格式如图3所示。
图3温度数据值格式
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码转换为原码,再计算十进制。
表2是一部分温度值对应的二进制温度数据。
表2DS18B20温度与测得值对应表
(5)DS18B20控制方法在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。
无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。
CPU对DS18B20的访问流程是:
先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。
DS18B20每一步操作都要遵循严格的工作时序和通信协议。
如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
步骤分三步完成:
①系统通过反复操作,搜索DS1820序列号;②启动所有在线DS1820做温度A/D变换;③逐个读出在线DS1820变换后的温度数据。
2.2STC89C52单片机
STC89C52是一种4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC的STC89C52是一种高效微控制器。
1.主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
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口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,stc89C52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止,其引脚如图2.5所示。
2.5STC89C52单片机引脚
2.374LS164移位寄存器
74HC164、74HCT164是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。
74HC164、74HCT164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。
数据通过两个输入端(DSA或DSB)之一串行输入;任输入端可以用作高电平使能端,控制另一输入端的数据输入。
74HC164、74HCT164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。
数据通过两个输入端(DSA或DSB)之一串行输入;任输入端可以用作高电平使能端,控制另一输入端的数据输入。
两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
引脚信息如图2.6所示:
图2.674ls164引脚信息图
时序图如图2.7所示:
图2.774ls164时序图
2.4晶振电路
AT89C51单片机芯片内部设有一个反向放大器所构成的振荡器,X1和X2分别为振荡电路的输入端和输出端,时钟信号由外部或内部产生,在X1和X2引脚上外接定时元器件,内部振荡电路就会产生自激振荡。
本系统采用的定时元器件为石英晶体和电容组成的并联谐振回路。
晶体振荡频率为12MHz,C1、C2的值为33pF电容的大小可起频率微调的作用,电路如图2.8所示。
图2.8晶振电路
2.5复位电路
单片机具有多种复位电路,本系统采用电平式开关复位与上电复位方式,具体电路如图8所示。
当上电时,C3相当于短路,给RST端输入大于24个振荡周期以上的高电平脉冲,使单片机复位,在正常工作时,按下开关使单片机复位。
电路如图2.9所示。
图2.9复位电路
2.6显示电路
显示电路采用4位的led显示数码管,共阴极接法,到的温度,显示的度范围为:
-999.9~999.9℃,其显示电路如图2.10所示。
图2.10显示电路
第三章软件设计
3.1主流流程图
主流流程图3.1图所示。
首先做中断初始化处理,接着开机显示0000,最后不断处理温度。
图3.1程序主流程图
其程序代码如下:
main()
{
for(h=0;h<4;h++)//开机显示"0000"
{display[h]=0;}
ow_reset();//开机先转换一次
write_byte(0xcc);//SkipROM
write_byte(0x44);//发转换命令
display1_164();
unit();
while
(1)
{
work_temp(read_temp());//处理温度数据
}
}
3.2显示子程序
显示子程序如3.2所示,首先求取温度的百十个十分诸位,然后分时的送入数码管显示。
并使其定时一分钟刷新一次。
图3.2显示子程序流程图
其显示子程序如下:
voidclk1_164()//74ls164
(1)的转换
{
uchari;
for(i=0;i<8;i++)//bai位
{
led_clk=0;
delay(20);
led_date=(dat1&0x80)>>7;
dat1<<=1;
led_clk=1;
delay(20);
}
for(i=0;i<8;i++)//十位
{
led_clk=0;
delay(20);
led_date=(dat2&0x80)>>7;
dat2<<=1;
led_clk=1;
delay(20);
}
for(i=0;i<8;i++)//shi位
{
led_clk=0;
delay(20);
led_date=(dat3&0x80)>>7;
dat3<<=1;
led_clk=1;
delay(20);
}
for(i=0;i<8;i++)//shifen位
{
led_clk=0;
delay(20);
led_date=(date4&0x80)>>7;
date4<<=1;
led_clk=1;
delay(20);
}
}
3.3Ds18b20采集温度子程序
Ds18b20采集温度子程序如图4.3所示。
主要用来读取温度值,并通过单总线送入单片机做温度处理和显示。
图4.3Ds18b20采集温度子程序
read_temp()
{
ow_reset();//总线复位
delay(200);
write_byte(0xcc);//发命令
write_byte(0x44);//发转换命令
ow_reset();
delay
(1);
write_byte(0xcc);//发命令
write_byte(0xbe);
temp_data[0]=read_byte();//读温度值的第字节
temp_data[1]=read_byte();//读温度值的高字节
temp=temp_data[1];
temp<<=8;
temp=temp|temp_data[0];//两字节合成一个整型变量。
returntemp;//返回温度值
}
参考文献
[1]李光飞,楼然苗,胡佳文等.单片机课程设计实例指导.北京:
北京航空航天大学出版社,2004,105-125
[2]
[3]周月霞,孙传友.DS18B20硬件连接及软件编程.传感器世界,2001,12:
25-29
[4]马云峰.单片机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 仪器 课程设计 08