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)
-   -   Nạp cho 16f877a bằng GTP-USP, chạy không đúng như lập trình (http://www.picvietnam.com/forum/showthread.php?t=2301)

now_nev 24-04-2008 11:12 PM

Nạp cho 16f877a bằng GTP-USP, chạy không đúng như lập trình
 
Em mới học pic nên chưa có nh kinh nghiệm, mong các anh giúp em.
Em viết chương trình xuất led đơn giản như thế này
Code:

          processor 16f877a
        include <p16f877a.inc>
        __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
                org 00h
                goto main
main
count1 equ  20h
count2 equ  21h
count3 equ  22h
        bsf STATUS, RP0
        bcf STATUS, RP1
        clrf TRISB
        bcf STATUS, RP0
        clrf PORTB
        bsf PORTB, 7
        call delay
loop
        rrf PORTB, 1
        call delay
        goto loop
delay
        movlw 0
        movwf count1
        movwf count2
        movlw 5
        movwf count3
loop_count1
        decfsz count1, 1
        goto loop_count1
loop_count2
        decfsz count2, 1
        goto loop_count1
loop_count3
        decfsz count3, 1
        goto loop_count1
        Return
                END

em đã thử chạy bằng MPLAB thì thấy chạy đúng, nhg khi nạp vô Pic thì nó chạy tùm lum hết. Hiện tượng là: khi đag sáng led 7, qua led 6 thì jống như là nó reset bắt đầu lại từ cái dòng " bsf PORTB, 7" vậy. Em MCLR thì lâu lâu hên hên nó qua đc led 5 :( rồi lại trở lại led 7
Cái này là tại con pic hay tại chương trình nạp vậy? Em đã verify sau khi nạp rồi, ok. Còn mạch thì đơn giản, nên chắc là sẽ không phải tại mạch rồi (em không dùng mạch in mà dùng breadboard)
Mong các anh giúp em.

namqn 24-04-2008 11:36 PM

Cái điều bạn khẳng định chắc chắn có khi lại không chắc chắn đó ("Còn mạch thì đơn giản, nên chắc là sẽ không phải tại mạch rồi"). Bạn dùng thạch anh ngoài tần số bao nhiêu (vì bạn cấu hình dùng XT, nên tôi cho là bạn dùng thạch anh ngoài)?

Breadboard (đặc biệt là breadboard ở VN) được biết là dễ gây rắc rối cho các mạch dao động thạch anh ở dải tần số MHz. Dù mạch thử nghiệm có đơn giản đến đâu thì bạn cũng nên cho biết là bạn đã nối nó như thế nào. Người mới học thường mắc những lỗi cơ bản, mặc dù cái mạch nó chẳng có gì để mắc lỗi.

Bạn đã mô phỏng code thành công, cho thấy chương trình ít nhất phải chạy như thiết kế. Bạn đã chạy thử được một phần chương trình, cho thấy chương trình đã được nạp vào chip thành công. Như vậy, vấn đề còn lại là phần cứng thử nghiệm của bạn thôi.

Thân,

now_nev 24-04-2008 11:58 PM

Em dùng thạch anh 4mhz, 2 tụ 33pf, nối như trong tài liệu của anh Nam đã hd. Cái breadboard nối với các led thì em đã làm từ trc để học mấy cái ic cơ bản. Chân MCRL thì em nối cũng như anh hướng dẫn nhưg em dùng 2 cái điện trở 1k (vì em chỉ có sẵn loại 1k thôi :D). Ah em có viết 1 chương trình khác đơn jản hơn là:
Code:

main
count1 equ  20h
count2 equ  21h
count3 equ  22h
        bsf STATUS, RP0
        bcf STATUS, RP1
        clrf TRISB
        bcf STATUS, RP0
        clrf PORTB
        bsf PORTB, 7
        call delay
        bsf PORTB, 6
        call delay
        bsf PORTB, 5
        call delay
        bsf PORTB, 4
        call delay
        bsf PORTB, 3
        call delay
        bsf PORTB, 2
        call delay
        bsf PORTB, 1
        call delay
        bsf PORTB, 0
            call delay

thì nó chạy đúng. Nhưg cũng có lúc nó chạy sai, seset lại từ đầu khi chưa sáng hết các đèn. Em reset chip 10 lần thì khoảng 3 lần nó chạy sai như vậy, bó tay lun

now_nev 25-04-2008 08:08 PM

sao ko ai trả lời giúp em hết vậy?

namqn 25-04-2008 08:14 PM

Trích:

Nguyên văn bởi now_nev (Post 15790)
sao ko ai trả lời giúp em hết vậy?

Mỗi người đều có công việc của mình mà bạn, có phải ai cũng rảnh rỗi suốt ngày ngồi chờ người khác hỏi để trả lời đâu.

Thạch anh có nhiều loại, không phải thạch anh 4 MHz nào cũng giống nhau. Giá trị tụ 33 pF là giá trị khuyến cáo để thử nghiệm, bạn có thể phải tăng hay giảm nó đôi chút. Bạn cũng có thể thử cấu hình HS thay vì XT, vì có một số thạch anh có mức công suất lái cao hơn số khác.

Thân,

now_nev 25-04-2008 08:37 PM

cám ơn anh, em sẽ thử


Múi giờ GMT. Hiện tại là 05:49 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