欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 笙泉MG82F6D17額溫槍原理圖以及MCU源碼分享 [打印本頁]

作者: 過往云煙    時間: 2020-6-29 19:14
標題: 笙泉MG82F6D17額溫槍原理圖以及MCU源碼分享
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機源程序如下:
  1. #define _ADC_C

  2. #include "Incfile.h"

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

  15.         // 檢測IVRef校準值是否在范圍內(1.3~1.5)
  16.         if((wIVRAdjAdc.W <1614)||(wIVRAdjAdc.W>=1862))
  17.         { // 存儲的IVRef值右問題,設為默認值 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. 函數名稱:   u16 GetNtcAvgCode(void)
  29. 功能描述:環境溫度采樣值獲取(采樣16次取平均)
  30. 輸入參數:   
  31. 返回參數: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();                // 設置ADC通道為AIN6 T0
  42.                 DelayXus(100);
  43.                 dwTemp0.DW=dwTemp0.DW+GetAdcValue();
  44.                 ADC_SetChannel_AIN7();                // 設置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. 函數名稱:   u16 GetVirAvgCode(void)
  57. 功能描述:紅外溫度采樣值獲取(采樣16次取平均)
  58. 輸入參數:   
  59. 返回參數:     
  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();                // 設置ADC通道為AIN5 Vir
  71.                 DelayXus(100);
  72.                 dwVinAdc.DW=dwVinAdc.DW+GetAdcValue();
  73.                 ADC_SetChannel_IVR14();                // 設置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. }
復制代碼

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




作者: wwh2382    時間: 2020-6-30 16:35
單片機真是無處不在。
作者: sz_tony    時間: 2021-11-23 19:20
這個方案不知道怎么樣




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1