注意: uint8_t正常左移8位是0,但如果赋值给uint16_t就占uint16_t中高8位,要保留数据就要把八位数据左移8位后赋给16数据,继续赋给8位数据,结果就是0
注意:通过ADC采集数据并输出电压的原理是 电压和对应ADC端口采集结果的比值是恒定的
ADC第15通道采集的内部参考电压值非常稳定,约为1.19V,不会随芯片的工作改变,可以拿来反推其他通道的电压。
内部电压 / ADC15采集值 = 需要测量的电压 / 对应ADC通道采集值
内部电压 / ADC15采集值 = 实际电源电压 / 1023 推算出来实际电压值
1.普通的IO口只能识别0和1,以STC8的IO口为例,输入0.7V识别为0,输入3.3V识别为1,输入一个0.7 ~3.3 V的电压,IO口的输入结果就是随机的了。
2.STC8有10位的ADC模数转换口,10位指的是将0到最大电压进行分割的份数,即1024份,位数越多,测量结果越精确,因为分割的份数多。
3. 因为要通过串口观察查询到的结果,所以串口初始化函数要保留。在主函数中执行,就可以和电脑建立串口。
4.串口自带的输出功能太麻烦,这里要用的printf函数。调用printf需要
#include "stdio.h"头文件
在串口初始化函数中修改输出标志位 TI = 1;
5.A