打印
[LPC]

NXP LPC1768宝马开发板第十章ADC

[复制链接]
1199|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
第十章    宝马1768——ADC  
开发环境:集成开发环境μVision4 IDE版本4.60.0.0
主机系统:Microsoft Windows XP
开发平台:旺宝NXP LPC1768开发板


10.1 TIME定时器
10.2 硬件描述
10.3 程序说明
10.4 实验现象

1LPC1768_ADC
LPC1768包含一个ADC模块,12位逐次逼近式模数转换器,由8个引脚复用为模拟输入引脚,200KHz12位转换频率,测量范围是0~VREFP(通常为3V,不超过VDDA),可选择有输入跳变或者定时器触发等方式启动转换。A/D转换器的基本时钟是由APB时钟提供。A/D转换器包含一个可编程的分频器,它可以讲APB时钟调整为主次逼近转换所需的时钟(最大可达13MHz)。并且,完全满足精度要求的转换需要65个这样的时钟。

2、硬件描述:
该例程用到的硬件主要是ADC,其次是辅助硬件串口和LCD屏,主要用作数据的显示。如果使用串口0,则需要把JP6JP7拔掉。


3、程序说明:
首先看主程序,主程序中首先是对LCDUART0的初始化,如果你没有用到LCD显示或者串口的显示,在主函数中可以注释有关代码,然后是ADC的初始化。在while()中,首先连续采集了8ADC数据,然后对得到的数据进行处理,转换成要显示的数据。
接下来看ADC的初始化,程序如下图所示:
从程序当中可以看到首先是对IO口进行设置,将IO配置成模拟输入。
然后是对时钟的使能,在功率控制寄存器PCONP中的第12位置1
ADC的控制器寄存器进行配置,选择通道,分频,以及使能ADC
接下来就是对ADC的值的采集,
首先是启动AD转换,对控制寄存器的26:24三个位写0,即是停止转换,写001是立即启动转换。启动转换之后,读取ADGDR寄存器的31位,判断数据转换是否结束,数据转换结束之后,读取其12位的AD值,最后停止转换,完成一次ADC的数据采集。A/D 全局数据寄存器ADGDR包含最近一次A/D 转换的结果,还包含转换过程中出现的状态标志的复件。
有两种方法可以读取 ADC 的转换结果。一种就是利用A/D 全局数据寄存器来读取ADC的全部数据,另一种是读取A/D通道数据寄存器。固定使用一种方法非常关键,否则DONE 和OVERRUN 标志在AD0GDR 和A/D 通道数据寄存器之间就不会同步,还可能会引起错误中断或DMA 操作。
也可以通过读取ADDR0~ADDR7寄存器中对应的通道的值,来获得对应通道的ADC采集值,
ADC数据转换结束之后,也是会产生中断的,需要对ADINTEN寄存器中,先使能对应通道的中断。

4、实验现象:
如果使用的是串口作为显示,则是下面的实验现象,使用USB线接在USB1接口上,拔掉JP6JP7,查看枚举出来的COM口,设置串口调试助手波特率是115200。注意要插上JP10,转动可调电阻VR1。实验现象如下图:
如果使用3.2寸屏,则显示如下:



相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:专业生产销售STM32开发板,仿真器,http://openmcu.taobao.com/

71

主题

283

帖子

11

粉丝