89c52温度控论文.docx

上传人:b****0 文档编号:8933182 上传时间:2023-05-16 格式:DOCX 页数:20 大小:525.89KB
下载 相关 举报
89c52温度控论文.docx_第1页
第1页 / 共20页
89c52温度控论文.docx_第2页
第2页 / 共20页
89c52温度控论文.docx_第3页
第3页 / 共20页
89c52温度控论文.docx_第4页
第4页 / 共20页
89c52温度控论文.docx_第5页
第5页 / 共20页
89c52温度控论文.docx_第6页
第6页 / 共20页
89c52温度控论文.docx_第7页
第7页 / 共20页
89c52温度控论文.docx_第8页
第8页 / 共20页
89c52温度控论文.docx_第9页
第9页 / 共20页
89c52温度控论文.docx_第10页
第10页 / 共20页
89c52温度控论文.docx_第11页
第11页 / 共20页
89c52温度控论文.docx_第12页
第12页 / 共20页
89c52温度控论文.docx_第13页
第13页 / 共20页
89c52温度控论文.docx_第14页
第14页 / 共20页
89c52温度控论文.docx_第15页
第15页 / 共20页
89c52温度控论文.docx_第16页
第16页 / 共20页
89c52温度控论文.docx_第17页
第17页 / 共20页
89c52温度控论文.docx_第18页
第18页 / 共20页
89c52温度控论文.docx_第19页
第19页 / 共20页
89c52温度控论文.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

89c52温度控论文.docx

《89c52温度控论文.docx》由会员分享,可在线阅读,更多相关《89c52温度控论文.docx(20页珍藏版)》请在冰点文库上搜索。

89c52温度控论文.docx

89c52温度控论文

 

目     录

一、设计任务和指标要求....................................................3

二、设计框图及整机概述...................................................4

三、各单元电路的设计方案及原理说明........................................5

四、仿真调试过程及结果分析................................................9

五、设计、安装及调试中的体会..............................................9

六、对本次课程设计的意见及建议............................................10

七、参考资料..............................................................10

八、附录..................................................................15

附件1整机逻辑电路图...................................................15

附件2元器件清单.......................................................16

附件3程序清单.......................................................16

 

一、设计任务和指标要求

1、设计时间:

2010.7.5~2010.7.9

2、地点:

I404

3、课程设计题目:

水温控制系统设计

4、1)设计任务及内容:

要求设计一个水温控制系统设计,能正常控制和测量温度范围。

控温通道输出为双向晶闸管或继电器,一组转换点为市电(220V,10A);

测温和控温范围:

室温~80℃(实时控制);

控温精度:

正负1℃。

2)设计要求:

选取单元电路及元件;

设计总体电路原理图;

整体电路的联调(完成全电路理论设计、仿真、调试);

撰写设计报告。

 

二、设计框图及整机概述

2.1原理框图

2.1整个原理图

2.2设计思想

通过温度传感器,对被控对象进行温度与数字转换,由温度传感器输出的电压经过IO口,由单片机读出数值,并显示在数码管上,按键可以提高或者降低所需的温度,实际温度再经过与目标温度的比较,若所测温度大于基准温度,则输出低的门限电压,即:

D1灯不亮,不执行加热环节。

反之,若所测电压小于基准电压。

则输出高的门限电压,即D1灯亮,执行加热环节。

反之,则执行冷却环节,这样就可以把温度控制在一定的范围内。

三、各单元电路的设计方案及原理说明

3.1温度传感器

图3-2Ds18b20

图3-3单片机从温度传感器上读出温度

//DS18B20程序读取温度

ReadTemperature(void)

{

unsignedchara=0;

unsignedcharb=0;

unsignedintt=0;

floattt=0;

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0x44);//启动温度转换

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0xBE);//读取温度寄存器等(共可读9个寄存器)前两个就是温度

a=ReadOneChar();

b=ReadOneChar();

t=b;

t<<=8;

t=t|a;

tt=t*0.0625;

return(t);

}

3.3驱动器模块:

(1)工作原理:

Q50043l是开关晶体控制器件。

当低压电源端开关接通后实现了低压控制高压,。

图3.3双向晶闸管原理图

3)电路原理图

图3-3驱动模块模块

3.4加热模块

1)工作原理:

加热电阻是很简单的加热器串联电路,加热电路中串联保险丝防止电流过大产生危险

2)参数计算:

接入220V交流电压,

R9=22Ω,(来代替发热丝)

保险丝可以通过最大电流为I=10A

 

3.5.显示模块

unsignedcharcodeduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,};

///////////////段码////////////////////////////////////////

/////////////////当前温度显示/////////////////////////////

////////////wendu—1为实际温度//////////////////

///////////////hao为目标温度///////////////

P11=1;

P0=duan[wendu_1/1000];

for(k=0;k<1000;k++);

P1=0;

P12=1;

P0=duan[wendu_1/100%10];

for(k=0;k<1000;k++);

P1=0;

P13=1;

P0=duan[wendu_1%100/10];

for(k=0;k<1000;k++);

P1=0;

P14=1;

P0=duan[wendu_1%10];

for(k=0;k<1000;k++);

P1=0;

///////////////////////////目标电压显示///////////////

P15=1;

P2=duan[hao/1000];

for(k=0;k<1000;k++);

P1=0;

P16=1;

P2=duan[hao/100%10];

for(k=0;k<1000;k++);

P1=0;

P17=1;

P2=duan[hao%100/10];

for(k=0;k<1000;k++);

P1=0;

P32=1;

P2=duan[hao%10];

for(k=0;k<1000;k++);

P32=0;}

四、仿真调试过程及结果分析

1.仿真调试过程

在原理图设计完后,利用protues软件绘制了原理图。

在原理图绘制完后,即进行了仿真调试。

调试过程中,开始数码管灯不亮,以为是电路出现问题,花了2个小时也没有解决问题,我于是上网查数码管的资料,结果发现,仿真中用的数码管是共阳极的,而不是平时用的共阴极的,也就是程序中的断码出现了问题。

2.结果分析

能够从温度传感器中获得温度数据,并且能通过按键纠正目标温度,程序能正常执行,电阻丝也能按目标温度的高低调整自身的工作状态。

效果还行,不过其一精度不高,只能到一度,其二程序执行得慢,不过由于时间太仓促,这些问题可以解决。

五.设计、安装及调试中的体会

此次课程设计考查了我们的设计电路的能力和动手能力。

从中我学到了很多东西。

设计上的电路在实际中运用可能不是像仿真那样理想,由于购买元件的误差及元件的大小在实际中比没有很好的匹配,所以按照设计的电路焊出来的实物在调试过程中遇到了一些问题,但我都一步一步地解决了。

由于是第一次课程设计,所以花的时间很多。

通过这次课程设计,我学会了如何使用仿真软件Protel和protues,进一步巩固了电路的焊接能力。

最重要的是通过这次课程设计我深深体会到能把所学的知识运用到实践中才是真正掌握。

这次的课程设计时间有些仓促,我们刚学完模电的相关知识就运用到电路中,刚开始觉得很难,相关的知识掌握得不到位,但随着设计的深入,发现所学的知识在我设计的电路中得到了很好的运用,在课程设计的同时,巩固和掌握了现学的知识,这才是设计的目的。

特别是在电路调试成功的那一刻,出现了我所预料的现象,着实让我高兴了一番,自己所设计的东西没有白费,并且从中获得了知识,是一件很开心的事。

这只是一次简单的课程设计,只是一个开始,设计的东西在实际中的运用还尚欠缺,但从中我学到了遇到困难要解决,不能浮躁,要静心,耐心,细心的做事,坚持下去,总能看到成功的曙光的。

六、对本次课程设计的意见及建议

这次课程设计就更加难忘,可以让同学们更加充分的发挥自己想象力和创造力,同时也可以让我们从中得到的知识面更加广阔,但是我们还是积极的查阅资料,努力用自己所学到的知识来完成设计。

并且从中体会到了一种成就感和使命感。

建议:

课程时间安排还应该改进。

下午上课应该迟一些,保证同学们的良好睡眠和精神状态。

七、参考资料

1.任囯燕主编模拟电子技术实验指导书重庆科技学院2008年11月

2.康华光主编电子技术基础-模拟部分(第五版)高等教育出版社2006年12月

3.王振红电子技术综合实验及综合设计机械工业出版社2007年3月

4.赵淑范电子技术实验与课程设计清华大学出版社2006年8月

5。

张宝会电力系统继电保护中国电力出版社2005年5月

八附录

附录一原理图

 

名称

标号

大小

电容

C1

15P

电容

C2

15p

电容

C3

1u

电容

C4

1u

Led

D1

电阻

R1

1k

电阻

R2

1k

电阻

R3

20k

电阻

R4

1k

晶振

X1

11.0592M

51单片机

U1

温度传感器(ds18b20)

U2

光电耦合器

U3

按键

Button

数码管(74eg-mp4-ca)

电阻丝

R

20

附录二元件表

 

附录三程序代码

#include

sbitP11=P1^1;

sbitP12=P1^2;

sbitP13=P1^3;

sbitP14=P1^4;/////数码管1断码控制///////////////

sbitP15=P1^5;

sbitP16=P1^6;

sbitP17=P1^7;

sbitP32=P3^2;/////数码管2段码控制////////////////

sbitup=P3^7;

sbitdown=P3^6;////按键操作端口//////////////////

sbitP35=P3^5;////////控制晶闸管端口/////////

sbitDQ=P3^3;///////温度传感器端口/////////

#defineTHCO0xee

#defineTHLO0x00

unsignedcharcodeduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,};

//////////////////////////////////////////

intb=0;

charpwm=0;

intk;

charr=0,q=0;

staticcharwendu_1;

charhao=20;

//////////////////////////////////////////////

voiddelay(unsignedinti)

{

while(i--);

}

//////////////////////////////////////////

Init_DS18B20(void)

{

unsignedcharx=0;

DQ=1;//DQ复位

delay(8);//稍做延时

DQ=0;//单片机将DQ拉低

delay(80);//精确延时大于480us

DQ=1;//拉高总线

delay(14);

x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败

delay(20);

}

////////////////////////////////////////////

ReadOneChar(void)

{

unsignedchari=0;

unsignedchardat=0;

for(i=8;i>0;i--)

{

DQ=0;//给脉冲信号

dat>>=1;

DQ=1;//给脉冲信号

if(DQ)

dat|=0x80;

delay(4);

}

return(dat);

}

////////////////////////////////////////////////

WriteOneChar(unsignedchardat)

{

unsignedchari=0;

for(i=8;i>0;i--)

{

DQ=0;

DQ=dat&0x01;

delay(5);

DQ=1;

dat>>=1;

}

//delay(4);

}

///////////////////////////////////////////////

//DS18B20程序读取温度

ReadTemperature(void)

{

unsignedchara=0;

unsignedcharb=0;

unsignedintt=0;

floattt=0;

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0x44);//启动温度转换

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0xBE);//读取温度寄存器等(共可读9个寄存器)前两个就是温度

a=ReadOneChar();

b=ReadOneChar();

t=b;

t<<=8;

t=t|a;

tt=t*0.0625;

return(t);

}

xianshi()

{

/////////////////当前温度显示/////////////////////////////

P11=1;

P0=duan[wendu_1/1000];

for(k=0;k<1000;k++);

P1=0;

P12=1;

P0=duan[wendu_1/100%10];

for(k=0;k<1000;k++);

P1=0;

P13=1;

P0=duan[wendu_1%100/10];

for(k=0;k<1000;k++);

P1=0;

P14=1;

P0=duan[wendu_1%10];

for(k=0;k<1000;k++);

P1=0;

///////////////////////////目标电压显示///////////////

P15=1;

P2=duan[hao/1000];

for(k=0;k<1000;k++);

P1=0;

P16=1;

P2=duan[hao/100%10];

for(k=0;k<1000;k++);

P1=0;

P17=1;

P2=duan[hao%100/10];

for(k=0;k<1000;k++);

P1=0;

P32=1;

P2=duan[hao%10];

for(k=0;k<1000;k++);

P32=0;}

main(void)

{

P11=0;

P12=0;

P13=0;

P14=0;

P15=0;

P16=0;

P17=0;

P32=0;

P35=0;

///////////////////////////////////////////////////////////

while

(1)

{

wendu_1=ReadTemperature()/16;//读温度

xianshi();///显示系统数据////////////////////

/////////////////操作函数////////////////////////////////////

if(down==0){hao--;}

if(up==0){hao++;}

//////////////////////////////////////////////////////////////

/////hao为理想温度

/////wendu_1为实际环境温度

/////////////////////////////////////////////////////////////

////P35为高时led灯工作/////////////////////////////////////

P35=0;

pwm=hao-wendu_1;

if(pwm>0){P35=1;}

if(pwm<0){P35=0;}

if(pwm==0){P35=0;}

/////////////////////////////////////////////////////////////////

}}

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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