单片机数码管显示0~9程序:
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP INT_T0
MAIN: MOV TMOD,#01H
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB ET0
SETB EA
MOV R1,#64H ;100个10ms延时
MOV R0,#00H
SETB TR0
SJMP $
INT_T0: MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
DJNZ R1,L
MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
INC R0
MOV R1,#64H
CJNE R0,#10,L
MOV R0,#00H
L:
RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
单片机8个数码管从左到右依次点亮0~7程序:
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP INT_T0
MAIN: MOV TMOD,#01H
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB ET0
SETB EA
MOV R1,#64H
MOV R0,#00H
SETB TR0
SJMP $
INT_T0: MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
DJNZ R1,L
MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P2,R0 ;与上面程序对比只加了这条语句,使数码管点亮对应数字位
MOV P0,A
INC R0
MOV R1,#64H
CJNE R0,#8,L
MOV R0,#00H
L:
RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
点亮发光二极管程序(现象:0号灯暗,1号灯亮):
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP INT_T0
MAIN: MOV TMOD,#01H
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB ET0
SETB EA
CLR P1.1 ;点亮1号灯做明暗对比
SETB TR0
SJMP $
INT_T0: MOV TH0,#HIGH(65536-10000) ;10ms取反一次
MOV TL0,#LOW(65536-10000)
CPL P1.0 ;0号灯取反
L:
RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH