Tài liệu Lập trình ngắt_chương 12 pdf

28 234 1
Tài liệu Lập trình ngắt_chương 12 pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 1. Giới thiệu 2. Sơ đồ khối và chân 3. Tổ chức bộ nhớ 4. Các thanh ghi chức năng đặc biệt (SFR) 5. Dao động và hoạt động reset 6. Tập lệnh 7. Các mode định địa chỉ (addressing modes) 8. Lập trình IO 9. Tạo trễ 10.Lập trình Timer/Counter 11.Giao tiếp nối tiếp 12. 12. L L ậ ậ p tr p tr ì ì nh ng nh ng ắ ắ t (interrupt programming) t (interrupt programming) 13.Lập trình hợp ngữ 2 Dẫn nhập •Như đã đề cập trong phần 10 (bài toán 10.1), việc sử dụng lệnh “JNB TF0,target” để giám sát cờ TF0 là sự hoang phí thời gian vô cùng lớn ( Bài toán: Đảo bit P3.0 mỗi khi Timer 0 tràn: FOREVER: JNB TF0, SKIP_TOGGLE ; 2MC CPL P3.0 ; 1MC CLR TF0 ; 1MC SKIP_TOGGLE: LJMP FOREVER •Các ngắt cho phép chúng ta quên cái việc kiểm tra tệ hại đó •VĐK tự nó kiểm tra và khi điều kiện thỏa mãn, nó nhảy tới CTC, thực thi nhiệm vu, sau đótrở về chương trình chính • CTC cho bài toán trên chỉ đơn giản như sau: CPL P3.0 RETI ; 2MC 3 Main (a) Thực thi chương trình không có ngắt time Thực thi ở mức ngắt Thực thi ở mức nền Main ISR Main ISR Main ISR Main (a) Thực thi chương trình có ngắt time 12-1. Giới thiệu 4 12-2. Tổ chức ngắt • Có 5 nguyên nhân tạo ngắt đối với họ 51: – 2 ngắt ngoài, – 2 ngắt bộ định thời, – 1 ngắt do port nối tiếp • Khi reset, tất cả các ngắt đều bị vô hiệu hóa • Khi xảy ra 2 hay nhiều ngắt đồng thời, hay 1 ngắt mới xuất hiện trong khi 1 ngắt đang thực thi Æ ta có 2 sơ đồ xử lý ngắt: sơ đồ chuỗi vòng (cố định) và sơ đồ 2 mức ưu tiên (lập trình bởi người dùng) 5 Thanh ghi cho phép ngắt IE Bit Ký hiệu Địa chỉ bit Mô tả IE.7 EA AFH Cho phép/không cho phép toàn cục IE.6 AEH Non-used IE.5 ET2 ADH Cho phép ngắt do Timer 2 IE.4 ES ACH Cho phép ngắt do port nối tiếp IE.3 ET1 ABH Cho phép ngắt do Timer 1 IE.2 EX1 AAH Cho phép ngắt từ bên ngoài ( ngắt ngoài 1) IE.1 ET0 A9H Cho phép ngắt do Timer 0 IE.0 EX0 A8H Cho phép ngắt từ bên ngoài ( ngắt ngoài 0) 6 Thanh ghi ưu tiên ngắt IP Bit Tên Địa chỉ bit Mô tả 7 - - Undefined 6 - - Undefined 5 - - Undefined 4 PS BCh Serial Interrupt Priority 3 PT1 BBh Timer 1 Interrupt Priority 2 PX1 BAh External 1 Interrupt Priority 1 PT0 B9h Timer 0 Interrupt Priority 0 PX0 B8h External 0 Interrupt Priority 7 12-3. Xử lý ngắt Khi có 1 ngắt xuất hiện và được CPU chấp nhận Æ có các thao tác sau: • Hoàn tất việc thực thi lệnh hiện hành •PC được cất vào stack •(Trạng thái của ngắt hiện hành được lưu giữ lại) •Các ngắt được chận lại ở mức ngắt •PC được nạp địa chỉ vector ngắt của ISR •Thực thi ISR 8 Ngắt Cờ gây ngắt SFR & vị trí bit Do bên ngoài (ngắt ngoài 1) IE1 TCON.3 Do bên ngoài (ngắt ngoài 0) IE0 TCON.1 Do bộ định thời 1 TF1 TCON.7 Do bộ định thời 0 TF0 TCON.5 Do port nối tiếp TI SCON.1 Do port nối tiếp RI SCON.0 Do bộ định thời 2 TF2 T2CON.7 (8052) Do bộ định thời 2 EXF2 T2CON.6 (8052) Các cờ gây ngắt 9 Các vector ngắt Ngắt do Cờ Địa chỉ vector Reset hệ thống RST 0000H Ngắt ngoài 0 IE0 0003H Bộ định thời 0 TF0 000BH Ngắt ngoài 1 IE1 0013H Bộ định thời 1 TF1 001BH Port nối tiếp RI hoặc TI 0023H Bộ định thời 2 TF2 hoặc EXF2 002BH 10 12-4. Thiết kế chương trình sử dụng ngắt Khuôn mẫu chương trình có sử dụng ngắt: ORG 0000H ; Điểm nhập sau khi reset LJMP MAIN . ; các điểm nhập của ISR . . ORG 0030H ; điểm nhập của chương trình chính MAIN: . ; chương trình chính bắt đầu . . [...]... interrupt 12 ORG 0030H MAIN: ;bắt dầu chương trình chính _ T0ISR: RETI ; bắt đầu ISR cho Timer 0 ; trở về chương trình chính • Chú ý: Vì các vector ngắt đặt ở đáy chương trình nên lệnh đầu tiên bao giờ cũng là lệnh nhảy dài qua khỏi vùng nhớ chứa các vector ngắt để tới chương trình chính 13 Bài toán 12. 1 Tạo sóng vuông Tạo sóng vuông sử dụng các ngắt do bộ định thời: viết chương trình. . .12- 4-1 ISR kích thước nhỏ ORG 0000H ; Điểm nhập sau khi reset LJMP MAIN ORG 000BH ; điểm nhập của ngắt do Timer 0 T0ISR: ; bắt đầu ISR cho Timer 0 RETI ; trở về chương trình chính MAIN: ; chương trình chính bắt đầu 11 12- 4-2 ISR kích thước lớn ORG LJMP ORG RETI ORG LJMP ORG RETI ORG RETI ORG RETI 0000H ; Điểm... toán 12. 3 Hai sóng vuông • Tạo sóng vuông sử dụng các ngắt do bộ định thời: viết chương trình sử dụng timer 0, timer 1 và các ngắt để tạo 2 sóng vuông tần số 10KHz và 5KHz trên chân P1.0, P1.1 ? 20 12- 5 Các ngắt do port nối tiếp • Các ngắt này xuất hiện khi cờ ngắt phát TI hoặc cờ ngắt thu RI được set bằng 1 • Cờ gây ra ngắt ở port nối tiếp không được xóa bởi phần cứng khi CPU trỏ tới ISR 21 Bài toán 12. 4... A ; gửi ký tự đến port nt A TI 23 12- 6 Các ngắt ngoài • Xảy ra khi có mức thấp hoặc có cạnh âm trên chân /INT0 hoặc /INT1 • Các cờ gây ra các ngắt này là các bit IE0, IE1 của TCON • Việc chọn các ngắt loại tác động mức hay cạnh được lập trình thông qua các bit IT0 và IT1 của TCON • Các cờ gây ngắt IE0, IE1 tự động được xóa khi CPU trỏ tới ISR tương ứng 24 Bài toán 12. 5 Đếm sản phẩm Máy đếm sản phẩm:... phần cứng khi CPU trỏ tới ISR 16 Bài toán 12. 2 Hai sóng vuông Viết chương trình sử dụng các ngắt để tạo đồng thời 2 sóng vuông tần số 7KHz và 0.5KHz trên chân P1.7, P1.6 ? 8051 71us P1.7 1000us P1.6 17 MAIN: ORG LJMP ORG LJMP ORG LJMP ORG MOV MOV SETB SETB MOV SJMP 0000H MAIN 000BH ; địa chỉ vector timer 0 T0ISR 001BH ; địa chỉ vector timer 1 T1ISR 0030H TMOD, #12H ; timer 1 : mode 1 ; timer 0 : mode... 12. 4 Phát ASCII qua port nối tiếp Viết chương trình sử dụng các ngắt để liên tục phát đi tập mã ASCII (không bao gồm các mã điều khiển) đến 1 thiết bị đầu cuối nối với 8051 qua port nối tiếp? ORG 0 LJMP MAIN ORG 0023H LJMP SPISR ORG 0030H 22 MAIN: SPISR: SKIP: MOV MOV SETB MOV MOV MOV SJMP CJNE MOV MOV INC CLR RETI END TMOD, #20H ; timer 1 – mode 2 TH1, #-26 ; 120 0 baud TR1 SCON, #42H ; mode 1, set TI... ISR tương ứng 24 Bài toán 12. 5 Đếm sản phẩm Máy đếm sản phẩm: • Bộ thu phát hồng ngoại • Hiển thị trên 2 LED 7 đoạn 25 Bài toán 12. 6 Điều khiển lò nung Điều khiển lò nung: Sử dụng các ngắt để thiết kế bộ điều khiển lò nung sao cho nhiệt độ được duy trì ở 19oC 21oC 26 Bài toán 12. 7 Báo động Hệ thống báo động: Sử dụng các ngắt để thiết kế 1 hệ thống báo động tạo ra âm hiệu 400Hz trong 1 giây (dùng 1 loa... kế 1 hệ thống báo động tạo ra âm hiệu 400Hz trong 1 giây (dùng 1 loa nối với chân P1.7) mỗi khi bộ cảm biến đặt ở cửa (được nối với chân /INT0) tạo ra 1 chuyển trạng thái từ mức cao xuống mức thấp 27 12- 7 Vấn đề bảo vệ thanh ghi • • • • • ISR thường phải thiết kế sao cho có thể bảo vệ được những thanh ghi sau: PSW DPTR (DPH/DPL) ACC B R0-R7 28 . ngắt time Thực thi ở mức ngắt Thực thi ở mức nền Main ISR Main ISR Main ISR Main (a) Thực thi chương trình có ngắt time 12- 1. Giới thiệu 4 12- 2. Tổ chức ngắt • Có 5. 0023H Bộ định thời 2 TF2 hoặc EXF2 002BH 10 12- 4. Thiết kế chương trình sử dụng ngắt Khuôn mẫu chương trình có sử dụng ngắt: ORG 0000H ; Điểm nhập sau khi reset LJMP

Ngày đăng: 27/01/2014, 02:20

Từ khóa liên quan

Mục lục

  • Dẫn nhập

  • 12-1. Giới thiệu

  • 12-2. Tổ chức ngắt

  • Thanh ghi cho phép ngắt IE

  • Thanh ghi ưu tiên ngắt IP

  • 12-3. Xử lý ngắt

  • Các cờ gây ngắt

  • Các vector ngắt

  • 12-4. Thiết kế chương trình sử dụng ngắt

  • 12-4-1. ISR kích thước nhỏ

  • 12-4-2. ISR kích thước lớn

  • Bài toán 12.1. Tạo sóng vuông

  • Chú ý

  • Bài toán 12.2. Hai sóng vuông

  • Bài toán 12.3. Hai sóng vuông

  • 12-5. Các ngắt do port nối tiếp

  • Bài toán 12.4. Phát ASCII qua port nối tiếp

  • 12-6. Các ngắt ngoài

  • Bài toán 12.5. Đếm sản phẩm

  • Bài toán 12.6. Điều khiển lò nung

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan