51hei截圖20210324151659.png (61.68 KB, 下載次數(shù): 79)
下載附件
2021-3-24 15:20 上傳
#include "reg51.h"
#include "ds18b20.c"
#include "lcd1602.c"
#include "timer.c"
sbit led_z = P1^3;
sbit led_f = P1^4;
sbit bz = P1^7;
sbit Ap = P1^0;
sbit Bp = P1^1;
void main(void)
{
unsigned char tp,tp_old,tep,speed;
unsigned char bz_on;
unsigned char way;
duty = 100;
pwm = 25;
tp = 25;
tp_old = 25;
tep = 26;
speed = 0;
led_z = 1;
led_f = 1;
bz = 0;
bz_on = 0;
way = 0;
Init_LCD1602();
Init_timer0();
ds18b20_set_temp(85,0);//릏0-85
while(1)
{
ds18b20_temp_conver();
LCD_Display_Byte(0,2,'T');
LCD_Write(1,'e');
LCD_Write(1,'m');
LCD_Write(1,'p');
LCD_Write(1,':');
LCD_Write(1,'0'+tep/10);
LCD_Write(1,'0'+tep%10);
LCD_Write(1,'C');
delayms(50);
tp = ds18b20_read_temp();
if(tp!=tp_old)
{
tp_old = tp;
if(tp<100)
{
tep = tp;
}
}
if(tep<=10)
{
pwm = (10-tep)*10;
speed = pwm;
if(tep==0)
bz_on = 1;
else
bz_on = 0;
way = 1;
}
else if(tep>=45)
{
if(tep<=75)
{
pwm = (tep-45)*7/2;
if(pwm>99)
pwm = 100;
speed = pwm;
}
else
{
pwm = 100;
speed = pwm;
}
if(tep>=75)
bz_on = 1;
else
bz_on = 0;
way= 0;
}
if((tep>10)&&(tep<45))
{
pwm = 0;
speed = pwm;
bz_on = 0;
}
LCD_Display_Byte(1,2,'S');
LCD_Write(1,'p');
LCD_Write(1,'e');
LCD_Write(1,'e');
LCD_Write(1,'d');
LCD_Write(1,':');
LCD_Write(1,'0'+speed/100);
LCD_Write(1,'0'+(speed/10)%10);
LCD_Write(1,'0'+speed%10);
LCD_Write(1,'%');
if(pwm>0)
{
if(!way)
{
Ap = 1;
Bp = 0;
led_z = 0;
led_f = 1;
}
else
{
Ap = 0;
Bp = 1;
led_z = 1;
led_f = 0;
}
}
else
{
led_z = 1;
led_f = 1;
}
if(bz_on)
bz = ~bz;
else
bz = 0;
}
}
|