LUÂÄN VĂN TỐT NGHIỆP
34
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ể:
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
Lưu đồ của hàm main():
InitScreen()
InitMouse(…)
S
Đ
LUÂÄN VĂN TỐT NGHIỆP
37
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();
InitValues("Chuong trinh truyen du lieu ra RAM");
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
LUÂÄN VĂN TỐT NGHIỆP
38
Nhấn Esc
Click nút
Send
Xuất các ô nhập
text ra màn hình
Xuất các nút chọn
ra màn hình
AGetEvent()
Click vào
ô Open File
Gọi chương trình
nhập vào đường dẫn
Gọi chương trình
xuất cửa sổ chọn file
LUÂÄN VĂN TỐT NGHIỆP
39
Khởi tạo các giá trò cho các ô nhập text: trên màn hình sẽ có khung cho phép gõ
vào tên file, chương trình con này sẽ khởi tạo các tọa độ, màu chữ cho text.
Khởi tạo các giá trò cho các nút chọn: cũng giống như trên, nhưng đối với các nút
Send, Exit và nút Pulldown.
nhận có chắc là người dùng muốn truyền file không. Nếu trả lời Ok thì chương trình
truyền file sẽ được gọi thi hành.
Sau đây là lưu đồ của chương trình con thực hiện việc truyền File.
Giải thích lưu đồ:
Gọi chương trình cắt file: chương trình cắt file thực chất là một chương trình con
có nhiệm vụ lọc ra những thông tin quan trọng trong file “x.prn” sẽ được truyền
đi, và lưu chúng trong một file “x.tmp” chỉ xuất hiện trong khoảng thời gian
chương trình đang cắt file. Sau đó file “x.tmp” này sẽ bò xoá đi khi quá trình
truyền file hoàn tất. Quá trình truyền file phải sử dụng bước này để các quá trình
bắt tay giữa máy tính và Kit được ổn đònh (thực nghiệm), và việc viết chương
trình được rõ ràng hơn.
LUÂÄN VĂN TỐT NGHIỆP
40
Gọi chương trình xuất file: chương trình này sẽ đọc file có tên là “x.tmp” được
tạo từ chương trình cắt file. Chương trình này sẽ tuần tự đọc file, nhận tín hiệu
bắt tay và gởi dữ liệu cho đến khi hết file.
Trong quá trình truyền file, nếu có sự cố, giả sử không bắt tay được vì lý do nào
đó, thì chươn trình sẽ đợi, thời gian kéo dài sẽ coi như việc truyền file bi lỗi, và
thông báo lỗi sẽ xuất hiện.
Nếu truyền thành công thì thông báo hoàn tất công việc.
Return: Quay trở về chương trình MainPro.
Trong hàm MainPro(), cần quan tâm chương trình con truyền file.
Đúng
Gọi chương trình
Cắt file
Begin
Gọi chương trình
xuất file
Thành công
Thông báo hoàn
tất
công việc
Return.
Thông báo lỗi
công việc
Sai
LUÂÄN VĂN TỐT NGHIỆP
41
MACRO-80 3.4 01-Dec-80 PAGE 1
Org 0000h
chính là 2 của 4 ký tự báo một đòa chỉ.
Nếu sau 2 ký tự tính từ lúc bắt đầu một lệnh là 2 khoảng trắng trở lên thì 2 byte
vừa rồi là 2 byte cuối cùng của một dòng lệnh.
Bắt đầu một chu kỳ mới tìm dòng mã lệnh.
Lưu mã lệnh vào file *.tmp:
Đầu tiền lưu đòa chỉ đầu, đòa chỉ cuối vào file.
Nếu gặp mã lệnh (2 ký tự) thì ghi tiếp vào file.
Nếu gặp mã đòa chỉ thì đổi chổ 2 ký tự sau với 2 ký tự trước của đòa chỉ.
Đến khi gặp đòa chỉ cuối cùng thì ghi vào 2 ký tự cuối cùng và đóng file.
Công việc
trên được mô tả bằng lưu đồ sau:
LUÂÄN VĂN TỐT NGHIỆP
42
Đ
S
S
S
Nhận đòa chỉ đầu
Begin
Nhận đòa chỉ cuối
Đ
S
End
Đ
Đ
Hình 16: Lưu đồ chương trình con Cắt file
B
usy=1
Xuất dliệu ra bus
Strobe=1
ACK=1 & Error=0
AF=1
Đọc Error=0
s
a
Thu nible cao
AF=0
Sai
Đúng
Đúng
Begin
Xuất 00 ra
data bus
AF=0 Strobe=0
LUÂÄN VĂN TỐT NGHIỆP
43
44
Sau khi cắt file, một file mới đã được tạo ra. Chương trình truyền file đến bước
xuất file. Dó nhiên trước khi xuất file cũng cần có những thủ tục mở file, đặt các mức
logic cần thiết để khởi động cổng: mở file hợp lệ, cho bit AF=0, strobe=0.
Giải thích lưu đồ chương trình xuất file:
Trước tiên, máy tính xuất strobe=0, AF=0 bằng chách xuất ra port 37Ahex
số 03hex (xem lại thanh ghi điều khiển ở mục IV chương IV);
Chương trình xuất bắt đầu tại begin.
Đọc Busy\ cho tới khi bằng [1]: đợi kit phát ra Busy=[0] báo hiệu đã sẳn
sàng nhận dữ liệu.
Nếu nhận được Busy\=[1] thì bước xuất dữ liệu được thực hiện, tức là lúc
đó máy tính đọc 2 ký tự đầu tiên của file .tmp và xuất ra port 378 của máy
tính.
Strobe=[1]: để báo cho kit biết dữ liệu đã được gửi ra port để kit biết mà
đọc dữ liệu vào.
ACK=[1] và Error=[0]: khi nhậndl xong kit sẽ báo ACK=[1], Error=0 để
báo cho máy tính biết Kit sẽ gửi dữ liệu để kiểm tra đúng hay sai.
AF=[1]: báo cho Kit biết máy tính sẳn sàng nhận dữ liệu.
Máy tính đọc bit Error cho tới khi Error = [0] để biết Kit đã gửi về dữ liệu
để kiểm tra.
Thu Nible cao: Nhận dữ liệu để kiểm tra.
Cho AF=[0]: đã nhận xong dữ liệu.
Đọc Error cho tới khi Error=[1] để biết đã có dữ liệu mới.
Thu nible thấp.
Kiểm tra dữ liệu: máy tính sẽ phải ghép nối nible cao với nible thấp lại rồi
so sánh với dữ liệu vừa xuất ra, nếu 2 dữ liệu giống nhau thì kết quả xuất
dữ liệu sẽ là đúng. Máy tính sẽ xuất ra số FFhex ở thanh ghi data để báo
đúng, và xuất AF=0 & strobe=0 để báo xuất xong 1 byte dữ liệu. Ngược lại