(整理)温度PID控制.pdfVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

精品文档

#includeintrins.h

#includemath.h

#includestring.h

sbitdp1=P2^4;

sbitdp2=P2^5;

sbitdp3=P2^6;

sbitdp4=P2^7;//数码管位选

sbitkey1=P2^0;

sbitkey2=P2^1;

sbitkey3=P2^2;

sbitkey4=P2^3;//按键位选

sbitP13=P1^3;//控制端口

sbitP34=P3^4;//测温DQ

sbitP35=P3^5;//发声端口

chardplib[11]={0x018,0x07B,0x02C,0x029,0x04B,0x089,0x088,0x03B,0x08,0x09,0x0EF};//数

码管表

chardpbuf[4];//每个数码管显示的数字缓冲区

intt=0;//控制循环次数或标志位

ints0=0;//用于延时或循环或标志位

ints1=0;//用于延时或循环或标志位

unsignedcharacc=0;//用于对温度芯片的读写操作

inthigh_time,low_time,count=0;//占空比调节参数

floattemper;

intTTL=1,huansuan,TH1Z1,TL1Z1,TH1Z0,TL1Z0;//用于脉宽调制

intsign=0;//sign为1,则小数点显示,否则小数点不显示

intdnt=0;//用于位选挨个点亮

intcnt=0;//用于控制是否一直按着加键或者减键

intshujua;//读出温度数据的高位

intshujub;//温度低位

intzancun=0;//临时数据存放

intwatchdog=0;//软件看门狗,无操作定时返回退出

/***********************************************************

PID类

***********************************************************/

structPID{

intSetPoint;//设定目标DesiredValue

精品文档

精品文档

intProportion;//比例常数ProportionalConst

intIntegral;//积分常数IntegralConst

intDerivative;//微分常数DerivativeConst

floatLastError;//Error[-1]

floatPrevError;//Error[-2]

floatSumError;//SumsofErrors

};

structPIDspid;//PIDControlStructure

floatrout;//PIDResponse(Output)

floatrin;//PIDFeedback(Input)

voidkeyprogram();//键盘参数设置子程序

voidobserve();//运行中观察设置参数子程序

voidsettingmode();//选择要设定的参数子程序

voidaddmode();//参数加

voidsubmode();//参数减

voiddisplaysetting(intmode);//键盘操作时显示的设置

voidINIT18B20();//初始芯片

voidWRBYTE(unsignedchara);//写字

voidRDBYTE();//读字

voiddelay10ms(void);//10MS延时,用于显示2S

voidget_temper();//温度测量子程序

voidchange(inta,intb);//对读出数据处理,与汇编原理一样

/***********************************************************

T0中断服务程序

***********************************************************/

voidtimer0(void)interrupt1using2//T0中断

{

TH0=0xEE;

TL0=0x00;

dp2=dp4=dp3=dp1=1;

if(dnt3)

{dnt=0;}

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档