|
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-05-2008, 08:22 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Sep 2007
Bài gửi: 6
: |
Giao Tiếp Máy Tính Với PIC6F877A
Chào các huynh.Đệ hiện đang làm Đồ án và có phần giao tiếp máy tính,dùng PIC6F877A.Đệ dùng chương trình VB gửi kí tự xuống cho VĐKPIC và cho xuất giá trị nhận được ra portd (portd Đệ nối với các LED đơn).Nhưng Đệ gửi các ký tự chữ xuống thì kết quả xuất như nhau,ký tự số thì kết quả như nhau.
-Khi Đệ gửi các kí hiệu chữ như a,b,m,h.... thì các chân D7(MSB),D6,D5,D4,D3 ở mức cao ,các chân còn lại ở mức thấp và giá trị trả về trên VB là ÿ -Khi Đệ gửi các kí hiệu số 1,2,3,4.... thì chân D7 sáng,các chân còn lại ở mức thấp và giá trị trả về trên VB là þ Như Đệ biết thì VB gửi xuống là gửi mã ASCII.Vậy thì mình gửi các ký tự khác nhau thì kết quả xuất LED phải khác nhau.Nếu Đệ gửi giá trị cần yêu cầu xuống,ví dụ Đệ gửi từ VB xuống giá trị 300 thì làm sao đểPIC cũng nhận được giá trị là 300 vậy các huynh?Đệ thực sự bị vướng ở chỗ này.Đệ up đoạn code chương trình VB và code CCS nhờ các huynh xem giúp và hướng giùm Đệ hướng giải quyết để Đệ có thể hoàn thành Đồ Án thật tốt.Đệ cám ơn các huynh nhiều. Code CCS C: Code:
#include <16F877a.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #use rs232(baud=4800, xmit=PIN_C6, rcv=PIN_C7) #include <def_877a.h> unsigned char data; #INT_RDA void data_receive(void) { delay_us(10); data = getc(); } void main() { set_tris_d(0); ENABLE_INTERRUPTS(GLOBAL); ENABLE_INTERRUPTS(INT_RDA); while(true) { portd=data; putc(data); } } thay đổi nội dung bởi: namqn, 26-05-2008 lúc 10:25 PM. |
|
|