![]() |
|
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ử 4 túi
|
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 |
![]() |
![]() |
![]() |
#2 |
Đệ 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
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 4 túi
|
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
![]() |
![]() |
![]() |
![]() |
#4 |
Đệ 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 |
![]() |
![]() |
![]() |
#5 |
Đệ 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 |
![]() |
![]() |
![]() |
#6 |
Đệ tử 4 túi
|
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?
|
![]() |
![]() |
![]() |
#7 |
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ế
|
![]() |
![]() |
![]() |
#8 |
Đệ 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 |
![]() |
![]() |
![]() |
#9 | |
Đệ tử 4 túi
|
Trích:
|
|
![]() |
![]() |
![]() |
#10 |
Đệ 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, 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 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 |
![]() |
![]() |
![]() |
#11 |
Đệ tử 4 túi
|
Cảm ơn bạn nha, mình test thử xem thế nào
![]() |
![]() |
![]() |
![]() |
#12 |
Đệ tử 2 túi
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
: |
Rs232
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
|
![]() |
![]() |
![]() |
#13 |
Đệ tử 4 túi
|
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 |
![]() |
![]() |
![]() |
#14 | |
Đệ tử 2 túi
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
: |
rs232
Trích:
|
|
![]() |
![]() |
![]() |
#15 |
Đệ tử 2 túi
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? |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|