標(biāo)題: 32位STM32單片機(jī)DS18B20驅(qū)動(dòng) LCD實(shí)時(shí)溫度顯示 [打印本頁]

作者: ads2017    時(shí)間: 2017-6-16 11:22
標(biāo)題: 32位STM32單片機(jī)DS18B20驅(qū)動(dòng) LCD實(shí)時(shí)溫度顯示
基于32位的單片機(jī)DS18B20驅(qū)動(dòng),可實(shí)現(xiàn)LCD實(shí)時(shí)溫度顯示。


STM32單片機(jī)源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "ds18b20.h"

  7.   
  8. int main(void)
  9. {
  10.         u8 t=0;                            
  11.         short temperature;  
  12.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
  13.         delay_init(168);  //初始化延時(shí)函數(shù)
  14.         uart_init(115200);                //初始化串口波特率為115200
  15.        
  16.         LED_Init();                                        //初始化LED
  17.         LCD_Init();
  18.   POINT_COLOR=RED;//設(shè)置字體為紅色
  19.         LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");       
  20.         LCD_ShowString(30,70,200,16,16,"DS18B20 TEST");       
  21.         LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  22.         LCD_ShowString(30,110,200,16,16,"2014/5/7");
  23.         while(DS18B20_Init())        //DS18B20初始化       
  24.         {
  25.                 LCD_ShowString(30,130,200,16,16,"DS18B20 Error");
  26.                 delay_ms(200);
  27.                 LCD_Fill(30,130,239,130+16,WHITE);
  28.                 delay_ms(200);
  29.         }   
  30.         LCD_ShowString(30,130,200,16,16,"DS18B20 OK");
  31.         POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
  32.         LCD_ShowString(30,150,200,16,16,"Temp:   . C");         
  33.         while(1)
  34.         {                        
  35.                 if(t%10==0)//每100ms讀取一次
  36.                 {                                                                          
  37.                         temperature=DS18B20_Get_Temp();       
  38.                         if(temperature<0)
  39.                         {
  40.                                 LCD_ShowChar(30+40,150,'-',16,0);                        //顯示負(fù)號(hào)
  41.                                 temperature=-temperature;                                        //轉(zhuǎn)為正數(shù)
  42.                         }else LCD_ShowChar(30+40,150,' ',16,0);                        //去掉負(fù)號(hào)
  43.                         LCD_ShowNum(30+40+8,150,temperature/10,2,16);        //顯示正數(shù)部分            
  44.                    LCD_ShowNum(30+40+32,150,temperature%10,1,16);        //顯示小數(shù)部分                   
  45.                 }                                  
  46.                  delay_ms(10);
  47.                 t++;
  48. ……………………

  49. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
32位單片機(jī)DS18B20驅(qū)動(dòng).rar (486.96 KB, 下載次數(shù): 143)



作者: hhh77    時(shí)間: 2019-2-24 20:59
感謝正好需要這個(gè)!!
作者: zhuzhuzhuqi    時(shí)間: 2020-6-20 18:41
有proteus仿真嗎

作者: zhj1314    時(shí)間: 2020-6-21 16:34
為什么51能做的,用32做。僅僅熟悉用法的話直接看32學(xué)習(xí)板視頻不就行了?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1