|
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 |
26-02-2009, 12:36 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 6
: |
help pic16f877a - pc use ccs & matlab
e vừa mới tập tành tìm hiểu về pic,nên kiến thức còn rất yếu lại thiếu kinh nghiệm,hiện đang gặp vài rắc rối về kết nối pic với pc dùng matlab (dùng chương trình của a NGÔ HẢI BĂC ,test truyền và nhận rất tốt)
http://www.picvietnam.com/forum/showthread.php?t=752 còn đây là đoạn code ccs của pic,dùng để đk led chạy sang trái/phải Code:
#include <16F877A.h> //#include <def_877a.h> #use delay(clock=20000000) #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) int1 tam; char kt='0'; #use fast_io(b) #use fast_io(c) #use fast_io(d) #byte portb = 0x6 #bit b0=portb.0 #bit b1=portb.1 #bit b2=portb.2 #bit b3=portb.3 #bit b4=portb.4 #bit b5=portb.5 #bit b6=portb.6 #bit b7=portb.7 #INT_RDA void receiver(void) { CLEAR_INTERRUPT(INT_RDA); kt=getc(); } void main() { set_tris_b(0); set_tris_c(128); // 10000000 ENABLE_INTERRUPTS(INT_RDA); ENABLE_INTERRUPTS(GLOBAL); b4 = 1; b5 = 0 ; b6 = 0 ; b7 = 0; while(true) { if (kt=='1') //neu pc truyen xuong 1 thi quay phai { tam = b7 ; b7 = b6 ; b6 = b5 ; b5 = b4 ; b4 = tam ; } if (kt=='2') //pc truyen 2 -> quay trai { tam = b4 ; b4 = b5 ; b5 = b6 ; b6 = b7 ; b7 = tam ; } // if (kt=='0') output_bit(pin_b4,b4); output_bit(pin_b5,b5); output_bit(pin_b6,b6); output_bit(pin_b7,b7); delay_ms(250); } } Có 3 trường hợp lỗi : - board ráp sai sót chỗ nào đó (nhưng đã kiểm tra kĩ không thấy sai sót gì) - code nạp pic có vấn đề - chương trình trên matlab không phù hợp hoặc thiếu lệnh gì đó => không truyền xuống đc (e nghĩ chương trinh không vấn đề gì) Các bác cho e ý kiến nha Cảm ơn các bác nhiều |
|
|