Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
1,38 MB
Nội dung
Bài giảng Kỹ thuật Vi xử lý Ngành Điện tử-Viễn thông Đại học Bách khoa Đà Nẵng của Hồ Viết Việt, Khoa ĐTVT Tài liệu tham khảo [1] Kỹ thuật vi xử lý, Văn Thế Minh, NXB Giáo dục, 1997 [2] Kỹ thuật vi xử lý và Lập trình Assembly cho hệ vi xử lý, Đỗ Xuân Tiến, NXB Khoa học & kỹ thuật, 2001 Chương 6 Các kiểu I/O 6.1 Thăm dò (Polling) 6.2 I/O điều khiển bằng ngắt (Interrupt) - 6.3 DMA (Direct Memory Access) Thăm dò mov dx, F000 L1: in al, dx cmp al, FF je L1 : : A 1 5 8088 Minimum Mode A18 A0 : D7 D6 IOR IOW A19 D5 D4 D3 D2 D1 D0 74LS245 B0 B1 B2 B3 B4 B5 B6 B7 A0 A1 A2 A3 A4 A5 A6 A7 E DIR A 1 4 A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 IOR 5V The Circuit A 1 5 8088 Minimum Mode A18 A0 : D7 D6 IOR IOW A19 D5 D4 D3 D2 D1 D0 A 1 4 A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 IOR 5V 74LS245 B0 B1 B2 B3 B4 B5 B6 B7 A0 A1 A2 A3 A4 A5 A6 A7 E DIR A 1 5 A 1 4 A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 IOW 74LS373 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 D0 D1 D2 D3 D4 D5 D6 D7 OELE Bài toán • Chương trình tạo ra hiệu ứng “LED chạy”: - Ban đầu LED chạy từ trên xuống - Khi nhấn phím thấp nhất thì LED thay đổi hướng chạy - Khi nhấn phím cao nhất thì chương trình kết thúc Chương trình mov dx, F000 mov ah, 00 mov al, 01 L1: out dx, al mov cx, FFFF L2: dec cx jnz L2 cmp ah, 00 jne L3 rol al, 1 cmp al, 01 jne L1 jmp L4 L3: ror al, 1 cmp al, 80 jne L1 L4: mov bl, al in al, dx cmp al, FF je L6 test al, 01 jnz L5 xor ah, FF jmp L6 L5: test al, 80 jz L7 L6: mov al, bl jmp L1 L7: Khuyết điểm của thăm dò • Tốn nhiều thời gian • NgườI sử dụng có thể nhả phím trước khi lệnh in al, dx được thực hiện, do đó bộ vi xi xử lý sẽ không biết rằng ngườI sử dụng đã nhấn phím • Làm sao để khắc phục các khuyết điểm đó? Khuyết điểm của thăm dò mov dx, F000 mov ah, 00 mov al, 01 L1: out dx, al mov cx, FFFF L2: dec cx jnz L2 cmp ah, 00 jne L3 rol al, 1 cmp al, 01 jne L1 jmp L4 L3: ror al, 1 cmp al, 80 jne L1 L4: mov bl, al in al, dx cmp al, FF je L6 test al, 01 jnz L5 xor ah, FF jmp L6 L5: test al, 80 jz L7 L6: mov al, bl jmp L1 L7: Ngắt là gì? Thăm dò While studying, I’ll check the bucket every 5 minutes to see if it is already full so that I can transfer the content of the bucket to the drum. Input Device Memory µP instruction THĂM DÒ [...]... ứng của vi xử lý khi không có ngắt • 1 2 3 4 5 Khi bật công tấc nguồn hoặc nhấn nút reset Bộ vi xử lý được khởi động: – (IP) = 0000h – (CS) = FFFFh – IF = 0 Bộ vi xử lý tìm và lấy 1 byte lệnh IP tăng lên 1 Bộ vi xử lý giải mã và thực hiện lệnh nếu tất cả các byte lệnh của một lệnh đã được lấy Quay trỏ lại bước 2 Phản ứng của vi xử lý khi có ngắt • Thiết bị I/O đưa yêu cầu ngắt đến bộ vi xử lý bằng... cao 6 Bộ vi xử lý sẽ hoàn thành lệnh đang thực hiện trước khi chấp nhận ngắt 7 Bộ vi xử lý chấp nhận ngắt bằng cách đưa ra tín hiệu chấp nhận ngắt ở mức thấp từ chân INTA Lúc này thiết bị I/O sẽ làm cho tín hiệu ở INTR chuyển về mức thấp 8 Thiết bị I/O sẽ đưa số ngắt được gán cho nó đến bộ vi xử lý thông qua D-Bus Bộ vi xử lý sẽ lưu trữ số ngắt này vào một thanh ghi tạm thời Phản ứng của vi xử lý khi... lý sẽ lưu trữ số ngắt này vào một thanh ghi tạm thời Phản ứng của vi xử lý khi có ngắt 9 10 11 12 13 Bộ vi xử lý lưu giá trị hiện thời của thanh ghi cờ vào stack Bộ vi xử lý xoá cờ ngắt Bộ vi xử lý lưu giá trị hiện thời của CS vào stack Bộ vi xử lý lưu giá trị hiện thờI của IP vào stack Bộ vi xử lý nhân số ngắt với 4 Kết quả này chính là địa chỉ của nơi lưu trữ vector ngắt tương ứng trong bảng các... INTERRUPT Input Memory Device Interrupt- Ngắt • Bộ vi xử lý không cần phải kiểm tra tính sẵn sàng của thiết bị I/O • Các thiết bị I/O sẽ báo cho vi xử lý biết khi chúng đã sẵn sàng • Bộ vi xử lý có thể làm công vi c khác khi thiết bị I/O không có nhu cầu trao đổI dữ liệu Interrupt- Ngắt • Một số thuật ngữ cần nhớ: – Yêu cầu ngắt – Đầu vào ngắt – Đầu ra chấp nhận ngắt – Chương trình con phục vụ ngắt –... vector ngắt Interrupt Service Routine (ISR) - Chương trình con phục vụ ngắt Interrupt vector - Vector ngắt • Là chương trình được thực hiện khi có một yêu cầu ngắt được chấp nhận • Kết thúc bằng lệnh IRET • Địa chỉ của chương trình con phục vụ ngắt • Bao gồm 4 byte: – 2 byte cho địa chỉ Offset – 2 byte cho địa chỉ Segment Interrupt Vector Number Số ngắt • Là một số vì có thể đến bộ vi biết được số ngắt... 8088 Minimum Mode D7 D6 D5 D4 D3 D2 D1 D0 D0 D1 D2 D3 D4 D5 D6 D7 74LS373 LE IOR IOW A A A A A A A A A A A A A A A A IOW 11111198 765 43210 543210 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 OE 8088 và một thiết bị vào đơn giản 5V A19 A18 : A0 8088 Minimum Mode D7 D6 D5 D4 D3 D2 D1 D0 A0 A1 A2 A3 A4 A5 A6 A7 74LS245 E IOR IOW A A A A A A A A A A A A A A A A IOR 11111198 765 43210 543210 B0 B1 B2 B3 B4 B5 B6 B7 DIR 8088 và thiết... Minimum Mode A7 A6 A5 A4 D3 D2 D1 D0 A3 A2 A1 A0 B7 B6 B5 B4 74LS245 E IOR IOW INTR INTA B3 B2 B1 B0 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 74LS245 E INTA B7 B6 B5 B4 B3 B2 B1 B0 DIR DIR 5V 5V A A A A A A A A A A A A A A A A IOR 11111198 765 43210 543210 D set Q clr Q INTA INTR 8088 và một thiết bị vào hoạt động theo cơ chế ngắt 5V A19 A18 INT 3 : A0 5V D7 D6 D5 D4 8088 Minimum Mode A7 A6 A5 A4 D3... D1 D0 A3 A2 A1 A0 B7 B6 B5 B4 74LS245 E IOR IOW INTR INTA B3 B2 B1 B0 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 74LS245 E INTA B7 B6 B5 B4 B3 B2 B1 B0 DIR DIR 5V 5V A A A A A A A A A A A A A A A A IOR 11111198 765 43210 543210 D set Q clr Q INTR INTA RESET A19 A18 : A0 8088 Minimum Mode D7 D6 D5 D4 D3 D2 D1 D0 5V The Circuit A0 B0 A1 B1 A2 B2 A3 B3 A4 B4 74LS245 B5 A5 A6 B6 A7 B7 E IOR IOW DIR... co thể có đến 2 56 số ngắt (từ 00h đến FFh) được dùng để phân biệt các yếu cầu ngắt Bởi có nhiều hơn một thiết bị phát yêu cầu ngắt xử lý cho nên để cho bộ vi xử lý có thể nhận thiết bị thì mỗI thiết bị sẽ được gán cho một Interrupt Vector Table Bảng các vector ngắt • Là vùng nhớ được dành riêng để lưu trữ các vector ngắt • Có thể xem như là một mảng các vector ngắt – Mảng này có 2 56 phần tử – Mỗi phần... ngắt 5V A19 A18 : A0 8088 Minimum Mode D7 D6 D5 D4 D3 D2 D1 D0 A7 B7 A6 B6 A5 B5 A4 B4 A3 B3 74LS245 B2 A2 A1 B1 A0 B0 E DIR IOR IOW INTR INTA INTR A A A A A A A A A A A A A A A A IOR 11111198 765 43210 543210 8088 và một thiết bị vào hoạt động theo cơ chế ngắt 5V A19 A18 : A0 D7 B0 D6 A6 B1 D5 A5 B2 D4 A4 B3 D3 8088 Minimum Mode A7 A3 B4 D2 A2 74LS245 B5 D1 A1 B6 D0 A0 B7 E DIR IOR 5V IOW INTR 5V INTA . thuật Vi xử lý Ngành Điện tử -Vi n thông Đại học Bách khoa Đà Nẵng của Hồ Vi t Vi t, Khoa ĐTVT Tài liệu tham khảo [1] Kỹ thuật vi xử lý, Văn Thế Minh, NXB Giáo dục, 1997 [2] Kỹ thuật vi xử lý và. ngắt được gán cho nó đến bộ vi xử lý thông qua D-Bus. Bộ vi xử lý sẽ lưu trữ số ngắt này vào một thanh ghi tạm thời Phản ứng của vi xử lý khi có ngắt 9. Bộ vi xử lý lưu giá trị hiện thời của. ghi cờ vào stack. 10. Bộ vi xử lý xoá cờ ngắt 11. Bộ vi xử lý lưu giá trị hiện thời của CS vào stack. 12. Bộ vi xử lý lưu giá trị hiện thờI của IP vào stack. 13. Bộ vi xử lý nhân số ngắt với 4.