主要是想用這個實現顯示與鍵盤的,然后IO口真的就不夠用,595的時序圖我找了半天沒找到。
我剛剛寫了一個,但還是有點問題
他輸出的不是我想要的,本來是想讓六個數碼管同時輸出0~9,但他就是亂碼
可以幫我看看嗎?
程序如下
SHCP EQU P3.5
STCP EQU P3.6
SD EQU P3.4
ORG 00H
LJMP XS595
ORG 30H
XS595: MOV R0,#10H
LL: MOV DPTR,#TAB595_0_9
MOVC A,@A+DPTR
INC DPTR
MOV 30H,A
MOV R2,#06H
LS: MOV A,30H
MOV R1,#08H ;將A給SD,循環8次
HH:
RRC A
MOV P3.4,C
NOP
CLR P3.5
SETB P3.5
DJNZ R1,HH
CLR P3.6
SETB P3.6
XS: CLR P3.6 ;顯示
SETB P3.6
DJNZ R2,HH
LJMP DELAY500MS
DJNZ R0,LL
LJMP XS595
DELAY500MS: ;誤差 0us
MOV R7,#17H
DL1:
MOV R6,#98H
DL0:
MOV R5,#46H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
RET
TAB595_0_9: ;0~9~滅 ;將顯示信息轉化為地址信息
DB 00000010B,10011110B,00100100B,00001100B,10011000B,01001000B,01000000B,00011110B,00000000B,00001000B,11111110B; |