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)
-   -   16F877A không chạy ?! (http://www.picvietnam.com/forum/showthread.php?t=3452)

thientaisodo 13-01-2009 09:58 AM

16F877A không chạy ?!
 
1 Attachment(s)
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

Trích:

Nguyên văn bởi thientaisodo (Post 22117)
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.
Code:

#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

Trích:

Nguyên văn bởi thientaisodo (Post 22127)
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ụ:
Code:

#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

Trích:

Nguyên văn bởi thientaisodo (Post 22131)
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

Trích:

Nguyên văn bởi thientaisodo (Post 22154)
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ích:

Nguyên văn bởi thientaisodo (Post 22168)
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

1 Attachment(s)
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

Trích:

Nguyên văn bởi dientudong (Post 22176)
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

Trích:

Nguyên văn bởi dientudong (Post 22187)
ở đâ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?


Múi giờ GMT. Hiện tại là 01:05 AM.

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