单片机汇编程序出错

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:28:30
我在keil中编好了的程序,编译成功,加载到proteus中仿真却不行是为什么
程序是
org 0000h;(1)
ljmp start;(2)
org 0030h;(3)
start: mov p2,#80h;(4)

mov p3,#0ffh ;初始化,P3 口置高;(6)
l1: jnb p3.2,l2 ;(7)
jnb p3.3,l3 ; ;(8)
jnb p3.4,l4 ; ;(9)
jnb p3.5,l5 ;检测按键;(10)
ljmp l1 ;循环检测;(11)
l2: mov p0,#3fH ;显示'0';(12)
ljmp l1;(13)
l3: mov p0,#06H ;显示'1';(14)
ljmp l1;(15)
l4: mov p0,#05bH ;显示'2';(16)
ljmp l1;(17)
l5: mov p0,#4fH ;显示'3';(18)
ljmp l1;(19)
end;(20)
我是想通过控制P3相应的口来控制p0的输出显示,但是不管我 控制P任何一个口,结果都是全8输出,我不明白是为什么。请高手帮我看看是 程序原因还是设计的结构有问题?

图太不清晰了

问题可能在P0口的上拉电阻上(过小了)。

运行时暂停下,看P0口的逻辑电平。

再一个就是检查 网络标号了(低级错误)。

LS,对此程序而言,好像延时没有必要!
程序,我看没问题,就看你电路的连接了。
我ProteUS刚关掉,我就不试了,

关注该问题进展。。。。。。。。。。。。。

怎么没见你写对数码管的选址指令啊?

数码管显示一位只能相应共阴/阳极有效

老哥 速度太快了 连个延时都没有 当然全显8了。

跟小胖观点一致,缺乏延时
别的看不出有什么问题

按大家的说法,是破图的问题,我没看代码.
这种问题很常见.