... long GetCommID(); Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 49/78 Hình 2.70: Thu ctính Type: DropList c a cc ComboBox chung C c bạn sau kiểm tra cc thu ctínhc a cc điều khiển bằng bảng sau: STT Đối tượng Thu ctính Thiết lập 1 MSComm ID IDC_MSCOMM1 2 ComboBox ID Style IDC_COMBO_COMPORT Droplist 3 ... Thêm cc Button Hình 2.47: Thêm Button1 Hình 2.48: Thêm Button2 Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 3/78 Hình 1.3: Chọn Properties c a Communication Port( COM1) Hình 1.4: Chọn thẻ Port Setting để biết tham số Đó chính là lí do tại sao tôi lại chọn cc tham số đưa vào trong cc ComboBox như ở dưới chương trình này. Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 40/78 Hình 2.53: Thu ctínhc a Button2 Hình 2.54: Thu ctínhc a Button3 Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 39/78 Hình 2.51: Chọn Properties Hình 2.52: Thu ctínhc a Button1 Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 9/78 chuyển đổi giữa cc kiểu dữ liệu này cc bạn c thể tham khảo tại thư viện MSDN Microsoft July 2001 bằngc ch Search Key Word: chính là cc từ khoá chỉnh là cc kiểu dữ liệu đó.( như CString,…) class CMSComm : public CWnd { protected: DECLARE_DYNCREATE(CMSComm) public: CLSID const& GetClsid() { static CLSID const clsid = { 0x648a5600, 0x 2c6 e, 0x101b, { 0x82, 0xb6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14 } }; return clsid; ... Điều khiển MSComm trong Visual Basic Tất ccctính chất này bạn c thể tìm tại thư viện MSDN July 2001 theo đường dẫn như sau ở tab contents: MSDN Library ‐ July 2001 / Visual Tools and Languages/ Visual Studio 6.0 Documentation / Visual Basic Documentation / Reference/ Control Reference / ActiveX Control/ MSComm Control C ctính chất c a MSComm đư c sắp xếp theo ch c năng: Thiết lập tham số cho c ng: + CommID: trả lại handles đồng nhất tới thiết bị truyền thông, c kiểu Long. Tính chất này không c l c thiết kế mà chỉ c khi thi hành, thu ctính này là ReadOnly. + CommPort: dạng object.CommPort = value. Value là chỉ số c a c ng Com c giá trị từ 1 ‐> 16 và m c định c giá trị =1. Cc bạn c n phải thiết lập thông số này trư c khi mở c ng. Sẽ c lỗi error 68 (Device unavailable) nếu như không mở đư cc ng này. + InBuferSize: thiết lập ho c trả lại kích thư cc a bộ đệm nhận, tính = byte. M c định là 1024 byte. Cc bạn không đư c nhầm lẫn với đ ctính InBufferCount là số byte đang chờ trong bộ đệm nhận. + InputLen : object.InputLen [ = value ] thiết lập ho c trả lại số byte mỗi lần thu ctính Input đ c trong bộ đệm nhận. M c định giá trị Value=0 t c là thu ctính Input sẽ đ c hết nội dung c a bộ đệm nhận khi thu ctính này đư c gọi. Nếu số kí tự trong bộ đệm nhận không = InputLen thì thu ctính Input sẽ trả lại kí tự rỗng “”. Ví thế bạn c n phải chọn c ch kiểm tra InBufferCount để ch c chắn số kí tự yêu c u đã c đủ trư c khi dùng lệnh .Input. Tính chất này rất là c ích khi đ c dữ liệu một máy mà dữ liệu ra đư c định dạng bằng cc khối c kích thư cc định. + InputMode: object.InputMode [ = value ] . Value = 0 hay = comInputModeText dữ liệu nhận đư c dạng văn bản kiểu kí tự theo chuẩn ANSI. Dữ liệu nhận đư c sẽ là một sâu. Value=1 hay = comInputModeBinary dùng nhận mọi kiểu dữ liệu như kí tự điều khiển nhúng, kí tự NULL,...
... Viết mã cho chương trình 2.3.1. Thêm cc biến, cc hàm thành viên Để viết mã cho chương trình thì cc bạn c n phải thêm cc biến cho cc điều khiển. Từ menu View chọn Class Wizard. Chọn tab MemberVariables. Chọn lớp CRS232TUTDlg Hình 2.71: Chọn MFCClassWizard tab Member Variables, chọn AddVariable ... Điều khiển MSComm trong Visual C+ + Trên đây là cc tham số c a điều khiển MSComm trong VB. Trong Visual C+ + , mỗi một điều khiển đư c định nghĩa trong một lớp riêng. Và MSComm c ng không phải là ngoại lệ. Với cc tham số ở trên cc bạn hoàn toàn c thể áp dụng rất là tốt cho lậptrình với VC++ bởi lẽ cc tham số này bạn c thể lấy giá trị ho c thiết lập tham số cho chúng tương ứng bằngcc hàm thành viên c a lớp như Get_thuộctính ho c Set_thuộctính. Ví dụ, bạn muốn thiết lập dùng c ng COM1 chẳng hạn thì dùng thu ctính CommPort ở trên và chỉ thêm tiền tố Set_ nếu muốn thiết lập và Get_ nếu muốn lấy giá trị này. Sau đây là lớp MSComm là một lớp kế thừa từ lớp c sở CWnd, cc bạn c thể tham khảo. Cc bạn chú ý về cc kiều dữ liệu c a cc tham số và giá trị trả về c a cc hàm. Vi c Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 44/78 Hình 2.61: Tạo cho cc comboBox cc ng chiều rộng Chú ý: Riêng với ComboBox thì cc bạn phải kéo sao cho chiều cao c a điều khiển phải đủ lớn để chứa cc dữ liệu nằm trong nó sau này nếu không thì bạn sẽ chẳng thấy nó hiển thị gì ho c là sẽ thấy c thanh cuộn. Tốt nhất là kéo dài thoải mái đi. Để điều chỉnh chiều cao c a cc ComboBox như sau: Di chuột đến ComboBox để con trỏ chuột nằm trên nút xổ xuống c a điều khiển sau đó kích chuột trái 1 lần. Khi đó bạn sẽ c thể co dãn chiều cao c a ComboBox thoải mái Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 28/78 Hình 2.30: Thiết lập thu ctính cho GroupBox3 Hình 2.31: Thiết lập thu ctính cho GroupBox4 Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 14/78 Để c thể test luôn chương trìnhcc bạn nối tắt chân 2 và chân 3 c a RS232 lại với nhau chính là nối chân RxD và TxD để chúng ta truyền dữ liệu ra RS232 sau đó nhận dữ liệu luôn. Đây là ví dụ test đơn giản không c bắt tay phần c ng. Hình 2.2: Sơ đồ đấu chân c a RS232 2.2. ... Điều khiển MSComm trong Visual C+ + Trên đây là cc tham số c a điều khiển MSComm trong VB. Trong Visual C+ + , mỗi một điều khiển đư c định nghĩa trong một lớp riêng. Và MSComm c ng không phải là ngoại lệ. Với cc tham số ở trên cc bạn hoàn toàn c thể áp dụng rất là tốt cho lậptrình với VC++ bởi lẽ cc tham số này bạn c thể lấy giá trị ho c thiết lập tham số cho chúng tương ứng bằngcc hàm thành viên c a lớp như Get_thuộctính ho c Set_thuộctính. Ví dụ, bạn muốn thiết lập dùng c ng COM1 chẳng hạn thì dùng thu ctính CommPort ở trên và chỉ thêm tiền tố Set_ nếu muốn thiết lập và Get_ nếu muốn lấy giá trị này. Sau đây là lớp MSComm là một lớp kế thừa từ lớp c sở CWnd, cc bạn c thể tham khảo. Cc bạn chú ý về cc kiều dữ liệu c a cc tham số và giá trị trả về c a cc hàm. Vi c Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 44/78 Hình 2.61: Tạo cho cc comboBox cc ng chiều rộng Chú ý: Riêng với ComboBox thì cc bạn phải kéo sao cho chiều cao c a điều khiển phải đủ lớn để chứa cc dữ liệu nằm trong nó sau này nếu không thì bạn sẽ chẳng thấy nó hiển thị gì ho c là sẽ thấy c thanh cuộn. Tốt nhất là kéo dài thoải mái đi. Để điều chỉnh chiều cao c a cc ComboBox như sau: Di chuột đến ComboBox để con trỏ chuột nằm trên nút xổ xuống c a điều khiển sau đó kích chuột trái 1 lần. Khi đó bạn sẽ c thể co dãn chiều cao c a ComboBox thoải mái Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 28/78 Hình 2.30: Thiết lập thu ctính cho GroupBox3 Hình 2.31: Thiết lập thu ctính cho GroupBox4 Người báo c o: Ngô Hải B c Tài liệu: TUT01.03 Ngày: 10/01/06 Trang: 14/78 Để c thể test luôn chương trìnhcc bạn nối tắt chân 2 và chân 3 c a RS232 lại với nhau chính là nối chân RxD và TxD để chúng ta truyền dữ liệu ra RS232 sau đó nhận dữ liệu luôn. Đây là ví dụ test đơn giản không c bắt tay phần c ng. Hình 2.2: Sơ đồ đấu chân c a RS232 2.2....
... C chthiết lập tốiưuchoứngdụngĐểchoứngdụng c thểđ c ngaydữliệukhibắtđầu c trongbộđệmnhậnthì cc bạnnênđặtthu ctính RthresHold=1.Ngoàira cc bạn c nquantâmđến cc thamsố:CommPort,Settings,Rthreshold,SthresHold,PortOpen,InputLen,InputBuffer,OutputBuffer,InBufferSize,InputMode,OutBufferSize.2. Lậptrình 2.1. M c đíchyêu c uChương trình nàyrấtlàđơngiản.Chúngtasẽtạoramộtchương trìnhcgiao diệnnhưsau:Hình2.1: Giao diệnchương trình Chương trìnhc ch c năngsau:‐Nhậpkítựho c xâukítựvàoEditBoxTransfer,điềuchỉnhthamsố giaotiếp trên c c ComboBox.NhấnnútSendđểgửidữliệura c ngCOM.‐Đồngthờivớinónếu c dữliệutruyềnvê c ngComthìdữliệusẽđư c hiểnthịlênEditBoxReceive.KhibạnnhấnvàoClearthìsẽxoádữliệuhiểnthịtrênEditBoxnày.Chúý: ... Ngườibáo c o:NgôHảiB c Tàiliệu:TUT01.03Ngày:10/01/06Trang:9/78chuyểnđổigiữa cc kiểudữliệunày cc bạn c thểthamkhảotạithưviệnMSDNMicrosoftJuly2001 bằngc chSearchKeyWord:chínhlà cc từkhoáchỉnhlà cc kiểudữliệuđó.(nhưCString,…)classCMSComm:publicCWnd{protected: DECLARE_DYNCREATE(CMSComm)public: CLSIDconst&GetClsid() {staticCLSIDconstclsid={0x648a5600,0x 2c6 e,0x101b,{0x82,0xb6,0x0,0x0,0x0,0x0,0x0,0x14}};returnclsid; ... trongth c tế.Dođótôixingiớithiệucho cc bạnviếtchương trình trênPCdùngMSComm.Tôixinđưaramộtsốvấnđềnhưsau:‐Giớithiệuchuẩn giaotiếp RS232vàđiềukhiểnActiveXMicrosoftCommunication6.0(MSComm): c ch tính chấtvà c chthiết lập thamsốtốiưuchođiềukhiển.‐ Lậptrình ứngdụng giaotiếp trên c sởsửdụngphầnmềmVisual C+ +trongbộ c ng c Visual‐Studio6.0 c aMicrosft:+Thiếtkế giao diệnchương trình. +Viếtmãchochương trình. 1....
... Giátrịnhậnđư c từInputsẽlàmộtmảngkiểuByte.+NullDiscard:object.NullDiscard[=value] tính chấtnàyquyếtđịnhkítựtrống c đư c truyềntừ c ngđếnbộđệmnhậnhaykhông.Nếuvalue=Truekítựnàykhôngđư c Ngườibáo c o:NgôHảiB c Tàiliệu:TUT01.03Ngày:10/01/06Trang:25/78Hình2.23:ThêmGroupBox7Hình2.24:ThêmGroupBox8Ngườibáo c o:NgôHảiB c Tàiliệu:TUT01.03Ngày:10/01/06Trang:49/78Hình2.70:Thu ctính Type:DropList c a cc ComboBoxchung C c bạnsaukiểmtra cc thu ctínhc a cc điềukhiển bằng bảngsau:STT Đốitượng Thu ctính Thiết lập 1 MSComm ID IDC_MSCOMM12 ComboBox ... ĐiềukhiểnMSCommtrongVisualBasicTất ccctính chấtnàybạn c thểtìmtạithưviệnMSDNJuly2001theođườngdẫnnhưsauởtabcontents:MSDNLibrary‐July2001/VisualToolsandLanguages/VisualStudio6.0Documentation/VisualBasicDocumentation/Reference/ControlReference/ActiveXControl/MSCommControl C ctính chất c aMSCommđư c sắpxếptheoch c năng:Thiết lập thamsốcho c ng:+CommID:trảlạihandlesđồngnhấttớithiếtbịtruyềnthông, c kiểuLong. Tính chấtnàykhông c l c thiếtkếmàchỉ c khithihành,thu ctính nàylàReadOnly.+CommPort:dạngobject.CommPort=value.Valuelàchỉsố c a c ngCom c giátrịtừ1‐>16vàm c định c giátrị=1. Cc bạn c nphảithiết lập thôngsốnàytrư c khimở c ng.Sẽ c lỗierror68(Deviceunavailable)nếunhưkhôngmởđư cc ngnày.+InBuferSize:thiết lập ho c trảlạikíchthư cc abộđệmnhận, tính =byte.M c địnhlà1024byte. Cc bạnkhôngđư c nhầmlẫnvớiđ ctính InBufferCountlàsốbyteđangchờtrongbộđệmnhận.+InputLen:object.InputLen[=value]thiết lập ho c trảlạisốbytemỗilầnthu ctính Inputđ c trongbộđệmnhận.M c địnhgiátrịValue=0t c làthu ctính Inputsẽđ c hếtnộidung c abộđệmnhậnkhithu ctính nàyđư c gọi.Nếusốkítựtrongbộđệmnhậnkhông=InputLenthìthu ctính Inputsẽtrảlạikítựrỗng“”.Víthếbạn c nphảichọn c chkiểmtraInBufferCountđểch c chắnsốkítựyêu c uđã c đủtrư c khidùnglệnh.Input. Tính chấtnàyrấtlà c íchkhiđ c dữliệumột máy màdữliệurađư c địnhdạng bằng cc khối c kíchthư cc định.+InputMode:object.InputMode[=value].Value=0hay=comInputModeTextdữliệunhậnđư c dạngvănbảnkiểukítựtheochuẩnANSI.Dữliệunhậnđư c sẽlàmộtsâu.Value=1hay=comInputModeBinarydùngnhậnmọikiểudữliệunhưkítựđiềukhiểnnhúng,kítựNULL, ... Ngườibáo c o:NgôHảiB c Tàiliệu:TUT01.03Ngày:10/01/06Trang:29/78Hình2.32:Thiết lập thu ctính choGroupBox5Hình2.33:Thiết lập thu ctính choGroupBox6Ngườibáo c o:NgôHảiB c Tàiliệu:TUT01.03Ngày:10/01/06Trang:35/78Hình2.43:Thiết lập thu ctính ReadOnlyvàMultiLineHình2.44:ThêmEditBox2Ngườibáo c o:NgôHảiB c Tàiliệu:TUT01.03Ngày:10/01/06Trang:4/781.2. Cc thu ctínhc aMSCommMSCommlàmộtđiềukhiểnActiveXdùngtrongtruyềnthôngnối tiếp. Cctính chất c ađiềukhiểnnàyđư c dùngđểthiết lậpgiaotiếp với cc thiếtbịngoạiviqua c ngRS232.Dođótôixingiớithiệuvới cc bạnđiềukhiểnnàytrongVisualBasicvì c chgọithu ctính đơngiản c aVB.Từđósẽlấylàm c sởđể lậptrình trênVisual C+ +.1.2.1....
... TRÌNHCHƯƠNG 9LẬP TRÌNHGIAOTIẾPMÁYTÍNH VÀTHIẾT BỊ2M c l c chương 9•9.1. Giaotiếp qua c ng RS232•9.2. Giaotiếp qua c ng song song•9.3. Giaotiếp qua c ng nối tiếp •9.4. Giaotiếp qua c ng máy ... ta c n c một đầu “đ c để kết nối từ máytính này sang máytính kh c. Cc chân ra c a D-9 và D-25 đư ctrình bày dưới đây:11 Giao tiếp qua c ng RS23212 Giao tiếp qua c ng RS23213 Giao tiếp ... RS23213 Giao tiếp qua c ng RS23214 Giao tiếp qua c ng RS23215 Giao tiếp qua c ng RS232 Cc thiết bị dùng cc cổng nối tiếp cho giaotiếp đư c phân làm hai loại. Chúng gồm DCE (Data Communications Equipment)...
... CHỌN C NG COM X KHÔNG C TÊN SAU ĐÂY(TÙY THU C VÀO MỖI MÁY):Giả sử chọn c ng COM1 (nếu chọn c ng COM kh c thì phải vào VC++ chỉnh lại tên c ng com trong hàm Setting())Chọn COM1 kết nối COM4=>Chạy ... tên cho nút nhấn:B2: thêm MSCOMM(dùng để điều khiển c ng com) vào project/Add to project/components and control:Xuất hiện dialog:Chọn Microsoft communication Click OkThiết lập thông số cho ... COM4=>Chạy PROTEUS:Vẽ mạchNẠP chương trình cho vđk:Chọn file hex đã dịch trên keilcThêm file dkleddon .c vào projectB1 :Lập trình điều khiển đèn LED1 và LED2 qua cc nút nhấn trên giao diện máy...
... c ng Com ảo 3 1.2 Mạch mô phỏng vi điều khiển giaotiếpmáytính 3 1.3 Lậptrình cho VĐK sử dụng Keil C 6 1.3.1 Cc bư c xây dựng dự án Keil C 6 1.3.2 C u tr c cơ bản một chương trìnhC cho ... trư c khi th c hiện cc bư ctiếp theo bằngcc bấm Ctrl + S hay Click biểu tượng Save trên thanh c ng c . Đặt tên cho Form và Click nút Save. BT Lớn Môn Truyền Số Liệu Giaotiếpmáytính ... sẽ c những c p c ng com đư c nối với nhau, như COM1 COM2, COM4 COM5 1.2 Mạch mô phỏng vi điều khiển giaotiếpmáytính Khởi động chương trình mô phỏng mạch Proteus, lấy cc linh kiện c n...
... Báo C o Th c Tập C ng Nhân Trang 6 c. Port2: là một c ng cc ng dụng kép trên cc chân 21 – 28 c a MC 8951. Ngoài ch c năng I/O, cc chân này dùng làm 8 bit cao c a bus địa chỉ cho những ... để cho phép đ ccc byte mã lệnh c a chương trình. Tín hiệu PSEN ở m c thấp trong suốt phạm vi quá trìnhc a một lệnh. Cc mã nhị phân c a chương trình đư c đ c từ EPROM qua bus và đượ c chốt ... PWM4P3.4P0.5RXDP1.6P0.2P0.7P0.6P0.0P1.3TXDP3.2P1.7VCC5VVCC5Vvcc5vVCC5VVCC5VGNDPWM3PWM2PWM1DK PWM1DK PWM2DK PWM3DK PWM4 C PWM2 C PWM3 C PWM4 C PWM1VCC5VVCC5VVCC5VVCC5VP1.3P0.6P1.1P3.4P0.5P1.0P3.2P1.6P0.4P1.5P1.2P0.0P0.2P0.7P0.3P1.7P0.1P3.3P1.4P3.5Q13D468R24330...
... -5% B c kim -2 -10% C ch đ c: Vạch màu cuối c ng là vạch sai số. Đối với mạch điện tử dân dụng thì ta không quang tâm tới vạch này. Nhưng đối với mạch c độ chính x c cao thì c n chú ý ... định cuộn dây c bị đ c hay không. Khi chạm cuộn dây thì ta chỉ c kiểm tra bằng th c tế. 4. DIODE. Điode nắn điện. Diode chỉ hoạt động dẫn dòng điện từ cc A sang cc K ( Khi tiếp x c ... Khi tiếp x c PN đư c phân cc thuận). Khi phân cc nghịch vư c điện áp chịu đựng P N Báo C o Th c Tập C ng Nhân Trang 49 procedure TForm1.comportRxChar(Sender: TObject; Count: Integer); var...