標題:
單總線掛多個DS18B20的STM32單片機程序
[打印本頁]
作者:
8往事隨風001
時間:
2019-5-27 09:48
標題:
單總線掛多個DS18B20的STM32單片機程序
單總線掛多個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(); //延時函數初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應優(yōu)先級
uart_init(115200); //串口初始化為 115200
usmart_dev.init(SystemCoreClock/1000000); //初始化USMART
LED_Init(); //初始化與LED連接的硬件接口
LCD_Init(); //初始化LCD
POINT_COLOR=BLUE;//設置字體為藍色
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; //轉為正數
}
else
LCD_ShowChar(90,150,' ',24,0); //去掉負號
LCD_ShowNum(103,150,temperature/10,3,24); //顯示正數部分
LCD_ShowNum(151,150,temperature%10,1,24); //顯示小數部分
/******************************************************************/
temperature=Read_ID_temperature(2);
if(temperature<0)
{
LCD_ShowChar(90,180,'-',24,0); //顯示負號
temperature=-temperature; //轉為正數
}
else
LCD_ShowChar(90,180,' ',24,0); //去掉負號
LCD_ShowNum(103,180,temperature/10,3,24); //顯示正數部分
LCD_ShowNum(151,180,temperature%10,1,24); //顯示小數部分
}
delay_ms(10);
t++;
if(t==20)
{
t=0;
LED0=!LED0;
}
}
}
復制代碼
所有資料51hei提供下載:
程序.7z
(263.25 KB, 下載次數: 72)
2019-5-27 15:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
51黑科技1314
時間:
2019-9-27 19:55
還缺了一些文件要自己加上去的
還好弄成功了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1