单片机学习札记之7 STC15W系列的ADC配置
2017-12-03 21:04
239 查看
前段时间,因为项目时间紧张,没有及时更新博客,现在继续更新,轮到调试单片机的ADC了,STC151K16PWM的ADC是1个10位的,有8个通道,我偶们这个小时钟,只用到了三路AD,分别是P1.5,P1.6,P1.7,其中,P1.5引脚是测电池电压的,P1.6是测温度的,P1.7是测光线强弱的。我们拿ADC5来举例说明下,ADC的配置步骤。
![](https://img-blog.csdn.net/20171203200323436?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFiaW5nODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在使用ADC之前,首先第一步要配置IO口为高阻输入,也就是电流既不能流入也不能流出,配置如下:
![](https://img-blog.csdn.net/20171203201312884?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFiaW5nODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
第二是对ADC进行初始化,设置模拟口位
![](https://img-blog.csdn.net/20171203201555747?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFiaW5nODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
因为我们的要求不高,进行测试的时候,ADC转换设置540个时钟就可以了,也就是完成一次ADC转换,需要540个时钟的时间才可以。
我们是在用中断的方式获得ADC的结果,并保存到temp里。
![](https://img-blog.csdn.net/20171203202009451?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFiaW5nODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
但是我们读取到的数值是一个数字量的离散值,还需要我们根据转换公式来进行换算下,这个公式在STC15W系列的数据手册上有,来看下:
![](https:/<br/>4000<br/>/img-blog.csdn.net/20171203202326941?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFiaW5nODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
因为我们的参考电压是3.3V,用的是10位的分辨率,所以选择第二个公式,得到下面的结果,*2是因为电阻分压,采集的电压只有原来的一半。
![](https://img-blog.csdn.net/20171203204303950?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFiaW5nODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
经过我们编译下载后,下载到目标板上,可以看到显示电压:
![](https://img-blog.csdn.net/20171203205647734?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFiaW5nODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
ADC测试的全部程序已上传分享,包括中断和查询方式https://pan.baidu.com/s/1qYxC1ZI
在使用ADC之前,首先第一步要配置IO口为高阻输入,也就是电流既不能流入也不能流出,配置如下:
第二是对ADC进行初始化,设置模拟口位
因为我们的要求不高,进行测试的时候,ADC转换设置540个时钟就可以了,也就是完成一次ADC转换,需要540个时钟的时间才可以。
我们是在用中断的方式获得ADC的结果,并保存到temp里。
但是我们读取到的数值是一个数字量的离散值,还需要我们根据转换公式来进行换算下,这个公式在STC15W系列的数据手册上有,来看下:
因为我们的参考电压是3.3V,用的是10位的分辨率,所以选择第二个公式,得到下面的结果,*2是因为电阻分压,采集的电压只有原来的一半。
经过我们编译下载后,下载到目标板上,可以看到显示电压:
ADC测试的全部程序已上传分享,包括中断和查询方式https://pan.baidu.com/s/1qYxC1ZI
相关文章推荐
- STM32F4系列单片机ADC多通道DMA程序,注意DMA配置一定要先于DAC的配置
- 单片机学习札记之8 内部EEPROM的配置和使用
- 【学习笔记】STC 12C系列1T单片机主频配置
- 学习CVS( 2.0.2.4)系列----(一)安装,配置与上传下载项目
- Git学习系列(四)——Eclipse配置Git
- Python学习系列0:配置Eclipse进行机器学习算法的准备工作
- struts2系列学习笔记(4)---------------Action的多样化配置之二
- struts2系列学习笔记(10)---------------配置方式的验证1
- linux学习系列--1.虚拟机安装 centos minimal 配置 ssh ftp
- SpringCloud | 学习系列 Eureka配置账号密码进行安全验证
- zabbix学习系列之配置邮件告警
- STM8S105系列单片机管脚复用配置(选项字节的配置)
- 框架学习系列 mybatis 第十篇 mybatis 全局配置文件
- Maven系列学习(1)——安装以及本地仓库和仓库镜像的配置
- Mysql一些重要配置参数的学习与整理系列
- elasticsearch 学习博客系列<一> ES 的安装与配置
- Caffe学习系列(7):solver及其配置
- 有关STC15W系列硬件SPI的配置问题
- Caffe学习系列(13):数据可视化环境(python接口)配置
- Spring Cloud学习系列_3参数引入、多环境配置、加载顺序