Một số ví dụ lập trình với 8259A

Một phần của tài liệu Kỹ thuật vi xử lý (Trang 184 - 192)

II. MẠCH ĐIỀU KHIỂN NGẮT 8259A

2.4. Một số ví dụ lập trình với 8259A

Ví dụ 1: Lập trình cho 8259A để làm việc với vi xử lý 8088 ở chế độ chủ (đơn lẻ), trong hệ có đệm bus, chế độ ưu tiên cố định và với EOI thường, IR kích theo mức, tín hiệu IR0 được gán số hiệu ngắt là 50h.

Giải:

Căn cứ theo các yêu cầu của bài toán và cấu trúc của các từ điều khiển thiết lập ICW ta có:

ICW1 = 00011011 = 1Bh

D0 = 1 Cần thêm ICW4

D1 = 1 Làm việc đơn lẻ, không cần ICW3 D2 = 0 Làm việc với hệ 8086/88

D3 = 1 Đầu vào IR kích theo mức D4 = 1 Bắt buộc với ICW1

D5 = D6 = D7 = 0 được gán bằng không cho hệ 8086/88

ICW2 = 01010000 = 50h. Vì các bit từ T7 về đến T3 của ICW2 phải mã hóa trị số 50h để IR0 - IR7 được mã hóa tiếp bởi các bit T2 - T0 = 000.

ICW3 không cần dùng đến ICW4 = 00001101 = 0Dh

D0 = 1 Làm việc với hệ 8086/88

D1 = 0 EOI thường (phải có EOI trước IRET) D3D2 = 11 làm việc ở chế độ chủ trong hệ có đệm Bus D4 = 0 Chế độ ưu tiên cố định

D5 = D6 = D7 = 0 được gán bằng không cho ICW4

Ví dụ 2: Viết chương trình để khởi đầu cho mạch 8259A ở ví dụ trên nếu nó được nối với 8088 theo sơ đồ trên hình 5.4 với địa chỉ F8h và F9h.

177 Giải:

Đoạn chương trình để khởi đầu cho mạch này có thể là:

MOV AL, 1Bh OUT 0F8h, AL MOV AL, 50h OUT 0F9h, AL MOV AL, 0Dh OUT 0F9h, AL

; ICW1

; ICW1 đưa ra cổng F8h

; ICW2

; ICW2 đưa ra cổng F9h

; ICW4

; ICW4 đưa ra cổng F9h

Ví dụ 3: Giả thiết tại chân IR3 của mạch 8259A ở trên có tín hiệu yêu cầu ngắt. Tại chương trình con phục vụ cho yêu cầu ngắt này có cần phải có lệnh kết thúc ngắt (EOI) không? Nếu có thì hãy viết ra các lệnh đó.

Giải:

Giả thiết tại IR3 có tín hiệu yêu cầu ngắt và CPU đã trả lời chấp nhận ngắt.

8259A sẽ lập bit ISR3 = 1 để ghi nhớ là yêu cầu ngắt IR3 đang được phục vụ. Do trước đó ta đã định nghĩa chế độ kết thúc ngắt bình thường cho 8259A nên trong chương trình con phục vụ ngắt của yêu cầu ngắt này ta phải có lệnh kết thúc ngắt EOI đưa đến 8259A để xóa bit ISR3 được lập trước đó, tạo điều kiện cho các yêu cầu ngắt khác với mức ưu tiên thấp hơn hoặc cho chính yêu cầu ngắt mới tại chân IR3 có thời cơ được phục vụ.

Dạng thường thấy của một chương trình con phục vụ ngắt kiểu này có thể như sau:

PhucvuIR3 Proc MOV AL, 20 OUT 0F8h, AL IRET

PhucvuIR3 Endp

; Thân chương trình con phục vụ ngắt

; OCW2 với EOI để kết thúc

; OCW2 đến 8259A

; Trở về chương trình chính

178

BÀI TẬP ÔN TẬP 1. Khi nào chúng ta cần thực hiện ngắt?

a. Trao đổi dữ liệu b. Điều khiển vào ra c. Chuyển đổi mã d. Đọc/ghi bộ nhớ

2. Các chân INTR và NMI của vi xử lý có tác dụng:

a. Đưa các yêu cầu ngắt từ vi xử lý ra bên ngoài b. Đưa các yêu cầu ngắt từ bên ngoài tới vi xử lý

c. Đưa các yêu cầu ngắt theo hai chiều từ bên ngoài tới vi xử lý và ngược lại d. Tất cả các phương án đều đúng

3. Các kiểu ngắt của 8086/8088 là:

a. Ngắt cứng b. Ngắt mềm

c. Ngắt theo các hiện tượng ngoại lệ d. Cả A, B, C

4. Ngắt cứng INTR là yêu cầu ngắt:

a. Che được

b. Không che được c. Nội bộ

d. Tất cả các phương án trên đều sai 5. Ngắt cứng NMI là yêu cầu ngắt:

a. Che được

b. Không che được c. Nội bộ

d. Tất cả các phương án trên đều sai 6. Ngắt nào mức có ưu tiên cao nhất?

a. Ngắt không che được NMI b. Ngắt nội bộ

c. Ngắt che được INTR

d. Ngắt để chạy từng lệnh INT 7. Ngắt nào có mức ưu tiên thấp nhất?

a. Ngắt không che được NMI

179

b. Ngắt nội bộ

c. Ngắt để chạy từng lệnh INT d. Ngắt che được INTR

8. Lệnh ngắt dạng INT Nlà ngắt:

a. Cứng b. Mềm c. Ngoại lệ d. Cả A, B, C

9. Khi có tràn và xay ra ngắt thì kiểu ngắt được thực hiện là a. Cứng

b. Mềm c. Ngoại lệ d. Cả A, B, C

10. Khi thực hiện phép chia cho số 0 và xảy ra ngắt thì kiểu ngắt được thực hiện là:

a. Cứng b. Mềm c. Ngoại lệ d. Cả A, B, C

11. Số hiệu ngắt N trong ngắt INT N có thể gồm mấy bít?

a. 4 bit b. 8 bit c. 16 bit d. 32 bit

12. Đáp ứng đầu tiên của CPU khi xảy ra ngắt là:

a. Chỉ ra đỉnh mới của ngăn xếp, cất thanh ghi cờ vào đỉnh ngăn xếp

b. Cấm các ngắt khác tác động vào vi xử lý để nó chạy ở chế độ bình thường c. Chỉ ra đỉnh mới của ngăn xếp, cất thanh ghi đoạn vào đỉnh ngăn xếp d. Chỉ ra đỉnh mới của ngăn xếp, cất thanh ghi lệnh vào đỉnh ngăn xếp 13. Đáp ứng cuối cùng của CPU khi xảy ra ngắt là:

a. Chỉ ra đỉnh mới của ngăn xếp, cất thanh ghi cờ vào đỉnh ngăn xếp

b. Cấm các ngắt khác tác động vào vi xử lý để nó chạy ở chế độ bình thường c. Chỉ ra đỉnh mới của ngăn xếp, cất thanh ghi lệnh vào đỉnh ngăn xếp

180

d. Lấy lệnh tại địa chỉ mới của chương trình con phục vụ ngắt kiểu N tương ứng trong bảng vector ngắt

14. Tại cuối chương trình con phục vụ ngắt, vi xử lý sẽ:

a. Chỉ ra đỉnh mới của ngăn xếp, cất thanh ghi cờ vào đỉnh ngăn xếp

b. Cấm các ngắt khác tác động vào vi xử lý để nó chạy ở chế độ bình thường c. Chỉ ra đỉnh mới của ngăn xếp, cất thanh ghi lệnh vào đỉnh ngăn xếp

d. Quay lại chương trình chính tại địa chỉ trở về và với giá trị cũ của thanh ghi cờ được lấy ra từ ngăn xếp

15. 8259A là IC:

a. Điều khiển vào ra b. Điều khiển bus c. Điều khiển ngắt

d. Tất cả các phương án đều sai

16. 8259A có thể xử lý được bao nhiêu yêu cầu ngắt với các mức ưu tiên khác nhau để tạo ra một yêu cầu ngắt đưa đến đầu vào INTR của vi xử lý 8088?

a. 4 b. 8 c. 16 d. 32

17. Mô hình nào giúp 8259A có thể thực hiện được 64 mức ưu tiên ngắt?

a. Song song b. Nối tiếp c. Chủ tớ d. Ngẫu nhiên 18. 8259A sử dụng:

a. Thanh ghi IRR b. Thanh ghi ISR c. Thanh ghi IMR

d. Tất cả các phương án trên

19. Các khối chức năng chính của 8259A bao gồm:

a. Logic điều khiển

b. Khối đệm nối tầng và so sánh c. Đệm Bus dữ liệu

d. Tất cả các phương án trên

181

20. Có bao nhiêu phương thức kết thúc ngắt a. 2

b. 3 c. 4 d. 5

21. 8086 được cấp xung đồng hồ từ:

a. Nguồn đồng hồ từ 8284 b. Nguồn đồng hồ từ 8259

c. Tự đồng bộ (bên trong 8086 có bộ tạo dao động) d. Cả a, b, c đều sai

22. Ngắt cứng từ bên ngoài được CPU nhận biết qua:

a. Chân ~INTA (tích cực mức thấp) b. Chân RESET

c. Bus dữ liệu d. Chân INTR

23. Mục đích của hoạt động ngắt a. Gián đoạn chương trình

b. Tăng hiệu quả làm việc của CPU c. Chuyển tới chương trình con d. Cả a, b, c đều sai

24. Khái niệm về ngắt trong kỹ thuật Vi xử lý:

a.Gián đoạn 1 hoạt động nào đó b. Dừng hẳn1 hoạt động nào đó.

c. Tạm dừng 1 chương trình và chuyển sang 1 thực thi chương trình khác có yêu cầu cao hơn.

d. Cả a, b, c đều đúng

25. Đặc điểm của phương pháp trao đổi tin DMA:

a.Bộ vi xử lý treo.

b. Bộ vi xử lý ở trạng thái trở kháng cao.

c. Quyền điều khiển BUS không thuộc về bộ vi xử lý.

d. Bộ vi xử lý bị treo trong thời gian trao đổi.

26. Tín hiệu nào báo trên các chân đa hợp AD0 đến AD7 đang có tín hiệu địa chỉ a. ALE

182

b. ~DEN c. INTR d. Cả a và b

27. Nếu dùng vùng địa chỉ từ FFF00H đến FFFFF(H) thì có thể quản lý được bao nhiêu vi mạch 8255A?

a. 256 b. 16 c. 64

d. Cả a, b, c đều sai

28. Đoạn chương trình sau gây ra ngắt gì?

OR AL,AL MOV BL,8 SUB AL,8 DIV BL

a. Ngắt do tràn

b. Ngắt do phép chia cho 0 c. Ngắt mềm

d. Không xảy ra ngắt

29. Thanh ghi nào sẽ được cập nhật (nạp giá trị mới) khi có yêu cầu ngắt được đáp ứng:

a. AX b. BX c. CS d. CS và IP

30. Tín hiêu nào báo trên các chân đa hợp AD0 đến AD7 đang có tín hiệu mang các bytes dữ liệu?

a. ALE b. ~DEN c. INTR d. Cả a và b

TÀI LIỆU THAM KHẢO

1. Barry B. Brey, The Intel MicroProcessors 32 bit Prentice-Hall 1995 2. Văn Thế Minh, Kỹ thuật vi xử lý Nhà xuất bản Giáo dục 1997

3. Nguyễn Duy Bảo, Lê Xuân Bằng, Kỹ thuật vi xử lý (phần cơ sở) Hà Nội 2002 4. Đỗ Xuân Thụ, Hồ Khánh Lâm, Kỹ thuật vi xử lý và máy vi tính Nhà xuất bản Giáo dục 2000

5. Ngô Diên Tập, Kỹ thuật ghép nối máy tính Nhà xuất bản Khoa học và Kỹ thuật 2000

6. Quách Tuấn Ngọc, Đỗ Tiến Dũng, Nguyễn Quang Khải biên dịch, Lập trình bằng hợp ngữ và máy tính IBM PC Nhà xuất bản Giáo Dục 1998

184

PHỤ LỤC 1.

ĐÁP ÁN BÀI TẬP ÔN TẬP

Một phần của tài liệu Kỹ thuật vi xử lý (Trang 184 - 192)

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

(251 trang)