试验成功的程序:
ORG 0000H
MOV 30H, #0
MOV 31H, #0
M_LOOP:
MOV R2, #8
DISP1:
CALL DL
CALL SHIFT2
DJNZ R2, DISP1
MOV R2, #8
DISP2:
CALL DL
CALL SHIFT1
DJNZ R2, DISP2
SJMP M_LOOP
;-----------------------
SHIFT1:
CLR C
MOV A, 30H
RLC A
MOV 30H, A
CLR C
MOV A, 31H
RRC A
MOV 31H, A
RET
;-----------------------
SHIFT2:
SETB C
MOV A, 31H
RLC A
MOV 31H, A
SETB C
MOV A, 30H
RRC A
MOV 30H, A
RET
;-----------------------
DL:
CLR TI
MOV SBUF, 30H
JNB TI, $
CLR TI
MOV SBUF, 31H
DJNZ R7, $
DJNZ R7, $
DJNZ R6, $ - 4
RET
;-----------------------
END
电路:
参考:
164不是只有一个接地的引脚吗?我用P1.1接的164的9号管脚 用p1.0接的8号脚
你的EA那个引脚应该接高电平,两个164,用接地的引脚来进行片选,我写的是两个164分别并行输出不是同时输出的,是第一个转化完成后再进行第二个
追问请告诉下我哪两个为接地脚呢?谢谢 我也是第一个164每个灯亮完后然后再一次亮第二个164 然后循环 求图 非常感谢
追答第一个的9号引脚接接p1.0第二个的9号引脚接p1.1
追问我就是这样接的 然后程序也是你那个 可是没有循环 只有一个灯亮着 似乎你没有给初值和使位数循环 也没有延时之类的
追答ORG 0
START :MOV SCON,#00H(设定工作方式)
LOOP:
MOV A,#10H
SETB P1.0 (P1.0和P1.1分别连接164的两个接地的引脚)
SETB P1.1
CLR P1.0
MOV R1,#8
LOOP1:
MOV SBUF,A
JNB T1,$
CALL DELAY
CLR T1
RR A
DJNZ R1,LOOP1
SETBP1.0
CLR P1.1
MOV R0,#8
LOOP2:
MOV SBUF,A
JNB T1,$
CALL DELAY
CLR T1
RL A
DJNZ R0,LOOP2
JMP LOOP
DELAY:
MOV R7,#10
D1:MOV R6,#250
DJNZ R6,$
DJNZ R7,D1
END
还是不行哦 是不是程序哪里还有问题呢?现在是完全不显示了呢
追答为了赚你的一点儿金币真难
本回答被提问者采纳