单片机数码管显示。为什么会一个亮其他的都暗呢?+100

MOVR0,#6MOVR2,#1MOVA,#01HCLRCMOVR1,#30HXLED:MOVP2,AMOVP0,@R1INCR1RLCADJNZR0,XLEDMOVR1... MOV R0,#6
MOV R2,#1
MOV A,#01H
CLR C
MOV R1,#30H
XLED: MOV P2,A
MOV P0,@R1

INC R1

RLC A
DJNZ R0,XLED
MOV R1,#30H
一共六个数码管,数据显示缓冲区是从30H~35H 六个数码管是并行数据输入。P2口是位选。01H 02H 40H 80H 10H 20H对应每个数码管
你看我这里
XLED: MOV P2,A
MOV P0,@R1

INC R1

RLC A
DJNZ R0,XLED
没循环一次 一个数码管被选通,相应的数据寄存器内容被送入数码管显示!
展开
 我来答
百度网友0ad5d59
2008-12-10 · TA获得超过1192个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:571万
展开全部
你这个不完整..看不出所有的..

不过就你这个代码.肯定实现不了你 数码管动态显示的目的

如果你的p2 的 0,1,2,3,4,5,6 脚控制数码管的公共端的话.
你这个代码.只会导致最后一个脚也就是6脚的led亮.
其他的都不亮了..
因为..显示led后面肯定还有其他代码.
那些代码在运行的时候只有6脚的公共端选通了.
因为前面的5个led都是只通电一下.很短时间..根本没用..

要实现数码管都亮,,并需6个数码管选通的时间基本一样才行.
比如都导通5ms 10ms之类的..

你这样.想到相当于 01234导通x(us),5导通 x(ms)
导通时间不是一个数量级的.
但愿你能明白,代码我就不写了,祝你好运

如果你要修改的话.

最好是用一个中断..
隔5ms选通一个数码管就好了.
5ms 0
10ms 1
15ms 2
这样循环就好了.
聊融衅文茵
2019-02-08 · TA获得超过4105个赞
知道大有可为答主
回答量:3271
采纳率:31%
帮助的人:198万
展开全部
你这么问,谁能知道是什么原因。问是神马玩意?是仿真图?具体情况都
不知道,怎么知道为什么?
还是自己焊接的板子?还这买的开发板?还是什么板子?
是你写程序后,就亮一个,还是什么时候亮一个?
具体情况说明白。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式