ad.c

来自「此程序是基于c8051f020单片机的c语言程序」· C语言 代码 · 共 57 行

C
57
字号
/*此AD占用的端口为AIN0.0和AIN0.1*/


#include<c8051f020.h>
#include"initial.h"

void ADC00Initial()
 {
   AMX0SL=0x00;			     //ADC0.0通道选通
   AMX0CF=0x00;             //AD为单端输入
   ADC0CF=(22118400/2000000-1)<<4; //设置AD时钟为2M
   ADC0CF=ADC0CF&0xf8;  //选择放大倍数为1

    /*控制寄存器设置 可位寻址*/
   AD0EN=1;      //ADC0 使能位
   AD0TM=0;     //除了转换期间之外一直处于跟踪方式
   AD0CM1=0;
   AD0CM0=0;  //00:向AD0BUSY 写1 启动ADC0 转换
   AD0LJST=0; //ADC0L 寄存器数据右对齐
   REF0CN=0x03;//ADC0 电压基准取自VREF0
			   //内部偏压发生器工作,内部电压基准缓冲器工作
    /*启动转换程序*/


} 


void ADC01Initial()
 {
   AMX0SL=0x01;			     //ADC0.2通道选通
   AMX0CF=0x00;             //AD为单端输入
   ADC0CF=(22118400/2000000-1)<<4; //设置AD时钟为2M
   ADC0CF=ADC0CF&0xf8;  //选择放大倍数为1

    /*控制寄存器设置 可位寻址*/
   AD0EN=1;      //ADC0 使能位
   AD0TM=0;     //除了转换期间之外一直处于跟踪方式
   AD0CM1=0;
   AD0CM0=0;  //00:向AD0BUSY 写1 启动ADC0 转换
   AD0LJST=0; //ADC0L 寄存器数据右对齐
   REF0CN=0x03;//ADC0 电压基准取自VREF0
			   //内部偏压发生器工作,内部电压基准缓冲器工作
    /*启动转换程序*/

/*   AD0INT=0;
   AD0BUSY=1;
   while(AD0INT!=1); //采用查询方式	*/
} 


void ADC0begin()
{
   AD0INT=0;
   AD0BUSY=1;		  //向ADC0写1启动转换
   while(AD0INT!=1); 
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?