51单片机的P0口的问题

来源:百度知道 编辑:UC知道 时间:2024/07/01 03:58:41
我是用P0口输出段码到4位的公阴LED上
位码我直接用的P1。1。2。3。4
按照
网上的 我接了8个 上拉电阻 在P0口上 ]
然后在程序中
MOV P0,FFH
就显示 8
送其他数据
它就不亮
谁帮我解答下吗
先谢谢了
本人不是那种跪求跪求什么的人
我都是自己在百度先找资料
确实在网上找了很多深入了解P0口的资料后
还是找不到原因。。。希望高人给我解答下

main:
mov p0,3FH ;送出十位的7段代码
CLR P1.1
SETB P1.1
CLR P1.1
lcall d10ms ;显示10ms
mov p0,06H;送出个位的7段代码
CLR P1.2
SETB P1.2
CLR P1.2
lcall d10ms
d10ms:
mov r0,#4
ss:MOV R7,#250
DJNZ R7,$
DJNZ R0, ss
RET
LJMP MAIN
end

同学你要什么效果,你说,我帮设计设计。。。。

呵呵,忘加'#'了

mov p0,3FH ;送出十位的7段代码
mov p0,06H;送出个位的7段代码

你看,你的RAM未初始化,内存都是0,7FH单元存储的数据和06H单元存储的数据送P0口肯定不亮。0FFH单元应该是SFR区的保留地址,可能这个地址根本就没有存储单元,你用MOV P0,FFH 的话,数据线悬空通常读到高电平,就是#0FFH,所以显示'8'。

另,你用的应该是动态显示方式,那么每一位显示并延时后应该清除位码,你现在的程序应该是两个数码管都是一样的数吧。