📄 ad.txt
字号:
//输入通道可采用(1)单端输入(2)差分输入。可在初始化程序中完成
//输入通道跟踪方式采用(1)低功耗方式,即启动信号发出后,固定的3个SAR CLK的跟踪时间。这样便于随时换道,软件不用延时
// (2)一直跟踪方式,启动信号发出后,直接转换。所以换道后,软件需延时一段时间之后,再发出启动信号
//AD采集子程序的时间:跟踪时间(3个SAR CLK或固定的软件延时)+16个SAR CLK的转换时间+运算时间
//AD采集的精度与SAR CLK(由system clk分频得到)的关系不大,但SAR CLK过高,会影响采集精度
//AD采集的温度稳定性(零点漂移)不好。处理方法:加CMOS开关减零点漂移
//ADC的建立时间:要注意信号的内阻,参考技术手册
//ADC可以有多种启动方式:手动、定时、外部信号/
//ADC电路本身有增益调节,但如果结合DAC电路,可得到更大范围的增益控制
#include<WYWCOMM.H>
#include<C8051F020.H>
//IO口定义
//此模块调用其它模块的外部变量和函数的声明(此程序无)
//此模块的宏定义(常数等)
//此模块必要的库函数包含(include)
//全局变量(静态或一般)的定义(此程序无)
//以下为函数定义
//--------------------------------------------------------------------------------------
void v_IniC8051f020ADC0_f(void) //运行时间:
//功能: c8051f020的ADC0的初始化,功能查看下面程序和芯片技术资料
{
AMX0CF=0x00;//全部单端输入
AMX0SL=0x00;//开始在通道0
ADC0CF=0xf8;//转换时钟分频系数为32(最大),增益为1
ADC0CN=0xc0;//11000000b 低功耗模式(3个SAR clk的跟踪时间);启动模式:写1到AD0BUSY;数据右对齐
REF0CN=0x03;//00000011b ADC0电压基准取自VREF0引脚,ADC1电压基准取自VREF1引脚,内部电压基准VREF输出使能,温度传感器关闭
// 温度传感器关闭
}
//--------------------------------------------------------------------------------------
int16 s16_DataC8051f020ADC0_f(uint8 chanel)
//功能:chanel为通道地址,范围0-8
// 返回值:通道对应的16位有符号采集值(实际12位)
//运行时间:至少19个SAR CLK,绝对时间与晶振和分频系数有关(2MHZ且分频系数为32(最大)时,时间约为304us)
{
int16 shuju;
AMX0SL=chanel;
AD0INT=0;
AD0BUSY=1;
while(AD0INT==0);
AD0INT=0;
shuju=ADC0;
return shuju;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -