HC18M003片内集成了ADC外设,是12位转换分辨率的,共有8个外部模拟输入通道,1个内部电池检测通道。
和ADC有关的寄存器
1、控制寄存器 ADCON0
2、控制寄存器 ADCON1
3、ADC 时钟选择寄存器 ADCLK
4、转换结果寄存器 ADRESL、ADRESH
ADC转换一位数据所需的时间定义为TAD,转换一次完整的10位数据需要14个TAD。为确保ADC正确转换,必须满足适当的TAD时间。
注意:
※1. 为了加快转换速度,建议选用较快时钟源(ADC转换时钟不能超过4MHz)。
※2. 当系统频率高于1 MHz 时,仅当在休眠和绿色模式下进行转换时才推荐使用FRC时钟源。
选择FRC时钟源后,ADC需等待一个指令周期后才能启动转换操作,这使得可以执行SLEEP 指令,以降低转换期间的系统噪声。如果使能了ADC中断,转换完成时将唤醒SLEEP。如果禁止了ADC中断,尽管ADEN位仍保持为1,转换完成后ADC模块将关闭。ADC时钟源不是FRC时,尽管ADEN位仍保持为1,SLEEP指令会导致当前转换中止,ADC模块关闭。
除了选择FRC时钟源,改变系统时钟频率均会改变ADC的时钟频率,从而影响ADC转换时间。
ADEN位置1将使能ADC模块,ADON位置1将启动一次ADC转换。ADC转换完成,ADON位硬件清零,ADIF中断标志位置1,ADRESH/ADRESL寄存器值被更新。如果必须在转换完成前终止转换,可用软件将ADON位清零,ADRESH/ ADRESL寄存器将保持前次ADC转换的结果。