找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1421|回复: 0
打印 上一主题 下一主题
收起左侧

求一段MCU原函数的详细解释

[复制链接]
跳转到指定楼层
楼主
ID:298027 发表于 2018-4-2 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/******************************************************************************
*函数名称:uint adc10_start(uchar channel);
*函数功能:adc采集                                                                                         
*输入参数:channel:1-7               
*输出参数: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;
}
/******************************************************************************
*函数名称:void  delay1_ms(unsigned char ms);
*函数功能:延时函数                                                                                         
*输入参数:ms               
*输出参数:无
*返回值:无
*******************************************************************************/
void  delay1_ms(unsigned char ms)
{
     unsigned int i;
         do{
              i = MAIN_Fosc / 14000;
                  while(--i)        ;   //14T per loop
     }while(--ms);
}
/******************************************************************************
*函数名称:void  INputchange(uchar date);
*函数功能:选择12C5A60AD/S2系列模拟输入(AD)选择                                                                                         
*输入参数:date               
*输出参数:无
*返回值:无
*******************************************************************************/
void  INputchange(uchar date)
{
             P1ASF = date;//0x03;//(1 << ADC_CH0);                        //12C5A60AD/S2系列模拟输入(AD)选择
          ADC_CONTR = ADC_360T | ADC_ON;

}
/******************************************************************************
*函数名称:uint  AdHandle(uchar num);
*函数功能:AD数据处理函数                                                                                         
*输入参数:num               
*输出参数: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转换器可以用这段原函数进行仿真?  


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表