• 大小: 38KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: 其他
  • 标签: pid  温度控制  

资源简介

基于STC单片机的PID温度控制程序,KEILC编译器,可以运行。

资源截图

代码片段和文件信息

#include 
#include 
#define uint unsigned int
#define uchar unsigned char

sbit  wireless_1 = P3^0;
sbit  wireless_2 = P3^1;
sbit  wireless_3 = P3^2;
sbit  wireless_4 = P3^3;
sbit  ACC0 = ACC^0;
sbit  ACC7 = ACC^7;

void show_time(); //液晶显示程序
#define tim0 65536-1000    
#define tim1 65536-20000
uchar tm=1tx=0;          //记数两个定时中断的
enum{YURTsKdKp};//Y采集量 U控制量 R 设定量 Ts 采样时间 Kd 微分 Kp比例
int para[6]ptrout;       //out 是从PID()得到的控制量
int wdwd1rkpkdtse2e1e0u; //wd 是从DS18B20采到的数据

bit  dealCS=0;
sbit EN1=P2^2;
sbit IN1=P2^1;
sbit PWM=P2^0;




sbit DQ = P2^4;        //温度传送数据IO口
char donecounttempflagup_flagdown_flag;
uchar temp_value;      //温度值
uchar TempBuffer[15] week_value[2];
uchar TempBuffer1[7];
uchar Ctrltab[20]={815204050607080100120140160180200};

char T=23;
char  disp;
void show_time1(void);
void debouncer(void);   //去键盘抖动延时函数
void shezhiwendu(void); //设定温度函数
void scanner(void);
void     PID();     //键盘扫描函数
#define rowkey()(~P1)&0x0f //读取端口宏定义

/**************去抖动延时函数***************/
void debouncer(void)
{ int i;
for(i=0;i<2400;i++);
}
/*******************************************/

/**************设置温度函数***************/
void shezhiwendu(void)
{
 while(1)
      { 
   scanner();
show_time1();

   if(disp==2)   { T++; disp=0; } 
 
        if(disp==3)   { T--; disp=0; } 
  
    if(disp==4)    break; 

      }
}

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

/***********键盘扫描函数********************/

void scanner(void)
{ char colrow;
char scankeyin;
scan=0xef;
for(col=0;col<4;col++)
{ P1=scan;
keyin=rowkey();
if(keyin!=0)
{ for(row=0;row<4;row++)
{ if(keyin==(0x01< { disp=row+4*col;
break;
}
if(row==4)
disp=0;
}
while(rowkey());
debouncer();
}
scan=(scan<<1)|0x01;
}
}

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




void  initTimer0_Timer1()    //初始化定时器0,定时器1
{


TMOD=0x01;
TH0=tim0>>8; TL0=tim0; 

TR0=1;
ET0=1;
EA=1;


}

void  initPID()          //初始化PID函参数
{
 
  para[Kp]=100; 
  para[Kd]=3;  
  para[Ts]=10;
  
}


void PID()             //PID服务程序
{  
   
   TR0=0;
   ET0=0;
   EA=0;               //检测的温度
                  //wd设定的温度
  e0=e1;e1=e2;e2=wd-T; 
  kp=para[Kp]; kd=para[Kd]; ts=para[Ts];
  u=wd+kp*(e2+kd*(e2-e1));
  if(u<0) u=0;
  if(u>500) u=500;
  out=u/10;        //控制量
   
   TR0=1;
   ET0=1;
   EA=1; 


}


void PWM_timer0() interrupt 1    //定时器0中断服务子程序
{
  TH0=tim0>>8; TL0=tim0; 
  
     if(tm++>=out) 
       
      PWM=0;        //通过变量out控制PWM脉冲宽度
       else PWM=1; 
 
if(tm>=50) 
 {  

PID();     
tm=1;           //通过变量tm控制PWM的周期
  }  
   
}


/*

void timer1() interrupt 3      //定时器1中断服务子程序 
{
  TH1=tim1>>8; TL1=tim1;
  if(dealCS==0)            ///模糊控制
  {
    wdCtrl=para[R];
    if((wdCtrl-wd/10)>

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6376  2009-03-06 20:41  57578847PIDwenkong\PIDwenkong\STARTUP.A51

     文件      14049  2009-09-15 12:41  57578847PIDwenkong\PIDwenkong\STARTUP.LST

     文件        749  2009-09-15 12:41  57578847PIDwenkong\PIDwenkong\STARTUP.OBJ

     文件      19331  2009-09-15 12:41  57578847PIDwenkong\PIDwenkong\温度控制

     文件       9417  2009-03-11 16:21  57578847PIDwenkong\PIDwenkong\温度控制.c

     文件       4161  2009-09-15 12:41  57578847PIDwenkong\PIDwenkong\温度控制.hex

     文件         49  2009-09-15 12:41  57578847PIDwenkong\PIDwenkong\温度控制.lnp

     文件      19666  2009-09-15 12:41  57578847PIDwenkong\PIDwenkong\温度控制.LST

     文件      26671  2009-09-15 12:41  57578847PIDwenkong\PIDwenkong\温度控制.M51

     文件      22278  2009-09-15 12:41  57578847PIDwenkong\PIDwenkong\温度控制.OBJ

     文件       1039  2009-09-15 12:51  57578847PIDwenkong\PIDwenkong\温度控制.Opt

     文件        596  2009-09-15 12:41  57578847PIDwenkong\PIDwenkong\温度控制.plg

     文件       1998  2009-09-15 12:51  57578847PIDwenkong\PIDwenkong\温度控制.Uv2

     文件        998  2009-03-11 16:21  57578847PIDwenkong\PIDwenkong\温度控制_Opt.Bak

     文件       1711  2009-03-09 10:34  57578847PIDwenkong\PIDwenkong\温度控制_Uv2.Bak

     目录          0  2009-09-15 12:52  57578847PIDwenkong\PIDwenkong

     目录          0  2009-09-15 12:52  57578847PIDwenkong

----------- ---------  ---------- -----  ----

               129089                    17


评论

共有 条评论