03 温度控制的pid算法的c语言程序

03 温度控制的pid算法的c语言程序

ID:34169456

大小:985.15 KB

页数:39页

时间:2019-03-03

03   温度控制的pid算法的c语言程序_第1页
03   温度控制的pid算法的c语言程序_第2页
03   温度控制的pid算法的c语言程序_第3页
03   温度控制的pid算法的c语言程序_第4页
03   温度控制的pid算法的c语言程序_第5页
资源描述:

《03 温度控制的pid算法的c语言程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、我的题目是:基于PID算法的温度控制系统89C51单片机,通过键盘输入预设值,与DS18B20测得的实际值做比较,然后驱动制冷或加热电路。用keilC语言来实现PID的控制。最佳答案//PID算法温控C语言2008-08-1718:58#include#include#include#includestructPID{unsignedintSetPoint;//设定目标DesiredValueunsignedintProportion;//比例常数ProportionalConstunsignedintIntegral

2、;//积分常数IntegralConstunsignedintDerivative;//微分常数DerivativeConstunsignedintLastError;//Error[-1]unsignedintPrevError;//Error[-2]unsignedintSumError;//SumsofErrors};structPIDspid;//PIDControlStructureunsignedintrout;//PIDResponse(Output)unsignedintrin;//PIDFeedback(Input)sbitdata1=P1^0;sbitclk=P1^1;sb

3、itplus=P2^0;sbitsubs=P2^1;sbitstop=P2^2;sbitoutput=P3^4;sbitDQ=P3^3;unsignedcharflag,flag_1=0;unsignedcharhigh_time,low_time,count=0;//占空比调节参数unsignedcharset_temper=35;unsignedchartemper;unsignedchari;unsignedcharj=0;unsignedints;/***********************************************************延时子程序,延时时间

4、以12M晶振为准,延时时间为30us×time***********************************************************/voiddelay(unsignedchartime){unsignedcharm,n;for(n=0;n

5、te_bit(unsignedcharbitval){EA=0;DQ=0;/*拉低DQ以开始一个写时序*/if(bitval==1){_nop_();DQ=1;/*如要写1,则将总线置高*/}delay(5);/*延时90us供DA18B20采样*/DQ=1;/*释放DQ总线*/_nop_();_nop_();EA=1;}/***********************************************************写一字节数据子程序***********************************************************/voidwrite

6、_byte(unsignedcharval){unsignedchari;unsignedchartemp;EA=0;/*关中断*/TR0=0;for(i=0;i<8;i++)/*写一字节数据,一次写一位*/{temp=val>>i;/*移位操作,将本次要写的位移到最低位*/temp=temp&1;write_bit(temp);/*向总线写该位*/}delay(7);/*延时120us后*///TR0=1;EA=1;/*开中断*/}/***********************************************************读一位数据子程序*************

7、**********************************************/unsignedcharread_bit(){unsignedchari,value_bit;EA=0;DQ=0;/*拉低DQ,开始读时序*/_nop_();_nop_();DQ=1;/*释放总线*/for(i=0;i<2;i++){}value_bit=DQ;EA=1;return(value_bit)

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

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

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