Đưa chương trình ra RAM chung.

Một phần của tài liệu 20101005022225_lvmmt10 (Trang 60 - 62)

b. Mô tả lệnh Z80:

2.4.1. Đưa chương trình ra RAM chung.

Giả sử rằng ta đã có một file nhị phân (có phần mở rộng là.bin; file này là một chương trình của Z80 CPU đã được dịch ra dạng mã máy), nhiệm vụ là phải đưa file này theo từng byte một vào RAM chung của KIT (tương đương với Rom chương trình của KIT Z80). Để làm được việc này phải tuân theo các bước sau:

Bước 1: Cấm Z80.

Tích cực chân RESET của Z80. Lúc này đường data bus của Z80 ở trạng thái trở kháng cao. Các IC 74LS244 (U4 & U5) bị cấm nên các ngõ ra của IC này cũng ở trạng thái trở kháng cao. Do đó kết quả là một phần mạch bị cô lập.

Bước 2: Cấm RAM chung.

RAM chung sẽ được cấm nhằm mục đích đưa data bus về trạng thái trở kháng cao.

Việc này được thực hiện bằng cách cài 1 bit thấp tương ứng qua IC 74LS374 để đưa CS của RAM chung xuống mức logic '0'.

Bước 3: Khởi động 8255.

Để khởi động 8255 trước hết phải chọn các tín hiệu điều khiển thích hợp (CS, A0, A1), các tín hiệu này được gởi đến theo data bus của cổng máy in và được chốt bằng một xung cài được phát ra từ ngõ ra INIT của cổng máy in.

Từ điều khiển được đưa vào 8255 qua IC đệm tuyến 74LS244 đồng thời với việc phát xung WR trên ngõ ra AF của cổng máy in.

8255 được khởi động ở chế độ sau: Mode 0, PA là port xuất, PC là port xuất.

Bước 4: Xác định địa chỉ để truy xuất RAM chung.

Chọn CS 8255 bằng một bit tương ứng trong số 8 bit data của cổng máy in, phát xung cài trên ngõ ra INIT của cổng máy in.

Bắt đầu từ địa chỉ 0000H, đưa byte thấp của địa chỉ ra data bus của cổng máy in, phát tiếp xung WR, đưa tiếp byte cao của địa chỉ ra data bus của cổng máy in, phát xung WR. Lúc này địa chỉ để truy xuất RAM chung đã được đặt tại ngõ ra của 8255.

Bước 5: Ghi data vào RAM chung.

Chọn CS RAM chung bằng một bit tương ứng trên data bus của cổng máy in, phát xung cài trên ngõ ra INIT của cổng máy in. Đưa byte data tương ứng với địa chỉ đã phát lên data bus của cổng máy in, phát xung WR để ghi vào RAM chung.

Bước 6: Đọc data về từ RAM chung và kiểm tra.

Giữ nguyên giá trị địa chỉ, chọn OE của RAM chung bằng 1 bit tương ứng để tiến hành đọc byte vừa được ghi. Đầu tiên đặt pin A/B của 74LS157 ở mức logic '0' để đọc 4 bit thấp của data bus vào thanh ghi trạng thái, cất giá trị vừa đọc được, tiếp đó đặt pin này ở mức logic cao để đọc tiếp 4 bit

cao vào thanh ghi trạng thái, tiến hành khôi phục byte data vừa đọc, so sánh với byte đã phát. Nếu byte phát đi trùng byte thu về thì tiến hành bước tiếp theo, nếu không phát lại byte này. Nếu phát lại 3 lần mà vẫn còn sai thì ngừng và báo lỗi. Các lỗi có thể xảy ra là:

Có byte trong vùng RAM chung bị hư, trường hợp này cần thay RAM, hoặc phần cứng hỏng (các IC 8255 74LS244, 74LS374, 74LS157, 74LS08, 74LS04), hoặc đơn giản hơn là chưa cấp nguồn cho KIT.

Tăng địa chỉ và data tương ứng.

Lặp lại bước 5 và bước 6 cho đến khi hoàn tất.

Chú ý: Ở cùng 1 thời điểm chỉ có 1 trong 2 IC hoặc 8255 hoặc RAM chung được chọn để tránh sự va chạm data bus.

Bước 7: Làm phép đọc giả để biến PA & PC trở thành ngõ vào.

Để khởi động lại 8255 trước hết phải chọn các tín hiệu điều khiển thích hợp (CS, A0, A1), các tín hiệu này được gởi đến theo data bus của cổng máy in và được chốt bằng một xung cài được phát ra từ ngõ ra INIT của cổng máy in.

Từ điều khiển được đưa vào 8255 qua IC đệm tuyến 74LS244 đồng thời với việc phát xung WR trên ngõ ra AF của cổng máy in.

8255 được khởi động ở chế độ sau: Mode 0, PA là port nhập, PC là port nhập.

Một phần của tài liệu 20101005022225_lvmmt10 (Trang 60 - 62)

Tải bản đầy đủ (DOC)

(181 trang)
w