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

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

QQ登錄

只需一步,快速開始

搜索
查看: 9746|回復(fù): 15
收起左側(cè)

基于STM32實(shí)現(xiàn)的溫度控制系統(tǒng)OLED顯示程序

  [復(fù)制鏈接]
ID:521357 發(fā)表于 2019-6-21 09:57 | 顯示全部樓層 |閱讀模式
已調(diào)試
智能溫控方案簡(jiǎn)介


主要功能:
本系統(tǒng)采用STM32f103c8t6作為主控芯片,能對(duì)DS18B20采集到的信息進(jìn)行解算,并將結(jié)果顯示在OLED顯示屏上面,并可以通過兩個(gè)按鍵實(shí)現(xiàn)設(shè)定溫度加減到設(shè)定溫度。
具體方案:
首先:
OLED接線:CS:PA6
RST:PC15
RS:PA3
SCL:PB0
SDA:PB1

DS18B20接線:PC13

按鍵:PA2.PA4

單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "delay.h"
  3. #include "LED.h"
  4. #include "oled.h"
  5. #include "ds18b20.h"
  6. #include "usart.h"
  7. #include "key.h"
  8. #include "stm32f10x_tim.h"
  9. unsigned int speed_count=0;//占空比計(jì)數(shù)器 50次一周期
  10. static void NVIC_TIM2Configuration(void)
  11. {
  12.     NVIC_InitTypeDef NVIC_InitStructure;

  13.     /* Set the Vector Table base address at 0x08000000 */
  14.     //NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0000);

  15.     /* Enable the TIM5 gloabal Interrupt */
  16.     NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  17.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  18.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  19.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

  20.     NVIC_Init(&NVIC_InitStructure);
  21. }
  22. void TIM2_Init(void)
  23. { TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

  24.     /* TIM2 clock enable */
  25.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

  26.     /* Time base configuration */
  27.     //這個(gè)就是自動(dòng)裝載的計(jì)數(shù)值,由于計(jì)數(shù)是從0開始的,周期為100us
  28.     TIM_TimeBaseStructure.TIM_Period = (100 - 1);//10kHz
  29.     // 這個(gè)就是預(yù)分頻系數(shù),當(dāng)由于為0時(shí)表示不分頻所以要減1
  30.     TIM_TimeBaseStructure.TIM_Prescaler = (72 - 1);//1MHz
  31.     // 高級(jí)應(yīng)用本次不涉及。定義在定時(shí)器時(shí)鐘(CK_INT)頻率與數(shù)字濾波器(ETR,TIx)
  32.     // 使用的采樣頻率之間的分頻比例
  33.     TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  34.     //向上計(jì)數(shù)
  35.     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  36.     //初始化定時(shí)器5
  37.     TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

  38.     /* Clear TIM5 update pending flag[清除TIM5溢出中斷標(biāo)志] */
  39.     TIM_ClearITPendingBit(TIM2, TIM_IT_Update);

  40.     /* TIM IT enable */ //打開溢出中斷
  41.     TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

  42.     /* TIM5 enable counter */
  43.     TIM_Cmd(TIM2, ENABLE);  //計(jì)數(shù)器使能,開始工作

  44.     /* 中斷參數(shù)配置 */
  45.     NVIC_TIM2Configuration();
  46. }
  47. int main(void)
  48. {         
  49.         u8 a=0;u8 b=0; u8 c=0;         int temp=0;
  50.         u8 set=20;
  51.         u8 shiwei=0;
  52.         u8 gewei=0;
  53.         float temperature;
  54.         Init_LEDpin();
  55.         delay_init();
  56.         OLED_Init();                        //初始化OLED  
  57.     DS18B20_Init();         //PC13
  58.         uart_init(9600);
  59.         KEY_Init();//按鍵初始化PA2 PA4
  60.         TIM2_Init();//電機(jī)運(yùn)動(dòng)PWM定時(shí)器
  61. //         OLED_ShowString(0,0, "");  
  62. //         OLED_ShowString(0,16,"imodule");  
  63.          OLED_ShowString(0,32,"NowTemp:");   
  64.          OLED_ShowString(0,48,"SetTemp:");
  65. //         OLED_ShowString(63,48,"CODE:");     OLED_ShowNum(63,32,3,1,16);  
  66. //  OLED_ShowChar(63,50,'r',1,1);  OLED_ShowNum(63,32,34,2,16);
  67.         OLED_Refresh_Gram();         
  68.   
  69.         while(1)
  70.         {        
  71.         if( !S1)
  72.                 {
  73.                         delay_ms(10);
  74.                         if(!S1)        
  75.                                 
  76.                         {
  77.                                    while( !S1);
  78.                                    set+=1;        
  79.                                shiwei=set/10;
  80.                                    gewei=set%10;
  81.                                    OLED_ShowNum(63,48,shiwei,1,16);
  82.                                       OLED_ShowNum(71,48,gewei,1,16);
  83.                                    OLED_ShowChar(79,48,'.',16,1);
  84.                                    OLED_ShowNum(87,48,0,1,16);
  85.                                    OLED_ShowChar(95,48,'^',16,1);
  86.                                    OLED_ShowChar(103,48,'C',16,1);
  87.                                    OLED_Refresh_Gram();
  88.                                    printf("temperature:");
  89.                         }
  90.                 }

  91.          if(!S2)
  92.                 {
  93.                         delay_ms(10);
  94.                         if(!S2)        
  95.                                 
  96.                         {
  97.                                  while(!S2);
  98.                                    set-=1;        
  99.                                shiwei=set/10;
  100.                                    gewei=set%10;
  101.                                    OLED_ShowNum(63,48,shiwei,1,16);
  102.                                       OLED_ShowNum(71,48,gewei,1,16);
  103.                                    OLED_ShowChar(79,48,'.',16,1);
  104.                                    OLED_ShowNum(87,48,0,1,16);
  105.                                    OLED_ShowChar(95,48,'^',16,1);
  106.                                    OLED_ShowChar(103,48,'C',16,1);
  107.                                    OLED_Refresh_Gram();
  108.                                    printf("temp:");
  109.                         
  110.                                 }
  111.                         }
  112.          
  113.                      if( speed_count >= 500)
  114.                                         {
  115.                                                  speed_count = 0;
  116.                                                 
  117.                                  
  118.                  temperature=DS18B20_Get_Temp();
  119.                         temp=(int)temperature;        
  120.                  
  121.                                 a=temp/100;
  122.                                         b=(temp/10)%10;
  123.                                         c=temp%10;
  124.                                         OLED_ShowNum(63,32,a,1,16);
  125.                                       OLED_ShowNum(71,32,b,1,16);
  126.                                    OLED_ShowChar(79,32,'.',16,1);
  127.                                    OLED_ShowNum(87,32,c,1,16);
  128.                                    OLED_ShowChar(95,32,'^',16,1);
  129.                                    OLED_ShowChar(103,32,'C',16,1);
  130.                                    OLED_Refresh_Gram();
  131.                                printf("temperature=%.2f  \n",temperature/10);
  132.             
  133.                 }                                   
  134.          }


  135.       
  136.            
  137.             
  138.                

  139. }
復(fù)制代碼

所有資料51hei提供下載:
基于STM32實(shí)現(xiàn)的溫度控制系統(tǒng)OLED顯示.7z (203.27 KB, 下載次數(shù): 335)
回復(fù)

使用道具 舉報(bào)

ID:229010 發(fā)表于 2019-6-24 13:46 | 顯示全部樓層
這么好的資料,還占個(gè)頂樓。
回復(fù)

使用道具 舉報(bào)

ID:476652 發(fā)表于 2019-12-11 16:00 | 顯示全部樓層
不錯(cuò),正好可以指導(dǎo)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:359272 發(fā)表于 2019-12-13 08:40 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:360391 發(fā)表于 2019-12-13 09:35 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:417194 發(fā)表于 2020-2-6 11:47 | 顯示全部樓層
正好需要,謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:522508 發(fā)表于 2020-3-2 15:18 | 顯示全部樓層
樓主 有硬件設(shè)計(jì)圖嗎?
回復(fù)

使用道具 舉報(bào)

ID:705856 發(fā)表于 2020-3-10 15:59 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:691628 發(fā)表于 2020-3-13 12:41 | 顯示全部樓層
好東西,學(xué)習(xí)一波
回復(fù)

使用道具 舉報(bào)

ID:238940 發(fā)表于 2020-6-11 10:20 | 顯示全部樓層
很好,移植方便
回復(fù)

使用道具 舉報(bào)

ID:780631 發(fā)表于 2020-6-22 11:32 | 顯示全部樓層
樓主 有圖嘛  圖圖圖圖 求圖
回復(fù)

使用道具 舉報(bào)

ID:24075 發(fā)表于 2020-6-22 17:23 | 顯示全部樓層
感謝分享,怎么沒圖,沒圖沒真相啊
回復(fù)

使用道具 舉報(bào)

ID:25481 發(fā)表于 2020-6-23 08:57 | 顯示全部樓層

不錯(cuò),正好可以指導(dǎo)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:591382 發(fā)表于 2020-8-25 15:12 | 顯示全部樓層
溫度控制系統(tǒng)的學(xué)習(xí)很有代表性,希望在接下來學(xué)習(xí)溫度系統(tǒng)的日子里,積極向上。
回復(fù)

使用道具 舉報(bào)

ID:916861 發(fā)表于 2021-6-27 09:53 | 顯示全部樓層
謝謝樓主無私的分享,這就下載試一試
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产一区二区在线观看 | 亚洲精品乱码久久久久久按摩观 | 在线视频日韩精品 | 在线黄| 午夜视频免费在线 | 欧美午夜精品理论片a级按摩 | 国产精品不卡一区 | 国产欧美日韩综合精品一区二区 | 欧美在线观看一区二区 | 精品国产一区二区三区久久影院 | 国产欧美日韩精品一区 | 精品国产伦一区二区三区观看说明 | 欧美一级在线观看 | 亚洲第一在线视频 | 成人在线精品视频 | 在线免费av电影 | 99久久精品一区二区毛片吞精 | 亚洲免费一区二区 | 国产探花在线观看视频 | 日韩成人免费av | av片免费 | 亚洲人成网亚洲欧洲无码 | 精品国产欧美一区二区 | 国产在线精品一区二区 | 国产精品美女久久久久久免费 | 欧美日本一区二区 | www.婷婷亚洲基地 | 一区免费看 | 古装三级在线播放 | 欧美一区二区三区视频在线观看 | 国产成人精品区一区二区不卡 | 亚洲精品视频一区二区三区 | 国产精品污www一区二区三区 | 亚洲第一成人av | 婷婷五月色综合 | 久久综合香蕉 | www.99精品 | 在线免费看91 | 国产精品综合色区在线观看 | 成人国产精品久久 | 一区二区中文字幕 |