找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2004|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32單片機(jī)DS18B20溫度報(bào)警器代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1090044 發(fā)表于 2023-7-30 09:50 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
https://www.bilibili.com/video/B ... 78b8bd0daeff4af627f

  1. #include "DS18B20.h"
  2. #include "Buzzer.h"
  3. #include "delay.h"
  4. #include "usart.h"
  5. #include "TPAD.h"
  6. #include "lcd.h"
  7. #include "led.h"
  8. #include "sys.h"

  9. float T;
  10. u8 TFlag, TH;

  11. int main(void)
  12. {
  13.         Buzzer_Init();
  14.         delay_init();                      //延時(shí)函數(shù)初始化          
  15.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  16.         TPAD_Init(6);
  17.         uart_init(115200);                 //串口初始化為 115200
  18.         LED_Init();                                    //初始化與LED連接的硬件接口
  19.         LCD_Init();                                     //初始化LCD  
  20.         POINT_COLOR = RED;                //設(shè)置字體為紅色
  21.         LCD_ShowString(30, 50, 200, 16, 16, "ELITE STM32");       
  22.         LCD_ShowString(30, 70, 200, 16, 16, "DS18B20 TEST");       
  23.         LCD_ShowString(30, 90, 200, 16, 16, "ATOM@ALIENTEK");
  24.         LCD_ShowString(30, 110, 200, 16, 16, "2023/6/10");
  25.         while(DS18B20_Init())
  26.         {
  27.                 LCD_ShowString(30, 130, 200, 16, 16, "DS18B20 Error");
  28.                 delay_ms(200);
  29.                 LCD_Fill(30, 130, 239, 130+16, WHITE);
  30.                 delay_ms(200);
  31.         }
  32.         LCD_ShowString(30, 130, 200, 16, 16, "DS18B20 OK");
  33.         POINT_COLOR = BLUE;   //設(shè)置字體為藍(lán)色
  34.         LCD_ShowString(30, 150, 200, 16, 16, "Temp:   .    C");
  35.         while(1)
  36.         {
  37.                 DS18B20_ConvertT();
  38.                 T = DS18B20_ReadT();
  39.                 if(T < 0)
  40.                 {
  41.                         LCD_ShowChar(30+40, 150, '-', 16, 0);                        //顯示負(fù)號(hào)
  42.                         T = -T;
  43.                 }
  44.                 else
  45.                 {
  46.                         LCD_ShowChar(30+40, 150, '+', 16, 0);                        //顯示正號(hào)
  47.                 }
  48.                 LCD_ShowNum(30+40+8, 150, T, 2, 16);              //顯示正數(shù)部分
  49.                 LCD_ShowNum(30+40+32, 150, (u32)(T * 10000) % 10000, 4, 16);
  50.                 if(T > 31.0000 && TFlag == 0)
  51.                 {
  52.                         if(TPAD_Scan(0))        //成功捕獲到了一次上升沿(此函數(shù)執(zhí)行時(shí)間至少15ms)
  53.                         {
  54.                                 LED1 =! LED1;
  55.                                 TH = 2;
  56.                         }
  57.                         else if((TH == 0 || TH == 1 || TH == 2) && TPAD_Scan(0) == 0)
  58.                         {
  59.                           TH = 1;
  60.                         }
  61.                 }
  62.                 else if(T <= 31.0000)
  63.                 {
  64.                         LED0 =! LED0;
  65.                         delay_ms(100);
  66.                         TH = 0;
  67.                         TFlag = 0;
  68.                 }
  69.                 switch(TH)
  70.                 {
  71.                         case 1:Buzzer_ON();delay_ms(50);Buzzer_OFF();delay_ms(100);break;
  72.                         case 2:Buzzer_OFF();TFlag = 1;break;
  73.                 }
  74.         }
  75. }
復(fù)制代碼

原理圖:無
仿真:無
Keil代碼: 程序.7z (213.77 KB, 下載次數(shù): 32)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表