51单片机做模数实验时,让数码管显示出AD芯片输出对应的值,可是为什么数码管显示会不稳定,比如这个图,180却少了一竖,,而且不调节电位器时数码管也会自己变化数学,怎么解决啊,后来我改了一下,把输出的八位数据输到led上,结果不拧电位器时还是有的灯会闪烁,会变化,求解决
那要怎么解决?
追答看你的数码管是前面的一位闪烁,这可不是最低,这可能是因为程序的问题,确实需要查下程序,或者显示的数据位颠倒了,闪烁那位是最低。对于最低位显示是变化的,一种方法是在ADC0804的模拟电压输入端并一个电解电容,可以得到改善。
追问在输入端??为啥不是输出端?
我也不知道,数码管那个代码检查过了,应该没问题,
追答在ADC0804的模拟电压输入端并一个电解电容,是为了防止输入的模拟电压变化,可以防止转换后的数字不稳定。而输出端是转换后的数字量,是与单片机相连的8位数据线,并联想把数据都过滤掉啊?
数码管的代码没有问题,那就是读取ADC0804转换数据的程序有问题,还有ADC0804的数据线与单片机是怎么连接的,高低位是不是弄反了。
应该不会,我用的是买的单片机开发版来学的,
谢谢你,我基本知道了
那怎么办?
追答上面已经说了方法了啊
取平均值,平滑或者中值滤波。加点代码处理就好啦
追问不懂就不要乱说了,切,你以为我不会说大道理么?
追答靠!没用过我会跟你说?!跟你说方法你还不屑,浪费我的时间。你还要我帮你把代码敲上去?!
靠!没用过我会跟你说?!跟你说方法你还不屑,浪费我的时间。你还要我帮你把代码敲上去?!
呃呃,但是它这个我觉得,差别有点大,
追答变化多少?
追问哎呀,很大,数字会变来边去
这个肯定对
已经检验过了
追答数码管如果显示不清或是有闪烁,应该是每一个数码管段位选之后大概要有3ms的延迟,再操作下一个数码管
追问不是啊,我的意思是数码管会变,过了好多秒了还是会变,我没调电位器了,过了好久,数码管显示还是会变,输出数据放到led上也有类似情况
我的程序是让数码管显示,暂时一秒,检测AD输出值,赋值给数码管,暂时一秒,检测AD..循环下去
延时,发错了,
追答你的AD芯片是什么型号?
追问ADC0804