基于单片机的数字温度计Word文档格式.docx
- 文档编号:14262004
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:16
- 大小:482.46KB
基于单片机的数字温度计Word文档格式.docx
《基于单片机的数字温度计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
方案一
由于本设计实现的是测温电路,首先我们可以使用热敏电阻之类的器件,利用其感温效应,将其随被测温度变化的电压或电流值采集过来,进行A/D转换后,就可以用单片机进行数据的处理,通过显示电路就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
因此,我们引出第二种方案。
方案二
我们可以采用技术成熟、操作简单、精确度高的温度传感器,在此,可以选用数字温度传感器DS18B20,根据它的特点和测温原理,很容易就能直接读取被测温度值并进行转换,这样就可以满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故在本设计中采用了方案二。
以下为利用DS18B20温度传感器的硬件构成图:
图2.1数字温度计设计总体硬件构成图
三、硬件电路设计
3.1、硬件设计总图见图3.1
图3.1硬件设计仿真总图
3.2最小系统的电路设计
单片机晶振电路、外部按键电路和复位电路的设计如图3.2所示。
XTAL1(X1)为反向振荡放大器的输入与部时钟工作电路的输入。
XTAL2(X2)是来自反向振荡器的输出。
在此使用的是12MHz的晶振;
复位电路采用手动复位与上电复位相结合的方式。
当按下按键S1时,VCC通过R1电阻给复位输入端口一个高电平,实现复位功能,即手动复位。
上电复位就是VCC通过电阻R2和电容C3构成回路,该回路是一个对电容C充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能;
以与外部按键电路通过UP和DOWN按键将I/O口直接与地相连,当按键按下时I/O口将检测到低电平。
图3.2最小系统的设计电路
3.3温度采集电路的设计
(1)、数字温度传感器DS18B20
它是一种新型的”一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。
DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持”一线总线”接口的温度传感器。
温度测量围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以与用户设定的报警温度存储在EEPROM中,掉电后依然保存。
被测温度用符号扩展的16位数字量方式串行输出;
其工作电源既可以在远端引入,也可以采用寄生电源方式产生;
多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20的性能特点如下:
▲独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条总线即可实现微处理器与DS18B20的双向通讯;
▲DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;
▲DS18B20在使用中不需要任何外围元件,全部传感元件与转换电路集成在形如一只三极管的集成电路;
▲适应电压围更宽,电压围:
3.0~5.5V,在寄生电源方式下可由数据线供电;
▲测温围-55℃~+125℃,在-10~+85℃时精度为±
0.5℃;
▲零待机功耗;
▲可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;
▲在9位分辨率时最多在93.75ms把温度转换为数字,12位分辨率时最多在750ms把温度值转换为数字,速度较慢;
▲用户可定义报警设置;
▲测量结果直接输出数字温度信号,以"
一线总线"
串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;
▲负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(2)、工作原理如下
器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;
高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
它有严格的时序概念,初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
(3)、部构造和硬件仿真图如下
图3.3DS18B20温度采集仿真图
3.4数码管温度显示电路设计
LED数码管,也叫LED数码显示器,由于它具有很高的性能价格比、显示清晰、亮度高、使用方便、电路简单、寿命长等诸多优点,长期以来一直在各类电子产品和工程控制中得到非常广泛的应用。
在单片机控制系统中,因为单片机的硬件简单、灵活等特点,非常适合使用LED数码管作为其输出设备,这样既满足了控制系统硬件简单,又能如实地显示被控系统的温度、压力、流量、高度等一些单片机的处理结果。
本设计的显示电路采用4个共阴极LED数码管,从P0口并行输出温度段码,用P2.0~P2.3四个端口输出位选,控制数码管的点亮。
其工作过程如下:
1、并行数据由P1口送至4个数码管。
2、这时P3.0、P3.1、P3.2、P3.3轮流输出低电平,LED数码管依次被点亮,显示P1传送来的数据。
由于数码管余辉效应和人眼的视觉延迟,当数码管每秒点亮50次时,就会出现静止显示的温度值。
硬件图如图3.4所示:
图3.4数码管温度显示电路
3.5声光报警电路设计
报警电路采用蜂鸣器和LED灯相结合的办法,通过两个NPN三极管来驱动,如图3.5所示。
当三极管基极为低电平时,蜂鸣器和LED灯都关闭;
当基极由低电平变为高电平时,三极管导通,这时蜂鸣器响,LED灯亮,达到声光报警的目的。
图3.5声光报警电路
四、温度传感器程序设计
4.1程序设计流程框图
4.2主要程序代码与说明
/****延时函数****/
/****DS18B20初始化以与对它读写的程序****/
voiddsreset(void)
{
uinti;
ds=0;
i=100;
while(i>
0)i--;
ds=1;
i=4;
}
bittempreadbit(void)//读1位数据函数
uinti=0;
bitdat;
i++;
//i++起延时作用
dat=ds;
i=8;
while(i>
return(dat);
}
uchartempread(void)//读1个字节的数据
uchari,j,dat;
dat=0;
for(i=1;
i<
=8;
i++)
{
j=tempreadbit();
dat=(j<
<
7)|(dat>
>
1);
}
voidtempwritebyte(uchardat)//向DS18B20写一个字节数据
uinti,j;
bittestb;
for(j=1;
j<
j++)
testb=dat&
0x01;
dat=dat>
1;
if(testb)//写1
i++;
else//写0
/***向DS18B20发送转换指令*****/
/***将转换后的数字温度转换为模拟温度*****/
/***将模拟温度通过数码管显示*****/
/***按键输入部分用来改变报警温度初值*****/
/****对报警温度进行判断并声光提示****/
/****主函数体****/
五、仿真过程与仿真结果
将硬件设计原理图和程序相结合进行软件仿真,首先,将设计好的数字温度传感器程序输入到Proteus中保存、编译生成HEX文件,将该HEX文件下载到仿真原理图,其仿真结果如下图5.1。
程序默认报警温度为25℃,DS18B20的模拟温度可以任意设置如图中设置为26.31度,通过DOWN键可以减小报警温度初值,UP键可以增大报警温度初值,并且当有按键按下时,有声光提示,数码管回显报警值。
现在通过按UP键使报警初值加1变为26℃,由于26约等于DS18B20的当前温度26.31(报警误差最大为0.5℃),所以蜂鸣器响起,LED灯闪烁。
再次按下UP后报警初值变为27℃,声光报警也都关闭。
图5.1仿真结果
六、安装与调试
6.1、电路的安装
在制作好电路板以后,就进入了电路的安装过程。
安装中要严格按照原理图和PCB图中元件的位置与参数来焊接,焊接时要注意不能让焊锡短路电路,注意元件的正负极,同时还要把握好对温度敏感元件的焊接时间。
防止元器件和线路因为高温而烧毁。
依据仿真图画出原理图和PCB图如下图6.1所示
6.2、电路的调试
焊接好电路以后,对电路的调试是一步很重要的过程,关系到各功能的实现问题与最终的成败问题。
系统板上硬件连线
(1).把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“动态数码显示”区域中的ABCDEFGH端子上。
(2).把“单片机系统”区域中的P2.0-P2.3用8芯排线连接到“动态数码显示”区域中的Y0Y1Y2Y3端子上。
(3).把DS18B20芯片插入“三路单总线”区域中的一个插座中,注意电源与地信号不要接反。
(4).把“三路单总线”区域中的对应的DQ端子连接到“单片机系统”区域中的P3.7/RD端子上。
(5).蜂鸣器接“单片机系统”区域中的P1.5端子上。
严格按照仿真原理图正确连接各线路,检查无误后上电,然后看看各功能模块是否正常。
七、结论与心得
温度的检测和控制是一个经典的课题,生活中的各个领域里经常需要检测和控制某一特定环境的温度,使之能够稳定在一定的温度围之。
这就要求系统对温度的检测
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 温度计