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

標題: 基于STM32的智能溫度控制系統源碼 [打印本頁]

作者: 用戶21111413    時間: 2018-4-30 20:13
標題: 基于STM32的智能溫度控制系統源碼


將采集的溫度通過藍牙模塊實時傳給手機。我重新回來了 以后經常分享

單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "lcd.h"
  6. #include "key.h"
  7. #include "adc.h"
  8. #include "math.h"
  9. #include "exti.h"
  10. #include "timer.h"
  11. #include "hc05.h"
  12. #include "usart2.h"                                 
  13. #include "string.h"        


  14. u8 yuzhi=25;
  15. u8 shangxian=0;
  16. u8 xiaxian=0;
  17. u8 wendu_4=0;
  18. float wendu_1=0,wendu_2=0,wendu_3;




  19. //顯示ATK-HC05模塊的主從狀態
  20. void HC05_Role_Show(void)
  21. {
  22.         if(HC05_Get_Role()==1)LCD_ShowString(0,240,200,16,16,"ROLE:Master");        //主機
  23.         else LCD_ShowString(0,240,200,16,16,"ROLE:Slave ");                                         //從機
  24. }
  25. //顯示ATK-HC05模塊的連接狀態
  26. void HC05_Sta_Show(void)
  27. {                                                                                                
  28.         if(HC05_LED)LCD_ShowString(90,240,120,16,16,"STA:Connected ");                        //連接成功
  29.         else LCD_ShowString(90,240,120,16,16,"STA:Disconnect");                                 //未連接                                 
  30. }


  31. int main(void)
  32. {
  33.          u16 adcx;
  34.          u8 sendcnt_1=0;
  35.          u8 sendcnt_2=0;
  36.          u8 sendbuf[40];         
  37.          u8 reclen=0;  
  38.          float temp;
  39.          delay_init();                     //延時函數初始化         
  40.          uart_init(9600);                 //串口初始化為9600
  41.          LED_Init();                                  //初始化與LED連接的硬件接口
  42.           LCD_Init();
  43.           Adc_Init();                                  //ADC初始化        
  44.           EXTIX_Init();                //外部中斷初始化         
  45.          KEY_Init();                  //初始化與按鍵連接的硬件接口
  46.          LED0=0;                                        //點亮LED         
  47.          POINT_COLOR=RED;//設置字體為紅色
  48.          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設置中斷優先級分組
  49.          LCD_ShowString(50,0,200,16,16,"The Eighth Group");
  50.          LCD_ShowString(0,20,200,16,16,"Temperature Control intel");        
  51.          LCD_ShowString(60,40,200,16,16,"-ligent System");
  52.          LCD_ShowString(0,60,200,16,16,"Set the threshold:");
  53.          LCD_ShowString(160,60,200,16,16,"'C");        
  54.      LCD_ShowString(0,80,200,16,16,"Data:2018/4/28");        
  55.          LCD_ShowString(0,100,200,16,16,"Temperature:00.0'C");        
  56.          LCD_ShowString(0,120,200,16,16,"ADC_CH1_VAL:");         
  57.          LCD_ShowString(0,140,200,16,16,"ADC_CH1_VOL:0.000V");
  58.          LCD_ShowString(0,160,200,16,16,"Current Process:");  
  59.          LCD_ShowString(128,160,200,16,16,"KEEP");
  60.          LCD_ShowString(0,180,200,16,16,"ShangXian:00'C");
  61.          LCD_ShowString(0,200,200,16,16,"XiaXian:00'C");
  62.          
  63.          
  64.          POINT_COLOR=MAGENTA;
  65.          //顯示提示信息
  66.          LCD_ShowString(0,260,200,16,16,"Send:");        
  67.          LCD_ShowString(0,280,200,16,16,"Receive:");
  68.          while(HC05_Init())                 //初始化ATK-HC05模塊  
  69.          {
  70.                  LCD_ShowString(0,220,200,16,16,"ATK-HC05 Error!");
  71.                  delay_ms(500);
  72.                  LCD_ShowString(0,220,200,16,16,"Please Check!!!");
  73.                  delay_ms(100);
  74.          }                 
  75.          LCD_ShowString(0,220,200,16,16,"ATK-HC05 Standby!");
  76.          HC05_Sta_Show();
  77.          HC05_Role_Show();
  78.          POINT_COLOR=BLUE;//設置字體為藍色
  79.          LCD_ShowxNum(144,60,yuzhi,2,16,0X80);
  80.          while(1)
  81.         {
  82.                 TIM3_Int_Init(9999,7199);//10Khz的計數頻率,計數到5000為500ms  
  83.                 LED0=!LED0;
  84.                 adcx=Get_Adc_Average(ADC_Channel_1,10);
  85.                 POINT_COLOR=BLUE;//設置字體為藍色
  86.                 LCD_ShowxNum(96,120,adcx,4,16,0);//顯示ADC的值
  87.                 temp=(float)adcx*(3.3/4096);
  88.                 wendu_1=temp*10;
  89.                 adcx=temp;
  90.                 LCD_ShowxNum(96,140,adcx,1,16,0);//顯示電壓值
  91.                 temp-=adcx;
  92.                 temp*=1000;
  93.                 LCD_ShowxNum(112,140,temp,3,16,0X80);
  94.                 LED0=!LED0;
  95.                 delay_ms(250);        
  96.                 wendu_3=(float)(10000*wendu_1+25692)/2107;
  97.                 wendu_4=wendu_3;
  98.                 sendcnt_1=wendu_3;
  99.                
  100.                 LCD_ShowxNum(96,100,wendu_3,2,16,0);//
  101.                 wendu_3-=wendu_4;
  102.                 wendu_2=wendu_3*10;
  103.                 sendcnt_2=wendu_2;
  104.                 LCD_ShowxNum(120,100,wendu_2,1,16,0);//
  105.                 delay_ms(200);
  106.                 POINT_COLOR=MAGENTA;
  107.                 sprintf((char*)sendbuf,"Temperature:%d.%d'C\r\n",sendcnt_1,sendcnt_2);
  108.                   LCD_ShowString(48,260,200,16,16,sendbuf);        //顯示發送數據        
  109.                 u2_printf("Temperature: %d.%d\r\n",sendcnt_1,sendcnt_2);                //發送到藍牙模塊
  110.                
  111.                 POINT_COLOR=BLUE;
  112.                 if(wendu_4>=shangxian)
  113.                 {
  114.                         LCD_ShowString(128,160,200,16,16,"SNOW");
  115.                         GPIO_ResetBits(GPIOC,GPIO_Pin_0);        
  116.                         GPIO_SetBits(GPIOC,GPIO_Pin_1);        
  117.                 }
  118.                 if(wendu_4<=xiaxian)
  119.                 {
  120.                         LCD_ShowString(128,160,200,16,16,"HOT ");
  121.                         GPIO_ResetBits(GPIOC,GPIO_Pin_1);        
  122.                         GPIO_SetBits(GPIOC,GPIO_Pin_0);                                       
  123.                 }
  124.                 if(wendu_4<shangxian&&wendu_4>xiaxian)
  125.                 {
  126.                         LCD_ShowString(128,160,200,16,16,"KEEP");
  127.                         GPIO_ResetBits(GPIOC,GPIO_Pin_0);        
  128.                         GPIO_ResetBits(GPIOC,GPIO_Pin_1);        
  129.                 }
  130.                 if(USART2_RX_STA&0X8000)                        //接收到一次數據了
  131.                 {
  132.                         LCD_Fill(64,280,264,300,WHITE);        //清除顯示
  133.                          reclen=USART2_RX_STA&0X7FFF;        //得到數據長度
  134.                           USART2_RX_BUF[reclen]=0;                 //加入結束符
  135.                         if(reclen==9||reclen==8)                 //控制DS1檢測
  136.                         {
  137.                                 if(strcmp((const char*)USART2_RX_BUF,"+LED1 ON")==0)LED1=0;        //打開LED1
  138.                                 if(strcmp((const char*)USART2_RX_BUF,"+LED1 OFF")==0)LED1=1;//關閉LED1
  139.                         }
  140.                         POINT_COLOR=MAGENTA;
  141.                          LCD_ShowString(64,280,200,119,16,USART2_RX_BUF);//顯示接收到的數據
  142.                          USART2_RX_STA=0;         
  143.                 }                                         
  144.         }                                                                                    
  145. }
復制代碼

所有資料51hei提供下載:
傳感器課設程序32版終.rar (366.14 KB, 下載次數: 232)





作者: admin    時間: 2018-5-2 02:44
能分享下原理圖和APP嗎?
作者: aestest    時間: 2018-5-2 15:26
贊,正需要!
作者: wyj841224    時間: 2018-5-2 16:50
學習一下,看的我一臉悶逼。不過還要謝謝大神!
作者: 用戶21111413    時間: 2018-5-3 09:13
admin 發表于 2018-5-2 02:44
能分享下原理圖和APP嗎?

我是用的開發板了,原理圖就是正點原子的Mini版的原理圖,然后APP網上也有對應的了 如果需要的話 可以留下QQ我發你
作者: DOTHAT202    時間: 2018-5-3 13:46
贊,正需要!
作者: 1747641898    時間: 2018-5-17 11:09
老哥1    那個溫度傳感器線是怎么連的   help  給個具體流程
作者: 用戶21111413    時間: 2018-6-14 10:57
1747641898 發表于 2018-5-17 11:09
老哥1    那個溫度傳感器線是怎么連的   help  給個具體流程

溫度傳感器是用的lm35d,只有三個端子,兩個供電,一個給ADC采集的io即可
作者: 用戶21111413    時間: 2018-6-14 10:58
wyj841224 發表于 2018-5-2 16:50
學習一下,看的我一臉悶逼。不過還要謝謝大神!

哈哈 謝謝你
作者: 舒舒舒舒    時間: 2018-6-22 21:28
請問有仿真圖嗎。。
作者: vicky000    時間: 2018-6-23 21:47
串口的作用是什么啊 沒有看懂這部分的程序
作者: tzpp    時間: 2019-5-2 15:00
感謝分享
作者: NikDomi1560    時間: 2019-5-31 10:47
謝謝樓主
作者: ZJTOP168    時間: 2019-6-4 21:27
461668926QQ,發下app,謝謝!!

作者: aaaaaa。    時間: 2019-6-13 20:08
感謝分享
作者: 1436    時間: 2019-7-22 18:48
這個TIM3定時器進入中斷什么都沒做啊 求解  新手
作者: hhkjvip    時間: 2019-12-30 10:58
感謝樓主的分享
作者: huaxiao164413    時間: 2020-6-15 12:32
老哥可以提供一下源文件嗎  我想自己仿真一下,不知道怎么連線




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩视频在线一区 | 亚洲三级在线观看 | 国产一区二区麻豆 | 成人午夜免费在线视频 | 日本久久网 | 国产激情 | 欧美在线a| 久久免费观看一级毛片 | 国产欧美在线视频 | 国产a爽一区二区久久久 | 欧洲亚洲一区二区三区 | 蜜桃精品在线 | av在线天天 | 天堂一区二区三区 | 国产精品美女久久久久久免费 | 中文字幕精品一区二区三区精品 | 欧美日韩精品一区二区三区蜜桃 | 国产精品一区二区三区在线 | 97精品一区二区 | 国产精品a免费一区久久电影 | 欧美日韩精品一区 | 久久高清| 午夜理伦三级理论三级在线观看 | 中文一区| 国产色婷婷| 国产日韩一区二区三区 | 国产三区av| 亚洲精品福利视频 | 天天操夜夜操免费视频 | 亚洲国产精品一区二区第一页 | 夜久久| 久久国产精品无码网站 | 亚洲欧洲成人av每日更新 | 九九综合九九 | 中文字幕国产在线 | 99热精品国产 | 中文字幕在线第一页 | 精品成人佐山爱一区二区 | 亚洲综合电影 | 日韩av网址在线观看 | 黄视频免费观看 |