DS18B20數(shù)字溫度傳感器
單片機(jī)源程序如下:- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include "ds18b20.h"
- int main(void)
- {
- u8 t=0;
- short temperature;
- delay_init(); //延時(shí)函數(shù)初始化
- uart_init(9600); //串口初始化為9600
- LED_Init(); //初始化與LED連接的硬件接口
- // LCD_Init();
- POINT_COLOR=RED;//設(shè)置字體為紅色
- // LCD_ShowString(60,50,200,16,16,"Mini STM32");
- // LCD_ShowString(60,70,200,16,16,"DS18B20 TEST");
- // LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
- // LCD_ShowString(60,110,200,16,16,"2014/3/12");
- printf("\r\nds18b20-ok:\r\n");
- while(DS18B20_Init()) //DS18B20初始化
- {
- //// LCD_ShowString(60,130,200,16,16,"DS18B20 Error");
- // delay_ms(200);
- //// LCD_Fill(60,130,239,130+16,WHITE);
- // delay_ms(200);
- }
- // LCD_ShowString(60,130,200,16,16,"DS18B20 OK");
- // POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
- // LCD_ShowString(60,150,200,16,16,"Temp: . C");
-
- while(1)
- {
- if(t%10==0)//每100ms讀取一次
- {
- temperature=DS18B20_Get_Temp();
- if(temperature<0)
- {
- // LCD_ShowChar(60+40,150,'-',16,0); //顯示負(fù)號
- temperature=-temperature; //轉(zhuǎn)為正數(shù)
- }else LCD_ShowChar(60+40,150,' ',16,0); //去掉負(fù)號
- // LCD_ShowNum(60+40+8,150,temperature/10,2,16); //顯示正數(shù)部分
- // LCD_ShowNum(60+40+32,150,temperature%10,1,16); //顯示小數(shù)部分
- printf("\r\nds18b20====:\r\n");
- }
- delay_ms(10);
- t++;
- if(t==2)
- {
- t=0;
- LED0=!LED0;
- printf("\r\nds18b20====:\r\n");
- }
- }
- }
復(fù)制代碼
原理圖: 無
仿真: 無
代碼:
DS18B20數(shù)字溫度傳感器.7z
(221.64 KB, 下載次數(shù): 5)
2023-12-18 01:15 上傳
點(diǎn)擊文件名下載附件
|