小型温控系统c语言程序,模糊PID控制温控系统方案C语言程序代码.doc

模糊PID控制温控系统方案C语言程序代码

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

模糊PID控制温控系统仿真设计C程序代码

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

#include

#define uchar unsigned char

#define uint unsigned int

#define PULSE 200

#define number 0.035

sbit SDO = P2^0;

sbit SDI = P2^1;

sbit CS = P2^2;

sbit CLK = P2^3;

sbit EOC = P2^4;

sbit RS = P2^5;

sbit RW = P2^6;

sbit EN = P2^7;

sbit KEY1= P3^0;

sbit KEY2= P3^1;

sbit KEY3= P3^2;

sbit KEY4= P3^3;

sbit KEY5= P3^4;

sbit IN1 = P3^5;

sbit IN2 = P3^6;

sbit ENA = P3^7;

uchar flag;

uchar flag_start;

float S_temp=60.0;

float P_temp=20.0;

float Kp;

float Ki;

float Kd;

float Err=0.0;

float Last_Err=0.0;

float D_Err=0.0;

float Sum_Err=0.0;

float U=0.0;

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

函数功能:延时

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

void delay_ms(uchar z)

{

uchar i;

uchar j;

for(i=z;i>0;i--)

for(j=360;j>0;j--);

}

void delay_us(uchar z)

{

uchar i;

for(i=z;i>0;i--);

}

void LCD_WriteData(uchar Dat)

{

RS = 1;

P1 = Dat;

delay_us(10);

EN = 1;

delay_us(10);

EN = 0;

}

void LCD_WriteCOM(uchar com)

{

RS = 0;

P1 = com;

delay_us(10);

EN = 1;

delay_us(10);

EN = 0;

}

void Show_Num(uchar x,uchar y,uchar n,float num)

{

uchar a[3];

uchar i;

uint Temp;

Temp=(int)num;

for(i=0;i

{

a[i] = Temp%10;

Temp = Temp/10;

}

if(y%2 == 1)

LCD_WriteCOM(0x80+x);

else

LCD_WriteCOM(0x80+0x40+x);

for(i=n;i>0;i--)

LCD_WriteData(a[i-1]+0x30);

}

void Show_Ki(uchar num_Ki)

{

uchar Temp;

num_Ki=Ki*100;

Temp=(uchar)num_Ki;

Show_Num(10,2,1,Temp%10);

Temp=Temp/10;

Show_Num(9,2,1,Temp%10);

Temp=Temp/10;

Show_Num(7,2,1,Temp);

}

void Show_char(uchar x,uchar y,uchar ch)

{

if(y%2 == 1)

LCD_WriteCOM(0x80+x);

else

LCD_WriteCOM(0x80+0x40+x);

LCD_WriteData(ch);

}

void LCD_Init(void)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值