1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu hướng dẫn thực tập công nhân điện tử viễn thông part 4 pptx

9 439 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 395,99 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Để 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.. Ví dụ: Viết một chương trình xuất nhập dữ liệu t

Trang 1

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;

end

Sau khi nhấn F9 ta có

Trang 2

2.2.6 Trình đơn chính (MainMenu)

Trình đơn là đối tượng đồ họa bạn thường thấy và rất hay dùng trong các chương trình ứng dụng Trình đơn chính (main menu) là một dãy các lựa chọn nằm phía trên cửa sổ Khi click chuột vào một lựa chọn nào đó, bạn sẽ nhận được danh sách các mục chọn khác sổ xuống Chọn một mụ trên trình đơn, cũng đồng nghĩa với việc yêu cầu chương trình thực hiện một tác vụ nào đó

Đối tượng của trình đơn chính Delphi đặt tên là TMAINMENU

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 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

Trang 3

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

procedure TForm1.FormCreate(Sender: TObject);

begin

caption:=TimeTostr(now());

end;

Kết quả

2.2.8 Đối tượng Comport

Đây là thành phần Delphi dùng để giao tiếp với thiết bị bên ngoài thông qua cổng Com

Comport được Delphi dặt lớp đối tượng có tên TCOMPORT

Tình huống thường được sử dụng của đối tượng TCOMPORT là OnAfterClose ( đó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:

TFORM Name

TMEMO Name

Lines(…)

Memo1 Xóa trắng

Trang 4

Tex Xóa trắng TBUTTON Name

Caption

ButtonOpen Open

TBUTTON Name

Caption ButtonSetting Setting TBUTTON Name

TBUTTON Name

Caption

ButtonClear Clear

TBUTTON Name

TCOMPORT Name

OnRxChar Comport ComportRxChar unit cong;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls, CPort;

type

TForm1 = class(TForm)

Panel1: TPanel;

Memo1: TMemo;

ButtonOpen: TButton;

Edit1: TEdit;

ButtonSend: TButton;

ButtonExit: TButton;

ComPort: TComPort;

ButtonSettings: TButton;

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;

Trang 5

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);

var i: byte;

s: string;

begin

if edit1.Text='' then exit;

s:=chr(strtoint(edit1.Text));

// s:=edit1.text;

for i:=1 to length(s) do comport.WriteStr(s[i]); //Nhận dữ liệu từ Edit1 ghi ra cổng Com

end;

// Nhận dữ liệu từ cổng com xuất ra Memo1

procedure TForm1.ComportRxChar(Sender: TObject; Count: Integer);

var str:string;

begin

Trang 6

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

Trang 7

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

2

IC vi điều khiển 8951 thuộc họ MCS51 có các đặc điểm sau :

+ 4 kbyte Flash

U1

AT89C51

9

18

19

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 36 35 34 33 32

RST

XTAL2

XTAL1

PSEN ALE/PROG EA/VPP

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 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

Trang 8

+ 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

Ngoài chức năng I/O, các chân này dùng làm 8 bit cao của bus địa chỉ cho những

mô hình thiết kế có bộ nhớ chương trình ROM ngoài hoặc bộ nhớ dữ liệu RAM có dung lượng lớn hơn 256 byte

d Port3: là một cổng có công dụng kép trên các chân 10 – 17 của MC 8951

Ngoài chức năng là cổng I/O, những chân này kiêm luôn nhiều chức năng khác nữa liên quan đến nhiều tính năng đặc biệt của MC 8951, được mô tả trong bảng sau:

Bit Tên Chức năng chuyển đổi

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

RxD TxD 0 INT 1 INT T0 T1 ÖWR RD

Ngõ vào dữ liệu nối tiếp

Ngõ xuất dữ liệu nối tiếp

Ngắt ngoài 0

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

Trang 9

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

mức cao (+5V) hoặc mức thấp (GND) Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K) Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng Người ta còn dùng chân EA làm chân cấp điện áp 21V khi lập trình cho EPROM trong 8951

h RST (Reset): Ngõ vào RST trên chân 9 là ngõ reset của 8951 Khi tín hiệu

này được đưa lên mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong 8951 được đưa vào những giá trị thích hợp để khởi động hệ thống

i.OSC: 8951 có một bộ dao động trên chip, nó thường được nối với thạch

anh giữa hai chân 18 và 19 Tần số thạch anh thông thường là 12MHz

j POWER: 8951 vận hành với nguồn đơn +5V ( 20% Vcc được nối vào

chân 40 và Vss (GND) được nối vào chân 20

2 Tìm hiểu về tập lệnh của 89C51

Một số lệnh thường gặp

ACALL addr11 : Gọi chương trình con(gọi đến địa chỉ tuyệt đối)

Mô tả: ACALL gọi không điều kiện một chương trình con đặt tại địa chỉ được chỉ

ra trong lệnh Lệnh này tăng nội dung của PC bởi 2 để PC chứa địa chỉ của lệnh kế lệnh ACALL, sau đó cất nội dung 16 bit của PC vào stack(Byte thấp cất trước) và tăng con trỏ stack SP bởi 2 Do vậy chương trình con được gọi phải được bắt đầu trong cùng khối 2K của bộ nhớ chương trình với Byte đầu tiên của lệnh theo sau lệnh ACALL Các cờ khong bị ảnh hưởng

LCALL addr16 : Gọi chương trình con Chương trình con được gọi phải được bắt

đầu trong cùng khối 64K của bộ nhớ chương trình với Byte đầu tiên của lệnh theo sau lệnh LCALL Các cờ khong bị ảnh hưởng

ADD A,<src-byte>: Cộng

Mô tả: ADD Cộng nội dung của một byte ở địa chỉ được chỉ ra trong lệnh với nội dung thanh chứa và đặt kết quả vào thanh chứa

ADD có 4 kiểu định địa chỉ cho toán hạn nguồn: thanh ghi, trực tiếp, thanh ghi gián tiếp hoặc tức thời

AJMP addr11: Nhảy đến địa chỉ tuyệt đối Đích nhảy đến phải trong cùng khối

2K của bộ nhớ chương trình với byte đầu tiên của lệnh theo sau lệnh AJMP

Ngày đăng: 27/07/2014, 12:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w