(NB) Giáo trình Lập trình ghép nối máy tính này nhằm trang bị cho học viên các trường công nhân kỹ thuật và các trung tâm dạy nghề những kiến thức về kỹ thuật lập trình, kỹ thuật ghép nối các thiết bị ngoại vi với máy tính...với các kiến thức này học viên có thể áp dụng trực tiếp vào lĩnh vực sản xuất cũng như đời sống. Mô đun này cũng có thể làm tài liệu tham khảo cho các cán bộ kỹ thuật, các học viên của các ngành khác quan tâm đến lĩnh vực này.
1 LỜI GIỚI THIỆU Trong máy tính hệ có số thiết bị ngồi thơng dụng như: Màn hình, bàn phím, chuột, máy in…với thiết bị ngồi máy tính có khối ghép nối tương ứng chúng tích hợp ln bo mạch gọi main board Tuy nhiên máy tính khơng dừng lại với thiết bị ngoại vi nói mà có yêu cầu cao hơn, kết nối với máy móc cơng nghiệp…và nhà sản xuất lưu tâm tới họ để trống vơ số đường ghép nối với bus máy tính như: RS232, LPT, COM, USB, khe PCI …Đây đường muốn nghiên cứu mở rộng phạm vi kết nối máy tính kết hợp sử dụng với vi điều khiển lập trình Mơ đun ”Lập trình ghép nối máy tinh” mô đun chuyên môn học viên ngành sửa chữa máy tính Mơ đun nhằm trang bị cho học viên trường công nhân kỹ thuật trung tâm dạy nghề kiến thức kỹ thuật lập trình, kỹ thuật ghép nối thiết bị ngoại vi với máy tính với kiến thức học viên áp dụng trực tiếp vào lĩnh vực sản xuất đời sống Mơ đun làm tài liệu tham khảo cho cán kỹ thuật, học viên nghành khác quan tâm đến lĩnh vực Mặc dù có cố gắng để hồn thành giáo trình theo kế hoạch, hạn chế thời gian kinh nghiệm soạn thảo giáo trình, nên tài liệu chắn khiếm khuyết Rất mong nhận đóng góp ý kiến thầy cô bạn học sinh, sinh viên có nhu cầu sử dụng tài liệu Hà Nội, 2013 Tham gia biên soạn Khoa Công Nghệ Thông Tin Trường Cao Đẳng Nghề Kỹ Thuật Công Nghệ Địa Chỉ: Tổ 59 Thị trấn Đông Anh – Hà Nội Tel: 04 38821300 Chủ biên: Nguyễn Kim Dung Mọi góp ý liên hệ: Phùng Sỹ Tiến – Trưởng Khoa Công Nghệ Thông Tin Mobible: 0983393834 Email: tienphungktcn@gmail.com – tienphungktcn@yahoo.com MỤC LỤC ĐỀ MỤC TRANG BÀI MỞ ĐẦU: TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH TRUYỀN THƠNG A LÝ THUYẾT Giới thiệu ngôn ngữ truyền thông 1.1 Giới thiệu Visual Basic 1.2 Bắt đầu với Visual Basic 1.2.1 Khởi động Visual Basic: 1.2.2 Giao diện Visual Basic Các điều khiển truyền thông 2.1 Textbox 2.2 CommandButton 2.3 PictureBox 2.4 Form 10 Cách gọi viết DLL 13 3.1 Tệp *.DLL cách tiếp cận 13 3.1.1 Tệp DLL Windows 13 3.1.2 Cách tiếp cận với DLL Windows 14 3.1.3 Vấn đề xung đột DLL 14 3.2 Cách tạo sử dụng tệp *.DLL BASIC DELPHI 15 3.2.1 Các DLL riêng 15 3.2.2 Tệp Port.DLL 16 3.2.3 Gọi tệp *.DLL VisualBasic 17 B CÂU HỎI VÀ BÀI TẬP 21 BÀI 1: CÁC CÂU LỆNH VÀ ĐỐI TƯỢNG TRONG NGƠN NGỮ LẬP TRÌNH 23 A LÝ THUYẾT 23 Cách khai báo biến 23 1.2 Khai báo biến 23 Các câu lệnh 25 Các đối tượng sở truyền thông 28 Các thuộc tính kiện 29 4.1 Các thuộc tính 29 4.2 Các kiện 32 Cách viết mã chương trình 34 5.1 Đọc đặc tính bảng 35 5.2 Sử dụng cửa sổ mã 35 B CÂU HỎI VÀ BÀI TẬP 36 BÀI 2: LẬP TRÌNH THIẾT BỊ ẢO 37 A LÝ THUYẾT 37 Các thiết bị hiển thị số 37 Máy phát tính hiệu hính sin 42 Dao động ký nhớ số 47 Điều khiển số 48 B CÂU HỎI VÀ BÀI TẬP 50 BÀI 3: LẬP TRÌNH QUA CỔNG NỐI TIẾP 51 A LÝ THUYẾT 51 Cổng nối tiếp 51 1.1 Cấu trúc cổng nối tiếp 51 1.2 Truyền thông hai nút 54 Xuất trực tiếp liệu số 55 Cổng nối tiếp RS232 62 3.1 Quá trình truyền byte liệu 62 3.2 Cổng nối tiếp RS 232 62 Truyền liệu nối tiếp đồng 78 4.1 Truyền liệu nối tiếp 78 4.2 Truyền liệu đồng 79 B CÂU HỎI VÀ BÀI TẬP 80 BÀI 4: LẬP TRÌNH QUA CỔNG SONG SONG 87 A LÝ THUYẾT 87 Lập trình qua cổng song song 87 1.1 Cấu trúc cổng song song 87 1.2 Giao tiếp với thiết bị ngoại vi 90 1.2.1 Giao tiếp với máy tính 90 1.2.2 Giao tiếp thiết bị khác 91 Xuất liệu cổng song 100 2.1 Một tạo hàm 100 2.2 Điều khiển máy móc đơn giản 102 2.3 Ghép nối song song qua cổng máy in 105 B CÂU HỎI VÀ BÀI TẬP 116 BÀI 5: LẬP TRÌNH QUA CÁC MẠCH GHÉP NỐI ĐA NĂNG 121 A LÝ THUYẾT 121 Xây dựng Phần cứng cách điều khiển 121 Thiết lập chương trình đo lường 125 Kiểm tra hoạt động vi mạch 126 B CÂU HỎI VÀ BÀI TẬP 128 TÀI LIỆU THAM KHẢO 132 MƠ ĐUN: LẬP TRÌNH GHÉP NỐI MÁY TÍNH Mã mơ đun: MĐ38 Vị trí, ý nghĩa, vai trò mơ đun: - Vị trí: + Mơn đun bố trí sau học xong mơn học/mơ đun: Lắp ráp cài đặt máy tính, Đo lường điều khiển máy tính, Kiến trúc máy tính, Sửa chữa máy tính - Tính chất: + Là môn đun chuyên ngành tự chọn - Ý nghĩa, vai trò mơ đun: + Mơ đun giúp tạo mối liên hệ cần thiết máy tính giới bên ngồi + Chương trình điều hành hệ thống ghép nối mơ đun có khả đảm nhận việc thu thập thơng tin từ bên điều khiển thiết bị ghép nối với máy tính + Giúp cho người đọc có kỹ lập trình đối tượng tạo mạch điện tử để ghép nối với máy tính có nhiều ứng dụng thực tiễn Mục tiêu mơ đun: - Lập trình truyền thơng qua cổng nối tiếp song song - Xây dựng kế hoạch thiết kế chương trình điều khiển ghép nối máy tính - Lập trình hồn chỉnh môi trường phát triển với ngôn ngữ hỗ trợ lập trình ghép nối - Có ý thức tự giác, tính kỷ luật cao, tinh thần trách nhiệm học tập - Bình tĩnh, tự tin cơng việc liên quan ghép nối máy tính Mã MĐ38-01 MĐ38-02 MĐ38-03 MĐ38-04 MĐ38-05 MĐ38-06 Tên Bài mở đầu: Tổng quan ngơn ngữ lập trình truyền thơng Bài 1: Các câu lệnh đối tượng ngơn ngữ lập trình Bài 2: Lập trình thiết bị ảo Bài 3: Lập trình qua cổng nối tiếp Bài 4: Lập trình qua cổng song song Bài 5: Lập trình qua mạch ghép nối đa Thời lượng Tổng Lý Thực số thuyết hành Kiểm tra 04 03 10 10 03 05 02 10 12 12 04 06 06 05 06 05 01 12 06 06 01 BÀI MỞ ĐẦU: TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH TRUYỀN THƠNG Mã : MĐ38-01 Giới thiệu Bài mở đầu nhằm giới thiệu cho học sinh cách tổng quan ngơn ngữ sử dụng để lập trình giao tiếp với máy tính, việc lập trình Visual hiểu dùng điều khiển có sẵn, dùng chuột với thao tác để lấy điều khiển cần dùng từ hộp công cụ đưa vào Form để thiết kế chương trình, xác lập thuộc tính cho chúng sau viết lệnh cho điều khiển Mục tiêu - Nhận biết tổng thể ngơn ngữ lập trình truyền thơng - Trình bày xác điều khiển truyền thơng, đặc tính, kiện - Sử dụng gọi hàm API lập trình truyền thơng số ứng dụng lập trình truyền thơng - Cẩn thận, tự giác, xác - Tuân thủ, đảm bảo an tồn cho người thiết bị - Có tinh thần trách nhiệm cao học tập làm việc Nội dung A LÝ THUYẾT Giới thiệu ngôn ngữ truyền thông Mục tiêu : - Hiểu khái niệm ngơn ngữ lập trình Visual Basic - Thực số thao tác phần mềm Visual Basic 1.1 Giới thiệu Visual Basic Visual Basic ngơn ngữ lập trình cấp cao 32 bit sử dụng để viết chương trình chạy mơi trường Windows Visual Basic sử dụng kiểu lập trình Visual hay RAD( Rapid Application Development) việc tạo cửa sổ, Điều khiển cách ứng xử cửa sổ Điều khiển thực cách dễ dàng nhanh chóng thao tác với mouse khơng cần phải khai báo, tính tốn với nhiều câu lệnh phức tạp Visual Basic ngơn ngữ lập trình theo kiểu hướng đối tượng Nó khác với kiểu lập trình cũ kiểu Top Down - Lập trình Top Down: chương trình bố trí thực thi từ xuống Với kiểu lập trình này, việc bố trí trở nên khó khăn chương trình lớn - Lập trình hướng đối tượng OOP (object-oriented programming): Các thành phần phân thành đối tượng (Object) viết cách ứng xử riêng cho đối tượng sau kết hợp chúng lại tạo thành chương trình 1.2 Bắt đầu với Visual Basic 1.2.1 Khởi động Visual Basic: Sau khởi động VB, hộp thoại (Dialog) “New Project” xuất cho phép lựa chọn loại ứng dụng mà bạn muốn tạo VB6 cho phép tạo 13 loại ứng dụng khác Tab “New”, nhiên mức độ thơng thường, Standard EXE (một loại chương trình tự chạy tiêu chuẩn) chọn Hình 1.1: Dialog lựa chọn ứng dụng 1.2.2 Giao diện Visual Basic Hình 1.2: Giao diện Visual Basic + Giao diện VB bao gồm thành phần sau: MenuBar: trình đơn VB Toolbar: số chức chương trình Toolbox: chứa Điều khiển (Control) thông dụng Project Explorer: hiển thị thành phần ứng dụng thực Properties Window: Cửa sổ hiển thị đặc tính (Properties) thiết kế + Điều khiển Form Layout Window: xem trước thay đổi vị trí Form thực thi ứng dụng Workspace: vùng làm việc chương trình… Ngồi giao diện VB chứa nhiều thành phần khác Để hiển thị thành phần bạn chọn trình đơn “View” click chọn thành phần bạn muốn hiển thị Tuy nhiên, với thành phần giới thiệu đủ để giúp bạn xây dựng ứng dụng VB Các thành phần giới thiệu đầy đủ phần sau tài liệu Chú ý: Do VB ngơn ngữ lập trình theo kiểu hướng đối tượng (tuy chưa thật đầy đủ ý nghĩa), để làm việc với VB trước hết bạn phải biết khái niệm “Đối tượng”-Object Các điều khiển truyền thông Mục tiêu : - Trình bày xác điều khiển truyền thơng, đặc tính, kiện - Sử dụng đối tượng để tạo Form Các Điều khiển VB dạng Đối tượng Đó cơng cụ có sẵn giúp cho việc tạo giao diện ứng dụng trở nên dễ dàng nhanh chóng hơn, đặc trưng kiểu lập trình VISUAL hay RAD đề cập Các Điều khiển bao gồm thành phần Đối tượng Vì vậy, từ khái niệm Điều khiển hiểu đồng với Đối tượng 2.1 Textbox Textbox hay gọi edit field or edit control, hiển thị thông tin thời gian thiết kế hay lúc chương trình thực thi Việc truy xuất thơng tin Textbox thực thông qua Properties “Text” 2.2 CommandButton Là nút nhấn sử dụng để bắt đầu, ngắt dừng qúa trình 2.3 PictureBox Là điều khiển sử dụng chứa loại file hình tiêu chuẩn Đặc biệt ta vẽ lên Form 10 2.4 Form Form hay biểu mẫu, đối tượng quan trọng viết ứng dụng Form xem giao diện, ứng dụng phải có Form Cũng giống Đối tượng khác, Form có Properties, Method Event riêng, nhiên Form có có đặc điểm quan trọng khác tất Đối tượng nằm Form coi thành phần Form đó, dung dấu “.”để truy xuất đối tượng Form Vd: Form1 có nút lệnh Command1, để đặt giá trị Left Command1 100 ta sử dụng lệnh: Command1.Left=100 hay Form1.Command1.Left=100 118 printf("\n\t "); printf("\n\t1.Duong Vu Kien\t\t4.Nguyen Van Hien"); printf("\n\t2.Vu Thuy Hang\t\t5.Phung Thi Bich Lien"); printf("\n\t3.nong Le Thuy\t\t6.Pham Thanh Thong"); printf("\n\t "); printf("\n\t\tBan hay lua chon phuong thuc hen gio:\n"); printf("\n\t1.Hen gio theo dong ho he thong"); printf("\n\t2.Hen gio theo thoi gian dinh san"); printf("\n\t "); printf("\n"); scanf("%d",&n); if(n==1) {goto gioht;} if(n==2) {goto giobt;} else goto exit; gioht: { printf("Ban hay nhap vao thoi gian:"); printf("\nBat den 1:"); fflush(stdin); gets(d1b); printf("\tTat den 1:"); gets(d1t); printf("Bat den 2:"); gets(d2b); printf("\tTat den 2:"); gets(d2t); printf("Bat den 3:"); gets(d3b); // printf("Bat ca den:"); // gets(ds); printf("Tat den 3:"); gets(d3t); { gotoxy(50,23); _strtime(time); printf("Gio hien tai:%s",time); if((time[3]==d1b[0])&(time[4]==d1b[1])&(time[6]==d1b[3])&(time[7]==d1 b[4]) ) { outportb(0x378,(inportb(0x378))|(0x80)); 119 } if((time[3]==d1t[0])&(time[4]==d1t[1])&(time[6]==d1t[3])&(time[7]==d1t[ 4])) { outportb(0x378,(inportb(0x378))&(0x7f)); } if((time[3]==d2b[0])&(time[4]==d2b[1])&(time[6]==d2b[3])&(time[7]==d2 b[4]) ) { outportb(0x378,(inportb(0x378))|(0x40)); } if((time[3]==d2t[0])&(time[4]==d2t[1])&(time[6]==d2t[3])&(time[7]==d2t[ 4])) { outportb(0x378,(inportb(0x378))&(0xbf)); } if((time[3]==d3b[0])&(time[4]==d3b[1])&(time[6]==d3b[3])&(time[7]==d3 b[4]) ) { outportb(0x378,(inportb(0x378))|(0x20)); } f((time[3]==d3t[0])&(time[4]==d3t[1])&(time[6]==d3t[3])&(time[7]==d3t[4 ])) { outportb(0x378,(inportb(0x378))&(0xdf)); } if((time[3]==dt[0])&(time[4]==dt[1])&(time[6]==dt[3])&(time[7]==dt[4])) { outportb(0x378,0); } if((time[3]==ds[0])&(time[4]==ds[1])&(time[6]==ds[3])&(time[7]==ds[4])) { outportb(0x378,0xff); } } while(!kbhit()); goto exit2; } giobt: { printf("\nBan hay nhap vao thoi gian den sang:"); scanf("%ld",&b1); 120 // printf("\nBan hay nhap vao thoi gian den tat:"); // scanf("%ld",&t1); printf("\nBan hay nhap vao thoi gian den sang:"); scanf("%ld",&b2); // printf("\nBan hay nhap vao thoi gian den tat:"); // scanf("%ld",&t2); printf("\nBan hay nhap vao thoi gian den sang:"); scanf("%ld",&b3); printf("\nBan hay nhap vao thoi gian den tat:"); scanf("%ld",&t3); printf("\nBat dau chuong trinh hen gio.Bam phim bat ki de ket thuc chuong trinh"); { outportb(0x378,a); delay(b1); // outportb(0x378,!a); // delay(t1); outportb(0x378,b); delay(b2); // outportb(0x378,!b); // delay(t2); outportb(0x378,c); delay(b3); outportb(0x378,0); delay(t3); } while(!kbhit()); goto exit2; } exit: clrscr(); printf("\nKhong co lua chon thu %d Bam phim bat ki de ket thuc chuong trinh !!",n); outportb(0x378,0); getch(); exit2: clrscr(); printf("\nChuong trinh hen gio ket thuc !!!"); outportb(0x378,0); getch(); getch(); } 121 BÀI 5: LẬP TRÌNH QUA CÁC MẠCH GHÉP NỐI ĐA NĂNG Mã bài: MĐ41-06 Giới thiệu Mặc dù số lượng đường dẫn sử dụng giao diện nối tiếp bị hạn chế, kỹ thuật ghép nối máy tính giao diện nối tiếp đề cập tương đối kỹ chương trước học, đem phối hợp ứng dụng với để tạo giao diện (khối ghép nối đa năng) dùng cho ứng dụng khác Mục tiêu - Xây dựng Phần cứng cách điều khiển - Thiết lập chương trình đo lường - Kiểm tra hoạt động vi mạch - Tự tin lập trình ghép nối máy tính Nội dung A LÝ THUYẾT Xây dựng Phần cứng cách điều khiển Mục tiêu: - Viết đoạn chương trình sở dùng cho giao diện đa nối tiếp Hình 6.1 sơ đồ khối giao diện với tám lối số, tám lối vào số, lối vào analog lối đếm Toàn ba ghi dịch dùng để nhập vào xuất điều khiển đường dẫn giữ nhịp đồng (strobe) chung Hình 6.1: Một giao diện nối tiếp đa Việc nhập vào xuất thực đồng thời, đường dẫn giữ nhịp chung sử dụng cho tất vi mạch Thủ tục “Trao đổi” đoạn chương trình 6.1 đảm nhận việc truyền liệu theo hai hướng Mỗi lời gọi lại phục hồi trạng thái lối vi mạch 4094 đồng thời đọc 122 trạng thái lối vào số biến đổi A/D Tất liệu xếp biến tồn cục Dout (lối sơ), Din (lối vào số) Ain (lối vào analog) Ngoài ra, lối vào tự CTS sử dụng để đo tần số Ở thời gian mở cổng thiết lập cố định 100 ms, nhận độ phân giải tần số 10 Hz Khi ta đấu vào trước biến đổi điện áp/ Tần số, giao diện sử dụng với hai lối vào analog Đoạn chương trình 8-1: Chương trình sở dùng cho giao diện đa nối tiếp Unit Unil Interface Uses PORTINC Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; Type Tform1 = class (TForm) CheckBox1 : TcheckBox; CheckBox2 : TcheckBox; CheckBox3 : TcheckBox; CheckBox4 : TcheckBox; CheckBox5 : TcheckBox; CheckBox6 : TcheckBox; CheckBox7 : TcheckBox; CheckBox8 : TcheckBox; Labell : TLabel; Label2 : TLabel; Label3: TLabel; Label4 : TLabel; Label5 : TLabel; Label6 : TLabel; Label7 : TLabel; Label8 : TLabel; Timer1 : TTimer; Label9 : TLabel; CheckBox10 : TCheckBox; CheckBox11 : TCheckBox; CheckBox12 : TCheckBox; CheckBox13 : TCheckBox; CheckBox14 : TCheckBox; CheckBox15 : TCheckBox; CheckBox16 : TCheckBox; Label10 : TLabel; Edit1 : TEdit; Label11 : TLabel; Edit2 : TEdit; 123 Label12 : TLabel; Procedure FromCreate(Sender : TObject); Procedure Timer1TTimer(Sender : TObject); End; Var Form1: TForm1; Dout, Din, Ain: Byte; Implementation {$R *.DFM} Procedure Trao_doi; Var Vi_tri, Vi_triAD, r, m : Integer; Begin RTS(1); Delayus(20); RTS(0); Vi_tri := 1; Vi_triAD := 128; Din := 0; Alin := 0; For n:=1 to begin If ((Dout AND Vi_tri) > 0) then TXD (1) {xuất liệu} Else TXD (0); If DCD = { đọc liệu} Then Din := Din + Vi_tri; If DSR = then {đọc A/D} Alin := Alin + Vi_triAD; DTR (1); {Clock tới} Delayus (20); {Gây trễ} DTR (0); {Clock tắt} Vi_tri := Vi_tri *2; Vi_triAD :=Vi_triAD div 2; End; RTS(1); {Strobe tới} Delayus(20) {Gây trễ} RTS(0); {Strobe} End; Function Tan_so:Integer; Var Bo_dem, Cu, Nhap_vao:Integer; Cu:Cũ Begin Bo_dem:=0; ReCuime (true); TimeInitus; Cu:=CTS; 124 While TimeReadusCu then Bo_dem:=Bo_dem +1; Cu:=Nhap_vao; End; Tan_so:=Bo_dem; ReCuime (false); End; Procedure TForm1.FormCreate (Sender: TObject); Begin OpenCom (pchar (‘com2:9600, N, 8, 1’)) Timer1.Interval :=100; Timer1.Enabled :=true; End; Procedure TForm1.Timer1Timer(Sender: TObject); Var Gia_tri: Word; Dien_ap: Real; Begin Dout :=0; If CheckBox1.Checked Then Dout := Dout +1; If CheckBox2.Checked Then Dout := Dout +2; If CheckBox3.Checked Then Dout := Dout +4; If CheckBox4.Checked Then Dout := Dout +8; If CheckBox5.Checked Then Dout := Dout +16; If CheckBox6.Checked Then Dout := Dout +32; If CheckBox7.Checked Then Dout := Dout +64; If CheckBox8.Checked Then Dout := Dout +128; Trao_doi; CheckBox9.Checked := ((Din And 1)>0); CheckBox10.Checked := ((Din And 2)>0); CheckBox11.Checked := ((Din And 4)>0); CheckBox12.Checked := ((Din And 8)>0); CheckBox13.Checked := ((Din And 16)>0); CheckBox14.Checked := ((Din And 32)>0); CheckBox15.Checked := ((Din And 64)>0); CheckBox16.Checked := ((Din And 128)>0); Dien_ap :=Alin/255*5; Edit1.Text :=FloatToStrF (Dien_ap, ffGeneral,3,2) +’ V’; Edit2.Text :=FloatToStrF (Tan_so*10, ffGeneral,4,0) +’ Hz’; End; End; 125 Thiết lập chương trình đo lường Mục tiêu: - Biết phần mềm sử dụng phòng thí nghiệm điện tử - Sử dụng phần mềm COMPACT vào đo lường thiết bị Để có phần mềm sử dụng phòng thí nghiệm điện tử cơng cụ, nhiều công ty viết phần mềm mô điều hành thực mạch ghép nối giới thiệu tính nhiều tạp chí chuyên ngành Có thể kể hàng loạt phần mềm quen thuộc như: Daisy, DASYLab, DaqView, DIAdem, ChartView, LogView, WaveView, v…v…Việc mua trực tiếp phần mềm loại thường tốn kinh phí Nhưng việc tham khảo tính giao diện phần mềm cho ta thơng tin bổ ích đánh trực tiếp viết phần mềm ghép nối Dưới xin giới thiệu phần mềm COMPACT, viết ngôn ngữ Delphi Bằng phần mềm COMPACT, tất lối vào/ra khối ghép nối đa điều khiển cho phép thu thập số liệu đo lường cách linh hoạt Người sử dụng lựa chọn cổng COM khởi động chương trình Sau khởi động chương trình, hình lên thực đơn với nhiều chức Trong thực đơn “Overview” ta nhận khả truy nhập trực tiếp lên tất lối vào lối Cả hai lối vào analog dùng cho điện áp tần số mô tả dụng cụ kim Ngoài ra, trường hợp đo điện áp xuất hiển thị số, số byte biến đổi A/D cung cấp Cả hai máy đo sử dụng trực tiếp cho phép thử tìm kiếm lỗi Ngồi lối vào analog, ta có khả truy cập lên lối vào/ra số giao diện đa Tám lối vào số hiển thị LED ảo (vì ảnh LED hình) đồng thời qua hiển thị số byte 255 Ta giám sát trực tiếp trạng thái mạch điện số Các đường dẫn lối số thay đổi phím gạt ảo Trong thị số ta quan sát trạng thái mạch điện số Các đường dẫn lối số thay đổi phím gạt ảo Trong thị số ta quan sát thấy trạng thái chung cổng Hình 6.4: Quan sát trực tiếp tất lối vào lối 126 Hình 6.6: Máy tự ghi xy Chức ‘overview” tương ứng với chưng trình UNI1.EXE giới thiệu trước khản bổ sung thêm thể thiết bị ghi khác chương trình Thiết bị ghi TY vẽ mơt hai đại lượng lôi vào analog theo thời gian Nhờ mà việc quan sat thay đổi theo thời gian đại lượng trở lên đơn giản Dải đo lữa chon mơt giới hạn rộng từ giây đến 24h Đa số đại lượng analong có phù thuộc qua lai.vì việc sử dụng máy ghi XY tỏ đặc biệt thuận tiện phần mềm COMPACT, điện áp biểu diển theo tần số.cách mô tả đặc biệt thích hợp phép đo theo thay đổi tần số.Khi tín hiệu từ tạo hàm(máy phát chức năng) điều khiển đồng thời lối vào tần số giao diện đa lối vào mạch cần khảo sát.tín hiệu lối mạch kiểm tra đưa đến lối vào analog khối ghép nối chỉnh lưu dùng đo lường dãi tần số đáng quan tâm quét tay, để vẽ trình diễn biến thay đổi tần số Thiết bị ghi theo bit (bit-plotter), đoi gọi phận tích logic, tỏ thích hợp với ứng dụng số trạng thái số quan sát trực tiếp khỏng thời gian lựa chon Thiết bị thiết bị ảo tạo hàm hocawcj số hàm Có khả hổ trợ chẳng hạn cho việc kiểm tra lỗi mạch số Một chức thuận tiện khác chương trình định thời (Timer) Bộ định thời cho phép đo xác thời gian xung, đưa đến lối vào CTS Ở đấu vào cơng tắc kiểu nhấn phím lên nguồn +5 V Kiểm tra hoạt động vi mạch Mục tiêu: 127 - Viết chương trình kiểm tra dùng cho vi mạch CMOS loại 4011 Khối ghép nối đa có đủ lối vào lối để kiểm tra khả làm việc bình thường vi mạch số đơn giản Đặc tính minh họa thơng qua thí dụ vi mạch NAND kép bốn, loại 4011 (xem hình 6.9) Nguyên tắc kiểm tra so sánh bảng chân lý vi mạch với trạng thái đo vi mạch Cụ thể là: qua khối ghép nối, máy tính PC tạo trạng thái lối vào xác định đọc trạng thái lối tương ứng vi mạch Ngoài ra, dòng tiêu thụ vi mạch thử đo để kiểm tra, vi mạch CMOS hỏng thường có dòng tiêu thụ lớn bình thường Đoạn chương trình 6.2 thí dụ chương trình dùng để kiểm tra Tám lối số khối ghép nối (giao diện) đếm tiến theo hệ nhị phân Mỗi số 256 trạng thái lối vào vi mạch cần kiểm tra tạo lần, để kiểm tra trạng thái đáp ứng lối vi mạch Thủ tục “Trao đổi” cần gọi theo cách lặp lại hai lần nhau, lần gọi câu trả lời đọc ứng với trạng thái vừa có trước Hình 6.9: Kiểm tra vi mạch CMOS giao diện đa Những phép tính tốn thời gian để suy trạng thái đứng lối né tránh, ta làm việc với bảng so sánh Bảng tạo ta cách nhấn phím “New” vi mạch đưa vào làm đối tượng kiểm tra Một bảng với đầy đủ liệu cần thiết lưu trữ nạp giống tệp nhị phân, chẳng hạn với tên CD4011.BIN Phương pháp kiểm tra dễ dàng mở rộng cho vi mạch khác, ta xếp tệp liệu cụ thể thích hợp với vi mạch Với đế cắm vi mạch thích hợp ta kiểm tra vi mạch thuộc loại khác Mỗi sai lệch khỏi diễn biến bình thường nhận biết dẫn đến thơng báo lỗi Trong số phải kể trường hợp dòng tiêu thụ vượt 0,2 mA 128 B CÂU HỎI VÀ BÀI TẬP Câu 1: Trình bày cách xây dựng phần cứng điều khiển? Câu 2: Nêu phương pháp thiết lập chương trình đo lường? Câu 3: Nêu phương pháp kiểm tra hoạt động vi mạch? Câu 4: Viết chương trình điều khiển giao diện đa năng? Câu 5: Viết chương trình kiểm tra dùng cho vi mạch CMOS loại 4011? Hướng dẫn viết đoạn mã: Chương trình kiểm tra dùng cho vi mạch CMOS loại 4011 Unit ICtest; Interface Uses PORTNC; Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Extctrls, StdCtrls, Menus; Type TForm1 = class (TForm) Edit1 : TEdit; Button1 : TButton; Button2 : TButton; Timer1 :TTimer; OpenDialog1 : TOpenDialog; SaveDialog1 : TSaveDialog; MainMenu1 : TMainMenu; File1 : TMenuItem; SaveAs1 : TMenuItem; Open1 : TmenuItem; New1 : TmenuItem; Procedure FormCreate (Sender : Tobject); Procedure Button3click (Sender : Tobject); Procedure Button2click (Sender : Tobject); Procedure Button1click (Sender : Tobject); Procedure Timer1Timer (Sender : Tobject); Procedure Open1Click (Sender : Tobject); Procedure SaveAsClick (Sender : Tobject); End; Var Form1 : Tform1; Dout, Din, Alin: byte; n: integer; Lci_ra : Array [0 255] of Byte; Testfile : File of byte; Ten_tep : string; Implementation {SR *.DFM} 129 Procedure Trao_doi; Var Vi_tri, Vi_triAD, n, m : Integer; Begin RTS (1); { Strobe an} Delayus (20); { Gây trễ } RTS (0); { Strobe cắt} Vi_tri := 1; Vi_triAD := 129; Din := 0; Ain := 0; For n:=1 to begin If ((Dout AND Vi_tri)>0) then TXD (1) {xuất liệu} Else TXD (0); If DCD = { đọc liệu} Then Din := Din + Vi_tri; If DSR = then { đọc A/D} Ain := Ain + Vi_triAD; DTR (1); {Clock tới} Delayus (20); { Gây trễ} DTR (0); { Clock tắt} Vi_tri := Vi_tri * 2; Vi_triAD := Vi_triAD div 2; End; RTS (1); {Clock tới} Delayus (20); { Gây trễ} RTS (0); { Clock tắt} End; Procedure Tform1.Formcreate(Sender:Tobject); Begin Opencom(pchar(‘com2:9600, n, 2, 8, 1’)); End; Proceduer Tform1.Button3click(sender : Tobject); Var n: integer; Begin (Ten_tep := OpenDialog.FileName;} Ten_tep := ‘TEST.BIN’; AssignFile (Testfile, Ten_tep); {$I-} Rewrite (Testfile) {$I+}; For n:=0 to 255 bein; Write (Testfile, Loi_ra[n]); End; Closefile (Testfile); 130 End; Procedure Tform1.Buttom2Click(Sender:Tobject); Var Gia_tri: Word; Dien_ap, Fehler: Real; Begin Timer1.Enable := false; Fehler := 0; Edit1.Text := ‘Text ’; For n:=1 to 255 begin Dout := n; Trao_doi; Delay (1); Trao_doi; If (Ain>10) or (Din Loi_ra[n]) then begin Fehler := Fehler + 1; Dien_ap := Ain/255*5; Edit1.Text := FloatToStr(N) + ‘, ‘ + floatToStr(Din) + ‘’ + FloatToStr (Loi_ra[n]) +’ ‘+ FloatToStrF(Dien_ap, ffGeneral, 3, 2) + ‘mA’; End; End; If Fehler = then Edit1.Text := ‘Test O.K’; Timer1.Interval := 2000; Timer1.Enabled := true; End; Procedure Tform1.ButtonClick(Sender : Tobject); Var n:integer; Begin {Ten_tep := OpenDialog.FileName;} Timer1.Enable := false; For n:=0 to 255 begin; Dout := n; Trao_doi; Delay (1); Trao_doi; Loi_ra[n] := Din; End; Edit1.text:= ‘Fertig’; Timer1.Enable := true; End; Procedure Tform1.Timer1Timer(Sender: Tobject); Begin Edit1.Text := ‘bereit’; Timer1.Enabled := false 131 End; Procedure Tform1.Open1Click(Sender:Tobject); Begin OpenDialog1.FileName := ‘*.bin’; OpenDialog1.Execute; Ten_tep := OpenDialog1.FileName; If Ten_tep > ‘ ‘ then begin AssignFile (Testfile, Ten_tep); {$I-} Reset (Testfile) {$I+}; For n:=0 to 255 read (Testfile, Loi_ra[n]); Closefile (Testfile); End; End; Procedure Tform1.SaveAslClick(Sender : Tobject); Var n:integer; Begin SaveDialog1.FileName := ‘*.bin’; OpenDialog1.Execute; If Ten_tep > ‘ ‘ then begin AssignFile (Testfile, Ten_tep); {$I-} Rewrite (Testfile) {$I+}; For n:=0 to 255 write (Testfile, Loi_ra[n]); Closefile (Testfile); End; End; End 132 TÀI LIỆU THAM KHẢO Ngô Diên Tập Kỹ thuật ghép nối máy tính Nhà xuất bản: Khoa học Kỹ thuật, năm 2005 Ngơ Diên Tập Lập Trình Ghép Nối Máy Tính Trong Windows Nhà xuất bản: Khoa học Kỹ thuật, năm 2005 Trần Quang Vinh Nguyên lý phần cứng kỹ thuật ghép nối máy tính NXB Giáo dục Phạm Hữu Khang Giáo trình nhập mơn lập trình VB6 NXB Lao động - Xã hội, năm 2005 Phạm Hữu Khang Kỹ xảo lập trình VB6 NXB Lao động - Xã hội, năm 2004 ... trí: + Mơn đun bố trí sau học xong mơn học/mơ đun: Lắp ráp cài đặt máy tính, Đo lường điều khiển máy tính, Kiến trúc máy tính, Sửa chữa máy tính - Tính chất: + Là môn đun chuyên ngành tự chọn - Ý... hoạch thiết kế chương trình điều khiển ghép nối máy tính - Lập trình hồn chỉnh môi trường phát triển với ngôn ngữ hỗ trợ lập trình ghép nối - Có ý thức tự giác, tính kỷ luật cao, tinh thần trách... thiết máy tính giới bên ngồi + Chương trình điều hành hệ thống ghép nối mơ đun có khả đảm nhận việc thu thập thơng tin từ bên điều khiển thiết bị ghép nối với máy tính + Giúp cho người đọc có kỹ lập