叶惠芳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
相关推荐: