View Single Post
Old 30-08-2010, 02:54 AM   #4
unisa
Đệ tử 2 túi
 
Tham gia ngày: May 2005
Bài gửi: 27
:
mình đã viết lại chương trình của bạn và test ok trên poteus 7.5 sp3, chưa có điều kiện test thực tế nhưng như vậy cũng tạm ok rùi, bạn tham khảo nhé

Code:
    LIST P=16F877A ; LIST DIRECTIVE TO DEFINE PROCESSOR
    #INCLUDE <P16F877A.INC> ; PROCESSOR SPECIFIC VARIABLE DEFINITIONS

DATA_LED    EQU    H'0B'
D_VAL1         EQU H'0C'
D_VAL2         EQU H'0D'
D_VAL3        EQU    H'0E'
;================================================= =============
    ORG 0x00
    GOTO MAIN
;================================================= =============
    ORG 0x04
;GOTO INTER_GLOBAL (NHAY DEN VUNG NGAT)
;================================================= =============
    ORG 0x05 ;DIA CHI la`m VIEC BAN DAU CUA HAM MAIN

MAIN ;CHUONG TRINH CHINH

    BANKSEL TRISB
    CLRF TRISB
    BANKSEL PORTB
ABC
    MOVLW    B'10000000'
    MOVWF    DATA_LED    ; NAP GIA TRI W VAO DATA_LED
    MOVWF    PORTB        ; LED 7 SANG (TUONG UNG PORTB.7 = 1)
    CALL    DELAY        
LOOP 
    RRF        DATA_LED,1    ; XOAY PHAI DATA_LED
    MOVF    DATA_LED,0    ; NAP GIA TRI DATA_LED NGUOC TRO LAI W
    MOVWF    PORTB        ; LAY GIA TRI W XUAT RA PORTB
    CALL    DELAY

    BTFSS    DATA_LED,0    ; NEU PORTB.0 = 0 THÌ NHAY DEN LOOP,NEU = 1 THÌ NHAY DEN ABC
    GOTO     LOOP
    GOTO    ABC
;================================================= ===========
DELAY ; DELAY FUNCTION

    BANKSEL D_VAL1
    MOVLW D'255'
    MOVWF D_VAL1 ;D_VAL1 = 255
    MOVWF D_VAL2 ;D_VAL2 = 255
    MOVLW D'20'
    MOVWF D_VAL3
LOOP_DELAY

    DECFSZ D_VAL1
    GOTO LOOP_DELAY
    NOP
    DECFSZ D_VAL2
    GOTO LOOP_DELAY
    NOP
    DECFSZ D_VAL3
    GOTO LOOP_DELAY

    RETURN ; EXIT DELAY FUNCTION
;================================================= =========================
    END
unisa vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn