找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5103|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

笙泉MG82F6D17額溫槍原理圖以及MCU源碼分享

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:96313 發(fā)表于 2020-6-29 19:14 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機(jī)源程序如下:
  1. #define _ADC_C

  2. #include "Incfile.h"

  3. /***********************************************************************************
  4. 函數(shù)名稱:   u16 GetIVRefCode(void)
  5. 功能描述:獲取IVREF的精確電壓值
  6. 輸入?yún)?shù):   
  7. 返回參數(shù):     
  8. *************************************************************************************/
  9. void GetIVRefCode(void)        
  10. {
  11.         DWordTypeDef dwTemp;
  12.         WordTypeDef wIVRAdjAdc;
  13.         
  14.         wIVRAdjAdc.W=GetIVRef();                                

  15.         // 檢測IVRef校準(zhǔn)值是否在范圍內(nèi)(1.3~1.5)
  16.         if((wIVRAdjAdc.W <1614)||(wIVRAdjAdc.W>=1862))
  17.         { // 存儲的IVRef值右問題,設(shè)為默認(rèn)值 1.4V@3.3V
  18.                 wIVRAdjAdc.W=1738L;
  19.         }
  20.         else
  21.         {
  22.         }
  23.         // 計算IVR的電壓值
  24.         dwTemp.DW=wIVRAdjAdc.W;
  25.         wIVRefValue.W=dwTemp.DW*3300L/4096L;
  26. }


  27. /***********************************************************************************
  28. 函數(shù)名稱:   u16 GetNtcAvgCode(void)
  29. 功能描述:環(huán)境溫度采樣值獲取(采樣16次取平均)
  30. 輸入?yún)?shù):   
  31. 返回參數(shù):0:Error     
  32. *************************************************************************************/
  33. u32 GetNtcAvgCode(void)
  34. {
  35.         u8 i;
  36.         DWordTypeDef dwTemp0,dwTemp1;
  37.         dwTemp0.DW=0;
  38.         dwTemp1.DW=0;
  39.         for(i=0;i<16;i++)
  40.         {
  41.                 ADC_SetChannel_AIN6();                // 設(shè)置ADC通道為AIN6 T0
  42.                 DelayXus(100);
  43.                 dwTemp0.DW=dwTemp0.DW+GetAdcValue();
  44.                 ADC_SetChannel_AIN7();                // 設(shè)置ADC通道為AIN7 T1
  45.                 DelayXus(100);
  46.                 dwTemp1.DW=dwTemp1.DW+GetAdcValue();
  47.         }
  48.         dwTemp0.DW=dwTemp0.DW>>4;
  49.         dwTemp1.DW=dwTemp1.DW>>4;
  50.         if(dwTemp1.DW<dwTemp0.DW) return 0;
  51.         dwTemp1.DW=(dwTemp1.DW-dwTemp0.DW)*NTC_REF_VALUE;
  52.         dwTemp1.DW=dwTemp1.DW/dwTemp0.DW;
  53.         return dwTemp1.DW;
  54. }


  55. /***********************************************************************************
  56. 函數(shù)名稱:   u16 GetVirAvgCode(void)
  57. 功能描述:紅外溫度采樣值獲取(采樣16次取平均)
  58. 輸入?yún)?shù):   
  59. 返回參數(shù):     
  60. *************************************************************************************/
  61. u32 GetVirAvgCode(void)        
  62. {
  63.         u8 i;
  64.         DWordTypeDef dwTemp;
  65.         DWordTypeDef dwVinAdc,dwIVRAdc;
  66.         dwVinAdc.DW=0;
  67.         dwIVRAdc.DW=0;
  68.         for(i=0;i<16;i++)
  69.         {
  70.                 ADC_SetChannel_AIN5();                // 設(shè)置ADC通道為AIN5 Vir
  71.                 DelayXus(100);
  72.                 dwVinAdc.DW=dwVinAdc.DW+GetAdcValue();
  73.                 ADC_SetChannel_IVR14();                // 設(shè)置ADC通道為IVR14
  74.                 DelayXus(100);
  75.                 dwIVRAdc.DW=dwIVRAdc.DW+GetAdcValue();
  76.         }
  77.         dwVinAdc.DW=dwVinAdc.DW>>4;
  78.         dwIVRAdc.DW=dwIVRAdc.DW>>4;

  79.         // 計算Vir的輸入電壓值
  80.         dwTemp.DW=wIVRefValue.W;
  81.         dwTemp.DW=dwTemp.DW*dwVinAdc.DW*1000L/dwIVRAdc.DW;

  82.         return dwTemp.DW;
  83. }
復(fù)制代碼

所有資料51hei提供下載:
InfraredThermometer_6D17_V01_20200406.rar (2.6 MB, 下載次數(shù): 157)



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:748788 發(fā)表于 2020-6-30 16:35 | 只看該作者
單片機(jī)真是無處不在。
回復(fù)

使用道具 舉報

板凳
ID:136019 發(fā)表于 2021-11-23 19:20 | 只看該作者
這個方案不知道怎么樣
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表