Code:
;==============================================================================================
;KHOI TAO VI DIEU KHIEN
TITLE "TUTORIAL_1"
PROCESSOR P16F628A
INCLUDE <P16F628A.INC>
__CONFIG _CP_OFF&_PWRTE_OFF&_WDT_ON&_HS_OSC
;==============================================================================================
;PHAN DAT BIEN
ORG 0x20
COUNT1 RES 1
COUNTA RES 1
COUNTB RES 1
;==============================================================================================
ORG 0x0000
GOTO MAIN
ORG 0x0005
MAIN
; MOVLW 0x07 ;CHUYEN 0000 0111 VAO THANH GHI W
; MOVWF CMCON ;TAT THANH GHI SO SANH
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
LOOP
MOVLW B'11111111' ;W = 1111 1111
MOVWF PORTB ;SANG CAC LED
CALL DELAY ;GOI HAM TAO TRE
MOVLW B'00000000' ;W = 0000 0000
MOVWF PORTB ; TAT LED
CALL DELAY ;GOI HAM TAO TRE
MOVLW B'11111111' ;W = 1111 1111
MOVWF PORTB ;
CALL DELAY ;GOI HAM TAO TRE
MOVLW B'00000000' ;W = 0000 0000
MOVWF PORTB
CALL DELAY ;GOI HAM TAO TRE
MOVLW B'11111111' ;W = 1111 1111
MOVWF PORTB ;
CALL DELAY ;GOI HAM TAO TRE
MOVLW B'00000000' ;W = 0000 0000
MOVWF PORTB
CALL DELAY ;GOI HAM TAO TRE
MOVLW B'11111111' ;W = 1111 1111
MOVWF PORTB ;
CALL DELAY ;GOI HAM TAO TRE
MOVLW B'10000000'
MOVWF PORTB
LOOP_1
CALL DELAY
BCF STATUS, C
RRF PORTB
BTFSS STATUS, C
GOTO LOOP_1
MOVLW B'00000001'
MOVWF PORTB
LOOP_2
CALL DELAY
BCF STATUS,C
RLF PORTB
BTFSS STATUS,C
GOTO LOOP_2
MOVLW B'11000000'
MOVWF PORTB
CALL DELAY
MOVLW B'11100000'
MOVWF PORTB
CALL DELAY
MOVLW B'11110000'
MOVWF PORTB
CALL DELAY
MOVLW B'11111000'
MOVWF PORTB
CALL DELAY
MOVLW B'11111100'
MOVWF PORTB
CALL DELAY
MOVLW B'11111110'
MOVWF PORTB
CALL DELAY
MOVLW B'11111111'
MOVWF PORTB
CALL DELAY
GOTO LOOP ;GO BACK AND DO IT AGAIN
;==============================================================================================
;CHUONG TRINH CON
;----------------------------------------------------------------------------------------------
DELAY
MOVLW D'255' ;
MOVWF COUNT1 ;COUNT1 = 255
MOVLW d'255' ;
MOVWF COUNTA
; MOVLW d'51'
; MOVWF COUNTB
DELAY_1
DECFSZ COUNT1 ;COUNT1 = COUNT1 - 1
GOTO DELAY_1 ;QUAY TRO LAI NHAN DELAY
; DECFSZ COUNTA ;COUNTA = COUNTA - 1
; GOTO DELAY_1
DECFSZ COUNTB
GOTO DELAY_1
RETURN
GOTO $
END
- Đoạn chương trình trên của em chạy rất tốt nếu khai báo dùng thạch anh nội của PIC, còn nếu em khai bao như trên ( dùng thạch anh ngoài) thì nó không chạy. cụ thể là các led không nháy, và chân rb4 của nó không có mức tín hiệu cao, mặc dù em đã set nó lên mức cao.
- Anh nào biết nó sai ở chỗ nào chỉ giúp em với. Mạch em dùng thạch anh 10Mhz, tụ gốm 33p.
Cảm ơn các anh nhiếu