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);
begin
isModified:=true;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if ismodified then
if MessageBox(handle,'Do you want to save
file','Warning',MB_YESNO)=ID_YES then
ButtSaveClick(Sender);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
MemoEditor.Lines.Clear;
end;
procedure TForm1.editFileNameChange(Sender: TObject);
begin
end;
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
tượng hữu dụng và rất thú vị. Timer do Delphi đặt trên bảng công cụ System.
Timer được xem là thành phần VCL không trực quan,, bởi vì bạn không nhìn thấy
lúc chương trình thực thi. Thay vào đó, Timer hoạt động phía sau hậu trường. Nó
được dùng để đếm gian. Nếu có khoảng thời gian nào đó trôi qua, mã lệnh đặt
Xưởng điện tử Bài 6: Lập trình
Thực tập công nhân
Trang 30
trong phương thức xử lý tình huống OnTimer sẽ được gọi thực thi. Nếu Tiẻ vẫn
còn hiệu lực thì OnTimer sẽ được thực thi đều đặn.
Timer được Delphi dặt lớp đối tượng có tên TTIMER
Thuộc tính thường được sử dụng nhất của Timer là
Thuộc tính Ý nghĩa
Interval Khoảng thời gian định kỳ của Timer được Windows cho phép hoạt
động. Giá trị Interval được tính bằng 1/1000 giây. Interval =1000
tương đương với khoảng thời gian 1 giây.
Enabled TRUE: Timer ở trạng thái hoạt động. FALSE: Timer đặt ở trạng thái
vô hiệu lực.
Vi dụ trình hiển thị thời gian.
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
Caption
ButtonSend
Send
TBUTTON Name
Caption
ButtonClear
Clear
TBUTTON Name
Caption
ButtonExit
Exit
TCOMPORT Name
OnRxChar
Comport
ComportRxChar
unit cong;
interface
uses
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
Comport.Close; // Nếu mở thì ta đóng cổng lại và hiển thị ‘ Close’
ButtonOpen.Caption:='Close';
end
else
begin
Comport.Open;
ButtonOpen.Caption:='Open';
end;
end;
// Đặt các tham số cho cổng Com
procedure TForm1.ButtonSettingsClick(Sender: TObject);
begin
Comport.ShowSetupDialog;
Comport.Open;
end;
// Gửi dữ liệu ra cổng Com
procedure TForm1.ButtonSendClick(Sender: TObject);
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.
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 34
BÀI 7
GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ I. MỤC ĐÍCH YÊU CẦU
- Hiện nay, vi xử lý và vi điều khiển đóng vai trò rất quan trọng trong lĩnh vực
điều khiển tự động. Các bộ điều khiển dùng linh kiện rời dần dần được thay thế
bởi các bộ điều khiển dùng vi xử lý. Mặc dù đã được học các vấn đề cơ bản như
quét bàn phím, quét bảng đèn, điều khiển động cơ bước, điều rộng xung,… tuy
nhiên đa số sinh viên đều gặp nhiều khó khăn khi phải phối hợp các lý thuyết cơ
bản trên để được chương trình hoàn chỉnh điều khiển một đối tượng cụ thể. Mục
đích của bài thực hành này giúp sinh viên làm quen với vi điều khiển thông dụng
hiện nay và ứng dụng chúng để điều khiển các đối tượng cụ thể. Bài thực hành tập
trung vào phương pháp thiết kế chương trình sao cho dễ sửa chữa, mở rộng.
- Bài thực hành này yêu cầu sinh viên phải biết trước cấu tạo và lập trình
89C51
II. NỘI DUNG
1. Kiến trúc của vi điều khiển 8951.
29
30
31
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 35
+ 128 byte RAM
+ 4 port I/0 8 bit
+ Hai bộ định thời 16 bits
+ Giao tiếp nối tiếp
+ 64KB không gian bộ nhớ chương trình ngoài
+ 64 KB không gian bộ nhớ dữ liệu ngoài
a.Port0: là port có 2 chức năng, ở trên chân từ 32 đến 39 của MC 8951.
Trong các thiết kế cỡ nhỏ không dùng bộ nhớ ngoài, P0 được sử dụng như là
những cổng I/O. Còn trong các thiết kế lớn có yêu cầu một số lượng đáng kể bộ
nhớ ngoài thì P0 trở thành các đường truyền dữ liệu và 8 bit thấp của bus địa chỉ.
b. Port1: là một port I/O chuyên dụng, trên các chân 1-8 của MC8951.
Chúng được sử dụng với một múc đích duy nhất là giao tiếp với các thiết bị ngoài
khi cần thiết.
c. Port2: là một cổng có công dụng kép trên các chân 21 – 28 của MC 8951.
Ngắt ngoài 1.
Ngõ vào TIMER 0.
Ngõ vào của TIMER 1.
Điều khiển ghi dữ liệu lên bộ nhớ ngoài.
Điều khiển đọc bộ nhớ dữ liệu ngoài.
Bảng 2.1 : Chức năng của các chân trên port3
e. PSEN (Program Store Enable): 8951 có 4 tín hiệu điều khiển, PSEN là
tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép truy xuất bộ nhớ
chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một
EPROM để cho phép đọc các 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ình của một lệnh. Các mã nhị phân của
chương trình được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của
8951 để giải mã lệnh. Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức
cao.
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 36
f. ALE (Address Latch Enable ): Tín hiệu ra ALE trên chân 30 tương hợp
với các thiết bị làm việc với các xử lý 8585, 8088. 8951 dùng ALE để giải đa hợp
bus địa chỉ và dữ liệu, khi port 0 được dùng làm bus địa chỉ/dữ liệu đa hợp: vừa là
bus dữ liệu vừa là byte thấp của địa chỉ 16 bit . ALE là tín hiệu để chốt địa chỉ vào
một thanh ghi bên ngoài trong nữa đầu của chu kỳ bộ nhớ. Sau đó, các đường Port
0 dùng để xuất hoặc nhập dữ liệu trong nữa sau chu kỳ của chu kỳ bộ nhớ.
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và
có thể được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên 8951 là
12MHz thì ALE có tần số 2MHz. Chân này cũng được làm ngõ vào cho xung lập
trình cho EPROM trong 8951.
g. EA (External Access): Tín hiệu vào EA trên chân 31 thường được nối lên