前段时间,因为项目时间紧张,没有及时更新博客,现在继续更新,轮到调试单片机的ADC了,STC151K16PWM的ADC是1个10位的,有8个通道,我偶们这个小时钟,只用到了三路AD,分别是P1.5,P1.6,P1.7,其中,P1.5引脚是测电池电压的,P1.6是测温度的,P1.7是测光线强弱的。我们拿ADC5来举例说明下,ADC的配置步骤。
在使用ADC之前,首先第一步要配置IO口为高阻输入,也就是电流既不能流入也不能流出,配置如下:
第二是对ADC进行初始化,设置模拟口位
因为我们的要求不高,进行测试的时候,ADC转换设置540个时钟就可以了,也就是完成一次ADC转换,需要540个时钟的时间才可以。
我们是在用中断的方式获得ADC的结果,并保存到temp里。
但是我们读取到的数值是一个数字量的离散值,还需要我们根据转换公式来进行换算下,这个公式在STC15W系列的数据手册上有,来看下:
因为我们的参考电压是3.3V,用的是10位的分辨率,所以选择第二个公式,得到下面的结果,*2是因为电阻分压,采集的电压只有原来的一半。
经过我们编译下载后,下载到目标板上,可以看到显示电压:
ADC测试的全部程序已上传分享,包括中断和查询方式https://pan.baidu.com/s/1qYxC1ZI