PDA

View Full Version : help bài Led chóp tắt không chạy


thundernhut
23-07-2010, 06:50 AM
Ngồi làm chơi cái này mà nó không chạy chẳng hiểu làm sao cả.
Anh em xem giúp xem code có sai chỗ nào không?

Mạch gồm có 1 con PIC16f877a và 5 con 74hc595
lập trình chạy theo thứ tự : sáng dần, tắt dần, sáng xen kẽ dần dần, chóp tắt 10 lần
75hc595 có 2 chân đưa xung vào nối vào 2 chân Port B là 1 và 2 để điều khiển, tạo xung ở 1 thì nó dịch dữ liệu ngõ vào vào thanh ghi nội, tạo xung ở chân 2 thì dịch từ thanh ghi nội ra ngõ ra.

Không hiểu vì sao mà nó chạy không đúng, chạy giả lập trên máy mình thì nó chỉ sáng hết đền lên rồi đứng im không thay đổi gì cả, còn trên máy đứa bạn thì chạy xong tới chỗ chóp tắt rồi cứ chóp tắt hoài không lặp lại được như mong muốn.
file hardware mô phỏng kèm theo bằng proteus(7.5 sp3)
ORG 0H
SOLAN EQU 0x0
WA1 EQU 0x1
WA2 EQU 0x2
SOLANST EQU 0x3
SOLAN1 EQU 0x4
;-------------------------------------------------

;CAU HINH PORTB
BANKSEL ANSEL
CLRF ANSEL
BANKSEL ANSELH
CLRF ANSELH
BANKSEL OPTION_REG
CLRF OPTION_REG
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
;-------------------------------------------------

BEGIN:

CALL SANGTAT
CALL SANGXENKE
CALL TATHETVASANGHET


GOTO BEGIN

;--------------------------------------------------
;CHE DO SANG VA TAT DAN
SANGTAT:
BSF PORTB,0
CALL SANGTATDAN

BCF PORTB,0
CALL SANGTATDAN

RETURN

SANGTATDAN:

MOVLW D'40'
MOVWF SOLAN
LAP:
BSF PORTB,1
NOP
BCF PORTB,1

BSF PORTB,2
NOP
BCF PORTB,2
CALL DELAY
DECFSZ SOLAN,1
GOTO LAP

RETURN
;-------------------------------------------------

;-------------------------------------------------
;SANG XEN KE
SANGXENKE:
MOVLW D'20'
MOVWF SOLAN

SXK:
BSF PORTB,0
CALL TAOXUNG
CALL DELAY
CALL DELAY
CALL DELAY

BCF PORTB,0
CALL TAOXUNG
CALL DELAY
CALL DELAY
CALL DELAY

DECFSZ SOLAN,1
GOTO SXK

RETURN

TAOXUNG:

BSF PORTB,1
NOP
BCF PORTB,1

BSF PORTB,2
NOP
BCF PORTB,2

RETURN

;--------------------------------------------------

;--------------------------------------------------
;Choptat
TATHETVASANGHET:

MOVLW D'10'
MOVWF SOLANST

BATDAUST:
;SANG

BSF PORTB,0
CALL NAPBIT

;TAT
BCF PORTB,0
CALL NAPBIT

DECFSZ SOLANST,1
GOTO BATDAUST

RETURN

NAPBIT:

MOVLW D'40'
MOVWF SOLAN1

DICHVAOTHANHGHI:

BSF PORTB,1
NOP
BCF PORTB,1

DECFSZ SOLAN1,1
GOTO DICHVAOTHANHGHI

BSF PORTB,2
NOP
BCF PORTB,2

RETURN
;--------------------------------------------------

DELAY:
MOVLW D'255'
MOVWF WA1
L:

LAP1:
MOVLW D'255'
MOVWF WA2
DECFSZ WA2,1
GOTO LAP1

DECFSZ WA1,1
GOTO L

RETURN


END

thundernhut
05-08-2010, 03:47 PM
có 162 mem đã xem mà không ai giúp mình sao ?
có lẽ mình nên dùng vdk khác để làm led chop tắt thôi