PDA

View Full Version : 16F877A không chạy ?!


thientaisodo
13-01-2009, 09:58 AM
Chào các bạn, mình mới bắt đầu nghiên cứu Pic và mình chọn F877A để thử.
Sau khi code, dịch và nạp OK, chỉ đến phần chạy thử led(chỉ led nháy thôi) mà nó không chạy

thientaisodo
13-01-2009, 10:01 AM
Mong các bạn có kinh nghiệm giúp mình với.Cảm ơn nhiều!

longtu
13-01-2009, 01:02 PM
Mong các bạn có kinh nghiệm giúp mình với.Cảm ơn nhiều!

Bạn chưa khai báo thạch anh su dụng bạn ơi:
#fuses NOWDT,XT,PUT,NOPROTECT //XT: Crystal osc <= 4mhz for PCM/PCH

Thân

dvkkt
13-01-2009, 01:10 PM
Dòng fuses chưa khai báo cho bộ dao động trong chip (XT, HS, LP, RC), bạn dùng thạch anh 4MHz thì thêm vào dòng fuses chữ XT.

#fuses XT, NOWDT,PUT,NOPROTEC.


Mấy dòng khai báo fast_io rùi, kô cần phải set tris làm gì.

thientaisodo
13-01-2009, 04:02 PM
Cảm ơn các bạn, mình đã thử hết các trường hợp mà nó vẫn không chạy bạn ạ.Kể cả thay con Pic mới luôn??

longtu
13-01-2009, 04:34 PM
Cảm ơn các bạn, mình đã thử hết các trường hợp mà nó vẫn không chạy bạn ạ.Kể cả thay con Pic mới luôn??

Mình đã chạy biên dịch và cho chạy thử(sau khi thêm XT), chuong trình chạy đó bạn a. Mình không sửa gì khác ngoài thêm XT đâu bạn.

Thân,

longtu
13-01-2009, 04:37 PM
Bạn kiểm tra lai các chân thạch anh trên phẩn cứng của bạn nhé, hoặc là thay thạch anh đi???

thientaisodo
13-01-2009, 05:33 PM
Hu hu,để mai mình thử thay mấy con tụ 33pF xem sao chứ thay hết rồi mà nó hok chạy bạn ah.

dvkkt
13-01-2009, 05:52 PM
Thạch anh trên file mô phỏng, bạn cần sửa lại là 4MHz.

lequocbao
13-01-2009, 05:52 PM
Sao bạn không viết thử đoạn code đơn giản hơn một chút rồi test lại thử coi:
ví dụ:
#include <16F877A.h>
#include <def_877a.h>
#fuses XT,NOWDT,NOPUT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)

void main()
{ set_tris_b(0);
trisc=0;
trisd=0;
while(1)
{

OUTPUT_b(0x00);
OUTPUT_c(0x00);
OUTPUT_d(0x00);
Delay_ms(250);
OUTPUT_b(0xff);
OUTPUT_c(0xff);
OUTPUT_d(0xff);
Delay_ms(250);
}
}

nhớ gắn led hiển thị ở các port b,c,d để quan sát nha bạn!à mà bạn nói không chạy là không chạy như thế nào?mở nguồn -> mạch im lìm hả bạn?(không phiền thì bạn post cái sơ đồ mạch lên cho bà con coi thử coi , chứ có đôi khi hì hì ...)

longtu
14-01-2009, 09:28 AM
Hu hu,để mai mình thử thay mấy con tụ 33pF xem sao chứ thay hết rồi mà nó hok chạy bạn ah.

Bạn đọc bài viết này nhé:
http://www.picvietnam.com/forum/showthread.php?t=3451

thientaisodo
14-01-2009, 04:48 PM
Mình hàn mạch y như trong hướng dẫn mà nó cho ra các port là mức thấp luôn.Mình đã thử tất cả các chuơng trình kể cả đơn giản hay phức tạp và như các bạn gợi ý mà nó không chạy bạn ah

namqn
14-01-2009, 05:23 PM
Mình hàn mạch y như trong hướng dẫn mà nó cho ra các port là mức thấp luôn.Mình đã thử tất cả các chuơng trình kể cả đơn giản hay phức tạp và như các bạn gợi ý mà nó không chạy bạn ah
Trước tiên, bạn đọc luồng sau (đặc biệt chú ý mục 17):
http://www.picvietnam.com/forum/showthread.php?t=3451

Nếu có thể, bạn chụp hình mạch thử nghiệm và post lên đây. Trong trường hợp xấu nhất, bạn nên mua một mạch phát triển đơn giản để làm quen với PIC, khi nào bạn có kinh nghiệm hơn với các mạch phần cứng thì có thể tự làm mạch phát triển nhiều tính năng hơn.

Thân,

thientaisodo
15-01-2009, 08:38 AM
Trước đây mình đã có kinh nghiệm làm việc với 8051 và AVR rồi, nay yêu cầu công việc nên mình chuyển sang học PIC, nhưng mà vẫn gặp rắc rối bạn ạ, mình đã đưa mạch cho một vài người có kinh nghiệm về PIC xem và họ nói về phần cứng là ok, kể cả phần mềm cũng không có gì sai sót, chỉ nghi vấn PIC bị chết (trường hợp này rất ít vì mình có một con PIC cũ và một con mới toanh luôn) HIC HIC.

longtu
15-01-2009, 11:57 AM
Trước đây mình đã có kinh nghiệm làm việc với 8051 và AVR rồi, nay yêu cầu công việc nên mình chuyển sang học PIC, nhưng mà vẫn gặp rắc rối bạn ạ, mình đã đưa mạch cho một vài người có kinh nghiệm về PIC xem và họ nói về phần cứng là ok, kể cả phần mềm cũng không có gì sai sót, chỉ nghi vấn PIC bị chết (trường hợp này rất ít vì mình có một con PIC cũ và một con mới toanh luôn) HIC HIC.

Cho mọi người xem sơ đồ phần cứng của bạn đi (chuyển từ "Cho moi nguoi xem so do phan cung cua ban di.").

Thân,

dientudong
15-01-2009, 01:16 PM
Thật ra không cần mấy cái khai báo gì phức tạp như vậy đâu, bạn tham khảo file mình post ở đây, 8 led chạy tuần tự. ( chuyển từ "That ra khong can may cai khai bao gi phuc tap nhu vay dau , ban tham khao file minh pót o day , 8 led chay tuan tu.")

longtu
15-01-2009, 03:38 PM
That ra khong can may cai khai bao gi phuc tap nhu vay dau , ban tham khao file minh pót o day , 8 led chay tuan tu.

Bạn nói "Khai báo gì phức tạp", mình không hiểu câu này của bạn. Bạn có xem file leda.h của bạn chua? Có phải trong nó cũng đã khái báo? Và theo bạn như vậy là đơn giãn hơn à?

Thân,

thientaisodo
15-01-2009, 04:46 PM
Hình như mình thiếu sót ở chỗ LPV của trình winpic thì phải? Tại nó ẩn đi nên mình cứ mặc định là chọn LPV và mình cũng không kéo một điện trở 4k7 xuống Vss ở chân RB3 thì phải?
Bây giờ mình đã phát hiện ra và bỏ LVP đi rồi thì chip lại hỏng không nạp được, PIC hay hỏng vậy ư? lần trước một con cũ bị hỏng sau vài lần nạp, giờ lại con PIC mới cũng chỉ đựoc mấy lần là nó báo Verify ... Nếu bạn có kinh nghiệm về các tùy chọn config và fuses thì nói rõ cho mình biết nha. Thank

dientudong
15-01-2009, 05:57 PM
ở đây mình sử dung CCS 4.068 nên khi viết chương trình chủ yếu là trong file.c , còn file.h thì nó tự tạo ra .Mình đã thử nhiều lần và thấy không cần quan tâm gì đến file.h tạo ra

longtu
15-01-2009, 09:59 PM
ở đây mình sử dung CCS 4.068 nên khi viết chương trình chủ yếu là trong file.c , còn file.h thì nó tự tạo ra .Mình đã thử nhiều lần và thấy không cần quan tâm gì đến file.h tạo ra

Cho mình hỏi,bạn có biết ý nghỉa của dòng lệnh này của bạn không?
#include "C:\Program Files\PICC\Examples\leda.h"
Minh hỏi file leda.h bạn lấy ở đâu ra vậy?

Thân,

dientudong
16-01-2009, 12:26 AM
file leda.h có được là khi Mình thực hiện :" Projiect , PIC wizard, rồi đặt tên file,chọn PIC 16F877A " sẽ có màn hình soạn thảo file.c_ trong đó có sẵn dòng lệnh #include "C:\Program Files\PICC\Examples\leda.h">Thật ra thì chương trình sẽ tự tạo cho mình file leda.h_ nên mình cũng chẳng cần phải khai báo rườm rà như mấy file mà mình đã từng thấy trên các tài liệu .Đương nhiên là trong file leda.h sẽ chứa các khai báo .

thientaisodo
19-01-2009, 04:57 PM
Cảm ơn các bạn nhiều, mình đã làm cho mạch thử chạy được rồi, lý do đơn giản là do khai báo LVP mà thôi. Hu hu. Mình đã bắt đầu làm thử những mạch phức tạp để xem PIC thế nào?
Nhưng hình như tuổi thọ của PIC không được cao thì phải?