|
單總線掛多個DS18B20
單片機源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "ds18b20.h"
- #include "usmart.h"
- #include <HZ.H>
- const u8 table[]={"0123456789ABCDEF"};
- extern u8 ID_Data[8];
- int main(void)
- {
- u8 t=0;
- short temperature;
- delay_init(); //延時函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
- uart_init(115200); //串口初始化為 115200
-
- usmart_dev.init(SystemCoreClock/1000000); //初始化USMART
-
- LED_Init(); //初始化與LED連接的硬件接口
- LCD_Init(); //初始化LCD
- POINT_COLOR=BLUE;//設(shè)置字體為藍色
- while(DS18B20_Init()) //DS18B20初始化
- {
- LCD_ShowString(30,130,200,24,24,"DS18B20 Error");
- delay_ms(200);
- LCD_Fill(30,130,239,130+16,WHITE);
- delay_ms(200);
- }
- LCD_ShowString(30,30,200,16,16,"DS18B20 OK");
-
- LCD_ShowString(30,150,200,24,24,"T--A: . C");
- LCD_ShowChar_HZ(162,150,7,24,0);
-
- LCD_ShowString(30,180,200,24,24,"T--A: . C");
- LCD_ShowChar_HZ(162,180,7,24,0);
- while(1)
- {
- if(t%10==0) //每100ms讀取一次
- {
- temperature=Read_ID_temperature(1);
- if(temperature<0)
- {
- LCD_ShowChar(90,150,'-',24,0); //顯示負號
- temperature=-temperature; //轉(zhuǎn)為正數(shù)
- }
- else
- LCD_ShowChar(90,150,' ',24,0); //去掉負號
- LCD_ShowNum(103,150,temperature/10,3,24); //顯示正數(shù)部分
- LCD_ShowNum(151,150,temperature%10,1,24); //顯示小數(shù)部分
- /******************************************************************/
- temperature=Read_ID_temperature(2);
- if(temperature<0)
- {
- LCD_ShowChar(90,180,'-',24,0); //顯示負號
- temperature=-temperature; //轉(zhuǎn)為正數(shù)
- }
- else
- LCD_ShowChar(90,180,' ',24,0); //去掉負號
- LCD_ShowNum(103,180,temperature/10,3,24); //顯示正數(shù)部分
- LCD_ShowNum(151,180,temperature%10,1,24); //顯示小數(shù)部分
- }
- delay_ms(10);
- t++;
- if(t==20)
- {
- t=0;
- LED0=!LED0;
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
程序.7z
(263.25 KB, 下載次數(shù): 72)
2019-5-27 15:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|