... 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; ... trong th c tế. Do đó tôi xin giới thiệu cho cc bạn viết chương trình trên PC dùng MSComm. Tôi xin đưa ra một số vấn đề như sau: ‐ Giới thiệu chuẩn giaotiếp RS232 và điều khiển Active X Microsoft Communication 6.0( MSComm): c ch tính chất và c ch thiết lập tham số tối ưu cho điều khiển. ‐ Lậptrình ứng dụng giaotiếp trên c sở sử dụng phần mềm Visual C+ + trong bộ c ng cVisual ‐ Studio 6.0 c a Microsft: + Thiết kế giao diện chương trình. + Viết mã cho chương trình. 1....
... 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....
... 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ềm Visual C+ +trongbộ c ng cVisual ‐Studio6.0 c aMicrosft:+Thiếtkế giao diệnchương trình. +Viếtmãchochương trình. 1. ... 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;...
... 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ểnMSCommtrong Visual BasicTất ccctính chấtnàybạn c thểtìmtạithưviệnMSDNJuly2001theođườngdẫnnhưsauởtabcontents:MSDNLibrary‐July2001/ Visual ToolsandLanguages/ Visual Studio6.0Documentation/ Visual BasicDocumentation/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àytrong Visual Basicvì c chgọithu ctính đơngiản c aVB.Từđósẽlấylàm c sởđể lậptrình trên Visual 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...
... 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...
... 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 ... dấu c a toán hạn sau. Ngư c lại c nhớ bị xoá. 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 ... ButtonsettingClick(Sender: TObject); procedure ButtonopenClick(Sender: TObject); procedure ButtonclearClick(Sender: TObject); procedure ButtonsendClick(Sender: TObject); procedure Exit1Click(Sender:...