问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

单片机技术与应用:初始化ADC

创作时间:
作者:
@小白创作中心

单片机技术与应用:初始化ADC

引用
1
来源
1.
https://m.renrendoc.com/paper/357746171.html


初始化ADC

任务描述

设置ADC相关寄存器,初始化ADC。要求选择AVDD5:3.3V引脚,512抽取率,通道0。

任务分析

理解ADC模块工作原理,设置其相关端口寄存器及控制寄存器。

初始化ADC的过程

1. 配置APCFG寄存器

  1. 当使用ADC时,端口0的引脚必须配置为ADC模拟输入。
  2. 要配置一个端口0引脚为一个ADC输入,APCFG寄存器中相应的位必须设置为1。这个寄存器的默认值是0,选择端口0为非模拟输入,即作为数字I/O端口。
  3. 注意:APCFG寄存器的设置将覆盖P0SEL的设置。

APCFG模拟I/O配置寄存器:

  • 位名称:APCFG[7:0]
  • 复位读/写:0x00
  • 描述:选择P0_7~P0_0作为模拟I/O
  • 0:模拟I/O禁用
  • 1:模拟I/O启用

代码示例:

APCFG|=0X01;  //设置P0_0端口为模拟端口
P0SEL|=0X01;  //设置P0_0端口为外设功能
P0DIR&=~0X01;  //设置P0_0端口为输入方向

2. 配置ADCCON3寄存器

ADCCON3寄存器控制单个转换的通道号码、基准电压和抽取率。在ADCCON3寄存器更新后,立即进行单个转换;或者如果有一个转换序列正在进行,那么在这个转换序列完成后立即进行单个转换。单通道的ADC转换,只需要将控制字写入ADCCON3寄存器即可。

依据任务要求设置ADCCON3寄存器:

  1. AVDD5引脚:7:6→10
  2. 512抽取率:5:4→11
  3. 通道0:3:0→0000

ADCCON3寄存器设置:

7 6 5 4 3 2 1 0
1 0 1 1 0 0 0 0

代码示例:

ADCCON3=0xB0;  //512抽取率,avdd5:3.3V,通道0,启动AD转化

ADC初始化程序设计思路

  1. 设置P0_0端口为外设功能
  2. 设置P0_0端口为输入方向
  3. 配置ADCCON3寄存器
  4. 设置P0_0端口为模拟端口

代码示例:

void initial_ADC(){
    APCFG|=0X01;
    P0SEL|=0X01;
    P0DIR&=~0X01;
    ADCCON3=0xB0;  //512抽取率,avdd5:3.3V,通道0,启动AD转化
}
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号