![]() |
|
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 |
|
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Jun 2012
Bài gửi: 16
: |
Giúp đỡ newbie về led blinking trên Pic 18f8520
Xin chào các anh chị, em cũng đã đọc các bài tutorial của các anh chị trên picvietnam cũng như ở những nguồn khác, tất cả những gì em đã làm để không phải đăng một topic em cũng đã làm như đọc datasheet của Pic 18f8520, đọc lý thuyết về vi điều khiển, xem project mẫu,...blah blah blah.
Em là sinh viên ko phải chuyên ngành kĩ thuật, vì lý do cá nhân nên em có tự học 8051 và h em tiếp tục chuyển qua pic, nói ra không phải em khoe nhưng 8051 em có thể viết đc những chương trình cơ bản như LCD 4 bit, quang báo(bằng ngôn ngữ C thôi), và hiểu sơ lược về cách sử dụng vi điều khiển. Cũng lại một lần nữa vì lý do cá nhân nên em phải chuyển qua học PIC, em có trong tay bộ kit BigPic4 của Mikroelektronika với con pic18f8520, nạp chương trình bằng usb, em có chương trình nạp đi theo kit luôn, vấn đề là em có tham khảo code mẫu của project đơn giản nhất là led blinking của các nguồn và em code vào và build ra file hex nạp vào thì không chạy code của em đây ah, có gì sai sót mong các anh chị chỉ em, hoặc là chỉ em một hướng đi rõ ràng trong việc học cái gì ở con pic em có, tại vì em chỉ có cái kit và con pic đó thôi. Code của em đây, thực sự em cũng mò mò chứ chưa hiểu hết //Project Ledblinking em viết trong CCS #include <18F8520.H> //con pic em đang dùng #ifdef __pch__ //em nghe nói cái này là dành cho dòng pic 18 chứ em cũng không hiểu #endif #use delay (clock=10000000) //cái này để sử dụng hàm delay void main() { set_tris_b(0x00); //thiết lập port xuất là b while(1) //lặp vô hạn { output_b(0x0f); //cho port b =0x0f Delay_ms(1000);//delay 1s output_b(0xf0); //port b=0xf0 Delay_ms(1000); }// cuối cùng là code này em build ra và nạp thì không chạy, ccs báo là rom ram 0% |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
#include <18f8520.h> # fuses NOWDT, Hs, NOPROTECT, NOLVP, PUT//cấu hình cho pic thì mới chạy được #use delay (clock=10000000) //cái này để sử dụng hàm delay void main() { set_tris_b(0x00); //thiết lập port xuất là b while(1) //lặp vô hạn { output_b(0x0f); //cho port b =0x0f Delay_ms(1000);//delay 1s output_b(0xf0); //port b=0xf0 Delay_ms(1000); } }
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 1 túi
Tham gia ngày: Jun 2012
Bài gửi: 16
: |
Cảm ơn bạn tdm nhiều lắm, code bạn sửa cho mình thì chạy rồi, nhưng mình có thêm một thắc mắc là trong một tài liệu hướng dẫn dùng ccs c tiếng việt có hướng dẫn là dùng
#use fast_io(port) để thiết lập cổng vào ra, nhưng bạn sửa cho mình thì không đả động đến, vậy fast_io(port) để làm gì Thứ 2 là mình muốn viết hàm lcddata, sử dụng lệnh output_, vậy mình sẽ phải set_tris trước hàm lcddata, nhưng khi mình để set_tris ngoài hàm main thì build không được, vậy mình phải làm sao để có thể viết hàm? |
![]() |
![]() |
![]() |
#4 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. thay đổi nội dung bởi: tdm, 29-06-2012 lúc 10:29 PM. |
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 1 túi
Tham gia ngày: Jun 2012
Bài gửi: 16
: |
/*ý của mình hỏi chỉ là làm sao để viết function mà dùng được các hàm xuất nhập port thôi bạn ah*/
#include <18f8520.h> # fuses NOWDT, Hs, NOPROTECT, NOLVP, PUT/?u+o+.c #use delay (clock=10000000) #use fast_io(C) #use fast_io(D) set_tris_c(0x00); set_tris_d(0x00); void ledblinking() { output_c(0x00); output_d(0xff); delay_ms(1000); output_c(0xff); output_d(0x00); delay_ms(1000); } void main() { while(1) //la(.p vô ha.n { ledblinking; } } |
![]() |
![]() |
![]() |
#6 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
Code:
#include <18f8520.h> # fuses NOWDT, Hs, NOPROTECT, NOLVP, PUT//?u+o+.c #use delay (clock=10000000) #use fast_io(C) #use fast_io(D) void ledblinking() { output_c(0x00); output_d(0xff); delay_ms(1000); output_c(0xff); output_d(0x00); delay_ms(1000); } void main() { set_tris_c(0x00); set_tris_d(0x00); while(1) //la(.p vô ha.n { ledblinking(); } }
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
![]() |
![]() |
![]() |
|
|