单片机时钟程序
有哪位高手能给我写个汇编时钟程序啊,要求用6个共阳数码管,p0口接数码馆的a~g,p2口通过9012三极管接数码管的阳极,时分秒分别用p1.1、p1.2、p1.3调整!,...
有哪位高手能给我写个汇编时钟程序啊,要求用6个共阳数码管,p0口接数码馆的a~g,p2口通过9012三极管接数码管的阳极,时分秒分别用p1.1、p1.2、p1.3调整!,麻烦快点,谢谢啊!
展开
3个回答
展开全部
AJMP STRAT
ORG 0003H ;中断0入口地址
ACALL DEL
AJMP INTA ;跳转到中断0服务程序
ORG 0013H ;中断1入口地址
ACALL DEL
AJMP INTB ;跳转到中断1服务程序
STRAT:SETB EA
SETB EX0
SETB EX1
SETB IT0
SETB IT1
;*****************************************
A8:MOV R6,#0 ;24进制计数器
MOV R5,#0
MOV 25H,#3FH ;时十位
A7:MOV R4,#0
MOV 24H,#3FH ;时个位
A6:MOV R3,#0
MOV 23H,#3FH ;分十位
A5:MOV R2,#0
MOV 22H,#3FH ;分个位
A4:MOV R1 ,#0
;MOV 21H,#3FH; ;秒十位
SETB 21H.0
SETB 21H.1
SETB 21H.2
SETB 21H.3
SETB 21H.4
SETB 21H.5
CLR 21H.6
CLR 21H.7
A3:MOV R0,#0
MOV 20H,#3FH ;秒个位
;**********************************************
A2:MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 20H,A
MOV A,R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 21H,A
MOV A,R2
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 22H,A
MOV A,R3
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 23H,A
MOV A,R4
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 24H,A
MOV A,R5
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 25H,A
;**********************************
MOV 31H,#21
B1:MOV 30H ,#0F0H
A1:MOV P0,20H ;点亮秒个位数码管
CLR P1.3
ACALL DEL
SETB P1.3
MOV P0,21H ;点亮秒十位数码管
CLR P1.2
ACALL DEL
SETB P1.2
MOV P0,22H ;点亮分个位数码管
CLR P1.1
ACALL DEL
SETB P1.1
MOV P0,23H ;点亮分十位数码管
CLR P1.0
ACALL DEL
SETB P1.0
MOV P0,24H ;点亮时个位数码管
CLR P2.7
ACALL DEL
SETB P2.7
MOV P0,25H ;点亮时十位数码管
CLR P2.6
ACALL DEL
SETB P2.6
DJNZ 30H,A1
DJNZ 31H,B1
;************************************
INC R0
CJNE R0,#10,A2
INC R1
CJNE R1,#6,A3
INC R2
;****************************
SETB P1.4 ;1分钟后关定时
CJNE R2,#0,A11;分个位定时
CJNE R3,#0,A11;分十位定时
CJNE R6,#19,A11;时位定时
CLR P1.4 ;开定时
;****************************
A11:CJNE R2,#10,A44
INC R3
A12:CJNE R3,#6,A55
INC R6
CJNE R6,#24,A9
AJMP A8
A9:INC R4
CJNE R4,#10,A66
INC R5
CJNE R5,#3,A77
AJMP A8
A44:AJMP A4
A55:AJMP A5
A66:AJMP A6
A77:AJMP A7
;**************************************
DEL:MOV R7,#0AH ;延时子程序
AA:DJNZ R7,AA
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
INTA: INC R2 ;中断0服务程序
CJNE R2, #10,B2
MOV R2,#0
INC R3
CJNE R3,#6,B2
MOV R3,#0
B2:RETI
INTB:INC R6 ;中断1服务程序
CJNE R6,#24,B4
MOV R6,#0
MOV R4,#0
MOV R5,#0
AJMP B3
B4:INC R4
CJNE R4, #10,B3
MOV R4,#0
INC R5
CJNE R5,#3,B3
MOV R5,#0
B3:RETI
END
ORG 0003H ;中断0入口地址
ACALL DEL
AJMP INTA ;跳转到中断0服务程序
ORG 0013H ;中断1入口地址
ACALL DEL
AJMP INTB ;跳转到中断1服务程序
STRAT:SETB EA
SETB EX0
SETB EX1
SETB IT0
SETB IT1
;*****************************************
A8:MOV R6,#0 ;24进制计数器
MOV R5,#0
MOV 25H,#3FH ;时十位
A7:MOV R4,#0
MOV 24H,#3FH ;时个位
A6:MOV R3,#0
MOV 23H,#3FH ;分十位
A5:MOV R2,#0
MOV 22H,#3FH ;分个位
A4:MOV R1 ,#0
;MOV 21H,#3FH; ;秒十位
SETB 21H.0
SETB 21H.1
SETB 21H.2
SETB 21H.3
SETB 21H.4
SETB 21H.5
CLR 21H.6
CLR 21H.7
A3:MOV R0,#0
MOV 20H,#3FH ;秒个位
;**********************************************
A2:MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 20H,A
MOV A,R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 21H,A
MOV A,R2
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 22H,A
MOV A,R3
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 23H,A
MOV A,R4
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 24H,A
MOV A,R5
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 25H,A
;**********************************
MOV 31H,#21
B1:MOV 30H ,#0F0H
A1:MOV P0,20H ;点亮秒个位数码管
CLR P1.3
ACALL DEL
SETB P1.3
MOV P0,21H ;点亮秒十位数码管
CLR P1.2
ACALL DEL
SETB P1.2
MOV P0,22H ;点亮分个位数码管
CLR P1.1
ACALL DEL
SETB P1.1
MOV P0,23H ;点亮分十位数码管
CLR P1.0
ACALL DEL
SETB P1.0
MOV P0,24H ;点亮时个位数码管
CLR P2.7
ACALL DEL
SETB P2.7
MOV P0,25H ;点亮时十位数码管
CLR P2.6
ACALL DEL
SETB P2.6
DJNZ 30H,A1
DJNZ 31H,B1
;************************************
INC R0
CJNE R0,#10,A2
INC R1
CJNE R1,#6,A3
INC R2
;****************************
SETB P1.4 ;1分钟后关定时
CJNE R2,#0,A11;分个位定时
CJNE R3,#0,A11;分十位定时
CJNE R6,#19,A11;时位定时
CLR P1.4 ;开定时
;****************************
A11:CJNE R2,#10,A44
INC R3
A12:CJNE R3,#6,A55
INC R6
CJNE R6,#24,A9
AJMP A8
A9:INC R4
CJNE R4,#10,A66
INC R5
CJNE R5,#3,A77
AJMP A8
A44:AJMP A4
A55:AJMP A5
A66:AJMP A6
A77:AJMP A7
;**************************************
DEL:MOV R7,#0AH ;延时子程序
AA:DJNZ R7,AA
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
INTA: INC R2 ;中断0服务程序
CJNE R2, #10,B2
MOV R2,#0
INC R3
CJNE R3,#6,B2
MOV R3,#0
B2:RETI
INTB:INC R6 ;中断1服务程序
CJNE R6,#24,B4
MOV R6,#0
MOV R4,#0
MOV R5,#0
AJMP B3
B4:INC R4
CJNE R4, #10,B3
MOV R4,#0
INC R5
CJNE R5,#3,B3
MOV R5,#0
B3:RETI
END
展开全部
oop8: mov r5,#00h
loop7: mov r4,#08h
loop6: mov r3,#02h
loop5: mov r2,#09h
loop4: mov r1,#05h
loop3: mov r0,#08h
loop2: mov r7,#68h
loop1: mov dptr,#0ff21h
mov a,#01h
movx @dptr,a
mov dptr,#tab
mov a,R0
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#02h
movx @dptr,a
mov dptr,#tab
mov a,R1
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#04h
movx @dptr,a
mov dptr,#tab
mov a,R2
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#08h
movx @dptr,a
mov dptr,#tab
mov a,R3
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#10h
movx @dptr,a
mov dptr,#tab
mov a,R4
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#20h
movx @dptr,a
mov dptr,#tab
mov a,R5
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
djnz r7,loop1
inc r0
cjne R0,#0ah,loop2
mov r0,#00h
inc r1
cjne R1,#06h,loop2
mov r1,#00h
mov r0,#00h
inc r2
cjne R2,#0ah,loop10
mov r0,#00h
mov r1,#00h
mov r2,#00h
inc r3
cjne R3,#06h,loop20
mov r0,#00h
mov r1,#00h
mov r2,#00h
mov r3,#00h
inc r4
cjne r4,#04h,l
cjne r5,#02h,l
mov r0,#00h
mov r1,#00h
mov r2,#00h
mov r3,#00h
mov r4,#00h
mov r5,#00h
ajmp loop2
l: cjne r4,#0ah,loop30
mov r0,#00h
mov r1,#00h
mov r2,#00h
mov r3,#00h
mov r4,#00h
inc r5
cjne R5,#04h,loop40
ajmp loop2
loop10:ajmp loop2
loop20:ajmp loop2
loop30:ajmp loop2
loop40:ajmp loop2
ajmp loop2
tab:db 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h
T: mov 50H, #1h
mov TMOD, #10H
mov TH1, #0fcH
mov TL1, #0ffH
SETB TR1
L2:JBC TF1,L1
SJMP L2
L1:mov TH1,#0fch
mov TL1, #0ffH
djnz 50h,L2
RET
end
loop7: mov r4,#08h
loop6: mov r3,#02h
loop5: mov r2,#09h
loop4: mov r1,#05h
loop3: mov r0,#08h
loop2: mov r7,#68h
loop1: mov dptr,#0ff21h
mov a,#01h
movx @dptr,a
mov dptr,#tab
mov a,R0
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#02h
movx @dptr,a
mov dptr,#tab
mov a,R1
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#04h
movx @dptr,a
mov dptr,#tab
mov a,R2
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#08h
movx @dptr,a
mov dptr,#tab
mov a,R3
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#10h
movx @dptr,a
mov dptr,#tab
mov a,R4
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
mov dptr,#0ff21h
mov a,#20h
movx @dptr,a
mov dptr,#tab
mov a,R5
movc a,@a+dptr
mov dptr,#0ff22h
movx @dptr,a
lcall T
djnz r7,loop1
inc r0
cjne R0,#0ah,loop2
mov r0,#00h
inc r1
cjne R1,#06h,loop2
mov r1,#00h
mov r0,#00h
inc r2
cjne R2,#0ah,loop10
mov r0,#00h
mov r1,#00h
mov r2,#00h
inc r3
cjne R3,#06h,loop20
mov r0,#00h
mov r1,#00h
mov r2,#00h
mov r3,#00h
inc r4
cjne r4,#04h,l
cjne r5,#02h,l
mov r0,#00h
mov r1,#00h
mov r2,#00h
mov r3,#00h
mov r4,#00h
mov r5,#00h
ajmp loop2
l: cjne r4,#0ah,loop30
mov r0,#00h
mov r1,#00h
mov r2,#00h
mov r3,#00h
mov r4,#00h
inc r5
cjne R5,#04h,loop40
ajmp loop2
loop10:ajmp loop2
loop20:ajmp loop2
loop30:ajmp loop2
loop40:ajmp loop2
ajmp loop2
tab:db 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h
T: mov 50H, #1h
mov TMOD, #10H
mov TH1, #0fcH
mov TL1, #0ffH
SETB TR1
L2:JBC TF1,L1
SJMP L2
L1:mov TH1,#0fch
mov TL1, #0ffH
djnz 50h,L2
RET
end
参考资料: 红爷
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果有电路板的话,还不如自己一步一步来,也不用多长时间:
1、点亮一个数码管
2、点亮6个数码管
3、读按键
4、显示时钟
1、点亮一个数码管
2、点亮6个数码管
3、读按键
4、显示时钟
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询