IV. Thực hiện viết chương trình DownLoad:
Nếu kết quả kiểm tra là đéng thì thực hiện khâu xử lý dữ liệu (lưu dữ liệu vào nơi cần thiết) và quay lại nhận dữ liệu kế tiếp Nếu kết quả là
+ Xuất Busy=1, ACK=0.
+ Đọc dữ liệu và cho ACK=1. Lúc này kit đã nhận được dữ liệu nhưng chưa biết dữ liệu có chắc chắn đúng không. Sau đó bắt đầu kiểm tra. chưa biết dữ liệu có chắc chắn đúng không. Sau đó bắt đầu kiểm tra.
+ Đọc AF cho tới khi bằng 1, biết máy tính sẳn sàng nhận dữ liệu kiểm tra. tra.
+ Xuất nible cao của dữ liệu kiểm tra (bằng 4 bit cao của port B) và bit Error=0 (bit PB3). Error=0 (bit PB3).
+ Đọc AF cho tới khi bằng 0, để biết máy tính sẳn sàng nhận4 bit thấp của dữ liệu kiểm tra. của dữ liệu kiểm tra.
+ Xuất 4 bit thấp và Error bằng 1.
+ Lúc này, máy tính đang nhận và so sánh dữ liệu đã gởi đi. Và kết quả so sánh được báo cho kit ở thanh ghi dữ liệu, tức portA của 8255. Kit so sánh được báo cho kit ở thanh ghi dữ liệu, tức portA của 8255. Kit đọc strobe cho tới khi strobe bằng [0] biết kết quả kiểm tra đã sẳn sàng.
+ Đọc port A lấy kết quả kiểm tra.
+ Nếu kết quả kiểm tra là đéng thì thực hiện khâu xử lý dữ liệu (lưu dữ liệu vào nơi cần thiết) và quay lại nhận dữ liệu kế tiếp. Nếu kết quả là liệu vào nơi cần thiết) và quay lại nhận dữ liệu kế tiếp. Nếu kết quả là sai thì bỏ qua khâu xử lý dữ liệu mà quay trở lại nhập lại dữ liệu cũ. Quá trình xẩy ra cho đến khi khâu xử lý dữ liệu nhận ra đã nhập đến dữ liệu cuối cùng thì kết thúc khâu xử lý sẽ thoát như lưu đồ sau đây:
Start
(c) = 00h
Lấy dữ liệu vừa nhận được làm byte cao của địa
chỉ bắt đầu vùng nhớ đặt dữ liệu.
H (B)
Lấy dữ liệu vừa nhận được làm byte thấp của
địa chỉ bắt đầu vùng nhớ đặt dữ liệu.
L (B)
Lấy dữ liệu vừa nhận được làm byte cao của địa
chỉ chấm dứt vùng nhớ đặt dữ liệu. D (B) (c) = 01h (c) = 02h 1 A Đ Đ Đ S S S