mình có làm mạch đồng hồ dùng 6 led 7 đoạn, không cần nút ấn hay báo thức gì cả, nói chung là rất đơn giản, chỉ cần hiển thị đếm giờ thôi. mình lập trình rồi nhưng các số nó cứ nhảy liên tục, mình không biết làm sao để lưu lại được hết. ai giúp mình sửa code với, mình cảm ơn nhiều lắm:
ORG
MAIN:
MOV DPTR,#BM
MOV R1,#0
GIO:
MOV R2,#0
PHUT:
MOV R3,#0
GIAY:
CALL TRABANG
CALL QUETLED
INC R3
CJNE R3,#60,GIAY
INC R1
INC R1,#60,PHUT
INC R2
CJNE R2,#24,GIO
SJMP MAIN
;=========
TRABANG:
MOV A,R1
MOV B,#10
DIV AB
;====
MOVC A,@A+DPTR
MOV 40H,A
MOV A,B
MOVC A,@A+DPTR
MOV 41H,A
;====
MOV A,R2
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV 42H,A
MOV A,B
MOVC A,@A+DPTR
MOV 43H,A
;=====
MOV A,R3
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV 44H,A
MOV A,B
MOVC A,@A+DPTR
MOV 45H,A
;======
RET
;=====
QUETLED:
MOV P0,#11111110B
MOV P2,40H
CALL TRE
;==========
MOV P0,#11111101B
MOV P2,41H
CALL TRE
;========
MOV P0,#11111011B
MOV P2,42H
CALL TRE
;=======
MOV P0,#11110111B
MOV P2,43H
CALL TRE
;=======
MOV P0,#11101111B
MOV P2,44H
CALL TRE
;==========
MOV P0,#11011111B
MOV P2,45H
CALL TRE
RET
;=========
BM:
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
;=====
TRE:
MOV R4,#1
L4:
MOV R5,#200
L5:
MOV R6,#250
L6:
DJNZ R6,L6
DJNZ R5,L5
DJNZ R4,L4
RET
END
ORG
MAIN:
MOV DPTR,#BM
MOV R1,#0
GIO:
MOV R2,#0
PHUT:
MOV R3,#0
GIAY:
CALL TRABANG
CALL QUETLED
INC R3
CJNE R3,#60,GIAY
INC R1
INC R1,#60,PHUT
INC R2
CJNE R2,#24,GIO
SJMP MAIN
;=========
TRABANG:
MOV A,R1
MOV B,#10
DIV AB
;====
MOVC A,@A+DPTR
MOV 40H,A
MOV A,B
MOVC A,@A+DPTR
MOV 41H,A
;====
MOV A,R2
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV 42H,A
MOV A,B
MOVC A,@A+DPTR
MOV 43H,A
;=====
MOV A,R3
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV 44H,A
MOV A,B
MOVC A,@A+DPTR
MOV 45H,A
;======
RET
;=====
QUETLED:
MOV P0,#11111110B
MOV P2,40H
CALL TRE
;==========
MOV P0,#11111101B
MOV P2,41H
CALL TRE
;========
MOV P0,#11111011B
MOV P2,42H
CALL TRE
;=======
MOV P0,#11110111B
MOV P2,43H
CALL TRE
;=======
MOV P0,#11101111B
MOV P2,44H
CALL TRE
;==========
MOV P0,#11011111B
MOV P2,45H
CALL TRE
RET
;=========
BM:
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
;=====
TRE:
MOV R4,#1
L4:
MOV R5,#200
L5:
MOV R6,#250
L6:
DJNZ R6,L6
DJNZ R5,L5
DJNZ R4,L4
RET
END
Comment