电子系统设计培训基于DS18B20的水温控制系统.docx
- 文档编号:25354011
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:13
- 大小:351.04KB
电子系统设计培训基于DS18B20的水温控制系统.docx
《电子系统设计培训基于DS18B20的水温控制系统.docx》由会员分享,可在线阅读,更多相关《电子系统设计培训基于DS18B20的水温控制系统.docx(13页珍藏版)》请在冰豆网上搜索。
电子系统设计培训基于DS18B20的水温控制系统
《电子系统设计培训》课程报告书
题目:
基于DS18B20的水温控制系统
专业班级
学生姓名
学号
序号
提交日期
基于DS18B20的水温控制系统
摘要:
该水温控制系统采用单片机进行温度实时采集与控制。
温度信号由“一线总线”数字化温度传感器DS18B20提供,DS18B20在-10~+85°C范围内, 固有测温分辨率为0.5 ℃。
水温实时控制采用继电器控制电热丝和风扇进行升温、降温控制。
系统具备较高的测量精度和控制精度,能完成升温和降温控制。
关键字:
AT89C51,DS18B20,水温控制
1、方案设计与论证
1.1设计题目
基于DS18B20的水温控制系统。
1.2设计要求与目的
利用单片机AT89C51控制DS18B20温度传感器对水温进行控制,当水温低于预设值时,系统开始加热(点亮红色发光二极管表示加热状态),当水温达到预设温度值时自动停止加热。
预设温度值和实测温度值分别由两个3位数码管显示,范围为0~99摄氏度。
1.3电路设计
总体框图(图1.1)
图1.1
根据实验要求,控制部分采用AT89C52芯片,显示部分采用三位数码管,测温部分采用DS18B20。
2、理论分析与计算
AT89C52作为系统控制器,其算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。
而DS18B20为数字式温度传感器,可以直接输出数字量。
因此可直接与AT89C52通信,读取测温数据。
显示部分采用动态显示方式驱动2个3位七段数码管,分别显示当时和预设温度的十位、个位和小数位。
而键盘则采用按键开关直接与AT89C52相连,起到上调和下调作用。
每按上调和下调键,预设温度值增1减1。
3、单元电路设计与计算
3.1各部分电路
测温部分:
(图3.1)
图3.1
DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。
可直接与单片机通信,读取测温数据。
显示电路:
(图3.2)
图3.2
由于AT89C52的IO口充足,所以可以使数码管的段选直接与P0(要接上拉电阻),P1相连。
位选与P2相连。
键盘输入:
(图3.3)
图3.3
由于按键较少,所以可以直接与IO口相连。
3.2总电路图:
(图3.4)
图3.4
4、程序设计
4.1程序构想:
利用AT89C52从DS18B20中读取温度的数据,进过转换,用数码管显示。
并通过从DS18B20读取的温度与预设的温度比较,而决定是否加热。
而预设的温度的数值通过按键增减。
4.2全部程序及程序解析:
#include
#include
#defineucharunsignedchar//宏定义
#defineuintunsignedint
sbitds=P3^0;//DS18B20的信号线
sbitled=P3^7;//与LED相连的引脚
sbitW1=P2^0;sbitW2=P2^1;sbitW3=P2^2;//数码管的位选
sbitW4=P2^4;sbitW5=P2^5;sbitW6=P2^6;
sbitK1=P3^2;sbitK2=P3^3;//按键
uinttemp;//整数的温度数据
floatf_temp;//小数的温度数据
uintyushe=27;//预设温度
unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//数码管0-9的段选,分有无小数点
voiddelay(uintz)//延时
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voiddsreset(void)//DS18B20的初始化
{
uinti;
ds=0;
i=103;
while(i>0)i--;
ds=1;
i=4;
while(i>0)i--;
}
bittempreadbit(void)//向DS18B20读一位的数据
{
uinti;
bitdat;
ds=0;i++;
ds=1;i++;i++;
dat=ds;
i=8;while(i>0)i--;
return(dat);
}
uchartempread(void)//向DS18B20读一个字节的数据
{
uchari,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tempreadbit();
dat=(j<<7)|(dat>>1);
}
return(dat);
}
voidtempwritebyte(uchardat)//向DS18B20写
{
uinti;
ucharj;
bittestb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb)
{
ds=0;
i++;i++;
ds=1;
i=8;while(i>0)i--;
}
else
{
ds=0;
i=8;while(i>0)i--;
ds=1;
i++;i++;
}
}
}
voidtempchange(void)//从DS18B20获取温度
{
dsreset();
delay
(1);
tempwritebyte(0xcc);
tempwritebyte(0x44);
}
uintget_temp()//从DS18B20读数据
{
uchara,b;
dsreset();
delay
(1);
tempwritebyte(0xcc);
tempwritebyte(0xbe);
a=tempread();//读高8位
b=tempread();//读低8位
temp=b;
temp<<=8;
temp=temp+a;
f_temp=temp*0.0625;
temp=f_temp+0.05;
f_temp=f_temp+0.05;
returntemp;
}
voiddis_temp(uintt)//实际温度数码管显示
{
uchari;
P2=0xff;
i=t/100;
W3=0;
P0=table[i];
delay
(1);
W3=1;
i=t%100/10;
W1=0;
P0=table[i];
delay
(1);
W1=1;
i=t%100%10;
W2=0;
P0=table[i+10];
delay
(1);
W2=1;
if(t elseled=1; } voiddis_temp2(uintt)//预设数码管显示 { uchari; P2=0xff; W6=0; P1=table[0]; delay (1); W6=1; i=t%100/10; W4=0; P1=table[i]; delay (1); W4=1; i=t%100%10; W5=0; P1=table[i+10]; delay (1); W5=1; } voidked()//判断是否有按键按下 { if(K1==0) { delay(5); if(K1==0)yushe++; } if(K2==0) { delay(5); if(K2==0)yushe--; } } voidmain(void)//主函数 { uchari; while (1) { tempchange();//温度转换 for(i=10;i>0;i--) { dis_temp(get_temp());//从DS18B20读取温度数据,并显示 dis_temp2(yushe);//显示预设的温度 } ked();//判断是否有按键按下 } } 5、系统测试 5.1静态温度测试 测试方式: 由于种种条件的限制,采用模拟加热方式进行测试。 利用继电器的指示灯来显示继电器的动作。 红灯表示加热,绿灯表示降温。 测量仪器: 空调温度显示屏 测试结果如表4.1.1所示: 表5.1.1测试结果数据 标准温度/℃ 20 22 25 27 28 测量温度/℃ 19.8 22.1 24.7 26.8 27.6 误差/℃ 0.2 0.1 0.3 0.2 0.4 5.2动态温控测量 测试方式: 加热方式用体温对传感器DS18B20进行加热。 设定控制温度,记录超调温度,稳态误差。 超调温度与加热的功率有关,这里不再测量。 测量仪器: 空调温度显示屏 表5.2.1测试结果数据 设定温度/℃ 29 30 33 35 超调温度/℃ 1.3 0.9 1.1 0.6 稳态误差/℃ 0.2 0.4 0.2 0.4 6、结论 6.1结果分析 有以上的测量结果可见,系统基本上达到了所要求的指标,静态测温的精度主要由DS18B20来决定。 在控温指标中,影响系统的性能的因素很多。 最关键的是加热系统本身的物理性质及控制算法。 由于条件的限制,在本设计中采用体温进行测试。 6.2心得体会 电子仿真软件在通信工程、电子信息工程等电子信息类专业的作用日益重要。 通过仿真软件可以更加便捷地设计原理图,检查出原理图出现的错误,并加以修正,极大地减少做出实物作品时原理上的错误。 并且通过仿真软件设计作品时几乎是零成本的,我们不需要为现在手上是否有元器件而烦恼,可以大胆地充分运用自己所学到的知识去设计自己所需的电路。 本次课程设计我使用的是ISIS7Professional仿真软件和keil4编程软件。 通过本次课设,使我加深了以前所学的单片机的知识,以前似懂非懂的问题,现在都豁然开朗了。 而且熟悉了ISIS7Professional仿真软件和keil4编程软件的使用。 此设计由于我们的学业不精和时间等客观问题,未能使设计达到完善,还有很多缺点和错误,希望老师能提出改进意见,谢谢老师对我们的辛勤栽培。 7、参考文献: [1].单片机应用开发实用子程序.边春元等编著.人民邮电出版社.2005 [2].DS18B20官方英文文档.DS18B20官方英文站点下载 [3].全国大学生电子设计大赛培训系列教程.高吉祥主编.电子工业出版社.2007 [4].单片微型计算机原理及应用.张毅坤等编著.西安电子科技大学出版社.1998 [5].微型计算机接口技术.王兆月等编著.机械工业出版社.2006
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 系统 设计 培训 基于 DS18B20 水温 控制系统