... 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 c tính Type: DropList c a cc ComboBox chung C c bạn sau kiểm tra cc thu c tính c a cc điều khiển bằng bảng sau: STT Đối tượng Thu c tính Thiết lập 1 MSComm ID IDC_MSCOMM1 2 ComboBox ID Style IDC_COMBO_COMPORT Droplist 3 ... 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 ccc tí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 c tí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 c tính này là ReadOnly. + CommPort: dạng object.CommPort = value. Value là chỉ số c a c ng Comc 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 đ c tí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 c tính Input đ c trong bộ đệm nhận. M c định giá trị Value=0 t c là thu c tính Input sẽ đ c hết nội dung c a bộ đệm nhận khi thu c tính này đư c gọi. Nếu số kí tự trong bộ đệm nhận không = InputLen thì thu c tí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,...
... Đ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 c tí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 ... 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 ... 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ườ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; ... Ngườibáo c o:NgôHảiB c Tàiliệu:TUT01.03Ngày:10/01/06Trang:5/78truyền.value=falsekítựtrốngsẽđư c truyền.Kítựtrốngđư c địnhnghíatheochuẩnASCIIlàkítự0–chr$(0).+OutBuferSize:giốngnhưInBuferSize,m c địnhlà512.+ParityReplace:thiết lập vàtrảlạikítựthaythếkítựkhôngđúngtronglỗigiốngnhau.+PortOpen:thiết lập vàtrảlạitínhtrạng c a c ng( đóngho c mở).object.PortOpen[=value].value=true c ng mở.value=false c ng đóngvàxóatoànbộdữliệutrongbộđệmnhậnvàtruyền. C nphảithiết lập thu c tínhCommPortđúngvớitên c a c ng trư c khimở c ng giao tiếp. Thêmvàođó, c ng giaotiếpc athiếtbị c abạnphảihỗtrợgiátrịtrongthu c tínhSettingthìthiếtbị c ủabạnmớihoạtđộngđúng, c nkhôngthìnósẽhoạtđộngrấtdởhơinếukhôngnóilànóchạykhôngtốt.ĐườngDTRvàRTSluôngiữlạitrạngthái c a c ng. +RthresHold:object.Rthreshold[=value]valuekiểusốnguyên.Thiết lập sốkítựnhậnđư c trư c khigâylênsựkiệncomEvReceive.M c định=0t c làkhông c sựkiệnOnCommkhinhậnđư c dữliệu.Thiết lập =1t c làsựkiệnOnCommxảyrakhibấtkìkítựnàođư c chuyểnđếnbộđệmnhận.+Settings:object.Settings[=value]thiết lập ho c trảlại cc thôngsốtầnsốbaud,bítdữliệu,bítchẵnlẻ,bítstop.NếuValuekhông c giátrịkhimởsẽgâyralỗi380(Invalidpropertyvalue).+SThreshold:thiết lập vàvàtrảlạisốkítựnhỏnhấtđư c chophéptrongbộđệmgửiđểxảyrasựkiệnOnComm=comEvSend.Theom c địnhgiátrịnày=0t c làkhitruyềnsẽkhônggâyrasựkiệnOnComm.Nếuthiết lập thôngsốnày=1thìsựkiện ... 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 c tínhRthresHold=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 ng COM. ‐Đồngthờivớinónếu c dữliệutruyềnvê c ng Com thì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:49/78Hình2.70:Thu c tínhType:DropList c a cc ComboBoxchung C c bạnsaukiểmtra cc thu c tính c a cc điềukhiển bằng bảngsau:STT Đốitượng Thu c tính Thiết lập 1 MSComm ID IDC_MSCOMM12 ComboBox ... ĐiềukhiểnMSCommtrongVisualBasicTất ccc tínhchấ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 c tínhchấ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ínhchấtnàykhông c l c thiếtkếmàchỉ c khithihành,thu c tínhnàylàReadOnly.+CommPort:dạngobject.CommPort=value.Valuelàchỉsố c a c ng Comc 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 ng nà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đ c tínhInBufferCountlàsốbyteđangchờtrongbộđệmnhận.+InputLen:object.InputLen[=value]thiết lập ho c trảlạisốbytemỗilầnthu c tínhInputđ c trongbộđệmnhận.M c địnhgiátrịValue=0t c làthu c tínhInputsẽđ c hếtnộidung c abộđệmnhậnkhithu c tínhnàyđư c gọi.Nếusốkítựtrongbộđệmnhậnkhông=InputLenthìthu c tínhInputsẽ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ínhchấtnàyrấtlà c íchkhiđ c dữliệumộtmáymà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, ... ĐiềukhiểnMSCommtrongVisual C+ +Trênđâylà cc thamsố c ađiềukhiểnMSCommtrongVB.TrongVisual C+ +,mỗimộtđiềukhiểnđư c địnhnghĩatrongmộtlớpriêng.VàMSComm c ngkhôngphảilàngoạilệ.Với cc thamsốởtrên cc bạnhoàntoàn c thểápdụngrấtlàtốtcho lậptrình vớiVC++bởilẽ cc thamsốnàybạn c thểlấygiátrịho c thiết lập thamsốchochúngtươngứng bằngcc hàmthànhviên c alớpnhưGet_thuộctínhho c Set_thuộctính.Vídụ,bạnmuốnthiết lập dùng c ng COM1 chẳnghạnthìdùngthu c tínhCommPortởtrênvàchỉthêmtiềntốSet_nếumuốnthiết lập vàGet_nếumuốnlấygiátrịnày.SauđâylàlớpMSCommlàmộtlớpkếthừatừlớp c sởCWnd, cc bạn c thểthamkhảo. Cc bạnchúývề cc kiềudữliệu c a cc thamsốvàgiátrịtrảvề c a cc hàm.Vi c Ngườibáo c o:NgôHảiB c Tàiliệu:TUT01.03Ngày:10/01/06Trang:13/781.3....
... giao th c. Ccgiao th c này c n đư c gọi là cc nghi th c ho c định ư c của máy tính.1.4.1 Giao th c TCP/IP Giao th c TCP/IP đư c phát triển từ mạng ARPANET và Internet và đư c dùng như giao ... 31 2.3.1.2 Cc thu c tính c a Winsock control 31 2.3.1.3 Cc phương th c của Winsock Control 32 2.3.1.4 Cc sự kiện c a Winsock Control 35 − Cc đối tượng chèn đư c( Insert Object): như là ... nó đư c chuyển tiếp qua cc trạm cho đến khi tới đư c đích c n đến. C c ưu điểm c a phương pháp: − Cung c p một sự quản lý hiệu quả hơn đối với sự lưu thông c a mạng. Bằngc ch gán cc thứ...
... bản về c ng nối tiếp: C ng nối tiếp RS232 là một loại giao diện phổ biến rộng rãi nhất, ta c n gọi là c ng COM1 , COM2 để tự do cho cc ứng dụng kh c nhau.Giống như c ng máy in ,c ng nối tiếp ... chỉ đối với cc thiết bị dùng bộ nhớ mở rộng.Port 3:Port 3 là port c t c dụng kép trên cc chân 10-17. Cc chân c a port này c nhiều ch c năng, cccông dụng chuyển đổi c liên hệ với cc ... FlagChCh c năng từng bit trạng thái chương trình c năng từng bit trạng thái chương trình C Carry CY (Carry Flag): C Carry CY (Carry Flag): C nhớ c t c dụng kép. Thông thường nó đư c dùng cho...
... object.CommEvent. Khi c sự kiện xảy ra chương trình cho c ng object_OnComm () sẽ đư c gọi để xử lý cc sự kiện hay cc lỗi.Ví dụ:Private Sub MSComm1_OnComm ( )Select Case MSComm1. CommEvent‘ ... Command2_Click()MSComm1.Output = "2" c ng máy in c ng COMc ng đư c sử dụng một c ch thuận tiện cho vi cgiaotiếp với thiết bị ngoại vi. Vi c truyền dữ liệu qua c ng COM đư c ... ta c n gọi c ng này là c ng COM1 , c n c ng COM2 để tự do cho cc ứng dụng kh c. Giống như CLR RI ; sắn sàng nhận byte kế tiếp. SJMP HERE ; tiếp t c nhận dữ liệu Ví dụ 3: Giả sử c ng nối tiếp...
... ‘Sai khi đ c DCB ‘ Sự kiện Case ComEvCD ‘Đường CD thay đổi Case ComEvCTS ‘CTS thay đổi Case ComEvDSR ‘DSR thay đổi từ 1 xuống 0 Case ComEvRing ‘RI thay đổi Case ComEvReceive ‘Số byte ... đư c đặt khi viết chương trình, c thể thay đổi khi chạy chương trìnhbằngcc lệnh điều khiển. Tính chất CommPort Đặt c ng com đư c sử dụng Object.CommPort [= Value] Value = 1 đến 16, m c ... VISUAL C ++6.0 MSComm c thể c i trong Delphi theo cc bư c sau: Vào menu Component – Import ActiveX Control Microft Comm Control 6.0 – Install để c i MSComm vào ActiveX. Sau đó vào toolbar ActiveX....
... object.CommEvent. Khi c sự kiện xảy ra chương trình cho c ng object_OnComm () sẽ đư c gọi để xử lý cc sự kiện hay cc lỗi. Ví dụ: Private Sub MSComm1_OnComm ( ) Select Case MSComm1. CommEvent ‘ ... Case ComEventRXParity ‘Sai Parity Case ComEventTXFull ‘Đệm phát đầy Case ComEventDCB ‘Sai khi đ c DCB ‘ Sự kiện Case ComEvCD ‘Đường CD thay đổi Case ComEvCTS ‘CTS thay đổi Case ComEvDSR ... c ng c . C thể nhắp chuột kép để đưa vào form c a chương trình. Cc bư c trên c thể làm tắt bằng phím Ctrl T. Thành phần Comm khi mới đưa vào form thường đư c gán tên MSComm1 cho c ng Com1 ...
... https://www.mediafire .com/ ?nkft434ql3avs32 Lậptrìnhgiaotiếp LCD 16x2Chào cc bạn, hôm nay chúng ta sẽ xây dựng cc hàm để giaotiếp LCD 16x2.Vi cgiaotiếp LCD khá đơn giản khi chúng ta xây dựng dc hàm ... command){ LCD_Send4Bit(command >>4);/* Gui 4 bit cao */ LCD_Enable(); LCD_Send4Bit(command); /* Gui 4 bit thap*/ LCD_Enable();}void LCD_Clear(){// Ham Xoa Man Hinh LCD LCD_SendCommand(0x01); ... trí c n hiển thị, Trong đó X là vi trí, Y là dòng OK!, c 2 c ch gửi dữ liệu lên LCD là 8bit và 4bit ta chọn c ch gửi 4bit vì ít chân c ng hơn 8bit, tiết kiệm chân VDK cho cc ứng dụng kh c. Ta...
... một phần c a PC ngay khi nó mới ra đời. Với mỗi c ng Com ho c Comm(communications) trong PC là một c ng nối tiếp không đồng bộ đư c điều khiển bởi c cUART. Mỗi c ng Comc thể cgiao diện ... 485 ho cc ng c thể để dànhcho một modem trong ho c thiết bị kh c. Mỗi PC c thể ccc dạng kh c nhau c a cc c ng nối tiếp như USB, Firewire, và I 2C nhưng chúng dùng ccgiao th c kh c nhau ... &H11'CommDCB.XonLim = 64'CommDCB.XoffLim = 64'CommDCB.ByteSize = 8'CommDCB.Parity = 0'CommDCB.StopBits = 0'CommDCB.XonChar = &H12'CommDCB.XoffChar =...
... đó quay lại bư c 1. C c bạn chú ý, đây là chương trình mình viết dưới dạng mở, t c là cc bạn c thể thêm code vào cc hàm để ph c vụ m c đích c a mình. Đó chính là cc hàm ngắt nhận, ngắt ... vậy.Thiết lập này phải th c hiện trư c khi mở c ng để giao tiếp, nên chúng ta sẽ viết hàm callback trư c. Bạn viết 1 m-file với tên Serial_Callback.m như sau:function Serial_Callback(obj,event) ... truyền cc kí tự kh c xem bằng lệnh fprintf(s,…), ho c thử với vi xử lý xem cho nó truyền lên cc bạn sẽ thấy rất hay.Bạn không giaotiếp nữa thì đóng c ng lại:>>fclose(s);2. Chương trì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 qua cng RS23214 Giao tip qua cng RS23215 Giao tip qua cng ... giữa cc máy tính, sửdụng ccgiao th c (protocol) như Zmodem, xmodem, 19 Giao tiếp qua c ng RS23220 Giao tiếp qua c ng RS232ãHỡnh v c cp trờn cho thy kt nối cc dây c a null modem. Đ c tính ... blinking with app. 1 sec frequency.949.2. Giaotiếp qua c ng song song95 GIAO TIẾP QUA C NG NỐI TIẾPCHƯƠNG 9969.3. Giaotiếp qua c ng nối tiếp 979.3. Giaotiếp qua cng ni tipãAbove is the...