PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Chương trình đếm số trên 4 led 7 đoạn dùng 89c51 (http://www.picvietnam.com/forum/showthread.php?t=31598)

athen2005 06-01-2013 04:46 PM

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



Múi giờ GMT. Hiện tại là 11:59 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam