基于单片机的温控系统的技术报告Word下载.docx
- 文档编号:20489699
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:13
- 大小:74.59KB
基于单片机的温控系统的技术报告Word下载.docx
《基于单片机的温控系统的技术报告Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的温控系统的技术报告Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
管脚P0.0~P0.7用于输出温度各位上的数字,连接LED数码管,作为显示内容;
P2.0~P2.3管脚作为LED数码管轮流显示的控制信号的输出端;
P3.6接绿灯(发出绿光的二极管),P3.5接红灯(发出红光的二极管);
单片机的外围设备包括:
时钟振荡器、DS18B20数字温度传感器、温度显示设备和高温制冷电机等。
具体的硬件电路连接如下图:
(原理图)
3、软件程序设计
主程序调用了2个子程序,分别是LCD显示程序、温度采集程序。
LCD显示程序,用于温度等数据的实时显示;
温度采集程序负责把DS18B20所采集的现场温度读入到指定的数组中。
主程序的流程图如下:
程序见附录:
三、PROTEUS仿真及结果
照硬件连接图所示电路原理图,在Proteus里面建立元器件连接关系。
根据设计功能要求在KeilμVision3环境下编写C语言程序,并编译连接生成十六进制的hex文件,把此文件加载到单片机,就可以进行Proteus仿真了。
仿真结果如下图所示:
(仿真结果)
程序设计中,我们定下的温度控制范围是0~99℃。
如仿真结果所示,当环境温度高于100℃,即为100℃时,数码管显示00.0C,为101℃时,数码管显示01.0C。
此时,P3.0管脚输出高电压,经过光电隔离设备,继电器中有电流流过,制冷电机工作。
当环境温度降低并低于于30℃时,蜂鸣器开始以慢“滴”声快报警,并且伴随红色发光二极管闪烁;
当环境温度升高并高于45℃时,蜂鸣器开始以相同慢“滴”声报警并且伴随绿色发光二极管闪烁;
当环境温度处于30—45℃之间时,蜂鸣器不报警且发光二极管不闪烁。
在硬件设计过程中,由于proteus仿真图中在数码管的位置没有接三极管,显示的效果较好,但在实际的电路中显示的数字较暗。
附录:
#include<
reg52.h>
math.h>
#include<
stdio.h>
INTRINS.H>
#defineucharunsignedchar
#defineuintunsignedint;
uintshangxian=35,xiaxian=30;
uchark1=0;
uintTempH,TempL;
sbitRED_LED=P3^6;
sbitGREEN_LED=P3^5;
sbitSPEAK=P3^7;
sbitchaidan=P1^2;
sbitjia=P3^1;
sbitjian=P3^2;
sbitDQ=P1^0;
//ds18b20端口
sfrdataled=0x80;
//显示数据端口
uinttemp;
ucharflag_get,count,num,minute,second;
ucharcodetab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
ucharstr[6];
voiddelay1(ucharMS);
unsignedintReadTemperature(void);
voidInit_DS18B20(void);
unsignedcharReadOneChar(void);
voidWriteOneChar(unsignedchardat);
voiddelay(unsignedinti);
voidprocess_alarm();
voidpresskey();
voidchengxux();
voidchengxus();
unsignedlongLedOut[5],LedNumVal;
voidUARTinit(void)
{
SCON=0x50;
TMOD|=0x20;
TH1=0xFD;
TR1=1;
TI=1;
}
zhuchengxu()
TMOD|=0x01;
//定时器设置
TH0=0xef;
TL0=0xf0;
IE=0x82;
TR0=1;
UARTinit();
P2=0x00;
//赋初值
count=0;
while
(1)
{
str[5]=0xc6;
//显示C符号
str[2]=tab[(TempH%100)/10];
//十位温度
str[3]=tab[(TempH%100)%10]&
0x7f;
//个位温度,带小数点
str[4]=tab[TempL];
process_alarm();
if(flag_get==1)//定时读取当前温度
temp=ReadTemperature();
TempH=temp>
>
4;
TempL=temp&
0x0F;
TempL=TempL*6/10;
//小数近似处理
printf("
%d.%d\n"
TempH,TempL);
flag_get=0;
}
}
voidtim(void)interrupt1using1//中断,用于数码管扫描和温度检测间隔
TH0=0xef;
//定时器重装值
TL0=0xf0;
num++;
if(num==200)
{num=0;
flag_get=1;
//标志位有效
second++;
if(second>
=60)
{second=0;
minute++;
count++;
if(count==3)
{P2=0x01;
dataled=str[2];
if(count==4)
{P2=0x02;
dataled=str[3];
if(count==5)
{P2=0x04;
dataled=str[4];
if(count==6)
{P2=0x08;
dataled=str[5];
count=0;
}
voidpresskey()
if(chaidan==0)
delay(110);
k1++;
while(!
chaidan);
voiddelay(unsignedinti)//延时函数
while(i--);
voidInit_DS18B20(void)
unsignedcharx=0;
DQ=1;
//DQ复位
delay(8);
//稍做延时
DQ=0;
//单片机将DQ拉低
delay(80);
//精确延时大于480us
//拉高总线
delay(10);
x=DQ;
//稍做延时后如果x=0则初始化成功x=1则初始化失败
delay(5);
unsignedcharReadOneChar(void)
unsignedchari=0;
unsignedchardat=0;
for(i=8;
i>
0;
i--)
DQ=0;
//给脉冲信号
dat>
=1;
DQ=1;
if(DQ)
dat|=0x80;
delay(5);
return(dat);
voidWriteOneChar(unsignedchardat)
i>
i--)
DQ=dat&
0x01;
}
unsignedintReadTemperature(void)
unsignedchara=0;
unsignedintb=0;
unsignedintt=0;
Init_DS18B20();
WriteOneChar(0xCC);
//跳过读序号列号的操作
WriteOneChar(0x44);
//启动温度转换
delay(200);
//跳过读序号列号的操作
WriteOneChar(0xBE);
//读取温度寄存器等(共可读9个寄存器)前两个就是温度
a=ReadOneChar();
//低位
b=ReadOneChar();
//高位
b<
<
=8;
t=a+b;
return(t);
voidprocess_alarm()
if(TempH<
xiaxian&
&
TempH>
=5)
RED_LED=0;
SPEAK=0;
delay(11000);
RED_LED=1;
SPEAK=1;
elseif(TempH>
=shangxian&
TempH<
85)
GREEN_LED=0;
delay(5500);
GREEN_LED=1;
else
voidchengxux()
unsignedintt,shi,ge,xiaoshu1,xiaoshu2;
t=xiaxian;
if(jia==0)
{
delay(1100);
if(jia==0)
{
t++;
while(jia);
if(xiaxian>
=40)
xiaxian=0;
if(jian==0)
delay(1100);
xiaxian--;
while(jian);
if(xiaxian<
=0)
{
xiaxian=40;
shi=t/1000;
ge=t%1000/100;
xiaoshu1=t%100/10;
xiaoshu2=t%10;
P2=0x01;
dataled=tab[shi];
delay(250);
P2=0x02;
dataled=tab[ge];
P2=0x04;
dataled=tab[xiaoshu1];
P2=0x08;
dataled=tab[xiaoshu2];
voidchengxus()
xiaxian=shangxian;
chengxux();
voidmain()
presskey();
switch(k1)
case0:
zhuchengxu();
break;
case1:
chengxux();
case2:
chengxus();
case3:
default:
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温控 系统 技术 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)