Translate this page to:

Translate this page to English English Translate this page to Chinese Chinese
Translate this page to Italian Italian Translate this page to Taiwan Taiwan
Translate this page to France France Translate this page to Deutsch Deutsch
Translate this page to Janpanese Janpanese Back to Vietnamese Vietnamese
Tên thành viên:   Ghi nhớ
Mật khẩu:




Tạo chủ đề mới Gửi bài trả lời
 Chủ đề: Giao tiếp máy tính với 89C51
Tuỳ chọn   Tìm kiếm
Đã gửi: 07 Tháng 11 2009, 23:06

Thành viên mới
Ngoại tuyến
Ngày tham gia: 26-08-2009
Bài viết: 8
Đã gửi: 0 lời cám ơn
Đã nhận: 0 lời cám ơn
Giới tính: Nam
Em có một vấn dề muốn trao đổi với các anh em như sau:
Em muốn truyền một String "Robot dịch chuyển sang trái " qua cổng COM xuông VDK để VDK xử lý và xuất tín hiệu điều khiển Robot dich sang trái...các anh em cho ý kiến xem mình phải lam như thế nào?
hương dẫn giúp mình nhé.
Thank you

  
Đã gửi: 07 Tháng 11 2009, 23:48

Thành viên ưu tú
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 26-08-2008
Bài viết: 780
Đến từ: An Giang
Đã gửi: 145 lời cám ơn
Đã nhận: 244 lời cám ơn
Khoá: 2008
Giới tính: Nam
Ở đây bạn muốn làm gì ? Hỏi cách giao tiếp với VDK qua cổng COM ? Hay hỏi cách điểu khiển Robot dịch chuyển sang trái ?
Vì không biết bạn cần gì nên mình chỉ có thể nói như vầy: Muốn giao tiếp với VDK qua cổng COM thì bạn cần 1 mạch nạp, mà mạch nạp của 89C51 hơi khó làm và tốn kém, bạn có thể tìm thấy mạch nguyên lý trên mạng. Còn để robot dịch chuyển thì bạn lập trình cho VDK điều khiển 2 động cơ trái phải .........
Bạn có thể trình bày vấn đề cụ thể hơn để mọi người dễ dàng giúp đở.

Sửa lần cuối bởi Rack™ vào ngày 07 Tháng 11 2009, 23:48 với 2 lần sửa trong tổng số.


ღ♥ஐ๑°Rack™๑°ஐ♥ღ
---
“Đời người sống chỉ trăm năm, không thể việc gì cũng xuôi chèo mát mái. Không cần hối hận, không cần ngoái lại. Phạm sai lầm một lần không là gì, quan trọng là không phạm lại sai lầm đó. Tiến lên thôi, cuối con đường chắc gì đã là vực sâu hun hút… Phải tin vào mình."

Hình ảnh
Tài khoản Yahoo 
  
Đã gửi: 08 Tháng 11 2009, 16:42

Thành viên quan trọng
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 04-10-2007
Bài viết: 898
Đến từ: Củ Chi
Đã gửi: 53 lời cám ơn
Đã nhận: 80 lời cám ơn
Khoá: 2007
Giới tính: Nam
vấn đề bạn muốn hỏi là truyền 1 chuỗi ký tự định trước ra ngoài VĐK dùng giao tiếp serial port ?
nguyên lý để truyền dữ liệu thì bạn xem trong sách 8051 sẽ hiểu cặn kẻ hơn, mình xin nói sơ về trình tự bạn cần thiết lập như sau:
-khởi tạo cổng nối tiếp gồm các công việc bạn phải làm là : đặt giá trị cho thanh ghi SCON chế độ hoạt động.
-đặt tốc độ baud bằng cách bật hoặt tắt SMOD của thanh ghi PCON, truy xuất giá trị các Timer(tuỳ chế độ).
-kiểm tra các cờ TI và RI (truyền và nhận).
- ghi hoặc đọc dữ liệu từ SBUF.
--> công việc của bạn cần là thiết lập xong, sau đó cứ đưa dữ liệu vào SBUF là xong.để hổ trợ xuất nhập chuổi thuận tiện hơn thì hình như theo mình nhớ là 8051 có cho dùng lệnh putchar và _getkey (xuất và nhận ký tự).
tuỳ vào bạn dùng ngoại vi là gì để chuyển qua mã bit dữ liệu tương ứng với string của bạn. tiện nhất là bạn nên dùng LCD. khi xuất tỉnh đc rồi thì bạn chỉ cần thêm 1 một vòng dịch để cho các cụm bit dữ liệu dịch, vậy là đã xong. ^_^

-- CN 08 Tháng 11, 2009 4:37 pm --

@racker: mạch nạp qua cổng COM chỉ là tận dụng cổng COM để nạp thôi, nó cũng dùng serial port để truyền dữ liệu, tuy nhiên chỉ là 1 phần trong giao tiếp VĐK thôi, không cần lập trình gì hết, còn vấn đề giao tiếp truyền dữ liệu sử dụng serial port là một ứng dụng khá "thú vị" hơi xa hơn cái đó 1 tí ^_^.

-- CN 08 Tháng 11, 2009 4:42 pm --

à...mình đã xem lại câu hỏi, hình như là hơi xa hơn cái mà mình nói 1 tí.... nghĩa là bạn phải có thuật toán để so sánh dữ liệu để nó nhận ra đó là lệnh. mình chỉ giúp đc phần thu dữ liệu thôi, dùng nguyên lý thu dữ liệu từ COM như trên. nếu bạn muốn so sánh không sai lệch, nghĩa là phải nhập y xì chuỗi ký tự đó ko hơn ko kém, thì chỉ việc so sánh với 1 mã mà bạn đặt trước thôi. nếu nó trùng thì thực thi ra động cơ... còn nếu bạn muốn "thông minh" hơn tí, nghĩa là đánh giống giống nó cũng hiểu, thì bạn phải tự tìm hiểu thuật toán cho riêng mình vậy ^_^.
sorry vì spam quá nhiều!

Sửa lần cuối bởi hoanglongroyal vào ngày 08 Tháng 11 2009, 16:42 với 2 lần sửa trong tổng số.


Hieu, Tran Trung
Email: tranhieupaul@gmail.com
  
Đã gửi: 08 Tháng 11 2009, 17:35

Thành viên
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 15-10-2008
Bài viết: 52
Đến từ: An Giang
Đã gửi: 1 lời cám ơn
Đã nhận: 9 lời cám ơn
Khoá: 2008
Giới tính: Nam
cho em hỏi IC AT89C51 điện thế và dòng ngõ ra là khoảng bao nhiêu ?

  
Đã gửi: 08 Tháng 11 2009, 18:32

To be or not to be
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 09-03-2007
Bài viết: 4693
Đến từ: TPHCM
Đã gửi: 195 lời cám ơn
Đã nhận: 303 lời cám ơn
Khoá: 2005
Giới tính: Nam
Các IC số như 8051 đều sử dụng mức 5V, IC tương tự như op amp 741 thì 12V.



No die no gain...
Tài khoản Yahoo Ghé thăm website của người gửi 
  
Đã gửi: 08 Tháng 11 2009, 22:34

Thành viên mới
Ngoại tuyến
Ngày tham gia: 26-08-2009
Bài viết: 8
Đã gửi: 0 lời cám ơn
Đã nhận: 0 lời cám ơn
Giới tính: Nam
ở đây mình đã viết chương trình trên C++2008 và xuất ra tín hiệu là các kí tự và mình muốn truyền các kýtự đó xuống VDK 89c51 và VDK sẽ xử lý và xuất tín hiệu điều khiển Robot..có bạn nào đã làm trên C++2008 chưa ?
cho mình hỏi cách thiết lập cổng COM trên C++2008 để truuyền dữ liệu xuống cổng COM
thank.

  
Đã gửi: 09 Tháng 11 2009, 07:29

Helper Group
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 09-03-2008
Bài viết: 37
Đã gửi: 0 lời cám ơn
Đã nhận: 0 lời cám ơn
Giới tính: Nam
Dùng VB 6.0 cho nó đơn giản. Còn việc đk robot di chuyển trái phải, đi tơi, đi lùi thì cần gì phải gởi nguyên cả một chuỗi kí tư. Bản có thể tự mình lập ra một bảng tra lệnh. Vd:
không làm gì-0
rẽ trái-1.
rẽ phải-2.
đi tới-3.
đi lùi -4.
......
Vậy thì bạn chỉ cần gởi các giá trị 0, 1, 2 ,3, 4.... Đơn giản đến mức dễ hiểu. Còn nếu bạn gởi cả chuỗi "Robot dịch chuyển sang trái " đễ đk sang trái thì rất phức tạp vì phải so sánh chuỗi trong vdk, làm cho code thêm phức tạp (đang nói code cho vdk nha)

Tài khoản Yahoo 
  
Đã gửi: 09 Tháng 11 2009, 09:51

Thành viên quan trọng
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 04-10-2007
Bài viết: 898
Đến từ: Củ Chi
Đã gửi: 53 lời cám ơn
Đã nhận: 80 lời cám ơn
Khoá: 2007
Giới tính: Nam
nhưng quan trọng là bạn đó "muốn" truyền cả chuỗi ý chứ....và theo mình hiểu cái ý bạn ấy đại khái là: có 1 cái bàn phím, khi nhập đúng cái chuồi dài ngoằn đó và enter, thì robo nó tự hiểu rồi rẽ trái.... ko biết hiểu đúng ko ?
vậy nên mới cần đến giao tiếp serial port, chứ ko thì lập trình trường hợp + lấy tín hiệu bit là xong...
mà theo mình nghĩ, đâu có nhất thiết là dùng Visual c++ 2008, ko biết mục đích bạn là dùng C++08 hay là muốn làm VĐK nữa...



Hieu, Tran Trung
Email: tranhieupaul@gmail.com
  
Đã gửi: 09 Tháng 11 2009, 10:11

Thành viên mới
Ngoại tuyến
Ngày tham gia: 26-08-2009
Bài viết: 8
Đã gửi: 0 lời cám ơn
Đã nhận: 0 lời cám ơn
Giới tính: Nam
cảm ơn bạn:
mình dùng C++2008 la vì liên quan đến chương trình xử lý ảnh dùng Open Cv và C++2008 do vậy nhất thiếp phải dùng C++2008.bạn có ý kiến gì thì cùng trao đổi nhé!

  
Đã gửi: 09 Tháng 11 2009, 10:36

Helper Group
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 09-03-2008
Bài viết: 37
Đã gửi: 0 lời cám ơn
Đã nhận: 0 lời cám ơn
Giới tính: Nam
nhưng cũng đâu cần truyền cả chuỗi. Giả xử bạn nhập từ bàn phím lệnh "Robot dịch chuyển sang trái " thì ta sẽ so sánh cái chuỗi này ngay trên máy tính luôn (vì có hàm hỗ trợ so sánh chuỗi mà) và nếu khớp thì chỉ cần gởi 1 byte lệnh xuống là được rồi (như tôi đã nói ở trên). Ko cần gơi cả chuỗi đâu.

Tài khoản Yahoo 
  
Đã gửi: 09 Tháng 11 2009, 10:47

Thành viên danh dự
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 06-10-2007
Bài viết: 681
Đã gửi: 0 lời cám ơn
Đã nhận: 25 lời cám ơn
Giới tính: Nam
có thể lập trình trên VC++, VB bản 6.0,2005,hoặc 2008...., ngoài ra còn có công cụ netbean(trên win hoặc trên linux), code block (trên linux),... trên win các công cụ visual vẫn đc hỗ trợ tốt nhất.
Đúng như bạn ở trên nói ko cần chuyển cả chuổi mà cung chả cần phải nhập chuỗi đó là gì, công cụ visual C++ 2008 cho phép gán các nút thay vì phải đánh "dịch sang trái" thì bạn chỉ cần gán nút sang trái .

sơ đồ mạch bạn xem ở đây:
http://xomdientu.com/linh-kien/linh-kie ... -tiep.html
còn chương trình đc viết trên VC++ bạn tham khảo ở đây:
http://www.ngohaibac.net/huong-dan-lap- ... sual-c-60/
bên diễn đàn đientuvietnam có rất nhiều bài viết nói về cái này có thể tham khảo thêm
http://dientuvietnam.net/forums/forumdisplay.php?f=73


  
Đã gửi: 09 Tháng 11 2009, 10:53

Thành viên quan trọng
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 04-10-2007
Bài viết: 898
Đến từ: Củ Chi
Đã gửi: 53 lời cám ơn
Đã nhận: 80 lời cám ơn
Khoá: 2007
Giới tính: Nam
nếu vậy thì có khác gì điều khiển robot bằng tay đâu mà lị, dùng notepad làm cũng đc, chỉ cần trình dịch ra file hẽ rồi nạp xuống 8051, kết nối 1 cái gamepad, hay đơn giản hơn chỉ cần 1 cái nút be bé xinh xinh- nhấn thì quẹo, ko nhấn thì thôi....tui hiểu cái ý của bạn muốn làm là thử truyền 1 chuỗi như thế thử xem robot bạn làm có hiểu ko, vấn đề nằm ở giao tiếp, chứ ko phải như các bạn trên nói là đặt 1 2 3 4, vậy thì trở thành mã hoá bit rồi...



Hieu, Tran Trung
Email: tranhieupaul@gmail.com
  
Đã gửi: 09 Tháng 11 2009, 11:25

Helper Group
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 09-03-2008
Bài viết: 37
Đã gửi: 0 lời cám ơn
Đã nhận: 0 lời cám ơn
Giới tính: Nam
nói vậy sao được, mục đích là giao tiếp máy tính cơ mà. Nếu như ko sử dụng máy tính, thì làm cách trên thì ok. Nhưng nếu giao tiếp máy tính và đk robot bằng các gởi một lệnh dài ngoằn xuống thì code sẽ rất phức tạp. Giả sử, robot có nhiều chức năng thì chẳng lẽ làm như vậy. code sẽ dài, xử lý sẽ rất chậm và gây lãng phí tài nguyên một cách vô ích. các bạn thử nghĩ nếu gởi nhiều lệnh liên tiêp nhau thì VDk xữ lý kiệp ko?. nên nhớ tốc độ baund của serial port thấp. Trong khi với chúng ta có thể gán mỗi lệnh chỉ có 1 byte thì việc tra bảng lệnh sẽ rất nhanh. Dân điện tử thì phải nghĩ đến cái tối ưu, tại sao lại phải làm cho phức tạp lên vậy????????

Tài khoản Yahoo 
  
Đã gửi: 09 Tháng 11 2009, 21:42

Thành viên quan trọng
Hình đại diện của thành viên
Ngoại tuyến
Ngày tham gia: 04-10-2007
Bài viết: 898
Đến từ: Củ Chi
Đã gửi: 53 lời cám ơn
Đã nhận: 80 lời cám ơn
Khoá: 2007
Giới tính: Nam
khoang nghĩ đến vấn đề "thực tế" đã bạn...mình chỉ nói đến cái "yêu cầu" của người hỏi thôi...ko phải lúc nào người ta hỏi cũng mang tính thực tế, có khi chỉ là để làm cho có kinh nghiệm thôi.bởi vậy nên đánh sát vào câu hỏi hen, người ta hỏi sao thì mình trả lời xong rồi hãy nói thêm về thực tế ^_^.



Hieu, Tran Trung
Email: tranhieupaul@gmail.com
  
Đã gửi: 16 Tháng 10 2010, 10:42

Thành viên mới
Ngoại tuyến
Ngày tham gia: 16-10-2010
Bài viết: 2
Đã gửi: 0 lời cám ơn
Đã nhận: 0 lời cám ơn
Khoá: 2008
Giới tính: Nam
chào mọi người.tobic này rất hay .mình đang làm DA .muốn nhập một tọa độ trên máy và VDK đọc tọa độ rồi điều khiển động cơ bước chuyển động đúng theo tọa độ đó (VD:nhập tọa đọ x=10,y=12 thì động cơ đi chuyển một khoảng z nào đó qui ước) vậy phải lập trình như thế nào.mong mọi người quan tâm.thanks
(VDK 89c51,lập trình bằng VB giao tiếp qua cổng COM)

  
Tạo chủ đề mới Gửi bài trả lời

« Chủ đề trước | Chủ đề kế tiếp »

Ai đang trực tuyến?

Đang xem chuyên mục này: Không có thành viên nào đang trực tuyến1 khách

Bạn không thể tạo chủ đề mới trong chuyên mục này.
Bạn không thể trả lời bài viết trong chuyên mục này.
Bạn không thể sửa những bài viết của mình trong chuyên mục này.
Bạn không thể xoá những bài viết của mình trong chuyên mục này.

Chuyển đến:  

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Copyright © 2007 - 2012 . Electronics Telecommunications Forum - dientuvienthong.net . All rights reserved
Đầu trang