单片机温度控制系统设计.docx
《单片机温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《单片机温度控制系统设计.docx(17页珍藏版)》请在冰点文库上搜索。
单片机温度控制系统设计
<<温度控制系统的设计>>
课程设计报告
题目:
_温度控制系统的设计_
专业:
_电子信息工程______
年级:
2011级________
学号:
_B1103___________
学生姓名:
_____________
联系电话:
___________
完成日期:
2014年12月18日
温度控制系统的设计
摘要
单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。
51系列单片机是国内目前应用最广泛的一种8位单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用。
51系列及其衍生单片机还会在继后很长一段时间占据嵌入式系统产品的低端市场,因此,作为新世纪的大学生,在信息产业高速发展的今天,掌握单片机的基本结构、原理和使用是非常重要的。
本次课程设计的内容是使用89C52RC单片机最小系统设计温度控制系统,系统以单片机为主控单元,主要用于对温度信号的采集。
关键词:
温度控制51单片机DS18B20数码管
ABSTRACT
SCMisthemid-20thcentury,developedamoduleforthecontroloflargescaleintegratedcircuitswithfeatures,smallvolume,highreliability,lowpriceand,inindustrialcontrol,dataacquisition,intelligentinstruments,mechanicalandelectricalintegration,homeapplianceshavebeenwidelyused,greatlyimprovethetechnicallevelintheseareasandautomation.
52seriesisthemostwidelyoneofa8-bitmicrocontrollerwithembeddedsystems,systemonchip,andputforwardtheconceptsofuniversalacceptanceandapplication.SCM52anditsderivativeswillalsocontinueforalongtimeaftertheaccountofthelow-endembeddedsystemproductsmarket,asthenewcentury,collegestudents,therapiddevelopmentintheinformationindustrytoday,tograspthebasicstructureofSCM,theprincipleanduseisveryimportant.
Thecontentofcurriculumdesignistheuseof89C52RCfrequencymetermicrocomputersystemdesignthesystem,amicrocomputercontrolunit,mainlyusedfortheotherwavetempreturemeasurements.
KeyWords:
Temperaturecontrol51-seriesmicrocomputerDS18B20Nixietube
1设计要求及方案选择
1.1设计要求
(1)制作完成温度检测系统(温度传感器可选用DS18B20)。
(2)温度检测精度1度。
(3)温度能控制在一定范围内,超出温度设定范围时报警(声光指示)。
(4)设计电路
(5)在KEIL中编辑、编译、调试程序,并在protuse中仿真。
1.2方案选择
利用单片机设计并制作温度控制系统,电路组成框图如图所示。
图1-1电路组成结构图
2理论分析与设计
2.1温度采集电路的分析及设计
温度传感器从使用的角度大致可分为接触式和非接触式两大类,前者是让温度传感器直接与待测物体接触,而后者是使温度传感器与待测物体离开一定的距离,检测从待测物体放射出的红外线,达到测温的目的。
在接触式和非接触式两大类温度传感器中,相比运用多的是接触式传感器,非接触式传感器一般在比较特殊的场合才使用,早期得到广泛使用的接触式温度传感器主要有热电式传感器,其中将温度变化转换为电阻变化的称为热电阻传感器,将温度变化转换为热电势变化的称为热电偶传感器。
现在的温度传感器已经走向数字化,集成化,外形小,接口简单,广泛用于生活中的各个领域。
方案一:
采用热敏电阻
可以用热敏电阻对温度感应程度来实现对输入信号的改变,精度比较高,但是价格比较贵。
方案二:
采用热电偶
热电偶是目前接触式测温中应用也十分广泛的热电式传感器,它具有结构简单、制造方便、测温范围宽、热惯性小、准确度高、输出信号便于远传等优点。
但是,由于热电偶来采集温度的话会用到运放的比较器电路,信号放大电路,译码器电路来将模拟信号转化为数字信号继而在数码管上显示出来,电路结构过于复杂。
方案三:
采用二极管
二极管在正向导通时由于少子的存在和导电性,所以导通电压会受温度影响,优点是价格便宜,对电路要求低,但缺点是精度不高。
方案四:
采用数字化温度传感器DS18B20
DS18B20是美国半导体公司推出的第一片支持一线总线的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器的优点,可以直接将温度转化成串行数字供微处理器处理。
用此前器件后续电路只需要用单片机控制,电路简单而且精确度高。
综上所述:
由于本次课设的要求是对一个较范围内的温度进行采集,所以对精度的要求较高,考虑到成本问题,并且保证电路结构简明,本次试验采用方案三进行温度采集。
2.2温度显示电路的分析及设
计本次设计要求对所检测的温度信号进行测量显示,并且精确度至少为1摄氏度。
方案一:
用数码管显示
通过51单片机这个微处理器得到转化后的温度数值后,通过程序设定,是可以精确到小数点后两位的,所以本次实验中用4位数码管就可以了,接口较少。
并且数码管消耗的电力比液晶显示更加清晰,适合在白天等强光下显示。
缺点是只能够显示数字,不能够显示出其他有用信息。
方案二:
用1602液晶屏显示
也可以利用1602来对转换后的温度进行显示进行控制,但是由于液晶是反光式的,在外界光线很明亮时容易看不清楚。
它的优点是可以显示出文字信息,很明了。
另外,其价格比数码管要贵得多。
综上所述:
本次设计中主要是显示出已经测到的温度值,并不需要显示其他文字信息,考虑到价格及可见清晰度问题,决定采用方案一。
2.3直流电源电路的分析及设计
本次实验中多处用到+5v的电压源供电,如LED的点亮,DS18B20引脚处需要的高点平等。
方案一:
用4个1.5v的电池串联起来。
用电池盒装上4个电池,然后加在外围电路中即可。
但是实际值6v,比标准的5v稍高一些,可能影响DS18B20的工作。
方案二:
用USB接口正好产生的5v电压来供电。
此方法不需要额外去找5v的电压源供电,进一步是的电路简单。
缺点是这样接的话,一旦外围电路出现问题,烧坏外部器件的同时,可能会通过USB伤害电脑。
综上所述:
考虑到成本和便利,本实验采用方案二。
3 电路设计
3.1硬件电路的设计
运用74HC04、51单片机、七段数码管、LED、晶振、电解电容、DS18B20按键、USB接口组成全部系统。
图3-1温度控制系统原理
3.1.151单片机
运用单片机处理温度转化成的串行数字信号,实现信号处理。
将获得的结果通过输出装置输出显示在七段数码管上,并且在最后的处理部分也借用了P2口的三个引脚,来点亮所需要点亮的LED灯。
89C52单片机组成结构中包含运算器、控制器、片内存储器、并行I/O口、串行I/O口、定时/计数器、中断系统、振荡器等功能部件。
图3.1.1单片机控制部分电路
3.1.2温度采集部分
运用一个DS18B20温度传感器作为外部温度的检测部分,并将采集好的串行数字信号供单片机处理。
图3.1.2获取外界温度电路
3.1.3温度显示部分
4个和四位七段数码管组成显示部分,LM016L液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。
IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系。
图3.1.3温度显示部分
3.1.4温度处理电路
按钮来控制,使电路中的温度有高有低。
按钮按下,温度高于设定的温度时,LED1亮;
按钮按下,温度正好是设定的温度时,LED2亮;
按钮按下,温度低于设定的温度时,LED3亮;
图3.1.4温度控制部分
3.2 软件的设计
#include
#defineW_IOP1//位选线从左往右分别与P1.0-P1.3相连
#defineS_IOP0//段选线从A-DP,分别与P0.0-p0.7相连
#defineucharunsignedchar
#defineulongunsignedlong
#defineuintunsignedint
uintt;
uinttemp;
floatftemp;
sbitLED1=P2^0;
sbitLED2=P2^4;
sbitLED3=P3^1;
sbitds=P3^4;
sbitaa=P3^5;
sbitbb=P3^6;
ucharTime[4];//数码管要显示的6位数字
intcodeS_Data[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
intcodeW_Data[4]={0x0E,0x0D,0x0B,0x07};
voiddelayms(inttime)//延时函数
{
inti,j;
for(i=time;i>0;i--)
for(j=110;j>0;j--);
}
voidLED(ucharData[4],uchardp)//七段数码管上的显示程序
{
inti=0,j=0;
P0=0XFF;
for(i=0;i<4;i++)
{
if(dp!
=i){W_IO=W_Data[i];S_IO=S_Data[Data[i]];
}
else
{W_IO=W_Data[i];S_IO=S_Data[Data[i]]&0x7f;
}
delayms(5);
}
}
voidinit18b20()//DS18B20复位,初始化函数
{uinti;
ds=0;
i=103;
while(i>0)i--;
ds=1;
i=4;
while(i>0)i--;
}
bitdu1wei()//读一位数据
{uinti;
bitdat;
ds=0;
i++;
ds=1;
uchardu1zijie()//读一字节数据
{uchari,j,dat;
dat=0;
for(i=1;i<=8;i++)
{j=du1wei();
dat=(j<<7)|(dat>>1);
}
return(dat);
}
voidxie1wei(uchardat)//写一字节
{uinti;
ucharj;
bittest;
for(j=1;j<=8;j++)
{test=dat&0x01;
dat=dat>>1;
if(test)
{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++;
}
}
}
voidxie_temp_zhuanhuan()//开始获取温度并转换
{init18b20();
delayms
(1);
xie1wei(0xcc);
xie1wei(0x44);
}
uintdu_temp_cunchuqi()//读存储器中存储的温度并转换
{uchara,b;
init18b20();
delayms
(1);
xie1wei(0xcc);
xie1wei(0xbe);
a=du1zijie();
b=du1zijie();
temp=b;
temp<<=8;
temp=temp|a;
ftemp=temp*0.0625;
temp=ftemp*100+0.5;
returntemp;
}
voidbaojin()//温度处理
{if(temp<2500
{
aa=1;
bb=0;
LED1=0;
LED2=1;
LED3=1;
}
elseif(temp>=2500&&temp<=3200)
{aa=1;
bb=1;
LED1=1;
LED2=0;
LED3=1;
}
elseif(temp>3200)
{aa=0;
bb=1;
LED1=1;
LED2=1;
LED3=0;
}
}
voidmain()//主函数
{
while
(1)
{xie_temp_zhuanhuan();
t=du_temp_cunchuqi();
//t=2345;
Time[0]=t/1000;
Time[1]=t%1000/100;
Time[2]=t/10%10;
Time[3]=t%10;
LED(Time,1);
baojin();
}
4系统测试
4.1调试所用的基本仪器清单
Proteus软件是英国LabCenterElectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前比较好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。
选中单片机AT89C52,左键点击AT89C52,在出现的对话框里点击ProgramFile按钮,找到刚才编译得到的HEX文件,然后点击“OK”按钮就可以模拟了。
点击模拟调试按钮的运行按钮,进人调试状态。
4.2调试结果
温度信号模拟,仿真结果如图。
图4.2.1高温时,可见D3亮
图4.2.2室温时,可见D2亮
图4.2.3低温时,可见D1亮
4.3 测试结果分析
运用单击DS18B20上的+或-号来实现温度的调节
1..当温度低于25摄氏度时,LED1亮
2.当温度介于26到34摄氏度之间时,LED2亮
3.当温度高于35摄氏度时,LED3亮
5总结
本次模拟电路课程设计有较强的综合性,不仅要求设计者能熟练使用单片机来实现温度的采集与读数,熟练编写程序,还要求对单片机的电路连接结构,对数码管芯片有明确清晰的了解与认识,否则在设计的第一步就会遇到障碍。
经过一个多星期的资料收集与查询,又经过几天的总体构思,在脑中对温度控制系统的设计有了一个总体的框架,对程序的流程图也有一个基本的结构,最后结合参考资料,又经过两天对程序的编写以及程序的改进,最后终于完成了本次课程设计各项内容。
通过运用所学知识、网上查阅资料和努力设计,我从这次课程设计不仅仅只是获得自己亲手做的电子产品,还学到了很多,例如面对问题要保持冷静,特别是在程序的编写这一块,要找出程序的错误一定要有一个冷静的头脑,否则很难发现错误甚至是越改越错。
另外我还认识到与他人合作的重要性,虚心向别人学习,充分利用网上资源,都是一些不错的方法。
模拟电子技术是一门很有用也是专业基础的学科,一定要学好理论知识,打好基础,而且要学会动手,增强动手能力,通过实践加深对理论知识的理解。
本次课程设计中不断翻阅资料,提高了我的分析能力,也让我体会到了动手实践的快乐,受益匪浅!
参考文献
[1]吴友宇.模拟电子技术基础.北京.高教出版社,2001年
[2]康华光.电子技术基础(模拟部分)(第四版).北京:
高等教育出版社,1999
[3]李万臣.模拟电子技术基础与课程设计.哈尔滨:
哈尔滨工程大学出版社,2001.3
[4]胡宴如.模拟电子技术..北京:
高等教育出版社,2000
[5]沈尚贤.电子技术导论(下册).北京:
高等教育出版社,1986年
[6]李建兵周长林.Multisim与Protel的应用.北京.国防工业出版社.2009年