51单片机ad转换问题
发布网友
发布时间:2022-04-21 00:36
我来回答
共3个回答
热心网友
时间:2022-06-16 19:06
首先,不知道你的原理图中的 VCC的标号是怎么画的,我记得那个标号一般是GND的,你在确认一下
其次,‘P3=0x11; //为了验证是不是我初始设值的问题...’,这里P3作为输入不建议做输出使用,P1口闲着可以随便用
然后,数码管动态显示应该预留足够的显示时间,程序中一次while循环一次
AD采集用到4个'delay (10) ', 数码管显示 有10个{delay (2)+delay (2)}
也就是说一个周期只有不到一半的时间在显示,那么做出来的效果数码管肯定不会太亮,建议适当增加数码管的显示时间(高级应用也可考虑用定时器中断定时更新数码显示)
还有就是‘uchar temp3; //temp3用作暂时储存P0...’,这里没必要保留P0的数据,你在退出显示的时候已经把位选关了
最后,不知道你是按照什么样的步骤软件仿真的,建议使用断点观察配合单步调试来查找问题,可以先不考虑数码管显示,AD采集数据正常之后再考虑显示,一步一步来分块排查解决问题
热心网友
时间:2022-06-16 19:06
你用的是不是TX-1C开发板?参考的这本书?
热心网友
时间:2022-06-16 19:07
……
P3=0x11; //为了验证是不是我初始设值的问题,这里随便打的数字
--不可乱打字呀!
--为了使用 P3 输入,必须写:P3 = 0xFF;
adrd=1;
delay (10);
adrd=0;
delay (10);
adval=P3;
--这里,倒是可以随意的打上数字,如:
--P3=0x11;
--这么打,数码管,就应该显示 11。
--如果能显示出来 11,说明 ADC 部分,有错。
--如果不能显示出来 11,说明显示部分,有错。
……