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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14382|回復: 18
打印 上一主題 下一主題
收起左側

基于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)




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

使用道具 舉報

沙發
ID:1 發表于 2018-5-2 02:44 | 只看該作者
能分享下原理圖和APP嗎?
回復

使用道具 舉報

板凳
ID:318517 發表于 2018-5-2 15:26 | 只看該作者
贊,正需要!
回復

使用道具 舉報

地板
ID:228186 發表于 2018-5-2 16:50 | 只看該作者
學習一下,看的我一臉悶逼。不過還要謝謝大神!
回復

使用道具 舉報

5#
ID:165873 發表于 2018-5-3 09:13 | 只看該作者
admin 發表于 2018-5-2 02:44
能分享下原理圖和APP嗎?

我是用的開發板了,原理圖就是正點原子的Mini版的原理圖,然后APP網上也有對應的了 如果需要的話 可以留下QQ我發你
回復

使用道具 舉報

6#
ID:304456 發表于 2018-5-3 13:46 | 只看該作者
贊,正需要!
回復

使用道具 舉報

7#
ID:330264 發表于 2018-5-17 11:09 | 只看該作者
老哥1    那個溫度傳感器線是怎么連的   help  給個具體流程
回復

使用道具 舉報

8#
ID:165873 發表于 2018-6-14 10:57 | 只看該作者
1747641898 發表于 2018-5-17 11:09
老哥1    那個溫度傳感器線是怎么連的   help  給個具體流程

溫度傳感器是用的lm35d,只有三個端子,兩個供電,一個給ADC采集的io即可
回復

使用道具 舉報

9#
ID:165873 發表于 2018-6-14 10:58 | 只看該作者
wyj841224 發表于 2018-5-2 16:50
學習一下,看的我一臉悶逼。不過還要謝謝大神!

哈哈 謝謝你
回復

使用道具 舉報

10#
ID:346024 發表于 2018-6-22 21:28 | 只看該作者
請問有仿真圖嗎。。
回復

使用道具 舉報

11#
ID:357360 發表于 2018-6-23 21:47 | 只看該作者
串口的作用是什么啊 沒有看懂這部分的程序
回復

使用道具 舉報

12#
ID:525968 發表于 2019-5-2 15:00 | 只看該作者
感謝分享
回復

使用道具 舉報

13#
ID:481039 發表于 2019-5-31 10:47 | 只看該作者
謝謝樓主
回復

使用道具 舉報

14#
ID:473205 發表于 2019-6-4 21:27 | 只看該作者
461668926QQ,發下app,謝謝!!
回復

使用道具 舉報

15#
ID:511461 發表于 2019-6-13 20:08 | 只看該作者
感謝分享
回復

使用道具 舉報

16#
ID:491301 發表于 2019-7-22 18:48 | 只看該作者
這個TIM3定時器進入中斷什么都沒做啊 求解  新手
回復

使用道具 舉報

17#
ID:677258 發表于 2019-12-30 10:58 | 只看該作者
感謝樓主的分享
回復

使用道具 舉報

18#
ID:779823 發表于 2020-6-15 12:32 | 只看該作者
老哥可以提供一下源文件嗎  我想自己仿真一下,不知道怎么連線
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本天堂视频在线观看 | 亚洲在线中文字幕 | 久草在线青青草 | 91精品国产综合久久久久久丝袜 | jdav视频在线观看免费 | 国产福利免费视频 | 在线一级片 | 亚洲精品久久久久久宅男 | 国产在线观看一区二区 | 中文字幕日韩一区二区 | 日本视频免费 | 国产精品久久久久久久久动漫 | 91在线免费视频 | 国产成人精品综合 | 超碰av人人| 一区二区三区中文字幕 | 久久久精品一区 | 黄色在线免费观看视频网站 | 欧美高清性xxxxhd | 亚洲精品免费视频 | 欧美色综合一区二区三区 | 日本免费一区二区三区四区 | 久久精品国产a三级三级三级 | 91精品国产综合久久精品 | 久久精品福利视频 | 日韩精品无码一区二区三区 | 久草99| 秋霞电影一区二区 | 亚洲一区二区三区免费在线观看 | 黑人中文字幕一区二区三区 | 国产综合久久 | 欧美一级特黄aaa大片在线观看 | 亚洲视频三区 | 亚洲精品一区国语对白 | 午夜激情视频 | 精品国产一区二区三区久久久蜜月 | 黄色日本视频 | 真人女人一级毛片免费播放 | 欧美日韩成人在线 | 欧美视频精品 | 国产一区二区在线视频 |