PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 20-04-2009, 11:45 AM   #1
thientaisodo
Đệ tử 4 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Tĩnh - Hà Nội
Bài gửi: 61
:
Send a message via Yahoo to thientaisodo
Nhiều RS232 trên một PIC

Mình đang gặp khó khăn trong việc thiết lập nhiều (khoảng 2 hay 3 gì đó) cổng RS232 trên một con PIC877A. Google mãi ko ra.
Ai có code mẫu hay có kinh nghiệm mong chỉ giúp, xin cảm ơn nhiều
thientaisodo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 12:19 PM   #2
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
Bạn dùng nhiều RS232 để làm gi? Với Pic16 thì chỉ hỗ trợ một cổng RS232. Nếu bạn muốn giao tiếp với nhiều thiết bị bằng một cổng RS thì có thể sử dụng một số IC chuyển nó qua chuẩn RS485 rồi nối lại thành dạng bus thôi
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 12:43 PM   #3
thientaisodo
Đệ tử 4 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Tĩnh - Hà Nội
Bài gửi: 61
:
Send a message via Yahoo to thientaisodo
Hiện tại mình đang cần dùng vừa chụp ảnh với camera C328, vừa truyền về máy tính (bắt buộc phải vậy !). Theo mình biết thì 16F877 sử dụng CCS có thể UART-software đến tận 4 cổng RS232? Nếu bạn biết code mẫu có thể chỉ giúp mình, mình tìm mãi chả thấy đâu cả, chỉ còn ngồi khóc thôi (
thientaisodo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 12:58 PM   #4
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
Nếu bạn muốn dùng tạo rs232 bằng phần mềm mình nghĩ không quá khó ví dụ như mình có ý tưởng thế này: bạn đưa chân RX vào một chân ngắt ngoài của pic rồi khi có ngắt thì set một timer để tạo BR. Trong hàm ngắt timer thì thực hiện việc đọc dữ liệu.
Tuy nhiên theo mình thì không nên làm theo cách này mà nên tìm một con vdk hỗ trợ nhiều cổng RS, với pic thì mình không rõ nhưng với con atmega128 thì mình nhớ là nó hỗ trợ 2 cổng RS riêng biệt
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 01:04 PM   #5
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
ví dụ con pic này có 2 RS:PIC24FJ16GA002
http://www.microchip.com/wwwproducts...cName=en520629
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 02:14 PM   #6
thientaisodo
Đệ tử 4 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Tĩnh - Hà Nội
Bài gửi: 61
:
Send a message via Yahoo to thientaisodo
Cơ bản con PIC đó là 16 bit,mình ko cần dùng tới. Nếu như mình nhớ ko nhầm thì anh Linh có nói CCS có hỗ trợ việc tạo ra nhiều cổng RS232 bằng phần mềm trên con 16F877A. Để mình search kĩ xem. Có ai biết có thể nói cho mình đc ko?
thientaisodo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 02:44 PM   #7
huyplc1
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 3
:
cho hỏi tạo luồn mới ở trang này kiểu gì thế. Mãi mà không tìm thấy ở đâu. web sao mà khó dùng thế
huyplc1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 02:57 PM   #8
cskiller
Đệ tử 4 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 89
:
Trong CCS C dùng nhiều software RS232
Code:
#use rs232(FORCE_SW, baud=9600, xmit=PIN_D0,rcv=PIN_D1, STREAM=ID1)
#use rs232(FORCE_SW, baud=9600, xmit=PIN_D2,rcv=PIN_D3, STREAM=ID2)
#use rs232(FORCE_SW, baud=9600, xmit=PIN_D4,rcv=PIN_D5, STREAM=ID3)
#use rs232(FORCE_SW, baud=9600, xmit=PIN_D6,rcv=PIN_D7, STREAM=ID4)
...
putc("C",ID1);
...
puts("Put data to software RS232 stream id 1",ID1);
...
getc(ID1); //Get data from software RS232 stream id 1
...
gets(buff,ID1); //Get data from software RS232 stream id 1
...
fprintf(ID1,"String formated to software RS232 stream id 1");
__________________
Quang báo RG/RGB 6/8/12/16 bits màu
Phone No: 0905.034.086
Email: lmquyen@gmail.com
cskiller vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 03:51 PM   #9
thientaisodo
Đệ tử 4 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Tĩnh - Hà Nội
Bài gửi: 61
:
Send a message via Yahoo to thientaisodo
Trích:
Nguyên văn bởi cskiller View Post
Trong CCS C dùng nhiều software RS232
Code:
#use rs232(FORCE_SW, baud=9600, xmit=PIN_D0,rcv=PIN_D1, STREAM=ID1)
#use rs232(FORCE_SW, baud=9600, xmit=PIN_D2,rcv=PIN_D3, STREAM=ID2)
#use rs232(FORCE_SW, baud=9600, xmit=PIN_D4,rcv=PIN_D5, STREAM=ID3)
#use rs232(FORCE_SW, baud=9600, xmit=PIN_D6,rcv=PIN_D7, STREAM=ID4)
...
putc("C",ID1);
...
puts("Put data to software RS232 stream id 1",ID1);
...
getc(ID1); //Get data from software RS232 stream id 1
...
gets(buff,ID1); //Get data from software RS232 stream id 1
...
fprintf(ID1,"String formated to software RS232 stream id 1");
Cảm ơn bạn, mình đã hiểu rồi, nhưng mà nếu mình dùng một rs232 sẵn có của phần cứng và một rs232 bằng phần mềm có đc ko bạn?
thientaisodo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 04:07 PM   #10
cskiller
Đệ tử 4 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 89
:
Khai báo hardware UART
Code:
#use rs232( baud=9600, STREAM=ID1) //UART1,xmit=PIN_C6,rcv=PIN_C7,
Hoặc nếu PIC có 2 hardware UART(như 18F8722)
Code:
#use rs232(UART1 , baud=9600, STREAM=ID1) //xmit=PIN_C6,rcv=PIN_C7, 
#use rs232(UART2 , baud=9600, STREAM=ID2) //, xmit=PIN_G1,rcv=PIN_G2
kết hợp 1 hardware và 1 software
Code:
#use rs232(UART1 , baud=9600, STREAM=ID1) //xmit=PIN_C6,rcv=PIN_C7, 
#use rs232(FORCE_SW, baud=9600, xmit=PIN_D0,rcv=PIN_D1, STREAM=ID2)
__________________
Quang báo RG/RGB 6/8/12/16 bits màu
Phone No: 0905.034.086
Email: lmquyen@gmail.com
cskiller vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 04:12 PM   #11
thientaisodo
Đệ tử 4 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Tĩnh - Hà Nội
Bài gửi: 61
:
Send a message via Yahoo to thientaisodo
Cảm ơn bạn nha, mình test thử xem thế nào
thientaisodo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 04:30 PM   #12
truongqt
Đệ tử 2 túi
 
truongqt's Avatar
 
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
:
Rs232

Trích:
Nguyên văn bởi thientaisodo View Post
Cảm ơn bạn nha, mình test thử xem thế nào
Test xong chưa vậy bạn. Mình muốn xem kết quả. Bạn có thể gửi cho mình cái bạn đang làm ko vậy. Chắc là được hì. Hi, cảm ơn bạn trước nhé. mail: nguyenvantruongqt@yahoo.com
truongqt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 04:43 PM   #13
thientaisodo
Đệ tử 4 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Tĩnh - Hà Nội
Bài gửi: 61
:
Send a message via Yahoo to thientaisodo
Mình đang code một cái mạch có lẽ là hơi khủng,26 sensor cả từ trường cả nhiệt độ cả điện áp và cả dòng điện. Rồi đọc các bit ảnh từ camera để biến thành tần số theo qui đinh, giao tiếp DS1307, 24C64, điều khiển rơle và 2 con pic phải xem con nào sống để thay nhau hoạt động, còn phải dám sát một cái máy tính nữa xem nó bị treo hay ko ...
Trong một vài bài mình đã post một số mạch cũng như code mình test bằng mạch thật và đã chạy tốt, bạn có thể tìm ở đó. Như led matrix hay các mạch cơ bản khác rồi đó bạn
thientaisodo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 04:56 PM   #14
truongqt
Đệ tử 2 túi
 
truongqt's Avatar
 
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
:
rs232

Trích:
Nguyên văn bởi thientaisodo View Post
Mình đang code một cái mạch có lẽ là hơi khủng,26 sensor cả từ trường cả nhiệt độ cả điện áp và cả dòng điện. Rồi đọc các bit ảnh từ camera để biến thành tần số theo qui đinh, giao tiếp DS1307, 24C64, điều khiển rơle và 2 con pic phải xem con nào sống để thay nhau hoạt động, còn phải dám sát một cái máy tính nữa xem nó bị treo hay ko ...
Trong một vài bài mình đã post một số mạch cũng như code mình test bằng mạch thật và đã chạy tốt, bạn có thể tìm ở đó. Như led matrix hay các mạch cơ bản khác rồi đó bạn
Nghe vậy dự án của bạn cũng có qui mô đấy. Chúc bạn làm tốt nha.
truongqt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2009, 05:02 PM   #15
truongqt
Đệ tử 2 túi
 
truongqt's Avatar
 
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
:
rs232

Nhân đây bạn cho mình hỏi cái này: mình đang mô phỏng giao tiếp rs232 18f4331 với PC. Mô phỏng bằng protues thì thấy: để PIC đọc dữ liệu xong mà thoát ra khỏi vòng kiểm tra
if(kbhit()==1) thì phải có 2 lệnh data_rec=getc(); liên tiếp nhau. Không biết là thực tế có như vậy ko?
truongqt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 03:18 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam