温度测控系统设计报告Word文档格式.docx

上传人:b****2 文档编号:5079819 上传时间:2023-05-04 格式:DOCX 页数:15 大小:101.64KB
下载 相关 举报
温度测控系统设计报告Word文档格式.docx_第1页
第1页 / 共15页
温度测控系统设计报告Word文档格式.docx_第2页
第2页 / 共15页
温度测控系统设计报告Word文档格式.docx_第3页
第3页 / 共15页
温度测控系统设计报告Word文档格式.docx_第4页
第4页 / 共15页
温度测控系统设计报告Word文档格式.docx_第5页
第5页 / 共15页
温度测控系统设计报告Word文档格式.docx_第6页
第6页 / 共15页
温度测控系统设计报告Word文档格式.docx_第7页
第7页 / 共15页
温度测控系统设计报告Word文档格式.docx_第8页
第8页 / 共15页
温度测控系统设计报告Word文档格式.docx_第9页
第9页 / 共15页
温度测控系统设计报告Word文档格式.docx_第10页
第10页 / 共15页
温度测控系统设计报告Word文档格式.docx_第11页
第11页 / 共15页
温度测控系统设计报告Word文档格式.docx_第12页
第12页 / 共15页
温度测控系统设计报告Word文档格式.docx_第13页
第13页 / 共15页
温度测控系统设计报告Word文档格式.docx_第14页
第14页 / 共15页
温度测控系统设计报告Word文档格式.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

温度测控系统设计报告Word文档格式.docx

《温度测控系统设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《温度测控系统设计报告Word文档格式.docx(15页珍藏版)》请在冰点文库上搜索。

温度测控系统设计报告Word文档格式.docx

(1)程序流程图如图3所示:

流程图如下所示开始时各个部件都是初始化,准备读取温度,如果设置温度,我们将设置上限温度和下限温度,并且在LED上面显示上限温度和下限温度。

如果LED上显示的温度是大于上限温度则开启风扇停止加热也报警;

如果LED上显示的温度是小于下限温度则关风扇加热也有报警。

如果读取温度是介于当中则关闭报警,流程图如下所示:

否是

否是

否是

(3)程序:

#include<

reg51.h>

absacc.h>

math.h>

unsignedcharled_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

#defineucharunsignedchar

#defineuintunsignedint

charda;

intmx=5;

//上限报警温度

intmin=-3;

//下限报警温度

sbitDQ=P1^0;

sbital=P1^1;

sbitmotor=P1^2;

sbitheat=P1^3;

sbitsz=P1^4;

sbitadd=P1^5;

sbitdel=P1^6;

sbithl=P1^7;

intcc;

ucharflag;

voiddelay(uintn)

{

uchari;

for(i=0;

i<

n;

i++);

}

union

ucharc[2];

}temp;

//读取的温度值存放在temp中

ucharoldc[2];

voidow_reset()//复位

DQ=0;

delay(50);

//低电平480us

DQ=1;

delay(15);

//DQ高电平等待

}

ucharread_byte()//从单总线上读取一个字节

uchari,value=0;

8;

i++)

{

value>

>

=1;

DQ=0;

DQ=1;

delay

(1);

if(DQ)value|=0x80;

delay(6);

}

returnvalue;

voidwrite_byte(ucharval)//向单总线写入一个字节

i++)//一次写一字节

DQ=val&

0x01;

delay(5);

val>

delay(5);

voidread_temprature()//读取温度

{

ow_reset();

write_byte(0xcc);

//跳过ROM

write_byte(0xbe);

//读

temp.c[1]=read_byte();

temp.c[0]=read_byte();

write_byte(0x44);

//开始

voiddesplay()//显示温度

ucharg,s,b;

flag=0;

b=0;

cc=temp.c[0]*256.0+temp.c[1];

if(temp.c[0]>

0xf8){flag=1;

cc=~cc+1;

da=-cc*0.0625;

elseda=cc*0.0625;

if(da>

mx){al=1;

motor=1;

heat=0;

}//开警报,开马达

elseif(da<

min){al=1;

motor=0;

heat=1;

}//开警报

elseal=0;

//关警报

cc*=0.0625;

b=cc/100;

s=(cc%100)/10;

g=cc%10;

if(!

flag)//正温度

if(b)//百位

{

P2=0x02;

P0=~led_code[b];

delay(100);

}

if(s||b)//十位显示

P2=0x04;

P0=~led_code[s];

}

P2=0x08;

P0=~led_code[g];

//个位显示

//delay(50);

else//负温度

if(s!

=0&

&

b==0)

P0=0xbf;

//显示-号

P2=0x01;

delay(50);

else

//个位显示

}

voiddesplay1()//显示设置温度

ucharg,s,b,flg;

flg=1;

if(hl==0)

cc=min;

else

cc=mx;

if(cc<

0)

{cc=-cc;

flg=0;

if(flg)//正温度

voidmain()

uchari=0,j,k=0;

al=0;

delay(10);

for(j=1;

j<

5;

j++)

read_temprature();

oldc[0]=temp.c[0];

oldc[1]=temp.c[1];

while

(1)

if(sz==0)

desplay1();

if(hl==0)

{

if(add==0)

{

min++;

while(add==0)desplay1();

}

if(del==0)

min--;

while(del==0)desplay1();

}

else

mx++;

mx--;

while(del==0)desplay1();

i++;

if(i==20)

{

i=0;

read_temprature();

while((abs(oldc[0]-temp.c[0])>

3||abs(oldc[1]-temp.c[1])>

3)&

k<

3)

{read_temprature();

k++;

}//读取一个稳定的温度

{oldc[0]=temp.c[0];

oldc[1]=temp.c[1];

k=0;

desplay();

六、仿真图

仿真图一如上图所示,读取温度为-2度(低于下限温度0度),则开加热和警报,而风扇停动。

仿真图二如上所示,读取温度为5度(高于上限温度3度),则停止加热但开启风扇和警报。

而如果读取的温度介于上限和下限之间,则停止警报。

七、心得体会:

温度测控系统的设计和我们以前做过的温度实验类似,但是我们在设计过程遇到了一些小麻烦,比如温度不稳定等等。

但最终还是客服了其中的困难,结合有关程序设计知识及proteus知识最终完成了本次实验。

感谢老师在实验设计过程中对我们的指导,希望彭老师在新的一年里工作顺利,步步高升。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2