单片机学习札记之7 STC15W系列的ADC配置

时间:2024-03-31 12:10:27

前段时间,因为项目时间紧张,没有及时更新博客,现在继续更新,轮到调试单片机的ADC了,STC151K16PWM的ADC是1个10位的,有8个通道,我偶们这个小时钟,只用到了三路AD,分别是P1.5,P1.6,P1.7,其中,P1.5引脚是测电池电压的,P1.6是测温度的,P1.7是测光线强弱的。我们拿ADC5来举例说明下,ADC的配置步骤。单片机学习札记之7 STC15W系列的ADC配置

在使用ADC之前,首先第一步要配置IO口为高阻输入,也就是电流既不能流入也不能流出,配置如下:

单片机学习札记之7 STC15W系列的ADC配置

第二是对ADC进行初始化,设置模拟口位

单片机学习札记之7 STC15W系列的ADC配置

因为我们的要求不高,进行测试的时候,ADC转换设置540个时钟就可以了,也就是完成一次ADC转换,需要540个时钟的时间才可以。

我们是在用中断的方式获得ADC的结果,并保存到temp里。

单片机学习札记之7 STC15W系列的ADC配置

但是我们读取到的数值是一个数字量的离散值,还需要我们根据转换公式来进行换算下,这个公式在STC15W系列的数据手册上有,来看下:

单片机学习札记之7 STC15W系列的ADC配置

因为我们的参考电压是3.3V,用的是10位的分辨率,所以选择第二个公式,得到下面的结果,*2是因为电阻分压,采集的电压只有原来的一半。

单片机学习札记之7 STC15W系列的ADC配置

经过我们编译下载后,下载到目标板上,可以看到显示电压:

单片机学习札记之7 STC15W系列的ADC配置

ADC测试的全部程序已上传分享,包括中断和查询方式https://pan.baidu.com/s/1qYxC1ZI