Bài giảng Vi điều khiển 8051 - Bài 8: I/O và ngắt của 8051
lượt xem 1
download
Bài giảng Vi điều khiển 8051 - Bài 8: I/O và ngắt của 8051 gồm có những nội dung chính sau: Giao tiếp I/O của 8051: Quét LED, hiển thị LCD, bàn phím; các ngắt của 8051: IVT, ISR, cho phép và mức ưu tiên của ngắt, các ngắt bên ngoài. Mời các bạn cùng tham khảo để biết thêm nội dung chi tiết!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Vi điều khiển 8051 - Bài 8: I/O và ngắt của 8051
- I/O và ngắt của 8051 Bài 8 Bộ môn TĐ Khoa KTĐK
- Nội dung nghiên cứu • Giao tiếp I/O của 8051 – Quét LED – Hiển thị LCD – Bàn phím • Các ngắt của 8051 – IVT, ISR – Cho phép và mức ưu tiên của ngắt – Các ngắt bên ngoài
- Quét LED 7 đoạn • Các LED hiển thị là – Nguồn nuôi (10ma trên mỗi LED) – Các chân (8 chân cho 1 LED 7 đoạn) • Hiện LED được quét – Chỉ 1 LED được sáng tại một thời điểm – Các đầu vào a-h được nối tương ứng với nhau • Tổng số chân cần thiết trên cổng là: – 8+số LED – Với VD: 8+4
- Quét LED 7 đoạn • Thuật toán để hiện một giá trị gồm 4 số • Tần số quét đủ lớn để không có cảm giác dung hình – Ít nhất là 30Hz – Thời gian một số bật • 1/30 s – Tần số cao hơn sẽ giảm dung hình tốt hơn (60Hz)
- Quét LED 7 đoạn
- Quét LED 7 đoạn
- Giao tiếp với bàn phím • 16 phím sắp xếp thành 4x4 • Thuật toán – Điều khiển 0 trên 1 hàng – Đọc tất cả các cột – Nếu một phím bất kỳ được ấn cột đó sẽ bằng 0, không ấn cột đó sẽ bằng 1 – Lặp lại cho các hàng tiếp theo • Ví dụ: – Công tắc 4 được ấn • R1← 0, C1:C4 = 1111 • R2← 0, C1:C4 = 0111 – Công tắc 2 được ấn • R1← 0, C1:C4 = 1101
- Giao tiếp với bàn phím
- Giao tiếp với bàn phím ; Ba`n phi'm hex no^'i va`o P1 ; Chuo+ng tri`nh hie^?n thi. phi'm nha^'n ra LED 7 ddoa.n ; P1.0-P1.3: columns ; P1.4-P1.7: rows ; DDi.a chi? LED: A000h LOOP: LCALL READKB ; tri. tra? ve^`: A = 0-15 MOV DPTR,#T7SEG MOVC A,@A+DPTR MOV DPTR,#0A000H ; A000h: ddi.a chi? LED 1 MOVX @DPTR,A SJMP LOOP READKB: PUSH 7 SCAN: MOV A,#11111110B ; col_0 -> GND MOV R7,#0 ; R7 = i CONT: MOV P1,A ; no^'i col i -> GND MOV A,P1 ; ddo.c row JNB ACC.4,ROW_0 ; xe't xem row na`o? JNB ACC.5,ROW_1 JNB ACC.6,ROW_2 JNB ACC.7,ROW_3 RL A ; chua^?n bi. no^'i GND INC R7 ; co^.t tie^'p theo CJNE R7,#4,CONT ; la^`n luo+.t no^'i GND 4 co^.t SJMP SCAN ; quay la.i que't tu+` co^.t 0 ROW_0: MOV A,R7 ; Row=0, Col=R7 ADD A,#0 ; A = 0 + R7 SJMP EXIT ROW_1: MOV A,R7 ; Row=1, Col=R7 ADD A,#4 ; A = 4 + R7 SJMP EXIT ROW_2: MOV A,R7 ; Row=2, Col=R7 ADD A,#8 ; A = 8 + R7 SJMP EXIT ROW_3: MOV A,R7 ; Row=3, Col=R7 ADD A,#12 ; A = 12 + R7 EXIT: POP 7 RET T7SEG: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H, DB 08H,03H,46H,21H,04H,0EH END
- Giao tiếp với LCD • LCD là một giải pháp hiển thị văn bản dễ dàng và kinh tế đối với hệ thống nhung – Cấu hình thay đổi (từ 1x20 tới 8x20), giá từ 5$ – LCD hình cũng có sẵn trên thị trường • Các LCD thông minh có các bộ giải mã ASCII bên trong, các bộ tạo ký tự và mạch điều khiển LCD • Một số LCD có khả năng tạo các ký tự tuỳ ý – Người dùng định nghĩa RAM chứa ký tự – Lập trình RAM này với mẫu tham số – Sau đó dùng chúng như các ký tự ASCII gốc – Thông thường MSB chỉ ra sự khác nhau giữa ký tự ASCII chuẩn với ký tự do người dùng định nghĩa
- Giao tiếp LCD có cả chữ và số • Các chân ra – 8 chân dữ liệu D7:D0 – RS: chọn dữ liệu hoặc lệnh – RW: Đọc hoặc ghi – E: Cho phép (chốt dữ liệu) – Vee: Điều khiển độ tương phản • RS=0→ cmd – RS=1 → data • E=1 → cho phép (xung H- L) • Các mã lệnh LCD – Xoá hiển thị, di chuyển con trỏ – Hiển thị dịch chuyển
- LCD có cả chữ và số - Thuật toán • Thuật toán mov A, command call cmd delay mov A, another_cmd call cmd delay mov A, #’A’ call data delay mov A, #’B’ call data delay ….
- LCD có cả chữ và số - Thuật toán • Kiểm tra trạng thái bận: Sau khi đọc từ LCD, D7 sẽ chứa cờ bận. Kiểm tra cờ này trước khi gửi một lệnh mới bất kỳ tới LCD, hoặc sử dụng thời gian giữ chậm k lớn.
- Các ngắt của 8051 • Các ngắt là gì? – Cách để dừng bộ xử lý mặc dù nó đang làm việc để phục vụ một nhiệm vụ khác • Tại sao và ở đâu chúng ta cần sử dụng ngắt – Phục vụ nhiều thiết bị giao tiếp – Hệ thống đa nhiệm vụ • Ngắt ở 8051 – 2 ngắt bên ngoài, hai cho bộ định thời và một cho cổng nối tiếp
- Sự khác nhau giữa phương pháp dò và ngắt • Dò: – CPU giám sát các thiết bị được phục vụ một cách lần lượt, tìm “cờ yêu cầu phục vụ” – Khi nào nó thấy một yêu cầu, nó phục vụ yêu cầu đó và sau đó tiếp tục dò – CPU luôn bận dò kể cả khi không có yêu cầu • Ngắt: – Nếu một thiết bị sẵn sàng và cần phục vụ, nó sẽ yêu cầu CPU – CPU dừng công việc nó đang thực hiện và phục vụ thiết bị đó. Sau đó quay trở lại nhiệm vụ ban đầu trước lúc bị ngắt – CPU luôn rỗi khi không có yêu cầu ngắt từ thiết bị giao tiếp
- Chương trình con phục vụ ngắt • CPU có một số lượng ngắt cố định • Mọi ngắt phải kết hợp với một đoạn mã gọi là chương trình con phục vụ ngắt hoặc ISR – Nếu ngắt x được CPU phục vụ, thì ISR-x được thực hiện • Kiến trúc CPU định nghĩa địa chỉ mã xác định cho mỗi ISR, địa chỉ này được lưu ở bảng vectơ ngắt IVT • Các ISR là chương trình con cơ bản, nhưng chúng kết thúc bởi lệnh RETI, chứ không phải RET • Khi một ngắt xuất hiện, CPU nạp địa chỉ mã lệnh của ISR từ bảng vectơ ngắt và thực hiện nó
- Bảng vectơ ngắt của 8051 • Mỗi ngắt có 8 byte cho ISR của nó • Nếu ISR quá lớn để đặt vào 8 byte thì ta sử dụng ljmp
- Thực hiện ngắt 1. CPU hoàn thành lệnh nó đang thực hiện và lưu PC vào ngăn xếp 2. CPU lưu vào bên trong các trạng thái hiện thời của tất cả các ngắt 3. Nạp địa chỉ của ISR của ngắt đó từ IVT và nhảy tới địa chỉ đó 4. Thực hiện ISR cho đến khi gặp lệnh RETI 5. Trong lúc RETI, CPU nạp trở lại PC cũ từ ngăn xếp và tiếp tục công việc nó đang thực hiện trước khi ngắt xuất hiện
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Vi điều khiển 8051
30 p | 571 | 207
-
Bài 5: Mạch vi điều khiển
8 p | 510 | 179
-
Bài giảng Lập trình Assembly: Chương 7 - Nguyễn Văn Thọ
14 p | 151 | 18
-
Bài giảng Vi xử lí: Chương 3 - Hồ Trung Mỹ
50 p | 62 | 15
-
Bài giảng Vi xử lý: Chương 3.1 - Bùi Minh Thành
101 p | 119 | 11
-
Bài giảng Vi xử lý: Chương 3.6 - Bùi Minh Thành
39 p | 79 | 6
-
Bài giảng Vi xử lý: Chương 3.8 - Bùi Minh Thành
49 p | 88 | 6
-
Bài giảng Vi xử lý: Chương 3.9 - Bùi Minh Thành
48 p | 83 | 6
-
Bài giảng Hệ nhúng: Chương 3 - Đỗ Công Thuần
66 p | 15 | 2
-
Bài giảng Vi điều khiển 8051 - Bài 1: Tổng quan về 8051
10 p | 2 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 2: Cấu trúc bộ vi điều khiển 8051 - Giới thiệu về lập trình hợp ngữ
24 p | 2 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 3: Lập trình hợp ngữ cho bộ vi điều khiển 8051
21 p | 1 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 4: Lập trình cho 8051 - Số học và lôgic
22 p | 1 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 5: Giao tiếp của 8051
15 p | 5 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 6: Giao tiếp của 8051 - Tạo bản đồ địa chỉ
15 p | 4 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 7: I/O của 8051 và 8255
15 p | 3 | 1
-
Bài giảng Vi điều khiển 8051 - Bài 9: Các bộ định thời của 8051
15 p | 1 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn