Xưởng điện tử Bài 6: Lập trình
Thực tập công nhân
Trang 22
BÀI 6
LẬP TRÌNH ĐIỀU KHIỂN THIẾT BỊ
I. MỤC ĐÍCH YÊU CẦU
- Với ngành tự động hóa ngày càng phát triển, dùng máy tính để giám sát và
điều khiển ngày càng phổ biến. Với sự hổ trợ của máy tính và ngôn ngữ lập trình
ta sẽ lưu trữ, giám sát, điều khiển hệ thống tự động.
- Yêu cầu sinh viên phải biết sử dụng Delphi và cổng nối tiếp
II. NỘI DUNG
Có rất nhiều ngôn ngữ lập trình được dùng trên máy tính để điều khiển và giám
sát nhưng giới hạn trong bài thực hành này ta chỉ xét đến ngôn ngữ lập trình
Delphi.
Delphi là một ngôn ngữ lập trình có khả biên dịch mạnh mẽ, các ứng dụng
Windows trực quan, giao tiếp với thiết bị bên ngoài thuận lợi.
Trong phần thực tập này chỉ giới hạn dùng Delphi để giao tiếp thiết bị bên
ngoài qua cổng Com.
2.1. Môi trường phát triễn của Delphi.
2.1.1. Cửa sổ chính của chương trình Delphi
ToolBar
Object
Inspector
Code
Explorer
Code
Editor
Form
Designer
Component
Trang 24
2.1.4. Cửa sổ Object Inspector
Với cửa sổ Object Inspector bạn có thể bổ sungm thay đổi thuộc tính
(properties) của các thành phần đối tượng đang có trên Form một cách trực quan.
Chương trình cũng sẽ qui định cách ứng xử của từng đối tượng thông qua các tình
huống (event) qui định sẵn trong cửa sổ Object Inspector.
Thuộc tính là tập hợp dữ liệu cho biết các thông tin và thuột tính của một
đối tượng như chiều rộng, chiều cao, màu sắc, Font chữ …. Hình ảnh đối tượng
mà bạn nhìn thấy trên màng hình, chính là tập hợp nhiều thuột tính khác nhau của
đối tượng tạo nên.
Tình huống là một đoạn mã lệnh được dùng để đáp ứng một yêu cầu nào đó
của delphi và của hệ thống. Khi người dùng kích chuột vào đối tượng , khi một
phím được nhấn hay khi Windows cần vẽ lại một vùng nào đó trên màn hình, bạn
cũng nhận được một tình huống riêng biệt để xử lý.
2.1.5. Cửa sổ soạn thảo mã lệnh Code Editor.
Cửa sổ soạn thảo mã lệnh Code Editor là nơi thật sự thể hiện nội dung của
chương trình. Đó là nơi bạn gõ lệnh, thiết kế nội dung cho thủ tục, hàm, cài đặt các
phương thức cho lớp…. Bạn sẽ không phải viết toàn bộ mã lệnh cho chương trình.
Delphi tự động sản sinh khung mã định sẵn. Nhiệm vụ của lập trình viên đơn giản
chỉ cần hiểu ý nghĩa những đoạn mã Delphi sinh ra và chèn vào đó những lệnh xử
lý thích hợp.
Nếu muốn, bạn vẫn có thể tự tạo lấy bộ khung bằng cách viết lệnh thủ
công, nhưng trừ khi bạn đã nắm vững Delphi và muốn đào sâu thêm, còn không
thì hãy để Delphi tự động thực hiện những công việc đó.
Ví dụ: Chương trình hiển thị chuỗi ‘ Hello World’ trên một cửa sổ Windows.
• Chọn File/New Application từ trình đơn. Delphi tạo ra cho bạn một cửa sổ
Form đặt trong Unit.pas cùng với tập tin dự án Project1.dpr.
• Chọn File/ Save All. Hãy đặt tên cho Unit là MainFrm.pas thay cho
Unit1.Pas và đặt tên cho tập tin dự án là HelloWin.dpr thay cho project.dpr
• Trên bảng công cụ Standard hãy chọn đối tượng Label
Nút nhấn được Delphi đặt trong lớp đối tượng có tên là TBUTTON.
Tình huống thường sử dụng nhất của nút nhấn là OnClick. Khi người dùng
kích chuột vào nút nhấn, tình huống này sẽ được gọi để phản ứng lại bằng
tác vụ nào đó.
2.2.2. Nhãn (Label)
Nhãn là thành phần đơn giản nhất trong thư viện VCL. Đối
tượng nhãn chỉ dùng để trình bày một chuỗi văn bản thông thường, nhằm mục
đích mô tả thêm thông tin cho các đối tượng khác. Ta cũng có thể dùng nhãn để
làm công cụ đưa kết quả ra màn hình dưới dạng chuỗi.
Nhãn được Delphi đặt trong lớp đối tượng có tên là TLABEL.
Thuộc tính thường sử dụng nhất của nhãn là:
Thuộc tính Ý nghĩa
Caption Thể hiện nội dung nhãn
Font Đinh Font chữ, kiểu chữ cho nhãn
Transparent Cho phép màu nền của nhãn trùng với
màu nền của Form
2.2.3. Ô đánh dấu (CheckBox)
Ô đánh dấu được dùng rất phổ biến trong các chương trình Windows. Nó cho
phép người dùng chọn hoặc bỏ chọn yêu cầu nào đó. Mổi lần bạn kích chuột vào ô
CheckBox , nó cho phép thay đổi trạng thái đánh dấu.
Ô đánh dấu Checkbox được Delphi đặt trong lớp đối tượng có tên là
TCHECKBOX.
Thuộc tính thường dùng nhất của Checkbox là Checked mang kiểu Boolean. Nếu
Checked = true thì ô đánh dấu được chọn. Nếu Checked = false thì ô đánh dấu
không chọn. Khi ô đánh dấu được kích chuột để yêu cầu thây đổi trạng thái, thì
tình huống OnClick sẽ phát sinh.
2.2.4. Ô văn bản (Editbox).
Xưởng điện tử Bài 6: Lập trình
Thực tập công nhân
Tình huống thường sử dụng nhất của Memo là OnChange. Tình huống này được
gọi khi người dùng sửa đổi hoặc thêm nội dung vào Memo.
Chọn File/New Application từ trình đơn đặt Form1 đối tượng Tedit, 1 đối tượng
Tmemo, 3 đối tượng Tbutton và một đối tượng Tlabel thiết lập tình huống và
phương thức xử lý từng đối tượng như sau:
Đối tượng Thuột tính Giá trị
TFORM Name
Caption
OnCloseQuery
Form1
Delphi Notepad
FormCloseQuery
TMEMO Name
Lines(…)
Onchange
MemoEditor
Xóa trắng
MemoEditorChange
Xưởng điện tử Bài 6: Lập trình
Thực tập công nhân
Trang 27
TEDIT Name
Tex
EditFileName
C:\My Documents\thu.tex
TLABEL Name
Caption
Label1
File Name
TBUTTON Name
procedure buttLoadClick(Sender: TObject);
procedure buttSaveClick(Sender: TObject);
procedure MemoEditorChange(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Button3Click(Sender: TObject);
procedure editFileNameChange(Sender: TObject);
private
{ Private declarations }
isModified:Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.buttLoadClick(Sender: TObject);
Xưởng điện tử Bài 6: Lập trình
Thực tập công nhân
Trang 28
begin
MemoEditor.Lines.LoadFromFile(editFileName.Text);
isModified:=False;
end;
procedure TForm1.buttSaveClick(Sender: TObject);
begin
if isModified then
MemoEditor.Lines.SaveToFile(editfilename.Text);
end;
procedure TForm1.MemoEditorChange(Sender: TObject);
Dưới đây là các bước hướng dẫn bạn cách xây dựng một thanh trình đơn
chính cho cửa sổ Form.
• Chọn File/ New Application, đặt lên Form đối tượng trình đơn
TmainMenu.
• Để xây dựng các mục chọn trình đơn, bạn hãy kích chuột vào đối tượng
TmainMenu, hoặc chọn thuộc tính Items từ cửa sổ Object Inspector.
Delphi sẽ hiển thị cửa sổ thiết kế trình đơn cho phép bạn nhập vào từng
mục chọn.
• Bạn bắt đầu nhập vào tiêu đề cho từng mục chọn bằng cách thay đổi thuộc
tính caption trong cửa sổ Object Inspector. Delphi sẽ tự tạo ra một mục
chọn rỗng tiếp theo để bạn có thể thêm vào mục chọn mới. Mỗi mục chọn
được xem là một đối tượng có tên gọi là TMENUITEM.
• Để chọn trình đơn con cho một mục chọn, bạn nhấn phím phải chuột vào
mục chọn để Delphi hiện thị chương trình đơn tắt, tiếp theo hãy chọn
Create Submenu để tạo trình đơn con.
2.2.7. Đối tượng Timer
Có lẽ, Timer là thành phần có ít thuộc tính và phương thức xử lý nhất, trong
số những thành phần VCL do Delphi cung cấp. Tuy nhiên , Timer là thành đối
đóng cổng Com), OnAfterOpen ( mở cổng Com), OnRxChar (nhận dữ liệu từ
cổng Com).
Ví dụ:
Viết một chương trình xuất nhập dữ liệu thông qua cổng Com
Chọn File/New Application từ trình đơn đặt Form1 đối tượng Tedit, 1 đối tượng
Tmemo, 5 đối tượng Tbutton thiết lập tình huống và phương thức xử lý từng đối
tượng như sau:
Đối tượng Thuột tính Giá trị
TFORM Name
Caption
Form1
Delphi Notepad
TMEMO Name
Lines(…)
Memo1
Xóa trắng
TEDIT Name Edit1
Xưởng điện tử Bài 6: Lập trình
Thực tập công nhân
Trang 31
Tex Xóa trắng
TBUTTON Name
Caption
ButtonOpen
Open
TBUTTON Name
Caption
ButtonSetting
Setting
TBUTTON Name
ButtonClear: TButton;
procedure ButtonExitClick(Sender: TObject);
procedure ButtonOpenClick(Sender: TObject);
procedure ButtonSettingsClick(Sender: TObject);
procedure ButtonSendClick(Sender: TObject);
procedure ComportRxChar(Sender: TObject; Count: Integer);
procedure ButtonClearClick(Sender: TObject);
procedure Memo1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Xưởng điện tử Bài 6: Lập trình
Thực tập công nhân
Trang 32
implementation
{$R *.DFM}
// Đóng cổng Com và exit chương trình
procedure TForm1.ButtonExitClick(Sender: TObject);
begin
Comport.Close;
Close;
end;
// Đóng mở Cổng Com
procedure TForm1.ButtonOpenClick(Sender: TObject);
begin
if ComPort.Connected then // Kiểm tra cổng Com có mở không
begin
Xưởng điện tử Bài 6: Lập trình
Thực tập công nhân
Trang 33
comport.ReadStr(str,count);
//Memo1.Text := Memo1.Text + str;
Memo1.Text := inttostr(ord(str[1]));
end;
// Xóa vùng Memo1
procedure TForm1.ButtonClearClick(Sender: TObject);
begin
Memo1.Lines.Clear;
end;
procedure TForm1.Memo1Change(Sender: TObject);
begin
end;
end.
Khi chạy chương trình ta được.
III. PHẦN THỰC TẬP CỤ THỂ
• Viết chương trình xuất nhập dữ liệu.
- Giới thiệu về tổ thực tập
- Thiết lập cổng com
- Đóng, mở cổng
- Gửi dữ liệu ra cổng COM
- Nhận dữ liệu từ cổng COM và hiển thị
*. Yêu cầu sinh viên thao tác nhanh, trang trí đẹp.