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)
-   -   Cần giúp đỡ, PIC không hoạt động ! (http://www.picvietnam.com/forum/showthread.php?t=2271)

anhemFSA 19-04-2008 02:20 PM

Cần giúp đỡ, PIC không hoạt động !
 
Mình đang có bài tập yêu cầu làm trên PIC18F4520. Nhưng do không kiếm được con này nên mình xài tạm con 18F4523 vì trong DataSheet thấy sơ đồ chân và các chức năng cơ bản cũng như tập lệnh giống nhau.
Nhưng mình dùng mạch nạp GTP-USB và Winpic800 V355g để nạp thì không hỗ trợ con này. Mạch nạp Detect ra đây là 18F4520 và nạp cũng như xóa, kiểm tra bình thường.
Mình lắp mạch để TEST con PIC này như sau :

+ Với nguồn vào gần 5V ( nguồn với đất nối tụ 0.1uF ).
+ Nối 2 chân ( 11 và 32 ) với nguồn (5V DC).
+ Nối 2 chân ( 12 và 31 ) với đất.
+ Chân MCLR nối với 1 trở 10K và nối với nguồn.
+ Chân 13, 14 (OSC1/OSC2) nối với thạch anh 12M ( có 2 tụ 15pF )

Đó mình nạp 1 chương trình đơn giản, bật PORTB-0 để làm sáng LED hay set PortB = B'00001111' để sáng 4 led thì được. Tuy nhiên nếu dùng DELAY để làm LED nhấp nháy thì trục trặc, chương trình như sau:

Code:

        PROCESSOR        P18F4520
        INCLUDE        <P18F4520.inc>
;========================================
        ORG        0x0020
COUNT        RES        1

;========================================
        ORG        0x0000
        GOTO        MAIN
MAIN
        CLRF        PORTB
        CLRF        TRISB
        CLRF        LATB
LOOP
        MOVLW        B'01010101'
        MOVWF        PORTB

        CALL        DELAY            ; goi 10 lan ham nay

        MOVLW        B'10101010'
        MOVWF        PORTB

        CALL        DELAY      ; goi 10 lan ham nay

        GOTO        LOOP
;=========================================       
DELAY
        MOVLW        D'255'
        MOVWF        COUNT
DL        DECFSZ        COUNT,1
        GOTO        DL
        RETURN
;=========================================       
        GOTO        $
        END

Tuy nhiên không hiểu sao khi rút nguồn ra thì LED lại nhấp nháy một lúc rồi mới tắt. Vậy có phải khi rút nguồn PIC mới thực sự hoạt động hay trục trặc gì đó? Mình đã thử chỉnh OSC chế độ HS, và lắp mạch RESET ( cho chân MCLR nối với 1 nút rồi nối với đất ) thì ấn Reset PIC vẫn không hoạt động. Vậy mong mọi người có thể xem giùm mình tại sao không? Nguyên nhân là gì ?
- Do lập trình ?
- Do mạch nạp chưa hỗ trợ 18F4523 ( tuy nhiên mình ghi và đọc lại, kiểm tra Okie ).
- Do mạch nguyên lý?
- Hay do phần dao động (Thạch Anh 12MB) có trục trặc ?

Hơn nữa sau nửa ngày loay hoay thì bây giờ PIC vẫn nạp tốt ( đọc , ghi , kiểm tra ) tuy nhiên khi cắm vào mạch thì không hoạt động như ban đầu ( mạch TEST bật tắt 1 LED ) nữa. Mà khi đó một số chân ở cổng B có điện áp chập chờn hoặc rất yếu. Có phải PIC bị hỏng rồi không?
Rất mong các bác giúp đỡ ! Mình chỉ mong lắp cho nó chạy đúng, rồi sau sẽ nghiên cứu lập trình từ từ, mà bước lắp mạch còn mãi chưa xong,bài tập thì sắp phải hoàn thành. Tiện thể các bác cho hỏi ở HN có chỗ nào bán con PIC18F4520 không? Mình tìm mãi không có.

namqn 19-04-2008 05:54 PM

Trong chương trình chính bạn gọi DELAY2, phía dưới bạn chỉ định nghĩa chương trình con DELAY! Liệu chương trình có biên dịch được không?

Bạn không hề khai báo từ cấu hình nào trong code, bạn có đảm bảo đã thiết lập đúng mọi từ cấu hình trong lệnh menu Configure>Configuration Bits của MPLAB IDE hay không?

Thân,

anhemFSA 19-04-2008 08:26 PM

Cảm ơn bác đã quan tâm giúp đỡ. Mình làm cho nó chạy được rồi. Hóa ra là vì mình cấp nguồn chưa đủ 5V. Mình lấy cái sạc điện thoại 5,3V cấp và nó đã chạy được. Mình đã DELAY được nhưng có 1 vấn đề này mong các bác giúp.
Đó là không hiểu sao mình làm cho nó nháy đúng 4 lần rồi mình GOTO $, tuy nhiên nó vẫn nhấp nháy liên tục.
Mình đã thử
LOOP
NOP
GOTO LOOP
Nhưng nó vẫn nhấp nháy liên tục, mà đáng lẽ ra là không làm gì cả?


Múi giờ GMT. Hiện tại là 02:19 PM.

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