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

QQ登錄

只需一步,快速開(kāi)始

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

c8051f040單片機(jī)做一個(gè)恒壓控制的功能

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
之前同事做了一個(gè)1psi PID恒壓控制的程序  讓增大傳感器量程改程序,由于程序較長(zhǎng)我我只貼出了我有疑問(wèn)的部分程序中沒(méi)看明白的部分
1選擇內(nèi)部基準(zhǔn)電壓2.4V而傳感器的輸出電壓是5V 怎么作比較?
2為什么我計(jì)算的采集結(jié)果是 P=(1.25*real/4096-1.125)*690?

12位ADC模擬量輸入配設(shè)置
void ADC0_Init (void) //
    {
     char SFRPAGE_SAVE = SFRPAGE;        // Save Current SFR page

     SFRPAGE = ADC0_PAGE;

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

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


模擬量采集
SFRPAGE = SFRPAGE_SAVE;
     num++;        //掃描6次,使用6個(gè)數(shù)碼管
     count++;
        if(num==6)
            num=0;
        if(count == 5)
        {
         count = 0;
         SFRPAGE_SAVE = SFRPAGE;        // Save Current SFR page
         SFRPAGE = ADC0_PAGE;

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

         for(t = 0;t<8;t++)          // 第一路循環(huán)采樣
            {
             AD0INT = 0;
             AD0BUSY = 1;//寫1采樣一次
             while(!AD0INT);
             accumulator += ADC0;
             for(s = 0; s<6;s++)         //延時(shí)6個(gè)周期
                {
                 ;
                }
            }
         real0 = (int)((accumulator >> 3));                 //20190814
         PID1_OUT();
         accumulator = 0;

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

負(fù)壓數(shù)據(jù)
temp = (int)((1-real0/4096.0)*690);                //20190426
        StrTab[0]=led_code[18];        //顯示P
        StrTab[1]=led_code[0];         //顯示0
        StrTab[2]=0xBF;                //顯示"-"          20190426
        StrTab[3]=led_code[temp/100] & 0X7F;        //顯示負(fù)壓整數(shù)部分并且顯示小數(shù)點(diǎn)
        StrTab[4]=led_code[(temp%100)/10];
        StrTab[5]=led_code[temp%10];
        break;




迅讀PDF截圖20210621142502.png (268.1 KB, 下載次數(shù): 57)

迅讀PDF截圖20210621142502.png

迅讀PDF截圖20210621143234.png (310.31 KB, 下載次數(shù): 64)

迅讀PDF截圖20210621143234.png

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:941563 發(fā)表于 2021-6-22 11:27 | 只看該作者
我知道原因了 那個(gè)傳感器是±1psi的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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