A/D转换器的系统结构如图8-1所示。
图8-1中最右侧的RE2~RE0、RA5、RA3~RA0引脚为A/D转换器的输入引脚,在单片机上电的默认状态下这8个引脚都用做A/D转换通道。若希望仅把某些引脚用做A/D转换引脚,其他引脚用做普通I/O引脚,则可以通过ADCON1寄存器的PCFG3:PCFG0这4位来决定,如表8-1所示。
图8-1 A/D转换器的系统结构图
表8-1 A/D端口配置位功能对照表
缩写说明:A(作为模拟量输入引脚);D(作为数字量输入引脚);X(表示0或1均可);VREF+(参考电压上限);VREF-(低参考电压下限);VDD(单片机供电的高电平),VSS(信号地,即低电平)。
虽然最多可以有8个模拟量输入通道,但由于PIC单片机的8个通道是共享一个采样保持电路,所以同一时刻只能有一个通道独占采样保持电路,具体哪个通道独占需要通过配置A/D转换器内部的八选一开关来决定。八选一开关由3位模拟通道选择信号CHS2、CHS1和CHS0来控制。CHS2:CHS0为“000”表示选择模拟通道0(AN0),为“001”表示选择模拟通道1(AN1),依次类推,为“111”表示选择模拟通道7(AN7)。
在图8-1中,VREF+通过一个二选一电子开关可选择与VDD相连或RA3相连。VREF-通过一个二选一电子开关可选择与VSS相连或RA2相连。这两个电子开关也是由PCFG3:PCFG0控制,根据表8-1可知,当PCFG3:PCFG0为特定值(如1100)时,PIC单片机的A/D转换器可以自选参考电压范围。这样通过缩小连在RA3和RA2上的参考电压差可以提高测量精度。但这个参考电压不是任意小的,根据PIC16F877的数据手册上说明RA3上的参考电压VREF+输入范围在2.2V到VDD之间,VREF-的输入范围是(VSS—0.3V)到(VDD—3.0V)之间。但是VREF+和VREF-之间的电压差至少为2.5V。不符合这几个条件将导致A/D转换器工作异常。
A/D转换器是否开始工作由ADON信号来决定。转换速度由ADCS1和ADCS0来决定。A/D转换器结束时会通过GO/DONE信号(在PICC中用ADGO变量表示)来指示。
当A/D转换完成后会把10位的转换结果放置在A/D转换结果寄存器ADRESH和ADRESL中,由于ADRESH和ADRESL都是8位的寄存器,而转换结果是10位的,所以就存在一个转换结果如何存储(如何对齐)的问题。PIC单片机通过ADFM信号来决定转换结果如何存储。
●ADFM=1右对齐模式,即转换结果低8位放置在ADRESL寄存器中,高两位放在ADRESH的低两位,ADRESH的高6位读出值为0,如图8-2所示。
●ADFM=0左对齐模式,即转换结果高8位放置在ADRESH寄存器中,低两位放在ADRESH的高两位,ADRESL的低6位读出值为0,如图8-2所示。
图8-2 A/D转换结果对齐模式
在查询模式下,与A/D转换相关的寄存器有ADCON0和ADCON1。为了便于读者查阅,集中列出其相关位的功能详细说明。
ADCON0寄存器是一个可读/写的寄存器,包含了多个控制位。
1)bit7~bit6ADCS1:ADCS0:A/D转换时钟选择位。
00:使用单片机主频二分频(Fosc/2)作为转换时钟。
01:使用单片机主频八分频(Fosc/8)作为转换时钟。
10:使用单片机主频三十二分频(Fosc/32)作为转换时钟。
11:使用A/D转换器自带的RC振荡器(FRC)作为转换时钟。
2)bit5~bit3CHS2:CHS0:A/D转换通道选择位。(www.daowen.com)
000:通道0,AN0。
001:通道1,AN1。
……
111:通道7,AN7。
3)bit2:A/D转换启动位/状态位,仅当A/D转换器开启时才有效。
1:A/D转换进行中,软件将此位置位会启动新一次A/D转换过程。
0:A/D转换结束,当A/D转换结束时,此位会被硬件自动清零表示A/D转换完成。
4)bit1:未使用位,读出为0。
5)bit0ADON:A/D转换器开关位。
1:A/D转换器开启。
0:A/D转换器关闭,此时A/D转换器不消耗工作电流。
ADCON1寄存器是一个可读/写的寄存器,包含了多个控制位。
1)bit7ADFM:A/D转换结果格式选择位。
1:右对齐模式,即转换结果低8位放置在ADRESL寄存器中,高两位放在ADRESH的低两位。
0:左对齐模式,即转换结果高8位放置在ADRESH寄存器中,低两位放在ADRESH的高两位。
2)bit6~bit4:未使用,读出为0。
3)bit3~bit0PCFG3:PCFG0:A/D端口配置位,具体内容参考表8-1。
bit7~bit0:A/D转换结果高位字节。
bit7~bit0:A/D转换结果低位字节。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。