找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1956|回復(fù): 0
收起左側(cè)

求一段MCU原函數(shù)的詳細(xì)解釋

[復(fù)制鏈接]
ID:298027 發(fā)表于 2018-4-2 15:40 | 顯示全部樓層 |閱讀模式
/******************************************************************************
*函數(shù)名稱:uint adc10_start(uchar channel);
*函數(shù)功能:adc采集                                                                                         
*輸入?yún)?shù):channel:1-7               
*輸出參數(shù):adc
*返回值:adc10_start()
*******************************************************************************/
uint adc10_start(uchar channel)        //channel = 0~7
{
        uint        adc;
        uchar        i;

        ADC_RES = 0;
        ADC_RESL = 0;

        ADC_CONTR = (ADC_CONTR & 0xe0) | ADC_START | channel;

        i = 250;
        do{
                if(ADC_CONTR & ADC_FLAG)
                {
                        ADC_CONTR &= ~ADC_FLAG;
                        adc = (uint)ADC_RES;
                        adc = (adc << 2) | (ADC_RESL & 3);
                        return        adc;
                }
        }while(--i);
        return        1024;
}
/******************************************************************************
*函數(shù)名稱:void  delay1_ms(unsigned char ms);
*函數(shù)功能:延時函數(shù)                                                                                         
*輸入?yún)?shù):ms               
*輸出參數(shù):無
*返回值:無
*******************************************************************************/
void  delay1_ms(unsigned char ms)
{
     unsigned int i;
         do{
              i = MAIN_Fosc / 14000;
                  while(--i)        ;   //14T per loop
     }while(--ms);
}
/******************************************************************************
*函數(shù)名稱:void  INputchange(uchar date);
*函數(shù)功能:選擇12C5A60AD/S2系列模擬輸入(AD)選擇                                                                                         
*輸入?yún)?shù):date               
*輸出參數(shù):無
*返回值:無
*******************************************************************************/
void  INputchange(uchar date)
{
             P1ASF = date;//0x03;//(1 << ADC_CH0);                        //12C5A60AD/S2系列模擬輸入(AD)選擇
          ADC_CONTR = ADC_360T | ADC_ON;

}
/******************************************************************************
*函數(shù)名稱:uint  AdHandle(uchar num);
*函數(shù)功能:AD數(shù)據(jù)處理函數(shù)                                                                                         
*輸入?yún)?shù):num               
*輸出參數(shù):number
*返回值:AdHandle
*******************************************************************************/
uint  AdHandle(uchar num)
{           uint        count;
       uint number;
           delay1_ms(100);
           delay1_ms(100);
           count = adc10_start(num);                // P1.0 ADC
           number = ((float)count*4.8828 );         //將采集的電壓放大1000倍,主要是為了提高co計算的精度
           return number;
   }
以及哪種AD轉(zhuǎn)換器可以用這段原函數(shù)進(jìn)行仿真?  


回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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