基于51单片机的温控智能电风扇讲解 联系客服

发布时间 : 星期日 文章基于51单片机的温控智能电风扇讲解更新完毕开始阅读b201f6790d22590102020740be1e650e52eacfea

叶惠芳2011330300302机电11(1)班

}

}

Else //写0 { }

dq=0; //拉低

delayus(8); //延时保持至少60us dq=1;

i++; //延时至少1us的恢复时间 i++;

uint read_temp() {

clean_ds18b20(); //初始化完成m=0; }

4.键盘子程序 void keyscan(void) {

if(key1==0) //判断key1是否按下

{

delay(1); //等待初始化完成

write_ds18b20_date(0xcc); //跳过rom write_ds18b20_date(0x44); //启动温度测量 delayus(100); clean_ds18b20();

delay(1); //等待转化完成

write_ds18b20_date(0xcc); //跳过rom write_ds18b20_date(0xbe); //读数据命令

29

叶惠芳2011330300302机电11(1)班

}

delay(10); //延时判断kay1是否按下 }

else if(key2==0) //判断key2是否按下 {

delay(10); //延时判断key2是否按下 }

if(key2==0) {

set--; //设定温度减1 }

while(!key2);

if(set==0) set=18; if(key1==0) {

set++; //设定温度加1 }

while(!key1);

if(key1==45) set=18;

5.温度比较处理子程序

void deal(uint temp) //温度处理 {

if(temp<=set)

{ //温度低于设置值 h=0; }

30

l=5;

//0档

叶惠芳2011330300302机电11(1)班

}

else if((temp>set)&&(temp<=(set+1))) //温度高于设定值+1 { h=1; }

else if((temp>(set+1))&&(temp<=(set+3))) //温度>设定值+1,<设定值+3 { h=2; }

else if((temp>(set+5))&&(temp<=(set+7))) {

h=4; //4档 }

else if(temp>(set+7)) {

h=5; //5档 }

l=0; l=1; l=3;

//2档

l=4;

//1档

6.电机控制子程序 void dianjik() { uchar q,i; {

for(q=0;q

{

dianji=0;

31

叶惠芳2011330300302机电11(1)班

ledshow(shi,ge,set/10,set); for(i=320;i>0;i--) {

ledshow(shi,ge,set/10,set); } }

for(q=0;q

dianji=1;

ledshow(shi,ge,set/10,set); for(i=320;i>0;i--)

//输出设定的高电平次数

{

ledshow(shi,ge,set/10,set); } }

} }

32