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

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

ID:30173725

大小:1.10 MB

页数:39页

时间:2018-12-27

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

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

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

2、tionalConstunsignedintIntegral;//积分常数IntegralConstunsignedintDerivative;//微分常数DerivativeConstunsignedintLastError;//Error[-1]unsignedintPrevError;//Error[-2]unsignedintSumError;//SumsofErrors};structPIDspid;//PIDControlStructureunsignedintrout;//PIDResponse(Output)unsig

3、nedintrin;//PIDFeedback(Input)sbitdata1=P1^0;sbitclk=P1^1;sbitplus=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;unsignedc

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

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

6、op_();EA=1;}/***********************************************************写一字节数据子程序***********************************************************/voidwrite_byte(unsignedcharval){unsignedchari;unsignedchartemp;EA=0;/*关中断*/TR0=0;for(i=0;i<8;i++)/*写一字节数据,一次写一位*/{temp=val>>i;/*移

7、位操作,将本次要写的位移到最低位*/temp=temp&1;write_bit(temp);/*向总线写该位*/}delay(7);/*延时120us后*///TR0=1;EA=1;/*开中断*/}/***********************************************************读一位数据子程序***********************************************************/unsignedcharread_bit(){unsignedchari,value_

8、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. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。