基于單片機(jī)的溫度測量方案
char temperature[] = " 000 C";
void main() { CMCON = 0x07; // Disable comparators
ADCON1 = 0x0F; // Disable Analog functions
TRISA = 0x00;
TRISC = 0x00;
TRISB = 0x00;
I2C1_Init(100000); // Initiate I2C
Lcd_Init(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // CLEAR display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,1,"Testing TC74");
Lcd_Out(2,1,"Thermal sensor");
Delay_ms(1000);
Lcd_Cmd(_LCD_CLEAR);
do { check_device(TC74A0);
num = Read_Temp();
// Check for negative temperature
if (num > 127) {
temperature[0] = -;
num = ~num +1;
}
else temperature[0] = +;
temperature[1] = num/100 + 48;
temperature[2] = (num/10)%10 + 48;
temperature[3] = num%10 + 48;
temperature[5] = 223;
// eliminate 0s at beginning
if (temperature[1] == 0) {
temperature[1] = ;
if (temperature[2] == 0) temperature[2] = ;
}
Lcd_Out(2,4,temperature);
Delay_ms(500); } while(1);
}
五、輸出
下面的照片顯示裝置顯示正面和負(fù)面的溫度。一種熱焊棒尖端飽和的傳感器在127°C。測試負(fù)溫度讀數(shù)的時候,該裝置放進(jìn)冰箱。
圖7 測量室內(nèi)的溫度
圖8 最大的測量溫度
圖9 放在冰箱中的溫度顯示
六、總結(jié)
本實驗對微芯片的TC74傳感器與PIC單片機(jī)測量環(huán)境溫度的接口技術(shù)進(jìn)行了探討,并且證明方案是可以成功的。與TC74傳感器的通信是通過 PIC18F2550的一個I2C總線接口完成的。8位溫詞是從內(nèi)部溫度寄存器讀取和經(jīng)過PIC18F2550單片機(jī)在液晶屏上顯示的。再者,借助虹科電 子的便利的編譯器MikroC Pro for PIC,也讓剛方案顯得更加容易,更加穩(wěn)定。
評論