|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
|
03-04-2011, 10:28 AM | #1 |
Đệ tử 1 túi
Tham gia ngày: Nov 2010
Bài gửi: 23
: |
hỏi về lập trình cơ bản cho pic6f877a
các bac ơi! em mới bắt đầu làm quen với dòng pic
em đã đọc tài liệu và bắt tay vào lập trình với nhưng ví dụ cơ bản nhung không hiểu sao code của em vẫn không chạy dc...toàn báo lỗi mặc dù em đã viết theo đúng như trong tài liệu hướng dẫn.mong các bác check code giúp em với ah em lập trình bằng ccs c trong MPLAP code của em là : #include <16f877a.h> //#include <def_877a.h> #device *=16 ADC=8 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) void main() { TRISB = 0x00; PORTB = 0xFF; While(1) { PORTB = 0; delay_ms(250); PORTB = 0xFF; delay_ms(250); } } trình dịch báo lỗi là : Executing: "C:\Program files\Picc\CCSC.exe" +FM "nhay led don gian.c" +DF +LN +T +A +M +Z +Y=9 +EA *** Error 18 "nhay led don gian.c" Line 1(9,20): File can not be opened Not in local "D:\cac ho vi dieu khien\pic\cac vi du thuc hanh\led don\16f877a.h" *** Error 128 "nhay led don gian.c" Line 3(9,19): A #DEVICE required before this line *** "nhay led don gian.c" Line 3: Error #128: A #DEVICE required before this line *** "nhay led don gian.c" Line 4: Error #111: Unknown keyword in #FUSES "NOWRT" *** "nhay led don gian.c" Line 6: Error #128: A #DEVICE required before this line *** "nhay led don gian.c" Line 9: Error #12: Undefined identifier TRISB *** "nhay led don gian.c" Line 10: Error #12: Undefined identifier PORTB *** "nhay led don gian.c" Line 13: Error #12: Undefined identifier PORTB *** "nhay led don gian.c" Line 15: Error #12: Undefined identifier PORTB 9 Errors, 0 Warnings. Halting build on first failure as requested. BUILD FAILED: Sun Apr 03 22:11:13 2011 |
03-04-2011, 10:33 AM | #2 |
Đệ tử 4 túi
|
Theo mình nghĩ với lỗi như vậy thì trình biên dịch của bạn có vấn đề.Còn về cái code mình thấy không có vấn đề gì!Bạn nên thử tải bản CCS khác xem sao
__________________
My blog: http://autumnneverreturn.blogspot.com/ Đối thủ khó chiến thắng nhất là bản thân !!! |
03-04-2011, 10:41 AM | #3 |
Đệ tử 1 túi
Tham gia ngày: Nov 2010
Bài gửi: 23
: |
em lúc đầu cài MPlap sau đó cài C30 và cài thêm PIC C Compiler CCS PCWHD v4.0
như vậy có vấn đề j không anh. |
03-04-2011, 11:01 PM | #4 |
Đệ tử 4 túi
|
Bạn đã set môi trường trong MP LAB chưa?
__________________
My blog: http://autumnneverreturn.blogspot.com/ Đối thủ khó chiến thắng nhất là bản thân !!! |
04-04-2011, 07:45 PM | #5 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 3
: |
Bạn bỏ dấu "//" truớc dòng "//#include <def_877a.h>" này thử xem. Vì trong nó chứa file định nghĩa cho portB mà !
|
06-04-2011, 12:22 AM | #6 |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 2
: |
nếu bạn cho dòng #include <def_877a.h> trong chú thích thì code phải là
#include <16f877a.h> //#include <def_877a.h> #device *=16 ADC=8 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) void main() { set_tris_b(0x00); output_b(0x00); While(1) { output_b(0x00); delay_ms(250); output_b(0xff); delay_ms(250); } } |
06-04-2011, 10:06 AM | #7 |
Nhập môn đệ tử
Tham gia ngày: Jan 2010
Bài gửi: 9
: |
PWM voi pic 16f877a
Cac bac cho em hoi:
Em lap trinh dung chan ccp1 de tao xung PWM nhung khong hieu sao em mo phong va do tin hieu o chan PWM khong thay gi,mong cac bac chi giup.Day la code cua chuong trinh: ///////////////////////////////////// #include <16f877A.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #byte porta=0x05 #use fast_io(a) #use fast_io(c) void main() { set_tris_a(0x00); set_tris_c(0x00); SETUP_CCP1(ccp_pwm); SETUP_TIMER_2(T2_DIV_BY_4,200,1); set_pwm1_duty(100); while(1) { output_high(pin_a0); delay_ms(10); output_low(pin_a0); delay_ms(10); } } Em gui kem ca file mo phong. |
06-04-2011, 10:55 AM | #8 |
Đệ tử 1 túi
Tham gia ngày: Nov 2010
Bài gửi: 23
: |
các bác ơi... theo em biết thì muốn sử dụng 2 thanh ghi port và tris để thiết lập cho một cổng nào đó thì mình phải khai báo hàm #include <def_877a.h> nó chứa file định nghĩa cho cổng.. nhưng khi em khai báo thì trình dịch cứ báo lỗi là "File can not be opened"
các bác có thể giải thích giúp em dc k? ah mà nhân tiện các bác giải thích giúp em nếu mình muốn dùng 2 thanh ghi TRIS PORT thì mình mình phải khai báo ntn ? thank trc các bác nha |
06-04-2011, 09:23 PM | #9 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 2
: |
Trích:
bạn tạo file header (.h) rồi paste vào C1:sau đó trong .c khai báo thêm dòng #include "Đường dẫn tới file header" C2: hoặc copy file đó vào folder Devices trong thư mục cài đặt thì chỉ cần #include <def_877a.h> nếu ko muốn dùng header, chỉ cần đọc file <def_977a.h> rồi thêm đoạn code khai báo như này trong ctrình #byte PORTB =0x06 #byte TRISB =0x86 |
|
07-04-2011, 12:47 AM | #10 |
Đệ tử 1 túi
Tham gia ngày: Nov 2010
Bài gửi: 23
: |
cám on anh ermine !
em da tao ra file def_877a.h va copy vào PICC/Device . Compile lại => chuơng trình chạy OK. mong anh giúp đõ em những câu hỏi về sau.cảm ơn anh thay đổi nội dung bởi: nangvang, 07-04-2011 lúc 02:02 AM. |
|
|