89c51外扩8255,接6个共阴数码管后在proteus上仿真怎么都不亮是怎么回事,求解答。
各个I/O口地址都查过了,不会有错程序如下ORG0000H;这是程序LJMPSTARTORG1000HSTART:MOV20H,#3EH;UMOV21H,#06H;1MO...
各个I/O口地址都查过了,不会有错程序如下
ORG 0000H ;这是程序
LJMP START
ORG 1000H
START:
MOV 20H,#3EH ;U
MOV 21H,#06H ;1
MOV 22H,#7DH ;6
MOV 23H,#07H ;7
MOV 24H,#5BH ;2
MOV 25H,#5BH ;2
MOV A,#80H ;控制A、B口输出
MOV DPTR,#0FF7FH
MOVX @DPTR,A
MAIN:
MOV R0,#0FEH;位选初值
MOV R1,#20H ;段码初值
MOV R2,#06H ;每轮循环次数
CIRCLE:
MOV DPTR,#0FF7CH ;PA地址
MOV A,R0
MOVX @DPTR,A
INC DPTR ;PB地址
MOV A,@R1
MOVX @DPTR,A
ACALL DELAY1 ;延时1ms
INC R1
MOV A,R0
RL A
MOV R0,A
DJNZ R2,CIRCLE
SJMP MAIN
DELAY1: ;延时1ms子程序
MOV 10H,#50
LOOP1:
MOV 11H,#10
LOOP2:
DJNZ 11H,LOOP2
DJNZ 10H,LOOP1
RET
END 展开
ORG 0000H ;这是程序
LJMP START
ORG 1000H
START:
MOV 20H,#3EH ;U
MOV 21H,#06H ;1
MOV 22H,#7DH ;6
MOV 23H,#07H ;7
MOV 24H,#5BH ;2
MOV 25H,#5BH ;2
MOV A,#80H ;控制A、B口输出
MOV DPTR,#0FF7FH
MOVX @DPTR,A
MAIN:
MOV R0,#0FEH;位选初值
MOV R1,#20H ;段码初值
MOV R2,#06H ;每轮循环次数
CIRCLE:
MOV DPTR,#0FF7CH ;PA地址
MOV A,R0
MOVX @DPTR,A
INC DPTR ;PB地址
MOV A,@R1
MOVX @DPTR,A
ACALL DELAY1 ;延时1ms
INC R1
MOV A,R0
RL A
MOV R0,A
DJNZ R2,CIRCLE
SJMP MAIN
DELAY1: ;延时1ms子程序
MOV 10H,#50
LOOP1:
MOV 11H,#10
LOOP2:
DJNZ 11H,LOOP2
DJNZ 10H,LOOP1
RET
END 展开
3个回答
展开全部
除了P0口当IO要加上拉电阻之外,单片机也要有运行程序才能仿真
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
记得如果用p0口需要上拉电阻,你加上试一下。
更多追问追答
追问
我看书上都是直接连的,外扩I/O口不需要吧
追答
记得只有p0口需要,外扩I/O我没事过,但接LCD的时候是需要的。你试一下再说吧,而且仿真和实际电路还是有区别的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询