您当前的位置: 首页 > 

韦东山

暂无认证

  • 0浏览

    0关注

    506博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

第018课 ADC和触摸屏硬件原理详解及裸机编程

韦东山 发布时间:2018-02-28 11:38:56 ,浏览量:0

第001节_ADC硬件原理

模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。 通常的模数转换器是把经过与标准量比较处理后的模拟量转换成以二进制数值表示的离散信号的转换器。 故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

如图,是把可变电阻上的电压值变换的模拟信号通过ADC转换,输出数字信号。 这里写图片描述

对于数字信号我们需要得到它的几个属性

*用多少位来存储这个数据(假设10bit)。 *最大值0b111111111 *它对应的电压是多少伏(模拟信号输入的最大值是多少)我们就可以根据模拟信号(电压)的最大值,来计算出对应的数值。 *采样/转换速度。

对于程序员,我们不关心ADC的内部机制,我们只关心:

*怎么启动ADC *启动之后怎么得到数据, 总之:我们都是通过寄存器操作的。 这里写图片描述

从图1-1-1可以看出ADC有8个多路选择器,显然,以后我们写程序的时候,我们可以8个多路选择之一, 下面是编写程序要做的步骤:

  • 确定是哪一路信号:设置8:1MUX,选择要测量哪一个引脚,(看原理图选择要测量的引脚)
  • 设置工作时钟(从工作室中,可以算出转换一次,需要多长时间)
  • 启动
  • 读状态,判断ADC转换是否成功。
  • 读数据
ADC寄存器介绍

1.ADC 控制寄存器(ADCCON)

ADCCON控制寄存器,用于标志转换是否完成,控制是否使能预分频器,输入通道选择,工作模式,ADC是否启动。它的各位含义如下图所示。 这里写图片描述

2.ADC 启动延时寄存器(ADCDLY)

ADCDLY 启动延时寄存器用于启动或初始化延时寄存器。它的各位含义如下图所示

这里写图片描述

3.ADC 转换数据寄存器(ADCDAT0)

ADCDAT0转换数据寄存器,本节中只用到该寄存器的前10位(用于保存转换后的结果)。

这里写图片描述

第002节_ADC编程

编程步骤:

  • 初始化ADC
  • 读数据,
  • 在串口上显示出来。 这里写图片描述

一.初始化ADC

下面的函数实现对ADC的初始化。

03  void adc_init(void)
04  {
05  /* [15] : ECFLG,  1 = End of A/D conversion
06      * [14] : PRSCEN, 1 = A/D converter prescaler enable
07      * [13:6]: PRSCVL, adc clk = PCLK / (PRSCVL + 1)
08      * [5:3] : SEL_MUX, 000 = AIN 0
09       * [2]   : STDBM
10      * [0]   : 1 = A/D conversion starts and this bit is cleared after the startup.
11      */
12      ADCCON = (1            
关注
打赏
1658827356
查看更多评论
0.0554s