单片机自动调光C语言,基于51单片机的DS18B20水温PID控制调节系统设计C语言程序...

这是一个基于51单片机的水温PID控制系统设计,使用C语言编程。程序中包含了温度读取、用户交互(设定温度)、PID算法以及LCD显示等功能。通过DS18B20传感器获取水温,并根据设定温度进行加热或保温状态的控制。
摘要由CSDN通过智能技术生成

#include ‘reg52.h’

#include ‘stdio.h’

#define uchar unsigned char

#define uint unsigned int

sbit s1=P2^0;

sbit s2=P2^1;

sbit s3=P2^2;

sbit s4=P2^3;

sbit s5=P2^4;

sbit ds=P2^5;

sbit beep=P2^6;

sbit rd=P1^0;

sbit rs=P1^1;

sbit wr=P1^2;

sbit lcden=P1^3;

sbit PWM=P1^6;

sbit led1=P1^4;

sbit led2=P1^5;

uchar set_temp,keytemp;

uint temp;

uchar c;

bit flag,flag1,flag2;

float f_temp,t;

int timecount,z;

float KP,KI,KD;

float e1,e2,e3;

float uk,duk;

uchar HighL,HighH,PWMH;

float k;

uchar code table[]={"设定温度:"};

uchar code table1[]={"实测温度:"};

uchar code table2[]={"加热"};

uchar code table3[]={"保温"};

uchar code table4[]={"作者:0903锋仔@"};

uchar code table5[]={"系统初始化"};

uchar code table6[]={"measured Temperature"};

uchar code table7[]={"水温控制系统设计"};

uchar code table8[]={"  "};

void delay(uint z)//延时函数,延时5ms

{

uint x,y;

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

for(y=110;y>0;y--);

}

void keyscan()

{

if(set_temp>=100)//将设定温度限定在0-100度之间

set_temp=100;

if(set_temp<=0)

set_temp=0;

if(s5==0)//此键按下设定温度加5

{

delay(10);

if(s5==0)

{

flag1=0;

set_temp+=5;

if(set_temp>=100)

{

set_temp=100;

beep=0;

delay(1000);

beep=1;

}

}while(s5==0);

}

if(s4==0)//此键按下设定温度减5

{

delay(10);

if(s4==0)

{

flag1=0;

set_temp-=5;

if(set_temp<=0)

{

set_temp=0;

beep=0;

delay(1000);

beep=1;

}

}while(s4==0);

}

if(s3==0)//此键按下设定温度加1

{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值