|
谢谢各位大侠的指点。 我想做个小对讲机,限于体积,选用STC8G1K08A做控制芯片,它的IO口只有六个,去掉两个串口,再去掉三个用于功能选择按键的IO口,就剩一个IO口,只能用LED的闪烁频率来显示功能选择项,显得很LOW,后来发现了一个例子,按照他的思路,精简了一下,就三个选择项,装上后就是这个样,电压和ADC数值不成比例。我自己总结的原因是 ADC有内阻,接上后相当于并联,可能影响读数,也有可能是我的十位ADC结果转换成十进制数的计算方法有问题,也有可能是设置ADC各个寄存器的时候没有仔细看说明书,直接按照例程搬过来的,可能某个寄存器的高位或低位没设置,造成读数不准。 但是,按照这个电路,每个按键的读数都比较稳定,目的已经达到了,先不探究具体原因了,节省下来的IO口,我弄了个IIC的OLED显示屏,用来显示频率,音量,亚音,话筒灵敏度等等,就显得很高大上了。想想还有一大堆的字模 bmp要自己画,脑袋都大了。 再次感谢各位大神的指导,受益匪浅。希望以后能继续得到大家的帮助。 |
|
这个问题许多人会遇到,其它很多人不知道原因。 多路AD采样系统中有一个采样电容。系统会对电容上的电压进行对分试探转换,系统希望电容上的电压不要跳动,否则影响AD对分计算。于是系统在转换时会断开采样电容与外界的联系(本处AD是不是这样处理就不清楚了),这就需要切换采样通道后,稍等一下,待采样电容上的电充、分完全后,再下令开始采样!!! 楼主试试看:切换采样通道后,等50ms,再下令转换电压。改变等待时间,看看AD值有何变化? |
|
代码呢? STC8G1K08A这个IC容易受干扰,特别是电路中有高频信号的情况下 在ADC的采样输入一定要有一个104以上的电容,而且得是靠近端口的 单片机的VCC一定在做好滤波,104电容一定要靠近VCC GND不能到处乱跑 |
给你一个应用实例参考,因电池供电,P3.2既作ADC输入,也作中断唤醒。ADC检测压力传感器信号,当无压力达到一定时间,进入休眠。一旦有压力MCU唤醒正常工作。你的问题可能是ADC转换结果寄存器设置不当。
|