Như chủ đề ạ. Em làm mạch dùng 18B20 đọc nhiệt độ, mô phỏng thì chạy bình thường nhưng vào mạch thật thì luôn hiện 127 độ.
Em dùng codeVision:
lcd_init(16);
ds18b20_init(T,0,0,DS18B20_12BIT_RES);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("TIME:\n ");
i2c_init();
rtc_init(3,0,0);
while (1)
{
// Place your code here
rtc_get_time(&h,&m,&s);
sprintf(LCD_Buffer,"%2d:%2d:%2d",h,m,s);
lcd_gotoxy(8,0);
lcd_puts(LCD_Buffer);
Tem=ds18b20_temperature(T);
sprintf(LCD_Buffer,"TEMP: %2d^C",Tem);
lcd_gotoxy(0,1);
lcd_puts(LCD_Buffer);
}
}
P/s: Ko phải do mạch sai đâu ạ, vì em thử code khác lập trình bằng Winavr thì chạy bình thường.
Em dùng codeVision:
lcd_init(16);
ds18b20_init(T,0,0,DS18B20_12BIT_RES);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("TIME:\n ");
i2c_init();
rtc_init(3,0,0);
while (1)
{
// Place your code here
rtc_get_time(&h,&m,&s);
sprintf(LCD_Buffer,"%2d:%2d:%2d",h,m,s);
lcd_gotoxy(8,0);
lcd_puts(LCD_Buffer);
Tem=ds18b20_temperature(T);
sprintf(LCD_Buffer,"TEMP: %2d^C",Tem);
lcd_gotoxy(0,1);
lcd_puts(LCD_Buffer);
}
}
P/s: Ko phải do mạch sai đâu ạ, vì em thử code khác lập trình bằng Winavr thì chạy bình thường.
Comment