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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32單片機溫度,電壓,電流測量及上下限設置PCB文件+源程序

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:272776 發(fā)表于 2019-7-13 22:45 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
stm32制作,pcb及源碼
Altium Designer畫的溫度,電壓,電流測量及上下限設置原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "bsp_usart.h"
  3. #include "bsp_adc.h"
  4. #include "bsp_systick.h"
  5. #include "OLED_I2C.h"
  6. #include "bsp_i2c_gpio.h"
  7. #include "bsp_buzz.h"
  8. #include "bsp_ds18b20.h"
  9. #include "bsp_key.h"



  10. void  KaiJi_Init(void);//開機函數(shù)
  11. void  OLED_deal(void);//人機處理界面
  12. void  Tiaozheng_deal(void);//溫度上下限調(diào)整界面
  13. void  key_serve();//按鍵服務程序
  14. uint8_t  temp_H=30;//溫度上限
  15. uint8_t  temp_L=20;//溫度下限
  16. float  current;//電流
  17. static uint8_t flag=0;//按鍵標志位
  18. float temp;//溫度
  19. extern float volatege[2];//電壓



  20. int main(void)
  21. {               
  22.         SystemInit();//系統(tǒng)時鐘初始化
  23.         USART_Config();//窗口初始化,用于調(diào)試
  24.         ADCx_Init();//adc初始化
  25.         i2c_Init();//I2C總線的GPIO初始化
  26.         OLED_Init();//oled初始化
  27.         Key_GPIO_Config();//按鍵初始化
  28.         Buzz_GPIO_Config();//蜂鳴器初始化
  29.         KaiJi_Init();//開機界面
  30.         while( DS18B20_Init() )       
  31.         printf("\r\n no ds18b20 exit \r\n");
  32.         printf("\r\n ds18b20 exit \r\n");
  33.         while (1)
  34.         {       
  35. //          if(i++>=50){        printf ( "\r\n獲取該序列號器件的溫度: %.2f\r\n", DS18B20_GetTemp_SkipRom());i=0;}//測試用
  36.                 key_serve();
  37.                 OLED_deal();
  38.                 ADC_deal();
  39.           Buzz_serve();
  40.                 Systick_delay_ms(20);        //按鍵消抖
  41.         }
  42. }
  43. /*********************************************END OF FILE**********************/
  44. //開機顯示函數(shù)
  45. void KaiJi_Init(void)
  46. {
  47.         int i;
  48.         for(i=2;i<6;i++){OLED_ShowCN((i)*16,0,i);}
  49.   OLED_ShowStr(12,3,(unsigned char*)"Name:",2);
  50.         for(i=0;i<2;i++){OLED_ShowCN((i+4)*16,3,i);}
  51.         OLED_ShowStr(12,6,(unsigned char*)"Date:",2);
  52.         OLED_ShowStr(52,6,(unsigned char*)"2019/5/15",2);
  53.         Systick_delay_ms(2000);
  54.         OLED_CLS();
  55. }


  56. void  OLED_deal(void)
  57. {

  58.                 int i;
  59.           current=(volatege[0]/10900)*1000;
  60.                 temp=DS18B20_GetTemp_SkipRom();
  61.                 for(i=6;i<13;i++){OLED_ShowCN((i-5.5)*16,0,i);}
  62.                 //定義三個數(shù)組,作為傳感器值緩沖
  63.                 char buffer1[5]={0},buffer2[5]={0},buffer3[5]={0};
  64.                 //用sprintf函數(shù)將測量值轉(zhuǎn)換為字符形式
  65.                 sprintf(buffer1,"%.2f",temp);
  66.                 sprintf(buffer2,"%.2f",volatege[0]);
  67.                 sprintf(buffer3,"%.2f",current);       
  68.                 OLED_ShowStr(0,2,(unsigned char*)"Temp:",2);
  69.                 //顯示溫度測量值
  70.                 OLED_ShowStr(40,2,buffer1,2);
  71.                 //顯示“℃”符號
  72.                 for(i=13;i<14;i++){OLED_ShowCN((i-8)*16,2,i);}
  73.                 //顯示運行模式,具體作用函數(shù)在ZDSC_Init();里面:
  74.                 OLED_ShowStr(0,4,(unsigned char*)"U:",2);
  75.                 OLED_ShowStr(16,4,buffer2,2);
  76.                 OLED_ShowStr(50,4,(unsigned char*)"V",2);
  77.                 OLED_ShowStr(64,4,(unsigned char*)"I:",2);   
  78.                 OLED_ShowStr(80,4,buffer3,2);
  79.                 OLED_ShowStr(112,4,(unsigned char*)"mA",2);
  80.                 Tiaozheng_deal();

  81. }


  82. void  key_serve()
  83. {
  84.                 if(Key_Scan(GPIOA,GPIO_Pin_4)==1)
  85.                 {
  86.                         if(flag==0)
  87.                         {
  88.                                 flag=1;
  89.                                 temp_H++;       
  90.                                 printf("TEMP_H=%d",temp_H);
  91.                         }
  92.                 }
  93.                 else if(Key_Scan(GPIOA,GPIO_Pin_5)==1)
  94.                 {
  95.                         if(flag==0)
  96.                                 {
  97.                                         flag=1;
  98.                                         temp_H--;       
  99.                                         printf("TEMP_H=%d",temp_H);
  100.                                 }
  101.                 }
  102.                         else if(Key_Scan(GPIOA,GPIO_Pin_6)==1)
  103.                 {
  104.                         if(flag==0)
  105.                                 {
  106.                                         flag=1;
  107.                                         temp_L++;       
  108.                                         printf("TEMP_L=%d",temp_L);
  109.                                 }
  110.                 }
  111.                         else if(Key_Scan(GPIOA,GPIO_Pin_7)==1)
  112.                 {
  113.                         if(flag==0)
  114.                                 {
  115.                                         flag=1;
  116.                                         temp_L--;       
  117.                                   printf("TEMP_L=%d",temp_L);
  118.                                 }
  119.                 }
  120.                 else flag=0;
  121. }       


  122. void  Tiaozheng_deal(void)
  123. {
  124.         char buffer1[5]={0},buffer2[5]={0};
  125.         //用sprintf函數(shù)將測量值轉(zhuǎn)換為字符形式
  126.         sprintf(buffer1,"%d",temp_H);
  127.         sprintf(buffer2,"%d",temp_L);
  128.   OLED_ShowStr(0,6,(unsigned char*)"Temp_H:",1);
  129.         OLED_ShowStr(44,6,buffer1,1);
  130.         OLED_ShowStr(64,6,(unsigned char*)"Temp_L:",1);
  131.         OLED_ShowStr(108,6,buffer2,1);
  132. }
復制代碼

所有資料51hei提供下載:
資料合集測量.7z (2.48 MB, 下載次數(shù): 310)

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

使用道具 舉報

沙發(fā)
ID:148211 發(fā)表于 2019-7-14 01:57 | 只看該作者
好資料。學習了。
回復

使用道具 舉報

板凳
ID:421308 發(fā)表于 2019-7-14 12:17 | 只看該作者
好資料
回復

使用道具 舉報

地板
ID:572327 發(fā)表于 2019-7-14 21:01 | 只看該作者
學習了,我們有個項目剛好用到這個單片機,謝謝樓主分享
回復

使用道具 舉報

5#
ID:282650 發(fā)表于 2020-4-17 14:32 來自手機 | 只看該作者
里面有代碼嗎?
回復

使用道具 舉報

6#
ID:720649 發(fā)表于 2020-4-17 15:22 | 只看該作者
好資料,正好需要,謝謝師傅
回復

使用道具 舉報

7#
ID:720649 發(fā)表于 2020-4-17 15:33 | 只看該作者
師傅您好,請問Proteus里面可以仿真測煙霧濃度嗎?
回復

使用道具 舉報

8#
ID:496720 發(fā)表于 2021-3-28 18:09 | 只看該作者
樓主可以分享一下講解文件嗎?學習一下
回復

使用道具 舉報

9#
ID:249376 發(fā)表于 2022-11-7 20:46 來自手機 | 只看該作者
我是電源直接3.3伏,為啥顯示只有1.76伏

1667825070139.jpg (555.75 KB, 下載次數(shù): 96)

1667825070139.jpg
回復

使用道具 舉報

10#
ID:386360 發(fā)表于 2023-2-23 13:25 來自手機 | 只看該作者
你沒做電壓轉(zhuǎn)換電路
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩不卡 | 亚洲视频中文字幕 | 日本免费在线观看视频 | 中文字幕一页二页 | 欧美成人一区二区三区 | 日韩a在线 | 国产在线播放一区二区三区 | 国产午夜一级 | 精品国产一区二区三区日日嗨 | 久久99精品久久久久久琪琪 | 欧美一级淫片免费视频黄 | 精品成人 | 亚洲一区二区三区国产 | h视频免费看 | 亚洲精彩视频 | 男人的天堂中文字幕 | 日韩欧美在线观看一区 | 国产日韩视频 | 永久免费视频 | 精品欧美一区二区久久久伦 | 九九热精品视频 | 一级做a爰片性色毛片 | 成人av一区 | 日日碰碰 | 欧美精品乱码久久久久久按摩 | 国产一区二区在线免费观看 | 特a毛片 | 中文字幕日本一区二区 | 亚洲精品一区二区在线观看 | 免费国产网站 | 一级日韩| 国产高清视频在线观看 | 超碰国产在线 | 国产精品日韩在线观看 | 欧美成人免费在线视频 | 国产精品s色 | 日韩中文字幕在线免费 | 亚洲一区二区视频 | 欧美精品在线观看 | 欧美日韩电影免费观看 | 蜜臀久久99精品久久久久野外 |