找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 4173|回复: 0
打印 上一主题 下一主题
收起左侧

PIC16F877的A/D模块

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-13 01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  该模拟数字转换器(A/D)模块有多达8个模拟输入通道。模拟输入对一个采样保持电容器充电,采样保持电容的输出是A/D转换器的输入。A/D转换器采用逐次逼近法将这一模拟电平产生数字转换结果,其转换结果为 10 位数字。模拟参考电压 ( 正电源电压和负电源电压 )可通过软件选择为器件的电源电压 (AVDD、AVss) 或者AN3/VREF+和AN2/VREF-引脚上的电平。A/D转换器具备可在休眠状态下工作的独特特性。
结构框图如下:

操作步骤:
ADRESH:ADRESL寄存器中保存了A/D转换的10位结果。当A/D转换完成之后,转换结果被载入这一A/D结果寄存器对中,GO/DONE(ADCON0<2>)位被清零,且A/D中断标志位ADIF置1。当配置好A/D模块后,在启动转换前必须先选择A/D转换的通道。模拟输入通道的相应TRIS位必须设置为输入。采集时间(acquisitiontime)的确定参见“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有关的寄存器:


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表