找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3354|回復: 3
打印 上一主題 下一主題
收起左側(cè)

STM32+DS18B20恒溫控制程序 蜂鳴器報警

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:488831 發(fā)表于 2020-1-5 09:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
內(nèi)含報警指示燈+恢復按鍵,原本是打算用LCD顯示,但是由于硬件LCD引腳沒設(shè)計連成一片,導致CLD驅(qū)動代碼不好寫,遂改用串口調(diào)試助手顯示。

單片機源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "usart.h"       
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "ds18b20.h"
  7. #include "beep.h"


  8. int main(void)
  9. {         
  10.         u8 t=0;                            
  11.         float temperature;
  12.     int x;
  13.         delay_init();                     //延時函數(shù)初始化
  14.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應優(yōu)先級
  15.         uart_init(115200);                 //串口初始化為 115200
  16.         LED_Init();
  17.         LCD_init();
  18.     BEEP_Init();                 //初始化蜂鳴器端口
  19.         while(DS18B20_Init())        //檢測DS18B20是否存在
  20.         {
  21. //                 LED0=1;       
  22.         }
  23. //     LED0=0;       

  24.         while(1)
  25.         {       
  26. //                if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0))
  27. //                                x=0;
  28. //                        else
  29. //                                x=1;
  30.                
  31.                 /**LED3電源顯示燈**/
  32.          GPIO_SetBits(GPIOA,GPIO_Pin_6);
  33.          delay_ms(100);
  34.          GPIO_ResetBits(GPIOA,GPIO_Pin_6);
  35.          delay_ms(100);
  36.                
  37.        Wcmd(0x80+0x40+1);
  38.            Wdat('H');
  39.         
  40.                 BEEP=0;        //平時使它不報警
  41.         BAOJIN=1;//報警LED置高,使它平時不亮
  42. //                 GPIO_SetBits(GPIOA,GPIO_Pin_5);

  43.                 if(t%10==0)                        //每100ms讀取一次
  44.                 {                                                                          
  45.                         temperature=DS18B20_Get_Temp();
  46.             printf("   當前溫度為  %2.4f",temperature*0.0625);       
  47.                          printf("  攝氏度");       
  48.             printf("\r\n");       
  49.                        
  50.                        
  51.                        
  52.                        
  53.                        
  54.                         /**PA5當溫度大于多少時使蜂鳴器BEEP響     PA7紅光LED閃爍BAOJIN **/
  55.            if((temperature*0.0625>=10)&&GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0))///**********報警值設(shè)置*****////
  56.                    {
  57.                   
  58.                 BEEP=0;       
  59.                    BAOJIN=1;         //報警
  60.                 delay_ms(100);//延時300ms
  61.                 BEEP=1;  
  62.                 BAOJIN=0;          
  63.                 delay_ms(300);//延時300ms
  64.             printf("   超過規(guī)定溫度,開始報警,紅燈閃爍,危險!請撤離\r\n");
  65.             printf("\r\n");       
  66.                   
  67.                    }       
  68.                        
  69.                 }                       

  70.                

  71.         }
  72. }
復制代碼

所有資料51hei提供下載:
18B20數(shù)字溫度傳感器實驗.7z (195.67 KB, 下載次數(shù): 107)


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

使用道具 舉報

沙發(fā)
ID:91165 發(fā)表于 2020-2-25 15:23 | 只看該作者
下來了,謝謝樓主
回復

使用道具 舉報

板凳
ID:743099 發(fā)表于 2020-5-9 01:23 | 只看該作者
有原理圖就好了
回復

使用道具 舉報

地板
ID:748161 發(fā)表于 2020-5-16 09:29 | 只看該作者
感謝樓主
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表