PIC16F877的A/D模块
结构框图如下:
操作步骤:
ADRESH:ADRESL寄存器中保存了A/D转换的10位结果。当A/D转换完成之后,转换结果被载入这一A/D结果寄存器对中,GO/DONE(ADCON0<2>)位被清零,且A/D中断标志位ADIF置1。当配置好A/D 模块后,在启动转换前必须先选择A/D转换的通道。模拟输入通道的相应TRIS位必须设置为输入。采集时间(acquisition time)的确定参见“A/D采集时间要求”小节。在这一采集时间过去之后,A/D转换即可开始。按照以下步骤进行A/D转换:
1. 配置A/D模块
• 对模拟引脚/参考电压/数字I/O(ADCON1)进行配置
• 选择A/D输入通道(ADCON0)
• 选择A/D转换时钟(ADCON0)
• 打开A/D转换模块(ADCON0)
2. 需要时,设置A/D中断
• 将ADIF位清零
• 将ADIE位置1
• 将GIE位置1
3.等待所需的采集时间
4.启动A/D转换
• 将GO/DONE置1(ADCON0)
5.等待A/D转换完成,通过以下两种方法之一可判断转换是否完成:
• 查询GO/DONE位是否被清零或ADIF位被置1;
• 等待A/D转换的中断。
6.读取A/D结果寄存器对(ADRESH:ADRESL),需要时将ADIF位清零。
7. 要再次进行A/D转换,根据要求转入步骤1或步骤2。
图 23-2 为 A/D转换顺序及所使用的术语。 采集时间是 A/D 模块的保持电容连接到外部电平的时间。随后是12TAD的转换时间,开始于GO位被置1。这两段时间的总和即采样时间(samplingtime)。为确保保持电容充电至适当电平以使A/D转换达到所需精度,应保证一个最小采集时间。
A/D转换时钟的选择
每一位的A/D 转换时间被定义为 TAD。每完成一次10位A/D转换需要11.5个 TAD。A/D转换的时钟可用软件进行选择,对于TAD可以有以下4种选择:
• 2Tosc
• 8Tosc
• 32Tosc
• A/D模块内部RC振荡器
与A/D有关的寄存器:
PIC16F877AD模 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)