基于PID的水温控制系统.doc

基于PID的水温控制系统.doc

ID:61332324

大小:37.00 KB

页数:12页

时间:2021-01-25

基于PID的水温控制系统.doc_第1页
基于PID的水温控制系统.doc_第2页
基于PID的水温控制系统.doc_第3页
基于PID的水温控制系统.doc_第4页
基于PID的水温控制系统.doc_第5页
资源描述:

《基于PID的水温控制系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#include#include<04.h>#defineZ55sbitP27=P2^7;sbittemp=P2^0;sbitP21=P2^1;sbitP22=P2^2;uintnnn;uchart_min,t_minf,t_sec,t_ge,shii,gee,shiff;ucharuk_qian,uk_bai,uk_shi,uk_ge;//uk显示位uinttime;uintz_uk;ucharw_shi,w_ge,w_shif,w_baif;//实际温度数字显示;

2、ucharq_ge,q_shif,q_baif;//占空比显示位ucharidatabai,shi,ge;//预设温度数字显示;bitw_fh;//实际值符号位;uinttvalue;//10倍实际温度。uintp=20000;uintf,g;//floatidatabfb;//占空比设定。ucharset_temp=60;floatidatatemperature;ucharidatacount=1;ucharidatacont=500;ucharidataxx;voidrst18b20(){temp=1;delay10us(1);temp=0;de

3、lay10us(70);//延时916us。temp=1;delay10us(20);//延时266us。}voidwritedata(uchardat)//向ds18b20写数据。{uchari;for(i=0;i<8;i++){temp=0;temp=dat&0x01;delay10us(10);temp=1;dat>>=1;//先写低位。}}ucharreaddata()//从ds18b20读数据。{uchardat;uchari;for(i=0;i<8;i++){temp=0;dat>>=1;//先读低位。temp=1;if(temp)dat=

4、dat

5、0x80;delay10us(10);//延时136us;temp=1;}return(dat);}voidreadtemperature(){uchartemperh,temperl;rst18b20();writedata(0xcc);//跳过读rom命令直接给器件发命令。writedata(0x44);//启动ds18b20读取温度。rst18b20();//必须二次复位。writedata(0xcc);writedata(0xbe);temperl=readdata();//读取温度低字节。temperh=readdata();//读取

6、温度高字节。tvalue=temperh;tvalue<<=8;tvalue=tvalue

7、temperl;//组成16位合成字。if(tvalue<0x0fff)//是否为正数。w_fh=0;else//负数转换程序。{w_fh=1;tvalue=~tvalue+1;}temperature=tvalue*0.0625;tvalue=(tvalue*6.25);//温度转换,强制转换成整形数。w_shi=tvalue/1000;//十位w_ge=tvalue%1000/100;//个位w_shif=tvalue%100/10;//shifen位w_b

8、aif=tvalue%10;//baifenwei}voidinit(){P27=1;TMOD=0x11;TH0=0x3c;//50ms采样一次;TL0=0xb0;//TH1=0x9c;//TL1=0x9c;TH1=(65536-1000)/256;TL1=(65536-1000)%256;EX0=1;IT0=1;ET0=1;TR0=1;ET1=1;TR1=1;}voidrupttime1()interrupt3{/*if(--f==0){P27=0;}if(--p==0){P27=1;p=20000;f=g;}*/TH1=(65536-1000)/2

9、56;TL1=(65536-1000)%256;nnn++;if(nnn==g){P27=0;}if(nnn==1000){P27=1;nnn=0;}}voidrupttime0()interrupt1{ucharmin,sec;TH0=0x3c;//50ms采样一次;TL0=0xb0;readtemperature();if(--count==0){time++;//执行时间t_min=time/60;//分min=t_min;//保持t_min=t_min/10;//分十位t_minf=min%10;//分个位t_sec=time%60;//秒se

10、c=t_sec;//保持t_sec=t_sec/10;//秒十位t_ge=sec%10;//秒

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。