国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

c8051f040單片機做一個PID恒壓控制的功能

[復制鏈接]
樓主
eng 發(fā)表于 2021-6-22 01:23:26 | 只看該作者 |只看大圖 |倒序瀏覽 |閱讀模式
  1. 12位ADC模擬量輸入配設置
  2. void ADC0_Init (void) //
  3.     {
  4.      char SFRPAGE_SAVE = SFRPAGE;        // Save Current SFR page

  5.      SFRPAGE = ADC0_PAGE;

  6.      ADC0CN = 0x80;                      // ADC0 enabled; normal tracking   1000 0000  ADC0使能
  7.                                          // mode; ADC0 conversions are initiated
  8.                                          // when writing 1 to ad0busy flag; ADC0 data is
  9.                                          // right-justified

  10.      REF0CN = 0x03;                      // Enable on-chip VREF,  0011 電壓基準寄存器 基準電壓選擇 內部基準電壓到VREF引腳
  11.                                          // and VREF output buffer
  12.      AMX0CF = 0x00;                      // ALL inputs are single-ended (default)  信號采集單端輸入  AMX0CF: AMUX0 配置寄存器
  13.      AMX0SL = 0x06;                      // 選擇P3偶數(shù)引腳
  14.      AMX0PRT = 0x01;                     // 選擇P3.0作為初始模擬輸入
  15.      ADC0CF = 0x98;                      // ADC conversion clock = 1.10592MHz, Gain=1   1001 1000  20分頻    conversion轉換 PGA放大增益為1 轉換的時鐘周期
  16.      SFRPAGE = SFRPAGE_SAVE;             // Restore SFR page
  17.     }


  18. 模擬量采集
  19. SFRPAGE = SFRPAGE_SAVE;
  20.      num++;        //掃描6次,使用6個數(shù)碼管
  21.      count++;
  22.         if(num==6)
  23.             num=0;
  24.         if(count == 5)
  25.         {
  26.          count = 0;
  27.          SFRPAGE_SAVE = SFRPAGE;        // Save Current SFR page
  28.          SFRPAGE = ADC0_PAGE;

  29.          AMX0SL = 0x06;                      // 選擇P3偶數(shù)引腳  0110  AMX0AD3-0 都配置為單端輸入
  30.          AMX0PRT = 0x01;                     // 選擇P3.0作為初始模擬輸入 0001

  31.          for(t = 0;t<8;t++)          // 第一路循環(huán)采樣
  32.             {
  33.              AD0INT = 0;
  34.              AD0BUSY = 1;//寫1采樣一次
  35.              while(!AD0INT);
  36.              accumulator += ADC0;
  37.              for(s = 0; s<6;s++)         //延時6個周期
  38.                 {
  39.                  ;
  40.                 }
  41.             }
  42.          real0 = (int)((accumulator >> 3));                 //20190814
  43.          PID1_OUT();
  44.          accumulator = 0;

  45.          AMX0SL = 0x06;                      // 選擇P3偶數(shù)引腳 0110
  46.          AMX0PRT = 0x04;  

  47. 負壓數(shù)據(jù)
  48. temp = (int)((1-real0/4096.0)*690);                //20190426
  49.         StrTab[0]=led_code[18];        //顯示P
  50.         StrTab[1]=led_code[0];         //顯示0
  51.         StrTab[2]=0xBF;                //顯示"-"          20190426
  52.         StrTab[3]=led_code[temp/100] & 0X7F;        //顯示負壓整數(shù)部分并且顯示小數(shù)點
  53.         StrTab[4]=led_code[(temp%100)/10];
  54.         StrTab[5]=led_code[temp%10];
  55.         break;
復制代碼
c8051f040單片機做一個PID恒壓控制的功能 1.png c8051f040單片機做一個PID恒壓控制的功能 2.png
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

手機版|小黑屋|ELEOK |網(wǎng)站地圖

GMT+8, 2026-5-26 05:11

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表