当前位置:文档之家› 6位共阴数码管动态显示程序

6位共阴数码管动态显示程序

SECOND_FLAG EQU 32.1H
LEDTIME EQU P0
SELECT EQU P1
ENGATE EQU P2.7
MIAOG EQU 40H
MIAOS EQU 41H
FENG EQU 42H
FENS EQU 43H
SG EQU 44H
SS EQU 45H
COUNT0 DATA 30H
COUNT1 DATA 31H
ENTERL EQU P2.0
ENTERS EQU P2.1
PLUS EQU P2.2
MINUS EQU P2.3
ENTERCOUNT EQU 50H
SLOCK EQU 46.0H
SUNLOCK EQU 46.1H
SSET EQU 46.2H
STIME EQU 46.3H
enable equ p2.6
org 0000h
ljmp main
org 000bh
ljmp T0_INT
org 008bh
ljmp T1_INT
ORG 0100H

MAIN:
MOV SP,#60H
clr p2.6
LCALL INIT
; LCALL T0_INIT
;lcall t1_init
setb engate
CLR ENTERS ;初始化按键
CLR ENTERL
SETB SLOCK ;初始化系 ;长按计数清零
LCALL LEDINITIAL
MOV P1,#0
CLR PLUS
CLR MINUS
CLR 47.1H
LOOP:
JB SLOCK,PASSWORD
LCALL DISPLAY
SJMP LOOP
PASSWORD:
CLR EA
CLR ET0


DECODING: JB ENTERL,UNDECOD1
LCALL DISPLAYL
SJMP DECODING
UNDECOD1:
MOV R3,#0
mov p0,#03fh
LCALL DELAY2S
mov p0,#038h
SETB ENGATE
LCALL DISPLAYL
UNDECOD2: JB ENTERL,UNDECOD4
JB ENTERS,UNDECOD2
UNDECOD6: JNB ENTERS,UNDECOD5
UNDECOD5: JB ENTERL,UNDECOD4
JNB ENTERS,UNDECOD6
INC R3
SJMP UNDECOD2
UNDECOD4: MOV 35H,R3
MOV R3,#0
MOV P1,#05H
MOV P0,#06H
LCALL DELAY2S
MOV P0,#038H
UNDECOD8: JB ENTERL,UNDECOD7
JB ENTERS,UNDECOD8
UNDECOD10: JNB ENTERS,UNDECOD9
UNDECOD9: JB ENTERL,UNDECOD7
JNB ENTERS,UNDECOD10
INC R3
SJMP UNDECOD8
UNDECOD7: CJNE R3,#6,UNDECOD1
MOV R3,35H
CJNE R3,#3,UNDECOD1
mov p0,#06dh
lcall delay2s
clr slock
setb sset

SETTINGini:clr et0
lcall t1_init
mov r6,#40h ;40H---42H
MOV P1,#0
CLR PLUS
CLR MINUS
setting:
jb minus,$
step2:jb enterl,settingok
jnb minus,step1
inc r6
MOV 48H,R6
MOV R1,48H
mov 47h,#0
CJNE R6,#46h,SETTING
MOV R6,#40H ;40H--42H
sjmp setting
step1:jnb plus,step2
MOV 39h,#160
DJNZ 39h,$
inc 47h
cjne r6,#41h,step4
step5:mov r7,47h
cjne r7,#6,step3
mov 47h,#0
mov @r1,47h
sjmp step2
step4:cjne r6,#43h,step6
sjmp step5
step6:mov r7,47h
cjne r7,#10,step3
mov 47h,#0
mov @r1,47h
sjmp step2
step3:MOV B,R6
mov r1,B
mov @r1,47h
sjmp step2
settingok:
clr et1
setb engate
mov p0,#6dh
mov p1,#5h
lcall delay2s
lcall T0_init
DISPLAY:
LCALL DOWNCOUNT ;读取减计时
jnb slock,display2
mov p1,#05h
mov p0,#038h

ljmp main
display2: CLR ENGATE ;清空138使能端
MOV P1,#0 ;138选
MOV R0,#MIAOG ;秒个位竖数值输入 ;miaog--feng
;2011,11,30 SJMP DISPLAY1

DISPLAY1:
MOV DPTR,#NUMTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
SETB ENGATE
LCALL DELAYLED1MS
CLR ENGATE
INC R0
INC P1
MOV R5,P1
CJNE R5,#6,DISPLAY1
setb p2.6
jb enterl,out
SJMP DISPLAY
DELAYLED1MS:
MOV 24h,#80 ;r7--24h
DJNZ 24h,$
RET
out:
clr et0
lcall t1_init
clr enable
mov r3,#0
UND2: JB ENTERL,UND4
JB ENTERS,UND2
UND6: JNB ENTERS,UND5
UND5: JB ENTERL,UND4
JNB ENTERS,UND6
INC R3
sjmp und2
und4: cjne r3,#2,und1
setb slock
ljmp main
und1: cjne r3,#3,und7
clr et1
clr slock
ljmp settingok
und7: sjmp out

T1_INIT:
MOV TMOD,#00100000B ;工作方式2
MOV TL0,#06H ;初始计时
MOV TH0,#06H ;置位计时
MOV TCON,#01000000B ;
SETB EA
SETB ET1
RET

T1_INT:push acc
DISPLAYS:
CLR ENGATE ;清空138使能端
MOV P1,#0 ;138选
MOV R0,#MIAOG ;秒个位竖数值输入 ;#miaog--feng
DISPLAYS1:
MOV DPTR,#NUMTAB
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A

SETB ENGATE
LCALL DELAYLED1MS
CLR ENGATE
INC R0
INC P1
MOV R5,P1
CJNE R5,#6,DISPLAYS1 ;6---4
pop acc
RETI

INIT:
MOV COUNT0,#250 ;250-2
MOV COUNT1,#16 ;16-2
CLR SECOND_FLAG
RET

T0_INT:
DJNZ COUNT0,T0_INT_EXIT
MOV COUNT0,#250 ;250-2
DJNZ COUNT1,T0_INT_EXIT
MOV COUNT1,#16 ;16-2
SETB SECOND_FLAG
DEC 40H

T0_INT_EXIT: RETI
;********************************************************************
T0_INIT:
MOV TMOD,#00000010B ;工作方式2
MOV TL0,#06H ;初始计时
MOV TH0,#06H ;置位计时
MOV TCON,#00010000B ;
SETB EA
SETB ET0
RET
;********************************************************************
DOWNCOUNT:
MOV R4,40H
CJNE R4,#-1,DOWN1
MOV 40H,#9
DEC 41H
MOV R4,41H
cjne R4,#-1,DOWN1
MOV 41H,#5
DEC 42H
mov r4,42h
cjne r4,#-1,down1
mov 42h,#9
dec 43h
mov r4,43h
cjne r4,#-1,down1
mov 43h,#5
dec 44h
mov r4,44h
cjne r4,#-1,down1
mov 44h,#9
dec 45h
mov r4,45h
cjne r4,#-1,down1
mov 45h,#9
DOWN1:mov a,#0
orl a,40h
orl a,41h
orl a,42h
orl a,43h
orl a,44h
orl a,45h
cjne a,#0,down2
clr p2.6
ljmp m

ain
down2:
RET
;********************************************************************


DELAY2S:
MOV 32H,#100
DELAY2S0:
MOV 33H,#100
DELAY2S1:
MOV 34H,#100
DJNZ 34H,$
DJNZ 33H,DELAY2S1
DJNZ 32H,DELAY2S0
RET



DISPLAYL:
MOV P1,#5
MOV P0,#038H
RET
LEDINITIAL:
MOV MIAOG,#0
MOV MIAOS,#0
MOV FENG,#0
MOV FENS,#0
MOV SG ,#0
MOV SS , #0
RET

NUMTAB:DB 03FH,06H,5BH,4FH,66H,06DH,07DH,07H,07FH,06FH,038h
END

相关主题
文本预览
相关文档 最新文档