View Single Post
Old 06-01-2013, 04:46 PM   #1
athen2005
Nhập môn đệ tử
 
Tham gia ngày: Jan 2013
Bài gửi: 1
:
Chương trình đếm số trên 4 led 7 đoạn dùng 89c51

Em có 1 đoạn code thế này, mong các a chỉ bảo làm sao để nó đếm tới 1 số nào đó do mình định thì dừng lại tại đó (VD: 2013 chẳng hạn).
Code:
; DUNG NGAT TIMER0 DE QUET LED (4 LED 7 DOAN), TIMER1 DELAY 1S
;-----------------------------
NGHIN EQU 127
TRAM EQU 126
CHUC EQU 125
DONVI EQU 124
MOV TMOD, #21H
;-----------------------------
; KHAI BAO CAC LOAI NGAT
;-----------------------------
ORG 0000H
LJMP BEGIN
ORG 000BH
LJMP TIMER0_ISR ; NGAT TIMER0
ORG 001BH
LJMP TIMER1_ISR  ; NGAT TIMER1
;-----------------------------
BEGIN :
	MOV CHUC, #0
	MOV DONVI, #0
	MOV NGHIN, #0
	MOV TRAM, #0
	SETB EA
	SETB ET0
	SETB ET1
	SETB TR0
	SETB TR1
	MOV TH1, #(-200) ; THOI GIAN QUET 1 LED 200US
	MOV TL1, #(-200)
	MOV TH0, #HIGH (-50000) ; DAT THOI GIAN TRE
	MOV TL0, #LOW (-50000)
	MOV R5, #20 ; 20 * 50000 *1US = 1S
	MOV R0, #127
	MOV R1, #0 ; DINH VI TRI CAC LED
	SJMP $
;----------------------------	
TIMER1_ISR :
	PUSH ACC
	MOV P1, #00H
	MOV A, @R0      ;LAY DIA CHI GIAN TIEP NOI DUNG CUA O NHO 127
	MOV DPTR, #MALED7
	MOVC A, @A + DPTR
	MOV P2, A
	DEC R0     ; GIAM DIA CHI
	MOV A, R1
	MOV DPTR, #MACOT  ;  DINH VI TRI MO LED
	MOVC A, @A + DPTR
	MOV P1, A
	INC R1
	CJNE R1, #4, EXIT_TIMER1
	MOV R0, #127
	MOV R1, #0
EXIT_TIMER1:
	POP ACC
	RETI
;------------------------------
TIMER0_ISR:
	MOV TH0, #HIGH (-50000)
	MOV TL0, #LOW (-50000)
	DJNZ R5, EXIT_TIMER0
	MOV R5, #20         ; !!! GAN 200 THI MOI DUNG 1 S ????
	;--------------
	INC DONVI
	MOV A, DONVI
	CJNE A, #10, EXIT_TIMER0
	MOV DONVI, #0
	;--------------
	INC CHUC
	MOV A, CHUC
	CJNE A, #10, EXIT_TIMER0
	MOV CHUC, #0
	;--------------
	INC TRAM
	MOV A, TRAM
	CJNE A, #10, EXIT_TIMER0
	MOV TRAM, #0
	;--------------
	INC NGHIN
	MOV A, NGHIN
	CJNE A, #2, EXIT_TIMER0
	MOV NGHIN, #2
	;--------------
	
EXIT_TIMER0:
	RETI
;-----------------------------
MALED7 : DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H
MACOT : DB 08H,04H,02H,01H
;-----------------------------
END
athen2005 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn