新聞中心

        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 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 常德市| 南昌市| 韶关市| 客服| 阿图什市| 鄂州市| 林州市| 抚远县| 尖扎县| 葫芦岛市| 洞头县| 桂平市| 黔西县| 饶阳县| 麻江县| 华容县| 岐山县| 桂平市| 蕉岭县| 钟山县| 萍乡市| 喀喇| 九龙城区| 布拖县| 谢通门县| 南溪县| 万荣县| 噶尔县| 沂南县| 台南县| 南靖县| 綦江县| 徐州市| 曲水县| 新巴尔虎右旗| 济阳县| 乐业县| 理塘县| 玛纳斯县| 南投县| 渭源县|