久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 基于STM32的溫度傳感器和煙霧報警器程序源碼,在LCD顯示的同時通過HC05與手機通訊 [打印本頁]

作者: WSHFS123    時間: 2019-11-14 20:54
標題: 基于STM32的溫度傳感器和煙霧報警器程序源碼,在LCD顯示的同時通過HC05與手機通訊
單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"
  7. #include "hc05.h"
  8. #include "usart3.h"                                 
  9. #include "string.h"           
  10. #include "usmart.h"        
  11. #include "beep.h"
  12. #include "adc.h"
  13. #include "tsensor.h"



  14. //顯示ATK-HC05模塊的主從狀態(tài)
  15. void HC05_Role_Show(void)
  16. {
  17.         if(HC05_Get_Role()==1)LCD_ShowString(30,140,200,16,16,"ROLE:Master");        //主機
  18.         else LCD_ShowString(30,140,200,16,16,"ROLE:Slave ");                                         //從機
  19. }
  20. //顯示ATK-HC05模塊的連接狀態(tài)
  21. void HC05_Sta_Show(void)
  22. {                                                                                                
  23.         if(HC05_LED)LCD_ShowString(120,140,120,16,16,"STA:Connected ");                        //連接成功
  24.         else LCD_ShowString(120,140,120,16,16,"STA:Disconnect");                                 //未連接                                 
  25. }        

  26. int main(void)
  27. {
  28.         short temp;  
  29.         u8 key;
  30.         u8 sendmask=0;
  31.         //u8 sendcnt=0;
  32.         u8 sendbuf[20];         
  33.         u8 reclen=0;         
  34.         delay_init();                     //延時函數(shù)初始化         
  35.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  36.         uart_init(115200);                 //串口初始化為9600
  37.         LED_Init();                                //初始化與LED連接的硬件接口
  38.         KEY_Init();                                //初始化按鍵
  39.   LCD_Init();                                //初始化LCD
  40.   usmart_dev.init(72);         //初始化USMART        
  41.          
  42.          
  43.   BEEP_Init();
  44.          T_Adc_Init();                                  //ADC初始化                  
  45.         

  46.          
  47.         POINT_COLOR=BLUE;//設(shè)置字體為藍色      
  48.          LCD_ShowString(30,280,200,16,16,"TEMPERATE: 00.00C");
  49.         LCD_ShowString(30,310,200,16,16,"SMOKE:    ");
  50.          
  51.          
  52.          
  53.         delay_ms(1000);                        //等待藍牙模塊上電穩(wěn)定
  54.          while(HC05_Init())                 //初始化ATK-HC05模塊  
  55.         {
  56.                 LCD_ShowString(30,90,200,16,16,"ATK-HC05 Error!");
  57.                 delay_ms(500);
  58.                 LCD_ShowString(30,90,200,16,16,"Please Check!!!");
  59.                 delay_ms(100);
  60.         }                                                                                                      

  61.         LCD_ShowString(30,110,200,16,16,"ATK-HC05 Standby!");  
  62.   LCD_ShowString(30,160,200,16,16,"Send:");        
  63.         LCD_ShowString(30,180,200,16,16,"Receive:");
  64.         POINT_COLOR=BLUE;
  65.         HC05_Role_Show();
  66.         delay_ms(100);
  67.         USART3_RX_STA=0;
  68.          while(1)
  69.         {               
  70.                 HC05_Sta_Show();
  71.                 temp=Get_Temprate();        //得到溫度值
  72.                 //if(temp>70)
  73.                 //{LCD_ShowString(30+10*8,310,16,16,16,"DANGER");
  74.                 //LED0=1;
  75.                 //BEEP=0;}
  76.                 if(temp<0)
  77.                 {

  78.                         temp=-temp;
  79.                         LCD_ShowString(30+10*8,280,200,16,16,"-");        //顯示負號
  80.                 }
  81.                 else

  82.                 LCD_ShowString(30+10*8,280,16,16,16," ");        //無符號               
  83.                 LCD_ShowxNum(30+11*8,280,temp/100,2,16,0);                //顯示整數(shù)部分
  84.                 LCD_ShowxNum(30+14*8,280,temp%100,2,16, 0X80);        //顯示小數(shù)部分
  85.                 LED1=1;        
  86.                
  87.                 if(PBin(13))
  88.                 {LED0=1;BEEP=0;LCD_ShowString(30+6*8,310,200,16,16," SAFE!  ");LED1=0;
  89.                 }

  90.                 else if(PBin(13)==0||temp>70)
  91.                
  92.          {LED0=0;
  93.                 BEEP=1;
  94.                 LCD_ShowString(30+6*8,310,200,16,16,"DANGER!");
  95.                 LED1=1;}

  96.                 delay_ms(250);
  97.                
  98.                
  99.                 key=KEY_Scan(0);
  100.                 if(key==KEY1_PRES)                                                //切換模塊主從設(shè)置
  101.                 {
  102.                            key=HC05_Get_Role();
  103.                         if(key!=0XFF)
  104.                         {
  105.                                 key=!key;                                          //狀態(tài)取反           
  106.                                 if(key==0)HC05_Set_Cmd("AT+ROLE=0");
  107.                                 else HC05_Set_Cmd("AT+ROLE=1");
  108.                                 HC05_Role_Show();
  109.                                 HC05_Set_Cmd("AT+RESET");        //復(fù)位ATK-HC05模塊
  110.                                 delay_ms(200);
  111.                         }
  112.                 }
  113.                
  114.                 else if(BEEP==1)
  115.                 {
  116.                         sendmask=1;                                //發(fā)送/停止發(fā)送           
  117.         
  118.                 }
  119.                 else if
  120.                 (BEEP==0)
  121.                 {LCD_Fill(30+40,160,240,160+16,WHITE);
  122.                         sendmask=0;}//清除顯示
  123.                
  124.                 delay_ms(10);           

  125.                         if(sendmask)                                        //定時發(fā)送
  126.                         {
  127.                                 sprintf((char*)sendbuf,"Danger\r\n");
  128.                                   LCD_ShowString(30+40,160,200,16,16,sendbuf);        //顯示發(fā)送數(shù)據(jù)        
  129.                                 u3_printf("Danger\r\n");                //發(fā)送到藍牙模塊
  130.                         }
  131.                         HC05_Sta_Show();            
  132.                         
  133.       delay_ms(10);        
  134.                           
  135.                
  136.                 if(USART3_RX_STA&0X8000)                        //接收到一次數(shù)據(jù)了
  137.                 {
  138.                         LCD_Fill(30,200,64,64,WHITE);        //清除顯示
  139.                          reclen=USART3_RX_STA&0X7FFF;        //得到數(shù)據(jù)長度
  140.                           USART3_RX_BUF[reclen]=0;                 //加入結(jié)束符
  141.                         if(reclen==9||reclen==8)                 //控制DS1檢測
  142.                         {
  143.                                 if(strcmp((const char*)USART3_RX_BUF,"+LED0 ON")==0)LED0=0;        //打開LED1
  144.                                 if(strcmp((const char*)USART3_RX_BUF,"+LED0 OFF")==0)LED0=1;//關(guān)閉LED1
  145.                                 if(strcmp((const char*)USART3_RX_BUF,"+BEEP ON")==0) BEEP=1;
  146.                                 if(strcmp((const char*)USART3_RX_BUF,"+BEEP OFF")==0) BEEP=0;
  147.                         }
  148.                          LCD_ShowString(30,200,209,16,16,USART3_RX_BUF);//顯示接收到的數(shù)據(jù)
  149.                          USART3_RX_STA=0;         
  150.                 }                                                                                                                                                                        

  151.         }
  152. }
復(fù)制代碼

所有資料51hei提供下載:
1.7z (254.9 KB, 下載次數(shù): 129)







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 99福利在线观看 | 激情网站在线观看 | 亚洲天堂一区 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 午夜影视 | 亚洲欧美一区二区三区1000 | 亚洲人成在线播放 | 国产精品不卡一区二区三区 | 狠狠操在线 | 日韩国产精品一区二区三区 | 亚洲网站在线观看 | 国产精品一区二区在线 | 色网在线观看 | 日韩成人在线播放 | 国产成人精品a视频 | 一级毛片视频 | 激情五月婷婷综合 | 在线天堂免费中文字幕视频 | 日韩在线观看中文字幕 | 色综合一区二区三区 | 在线国产视频 | 黄色毛片一级 | 欧美一二三四成人免费视频 | 中文字幕在线一区二区三区 | 日韩h | 国产精品一区二 | 欧美日韩在线观看视频网站 | 亚洲精品久久久久久久久久久久久 | 久久精品色欧美aⅴ一区二区 | 成人高清在线 | 日韩精品在线一区 | 亚洲在线免费 | 日韩欧美国产精品 | 日韩欧美在线播放 | 欧美一区二区三区在线观看 | 欧美成人精品欧美一级 | 美女天堂| 久久久这里都是精品 | 欧美日韩一区二区在线观看 | 国产视频观看 | 亚洲国产免费 |