水温控制系统设计c程序

水温控制系统设计c程序

ID:43414686

大小:29.01 KB

页数:7页

时间:2019-10-02

水温控制系统设计c程序_第1页
水温控制系统设计c程序_第2页
水温控制系统设计c程序_第3页
水温控制系统设计c程序_第4页
水温控制系统设计c程序_第5页
资源描述:

《水温控制系统设计c程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、程序清单以下是水温控制系统的主程序,由于按键扫描和数码显示电路比较简单故没有单独列出来,可以参考语句后面的注释。#includeunsignedchardisplay_code[10]={~0x3f,~0x06,~0x5b,~0x4f,~0x66,~0x6d,~0x7d,~0x07,~0x7f,~0x67};unsignedchardisplay_buffer[4];bitset=0;bitpid_allow=0;sbiteoc=P3^3;sbitoe=P3^2;sbits

2、t=P3^4;sbitk1=P2^4;sbitk2=P2^5;sbitk3=P2^6;sbitk4=P2^7;sbitlight=P3^6;sbitheal=P3^7;unsignedchari=0;floatt,t_now,tout=100,t_diff=0,t_target=60,temp=0;unsignedintk=5000;intttemp1=0;unsignedcharttemp2=0,ttemp3=1;floatKP=28,KI=2.5;voiddisplay(void);  //

3、数码管显示voidadc0809(void);  //AD转换voidpid(void);   //pid控制量计算voidp_out(void);  //输出控制voidmain(){    TMOD=0x11;  TL0=(65536-3000)%256;  TH0=(65536-3000)/256; TL1=(65536-40000)%256;  TH1=(65536-40000)/256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; light=0; heal=1

4、; while(1) {  display_buffer[0]=(unsignedchar)t_now/10;   //刷新显示  display_buffer[1]=(unsignedchar)t_now%10;  display_buffer[2]=(unsignedchar)t_target/10;  display_buffer[3]=(unsignedchar)t_target%10;  if(set==0)           //按键扫描  {   if(k1==0)    //复

5、位   {    while(k--);    if(k1==0){t_target=40;}     }   if(k2==0)    //目标温度+1   {    while(k--);    if(k2==0){if((t_target++)>=90)t_target=90;}   }   if(k3==0)    //目标温度-1   {    while(k--);    if(k3==0){if((t_target--)<=40)t_target=40;}   }   if(k4=

6、=0)    //开始工作   {    while(k--);    if(k4==0){pid_allow=1;set=1;light=1;}    }  }  elseif(set==1)  {   if(k1==0)    //停止,复位   {    while(k--);    if(k1==0){t_target=40;light=0;set=0;heal=1;tout=0;temp=0;tout=100;t_diff=0;}   }    } }} /**************

7、************************************** 函数:定时器0中断程序 功能:3000uS中断一回,对数码管进行显示*****************************************************/voidtime0()interrupt1using0{ TL0=(65536-3000)%256; TH0=(65536-3000)/256; display();}/**************************************

8、************** 函数:定时器1中断程序 功能:40000uS中断一回,进行AD转换,控制输出量*****************************************************/voidtime1()interrupt3using0{ TL1=(65536-40000)%256;  TH1=(65536-40000)/256; adc0809();// if(pid_allow==1) if((pid_allow==1)&&(t_target-t_now<=

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

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

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