基于18B20和單片機(jī)89C52的測(cè)溫程序 作者: 時(shí)間:2016-11-29 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對(duì)面交流海量資料庫查詢 收藏 if(n) //負(fù)溫度時(shí)最高位顯示“-”display[0][0]=LedTab[11];else display[0][0]=LedTab[10];//////////////////////////////////////////////////處理鍵盤值if(Tmp_max>127) //最高溫度上限處理{n1=1;display[1][6]=(256-Tmp_max); //負(fù)數(shù)去反}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; //求個(gè)位段碼帶小數(shù)點(diǎn)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) //負(fù)溫度時(shí)最高位顯示“-”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; //求個(gè)位段碼帶小數(shù)點(diǎn)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]; //負(fù)溫度時(shí)最高位顯示“-”else{display[2][0]=LedTab[10]; //不顯示正} }/***************************鍵盤掃描***************************************/void Key_scanf(){key1=KeyTab[KeyRvs()]; //讀取鍵盤值if(key2!=key1) //防止連續(xù)跳動(dòng),釋放按鍵{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) //確定以后把修改的數(shù)據(jù)保存起來{mod=0; //恢復(fù)正常顯示EA=0; //IIC寫時(shí)候保護(hù)while(!Write_Byte_iic(IICADDR,0xaa)); //寫判斷是否設(shè)置標(biāo)志while(!Write_Byte_iic(IICADDR+2,Tmp_max)); //寫溫度上限while(!Write_Byte_iic(IICADDR+4,Tmp_min)); //寫溫度下限EA=1;}}key2=key1; //鍵值保存。釋放按鍵用}/**************************蜂鳴器報(bào)警***************************/void Beep(){char a,b,c;a=Tmp;b=Tmp_max;c=Tmp_min;if((a>=b)||(a 上一頁 1 2 下一頁
評(píng)論