新聞中心

DS18B20和ADC0832共同使用

作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
WriteOneChar(unsigned char dat){unsigned char i=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay_18b20(5);DQ=1;dat>>=1;}}Read_Temperature(void){Init_DS18B20() ;WriteOneChar(0xCC) ; // 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x44) ; // 啟動(dòng)溫度轉(zhuǎn)換Init_DS18B20() ;WriteOneChar(0xCC) ; //跳過讀序號(hào)列號(hào)的操作WriteOneChar(0xBE) ; //讀取溫度寄存器temp_data[0] = ReadOneChar(); //溫度低8位temp_data[1] = ReadOneChar(); //溫度高8位}Disp_Temperature(){display[4]=temp_data[0]&0x0f;display[0]=ditab[display[4]]; //查表得小數(shù)位的值display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);display[3]=display[4]/100 ;display[1]=display[4]%100 ;display[2]=display[1]/10;display[1]=display[1]%10;if(display[3]==0) //高位為0,不顯示{display[3]=10 ; if(display[2]==0) //次高位為0,不顯示display[2]=10 ;}}display1(){P2=tablewe[0]; //P2口低四位位選P0=table[display[3]]; //P0口數(shù)碼管段選delay_18b20(50);P2=tablewe[1];P0=table[display[2]];delay_18b20(50);P2=tablewe[2];P0=table1[display[1]];delay_18b20(50);P2=tablewe[3];P0=table[display[0]];}void main(){while(1){ Read_Temperature();Disp_Temperature();display1();ad();cal();display2();}}這個(gè)程序可以使用,但是就是沒有辦法顯示低溫零度以下的,求修改!
上一頁 1 2 下一頁

關(guān)鍵詞: DS18B20ADC0832共同使

評(píng)論


技術(shù)專區(qū)

關(guān)閉