Tải bản đầy đủ (.pdf) (32 trang)

Thiết kế giao tiếp máy tính với KIT 8085, chương 6

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (178.57 KB, 32 trang )

Chương 6: VIẾT CHƯƠNG TRÌNH VÀ DỊCH SSEMBLER
CHO CÁC CHƯƠNG TRÌNH VI XỬ LÝ
TẠI SAO PHẢI SỬ DỤNG CHƯƠNG TRÌNH DỊCH
ASSEMBLER?
Khi học vi xử lý, thì mọi sinh viên đều phải học về số Hex,
đổi số giữa các hệ, các số bù,…, các phép toán số học và logic
trên các biến. Ngoài ra, còn phải học môt loại ngôn ngữ máy
khó nhớ, chỉ được viết bằng các ký tự Hex, để nạp vào Kit. Một
cách khác để tạo ra các ký tự khó nhớ này là sử dụng một
chương trình dòch Assembler để dòch từ một file có phần mở
rộng là “asm” sang một file có phần mở rộng “prn” chứa ngôn
ngữ máy. Đây là lý do phải sử dụng một chương trình dòch
Assembler. Với mục đích này, người sử dụng không cần thiết
phải biết nhiều về ngôn ngữa Assembly mà chỉ cần một số kiến
thức nhỏ để gọi chương trình dòch. Đây chính là cách chính để
giảm thiểu thời gian trong việc dòch và nhập dữ liệu vào Kit.
I. Một số điều cần lưu ý khi sử dụng chương trình dòch
Assebler:
Để viết một chương trình và nhập vào Kit, thì đầu tiên phải
biết yêu cầu của chương trình, viết lưu đồ tổng quát, lưu đồ chi
tiết và tiến hành viết chương trình. tất cả các bước trên đều phải
sử dụng lại với cách làm mà đề tài này nêu lên. Tuy nhiên, từ
bước dòch từ ngôn ngữ gợi nhớ sang mã máy thì có nhiều điểm
khác nhau:
1) Khi viết chương trình ở ngôn ngữ gợi nhớ (ngôn ngữ
Assembly), cần phải tuân thủ một số qui đònh riêng để có thể
dùng một chương trình dòch Assembler.
a)Phải dùng từ khóa “Org” ở đầu và “End” ở cuối chương
trình, nhớ chữ end không có chấm cuối câu.
b)Tất cả các lệnh ở dạng gợi nhớ phải ghi chính xác.
c)Ở cuốimột số Hex phải ghi ký tự ‘h’ không kể in hay


thường.
d)Nếu một số Hex bắt đầu bằng một ký tự Alphabet, thì
phải thêm liền ngay trước số hex đó một con sô ‘0’.
e)Một nhãn khai báo không được vượt quá 6 ký tự.
f) Và một số qui đònh khác.
2) Nhập chương trình vào máy tính: để nhập dể dàng và thuận
tiện, có thể sử dụng Norton ở chế độ Edit, và lưu thành một
file có phần mở rộng là “asm”.
3) Dùng chương trình dòch Assembler để dòch file trên thành một
file mới có phần mở rộng la “prn”, file cũ không thay đổi.
4) Sau đó dùng chương trình download để nạp file vào Kit.
Tất cả các yêu cầu trên đều rất dễ nhớ nhờ đi theo một
trình tự nhất đònh một các tự nhiên. Norton là một chương trình
tiện ích rất phổ biến. Chương trình Download có giao diện đã
được tối giản nhất.
II. FILE *.PRN, NỘI DUNG, ĐẶC ĐIỂM, VÀ DỮ LIỆU
CHÍNH:
Chương trình dòch sẽ dòch từ một file x.asm sang môt file
x.prn.
Xem nội dung một file có phần ở rộng prn trong ví dụ sau:
MACRO-80 3.4 01-Dec-80 PAGE 1
Org 0000h
0000' 3E 00 MVI A,00h
0002' 32 A001 STA 0A001h
0005' 3E 80 MVI A,80h
0007' 32 A001 STA 0A001h
000A' 3E 06 MVI A,06h
000C' 32 A000 STA 0A000h
000F' 76 HLT
MACRO-80 3.4 01-Dec-80 PAGE S

Macros:
Symbols:
No Fatal error(s)
Giả sử dòch file x.asm sau:
Thì sẽ được file x.prn sau:
Trong đó, nội dung cần nạp vào Kit là:
3E 00
32 A001
Org 0000h
MVI A,00h
STA 0A001h
MVI A,80h
STA 0A001h
MVI A,06h
STA 0A000h
HLT
END
3E 80
32 A001
3E 06
32 A000
76
Nhưng với thứ tự là:
3E 00
32 01 A0
3E 80
32 01 A0
3E 06
32 00 A0
76

Vấn đề đặt ra là làm thế nào để lọc ra được nội dung chỉ
trên theo thứ tự đúng như nội dung nạp vào Kit. Vấn đề này sẽ
được giải quyết ở chương kế: Chương trình DownLoad.
Chöông VI:
CHÖÔNG TRÌNH DOWNLOAD
I. ĐÔI NÉT VỀ NGÔN NGỮ C:
I.1. Nguồn gốc:
C được phát minh và cài đặt đầu tiên bởi Dennis Ritchie
chạy trên hệ điều hành Unix, được Martin Richards phát triển
trong thập niên 70. C sử dụng chuẩn ANSI được đề nghò lần cuối
cùng vào năm 1989.
I.2. C là ngôn ngữ bậc trung:
Được xem là ngôn ngữ bậc trung vì C tổ hợp những thành
phần tốt nhất của các ngôn ngữ bậc cao với sự điều khiển và
tính linh hoạt của ngôn ngữ Assembly. C cho phép thao tác trên
các bit, các byte và các đòa chỉ – những phần tử cơ bản với các
chức năng của máy tính, mã của chương trình C cũng mang tính
khả chuyển.
I.3. C là ngôn ngữ của lập trình viên:
C được các lập trình viên làm việc thật sự tạo ra, thúc đẩy
và kiểm tra, để rồi C lại mang về cho họ những gì họ mong
muốn: ít hạn chế, ít lời phàn nàn, các cấu trúc khối, các hàm đơn
lẻ, và môt tập đóng kín những từ khóa.
II. CÁC PHƯƠNG PHÁP LẬP TRÌNH:
II.1.
Phương pháp lập trình lệnh:

Chương trình là một dãy các lệnh.

Lập trình là xác đònh các lệnh cùng với thứ tự

các lệnh đó.

Phương pháp này chỉ có giá trò với chương trình
lệnh ( < 100 lệnh).
II.2. Phương pháp lập trình thủ tục:

Chương trình là một hệ thống các thủ tục và
hàm, mỗi thủ tục hay hàm là một dãy các lệnh.

Lập trình là đi xác đònh những thủ và hàm, và
xác đònh các lệnh bên tring thủ tục và hàm đó.

Phương pháp này tiến bộ hơn phương pháp trên.
II.3. Phương pháp lập trình đơn thể:

Chương trình là một hệ thông các đơn thể
(module).

Mỗi đơn thể là một hệ thống thủ tục, hàm có
cùng ý nghóa nào đó. Mỗi thủ tục và hàm là
một dãy các lệnh.

Các đơn thể có được lưu trữ và biên dòch phân
cách, nên dễ dàng lắp ghép. Tuy nhiên phương
pháp này còn thiếu tự nhiên, ngài ra nếu
chương trình quá rộng và quá sâu thì không thể
quản lý được.
II.4. Phương pháp lập trình hướng đối tượng:

Chương trình là một hệ thống các đối tượng, các

đối tượng trong thực tế được diễn tả bằng ngôn
ngữ tin học.

Lập trình là đi xác đònh những đối tượng cùng
những quan hệ của chúng.

Tính tự nhiên của phương pháp này làm nó trở
nên sinh động, mỗi đối tượng có thuộc tính và
hành động riêng như trong thực tế do đó dễ
hình dung, dễ quản lý. Ngoài ra, nhờ dựa trên
các đối tượng nên tính tiến hóa và mở rộng rất
cao.
Trong phần viết chương trình giao diện vi tính, người viết đã
chọn phương pháp lập trình hướng đối tương. Nhờ những ưu
điểm trên, phương pháp này cho phép bổ sung một cách dễ
dàng, tạo điều kiện thuận lợi cho việc bổ sung sau này nếu cần.
III. PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐỐI TƯNG
TRONG C
III.1. Các khái niệm:
Thế giới thực Phương pháp lập
trình
Ngôn ngữ lập trình
Đối tượng bất kỳ
trong thế giới thực
Đối tượng Biến có kiểu lớp
(tương tự kiểu cấu
trúc)
Khái niện chung
của một đối tương
Lớp đối tượng Kiểu lớp(Class-

tương tự kiểu cấu
trúc)
Thuộc tính được
quan tâm của đối
tượng
Thuộc tính Thành phần dữ liệu
của kiểu lớp
Khả năng có thể
thực hiện của một
đối tương
Hành động Thủ tục, hàm của
kiểu lớp
III.2. Phương pháp:
III.2.1. Xác đònh các lớp đối tượng, quan hệ qua
các lớp này (xây dựng sơ đồ lớp)
III.2.2. Thiết kế các lớp (biểu diễn trên máy
tính)
 Thành phần dữ liệu (thuộc tính).
 Thành phần xử lý (hành động).
III.2.3. Cài đặt các lớp: Viết hàm main()
III.2.4. Thử nghiệm.
IV. Thực hiện viết chương trình DownLoad:
IV.1.
Yêu cầu của giao diện:
 Cho phép chọn file sẽ truyền.
 Bằng cách gõ vào tên file
 Bằng cách click chuột để chọn
 Xem trước vùng nhớ cần thiết sẽ sử dụng ở RAM ở
Kit 8085
 Chọn cổng truyền.

 Truyền file có kiểm tra.
IV.2. Chọn ngôn ngữ lập trình:
 Chọn ngôn ngữ C viết ở môi trường Dos
 Lý do: yêu cầu thiết bò (máy tính) không cao, phù
hợp kiến thức người viết.
 Ưu điểm: C là một công cụ lập tình gọn nhẹ, chạy
nhanh, hiệu quả và khép kín. Vì sử dụng C ở môi
trường Dos nên không cần phải kiểm soát các
driver như nếu viết ở môi trường Windows. Ngôn
ngữ C cho phép truy cập trực tiếp các port, dể dàng
kiểm soát từng bit dữ liệu.
 Khuyết điểm: Vùng nhớ trống ở môi trường Dos chỉ
có 640Kbyte, và sau khi khởi động xong (ở màn
hình dos) thì chỉ còn lại trên dưới 400Kbyte, không
cho phép tạo một giao diện phức tạp. Độ phân giải
ở chế độ graph trong Dos không thể so sánh với
môi trường Windows.
IV.3. Chương trình Download:
Danh sách các lớp:
Tên lớp Công dụng
Button.hp
p
Tạo các nút nhấn, và chứa các hành động liên
quan
Disklist.hp
p
Liệt kê các ổ đóa trong máy, và chứa các hành
động liên quan
List.hpp Để vẽ bảng liệt kê các thư mục và file, và chứa
các hành động liên quan

Mouse.h Chứa các thao tác về chuột
Screen.h Chứa các tham số về giao diện màn hình, và chứa
các hành động liên quan
Textbox.h
pp
Vẽ khung nhập liệu (tên file, loại file,..) , và chứa
các hành động liên quan
Xuat.hpp Chứa các thao tác, hành động liên quan đến truyền
file
Lưu đồ của hàm main():
Begin
InitGraphics()
Khởi tạo
thành công
Mainpro()
closegraph()
End
CT báo lỗi
Đóng chế độ
đồ họa
Thoát
InitValues(…)
InitScreen()
InitMouse(…)
S
Đ
Giải thích lưu đồ:
 Chương trình bắt đầu ở begin.
 InitGraphisc():Khởi tạo chế độ đồ họa, vì chương trình này có
sử dụng màn hình ở chế độ đồ họa trong môi trường Dos. Nếu

khởi tạo không thành công thì thông báo lổi khởi tạo và thoát
khỏi chương trình.
 InitValues(…): hàm này còn khởi tạo các giá trò ban đầu cho
màn hình: kích thước cửa sổ, kích thước ký tự.
 InitScreen(): Vẽ màn hình với các giá trò đã khởi tạo
 InitMouse(): Khởi tạo chuột.
 Khởi tạo thành công: kiểm tra, nếu khởi động chuột thành
công thì tiếp tục công việc, nếu không thành công thì xuất ra
thông báo lỗi và thoát khỏi chương trình.
 MainPro là chương trình quản lý mọi thao tác của toàn bộ
chương trình, từ các thao tác nhập xuất đến các thao tác lựa
chọn các tùy chọn.
 Closegraph(): Đóng chế độ đồ họatrước khi thoát khỏi chương
trình.
 End: kết thúc chương trình.
Hàm Main() này được viết bằng ngôn ngữ C :
void main(void)
{
InitGraphics();
Hình 13: lưu đồ
hàm Main() của
chương trình
DownLoad.
InitValues("Chuong trinh truyen du lieu
ra RAM");
InitScreen();
if (!InitMouse(&MainWindow.rViewPort))
{
OutMessage("Mouse driver not found.
Init mouse and return");

getch();
closegraph();
exit(1);
}
ShowMouse();
MainProgram();
closegraph();
}
void main(void): void cho biết rằng hàm main() không trả về
môt giá trò nào, nghóa là trong hàm main này không có lệnh
return() hoặc lệnh là một lệnh return không có tham sô. (void)
cho biết hàm main không cần đối số đưa vào.
Lưu đồ hàm Mainpro():
Begin
Khởi tạo các giá trò
cho các ô nhập text
Khởi tạo các giá trò
cho các nút chọn
A

×