新闻中心

EEPW首页>嵌入式系统>设计应用> 基于18B20和单片机89C52的测温程序

基于18B20和单片机89C52的测温程序

作者: 时间:2016-11-29 来源:网络 收藏
if(n) //负温度时最高位显示“-”display[0][0]=LedTab[11];else display[0][0]=LedTab[10];//////////////////////////////////////////////////处理键盘值if(Tmp_max>127) //最高温度上限处理{n1=1;display[1][6]=(256-Tmp_max); //负数去反}elsedisplay[1][6]=Tmp_max;display[1][1]=LedTab[display[1][6]/100]; //求最高位display[1][6]=display[1][6]%100; //求次高位display[1][2]=LedTab[display[1][6]/10];display[1][3]=LedTab[display[1][6]%10]|0x80; //求个位段码带小数点if(display[1][1]==LedTab[0]) //最高位为0不显示{display[1][1]=LedTab[10];if(display[1][2]==LedTab[0]) //最高位为0次高位为0不显示{display[1][2]=LedTab[10];}} if(n1) //负温度时最高位显示“-”display[1][0]=LedTab[11];else {display[1][0]=LedTab[10]; //不显示正}//////////////////////////////////////////////////////////////if(Tmp_min>127) //最低温度下限处理{n2=1;display[2][6]=(256-Tmp_min); //取反}elsedisplay[2][6]=Tmp_min;display[2][1]=LedTab[display[2][6]/100]; //求最高位display[2][6]=display[2][6]%100; //求次高位display[2][2]=LedTab[display[2][6]/10];display[2][3]=LedTab[display[2][6]%10]|0x80; //求个位段码带小数点if(display[2][1]==LedTab[0]) //最高位为0不显示{display[2][1]=LedTab[10];if(display[2][2]==LedTab[0]) //最高位为0次高位为0不显示{display[2][2]=LedTab[10];}} if(n2) display[2][0]=LedTab[11]; //负温度时最高位显示“-”else{display[2][0]=LedTab[10]; //不显示正} }/***************************键盘扫描***************************************/void Key_scanf(){key1=KeyTab[KeyRvs()]; //读取键盘值if(key2!=key1) //防止连续跳动,释放按键{if(key1==*) //mod选择{mod=mod%2+1;num=5000;}if((key1==0)&&(mod)) //按键加{num=5000;if(mod==1){if(Tmp_max==125) //最高上限温度Tmp_max=202; //最低温度下限elseTmp_max++;}if(mod==2){if(Tmp_min==125) //最高上限温度Tmp_min=202; //最低温度下限elseTmp_min++;}}if((key1==#)&&(mod)) //按键减{num=5000;if(mod==1){if(Tmp_max==202) //最低温度下限Tmp_max=125; //最高上限温度elseTmp_max--;}if(mod==2){if(Tmp_min==202) //最低温度下限Tmp_min=125; //最高上限温度elseTmp_min--;}}if(key1==D) //确定以后把修改的数据保存起来{mod=0; //恢复正常显示EA=0; //IIC写时候保护while(!Write_Byte_iic(IICADDR,0xaa)); //写判断是否设置标志while(!Write_Byte_iic(IICADDR+2,Tmp_max)); //写温度上限while(!Write_Byte_iic(IICADDR+4,Tmp_min)); //写温度下限EA=1;}}key2=key1; //键值保存。释放按键用}/**************************蜂鸣器报警***************************/void Beep(){char a,b,c;a=Tmp;b=Tmp_max;c=Tmp_min;if((a>=b)||(a
上一页 1 2 下一页

评论


技术专区

关闭