明天就要答辩了,谁能解释c52单片机里的程序。温控系统,pid算法,max6675
voidmain(){TMOD=0X01;ET0=1;//打开TO定时器TR0=1;//开启中断TH0=(65536-5000)/256;TL0=(65536-5000)...
void main()
{
TMOD=0X01;
ET0 = 1; //打开TO定时器
TR0 = 1; //开启中断
TH0 = (65536-5000)/256;
TL0 = (65536-5000)%256;
EA=1; //打开总中断
这部分是干什么用的,输出pwm波吗。为什么时5000呢
Buzzer = 0;
PID_init();
while(1)
{
set_value(); //设置参数
max6675_temp = read_max6675_temp(); //获取温度
display(); //显示
warn(); //逻辑判断
delay_10ms(20); //延时200ms
}
}这部分又是干什么用的
void delay1s(void) interrupt
{
//2ms定时器
TH0 = (65536-45000)/256;
TL0 = (65536-45000)%256;
count++;
if(count>=20)
{
count = 0;
}
if(count%20<PID_down)
{
PWM = 1;
}
else
{
PWM = 0;
}
}这部分到底是做什么用的 展开
{
TMOD=0X01;
ET0 = 1; //打开TO定时器
TR0 = 1; //开启中断
TH0 = (65536-5000)/256;
TL0 = (65536-5000)%256;
EA=1; //打开总中断
这部分是干什么用的,输出pwm波吗。为什么时5000呢
Buzzer = 0;
PID_init();
while(1)
{
set_value(); //设置参数
max6675_temp = read_max6675_temp(); //获取温度
display(); //显示
warn(); //逻辑判断
delay_10ms(20); //延时200ms
}
}这部分又是干什么用的
void delay1s(void) interrupt
{
//2ms定时器
TH0 = (65536-45000)/256;
TL0 = (65536-45000)%256;
count++;
if(count>=20)
{
count = 0;
}
if(count%20<PID_down)
{
PWM = 1;
}
else
{
PWM = 0;
}
}这部分到底是做什么用的 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询