我是初學單片機的學員只懂匯編語言編的程序是否合理請各位老師指正,使用的學習板是在論壇買的。
ORG 0000H ;晶振6,數(shù)碼顯示8051右移程序
AJMP START
START: MOV SP,#60H
MOV R0,#250
aaa1: MOV R1,#250 ;上電延時
DJNZ R1,$
DJNZ R0,aaa1
KKK: CLR P1.4
MOV R2,#0FFH ;循環(huán)次數(shù)
KK: MOV A,#7FH ;數(shù)碼顯示8
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11111110B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#3FH ;數(shù)碼顯示0
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11111101B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#6DH ;數(shù)碼顯示5
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11111011B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#06H ;數(shù)碼顯示1
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11110111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
DEC R2
CJNE R2,#0H,KK
MOV R3,#1
DEC R3
CJNE R3,#0H,KK
KK1: MOV A,#7FH ;數(shù)碼顯示8
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11111101B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#3FH ;數(shù)碼顯示0
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11111011B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#6DH ;數(shù)碼顯示5
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11110111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#06H ;數(shù)碼顯示1
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11101111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
DEC R2
CJNE R2,#0H,KK1
MOV R3,#1
DEC R3
CJNE R3,#0H,KK1
KK2: MOV A,#7FH ;數(shù)碼顯示8
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11111011B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#3FH ;數(shù)碼顯示0
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11110111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#6DH ;數(shù)碼顯示5
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11101111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#06H ;數(shù)碼顯示1
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11011111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
DEC R2
CJNE R2,#0H,KK2
MOV R3,#1
DEC R3
CJNE R3,#0H,KK2
KK3: MOV A,#7FH ;數(shù)碼顯示8
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11110111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#3FH ;數(shù)碼顯示0
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11101111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#6DH ;數(shù)碼顯示5
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11011111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#06H ;數(shù)碼顯示1
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#10111111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
DEC R2
CJNE R2,#0H,KK3
MOV R3,#1
DEC R3
CJNE R3,#0H,KK3
KK4: MOV A,#7FH ;數(shù)碼顯示8
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11101111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#3FH ;數(shù)碼顯示0
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#11011111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#6DH ;數(shù)碼顯示5
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#10111111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
MOV A,#06H ;數(shù)碼顯示1
MOV P0,A
SETB P2.6
CLR P2.6
MOV A,#01111111B ;數(shù)碼顯示位置
MOV P0,A
SETB P2.7
CLR P2.7
LCALL DELAY1
DEC R2
CJNE R2,#0H,KK4
MOV R3,#1
DEC R3
CJNE R3,#0H,KK4
MOV P0,#11111111B ;數(shù)碼顯示關閉
SETB P2.7
CLR P2.7
LCALL DELAY
LCALL DELAY
LCALL DELAY
LJMP KKK
DELAY: MOV R0,#0A5H ;100毫秒延時子程序
DL0: MOV R1,#96H
DJNZ R1,$
DJNZ R0, DL0
RET
DELAY1: MOV R0,#31H ;500微秒延時子程序
DL1: MOV R1,#01H
DJNZ R1,$
DJNZ R0,DL1
RET
END
|