|
Tài trợ cho PIC Vietnam |
Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC |
|
Ðiều Chỉnh | Xếp Bài |
26-04-2009, 05:04 PM | #16 |
Trưởng lão PIC bang
|
Tôi đã xem qua sơ đồ mô phỏng của bạn, bạn không cần dùng các cổng NOT U3 và U4. Phần mềm trên PC của bạn dùng COM5, trong khi COMPIM lại được thiết lập COM4.
Bạn chỉ mô phỏng PC <=> RS-232 <=> PIC => LED, không rõ bạn phát biểu "chưa giả lập được cổng COM" là có ý nghĩa gì. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
26-04-2009, 10:27 PM | #17 | |
Đệ tử 2 túi
Tham gia ngày: Aug 2008
Bài gửi: 40
: |
Trước hết, em xin chân thành cám ơn anh Nam đã bớt chút thời gian chỉ giáo!
Vì em mô phỏng bởi Proteus nên em dùng phần mềm "Virtual Serial Port Driver" để nối 2 cổng ảo, một COM5 trên PC và một COM4 trên COMPIM. Có lẽ em phải tiến hành từng phần nhỏ một (trước hết là qua cổng COM) chính vì thế mà em muốn nói là chưa giả lập được cổng COM!!? Trích:
Anh thông cảm, em sẽ học cách cho vào Tag sau. thay đổi nội dung bởi: TANDEM, 27-04-2009 lúc 09:30 AM. |
|
26-04-2009, 10:33 PM | #18 |
Đệ tử 4 túi
Tham gia ngày: Apr 2006
Bài gửi: 71
: |
Mình có một ý nhỏ: bạn đã làm được với 8051 vậy bạn đã làm trên mạch thật chưa? Nếu rồi thì bạn thiết kế giao diện trên VB cho chạy được với 8051 đi (cho chắc phần VB là OK_bạn thiết lập trên VB là COM5 thì trên phần mềm chuyển đổi cũng là COM5).
Sau đó bạn viết code cho PIC (cho 8051 nhận bao nhiêu byte thì cho PIC nhận bấy nhiêu byte). |
26-04-2009, 11:00 PM | #19 |
Đệ tử 2 túi
Tham gia ngày: Aug 2008
Bài gửi: 40
: |
Mình đã làm với PIC và tất cả đã chạy nghĩa là "PC và PIC đã bắt tay với nhau", tuy nhiên như mình nói là khi chương trình chạy thì nó không theo ý đồ của mình?
|
27-04-2009, 12:47 AM | #20 | |
Trưởng lão PIC bang
|
Trích:
Về phần thao tác trực tiếp trên thanh ghi PORTD, cụ thể hơn một chút nữa là như sau: - Bạn khai báo thêm biến PORTD_img, và sửa chương trình xử lý ngắt như dưới đây: Code:
char ch, PORTD_img; #INT_RDA Receive_isr() { if (kbhit()) { ch = getc(); if (ch=='a') PORTD_img |= 0x01; //Bat bit RD0 if (ch=='b') PORTD_img |= 0x02; //Bat bit RD1 if (ch=='c') PORTD_img |= 0x04; //Bat bit RD2 if (ch=='d') PORTD_img |= 0x08; //Bat bit RD3 if (ch=='e') PORTD_img |= 0x10; //Bat bit RD4 if (ch=='f') PORTD_img &= 0xFE; //Tat bit RD0 if (ch=='g') PORTD_img &= 0xFD; //Tat bit RD1 if (ch=='h') PORTD_img &= 0xFB; //Tat bit RD2 if (ch=='i') PORTD_img &= 0xF7; //Tat bit RD3 if (ch=='j') PORTD_img &= 0xEF; //Tat bit RD4 PORTD = PORTD_img; } } - Bạn không cần dùng mấy dòng #define may1 RD0 ... #define may5 RD4 Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
27-04-2009, 08:57 AM | #21 |
Đệ tử 2 túi
Tham gia ngày: Aug 2008
Bài gửi: 40
: |
Cám ơn anh Nam nhiều lắm! Em sẽ thử lại và báo cáo với anh sau.
|
27-04-2009, 07:55 PM | #22 |
Đệ tử 2 túi
Tham gia ngày: Aug 2008
Bài gửi: 40
: |
Em đã làm theo hướng dẫn của anh (có sửa lại một chút khi set bit ở portD) và sau đó chương trình đã chạy như ý muốn. Có điều các lệnh sau em chưa hiểu:
Code:
PORTD_img |= 0x01; ............... PORTD_img &= 0xFE; ............... PORTD = PORTD_img; |
27-04-2009, 08:20 PM | #23 | ||
Trưởng lão PIC bang
|
Trích:
Trích:
Vào thời điểm này, có lẽ bạn chưa cần tìm hiểu sâu hơn về hoạt động read-modify-write, nhưng nếu bạn dứt khoát phải tìm hiểu, thì vấn đề này đã được tôi và nhiều thành viên khác thảo luận cũng lâu rồi. Bạn hãy dùng công cụ "Tìm kiếm" ở thanh mênu của diễn đàn với từ khóa "read-modify-write" để tìm các bài viết liên quan. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
||
27-04-2009, 11:00 PM | #24 |
Đệ tử 2 túi
Tham gia ngày: Aug 2008
Bài gửi: 40
: |
Em nhờ anh Nam giải thích giúp ký hiệu "|=" và "&=" với ạ!
|
28-04-2009, 12:49 AM | #25 |
Trưởng lão PIC bang
|
x |= y là cách viết tắt của x = x | y.
Tương tự, x &= y là cách viết tắt của x = x & y. | là phép toán OR logic, còn & là phép toán AND logic (trong trường hợp bạn chưa biết). Đề nghị bạn đọc luồng rất ngắn sau: http://www.picvietnam.com/forum/showthread.php?t=3151 Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
26-04-2010, 09:17 AM | #26 |
Nhập môn đệ tử
Tham gia ngày: Apr 2010
Bài gửi: 1
: |
GiÚp em vỚi ĐiỀu khiỂn sÁng tẮt 1led qua cỔng rs232(ĐoẠn cosd nha)
MẤy anh Ơi cho em xin ĐoẠn cosd ĐiỀu khiỂn sÁng tẮt mỘt led vỚi. HiỆn em Đang dÙng con 8951.giao tiẾp mÁy tÍnh qua cỔng rs232.cẢm Ơn mẤy anh nhiỀu nha!
|
02-05-2010, 08:36 PM | #27 |
Nhập môn đệ tử
Tham gia ngày: May 2009
Bài gửi: 7
: |
mấy anh ơi hình như đang lạc đề thì phải!
đây là mục giao tiếp usb nếu làm như vậy thì chúng ta sẽ chẳng có được kinh nghiệm gì về giao tiếp USB cả. |
28-07-2010, 02:33 PM | #28 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Nơi Cư Ngụ: Ho Chi Minh City
Bài gửi: 9
: |
Đoạn chương trình sau (viết bằng VB6) tớ viết để điều khiển 8 chú led đơn, dùng PIC18F4550 giao tiếp với máy tính qua USB (không phải Virtual Com), trong giao diện có kèm schematic, các bạn có thể tham khảo.
thay đổi nội dung bởi: chuotdientu, 28-07-2010 lúc 03:01 PM. |
12-03-2013, 10:46 AM | #29 |
Nhập môn đệ tử
Tham gia ngày: Oct 2011
Bài gửi: 1
: |
sao mình dow về ko có file VB bạn ơi? share cho mình cái code mình tham khảo nhé,mình tính làm trên AVR
|