单片机在AD转换后对数据拆分再用数码管显示,这样显示的数会抖动而且最后一位数比前面的亮,该如何解决?

while(1){AD();voltage=temp*1.000*5*1000/255;//扩大1000倍,保留3位小数aa=voltage/1000;//分离个位bb=... while(1)
{
AD();
voltage=temp*1.000*5*1000/255;//扩大1000倍,保留3位小数
aa=voltage/1000;//分离个位
bb=voltage%1000/100;//分离十分位
cc=voltage%1000%100/10;//分离百分位
dd=voltage%1000%100%10/1;//分离千分位
display0();//调用数码管显示程序
}
这种情况下动态显示的延时调到1ms也没有用;把while(1)框住display0()的话显示是正常了,但是不能实时测模拟量了,每次都要复位一下
展开
 我来答
bxf0817
2013-04-23 · TA获得超过2162个赞
知道小有建树答主
回答量:1348
采纳率:0%
帮助的人:1063万
展开全部
中断中采样AD,然后计算出aa,bb,cc,dd。然后在主函数中只运行display就行了。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F4是由ST(意法半导体)开发的一种高性能微控制器系列。其采用了90nm的NVM工艺和ART技术(自适应实时存储加速器,Adaptive Real-Time MemoryAccelerator)。STM32F4是一款基于ARM C... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
chr1999
2013-04-23 · TA获得超过1056个赞
知道小有建树答主
回答量:2462
采纳率:0%
帮助的人:1230万
展开全部
建议adc在中断中采样, 在主循环中显示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式