Hoạt động ngắt:

Một phần của tài liệu Hệ thống báo động qua đường dây điện thoại (Trang 32 - 36)

Ngắt là sự xảy ra của một điều kiện – một sự kiện – làm cho chương trình hiện hành bị tạm ngưng trong khi điều kiện được phục vụ bởi một chương trình khác. Các ngắt đĩng vai trị quan trọng trong việc thiết kế và hiện thực các ứng dụng của bộ vi điều khiển. Chúng cho phép hệ thống đáp ứng một sự kiện theo cách khơng đồng bộ và xử lý sự kiện trong khi một chương trình khác đang thực thi.

Chương trình xử lý một ngắt được gọi là trình phục vụ ngắt ISR (Interrupt service routine ) hay quản lý ngắt ( Interrupt handler ). Khi một ngắt xuất hiện, việc thực thi chương trình chính bị tạm dừng và CPU thực hiện việc rẻ nhánh đến trình phục vụ ngắt. CPU thực thi ISR để thực hiện một cơng việc và kết thúc việc thực thi này khi gặp lệnh quay về từ một trình phục vụ ngắt; chương trình chính được tiếp tục tại nơi bị tạm dừng. Ta cĩ thể nĩi chương trình chính được thực thi ở mức nền cịn ISR được thực thi ở mức ngắt.

Hình 2.9 : Thực thi chương trình cĩ ngắt và khơng ngắt 1) Tổ chức ngắt của 8051:

Vi điều khiển 8051 cĩ 5 nguyên nhân tạo ra ngắt đĩ là: hai ngắt do bên ngồi, hai ngắt do bộ định thời và một ngắt do port nối tiếp. Khi ta thiết lập trạng thái ban đầu cho hệ thống ( reset hệ thống ) , tất cả các ngắt đều bị vơ hiệu hĩa ( cấm ) và sau đĩ chúng được cho phép riêng rẻ bằng phần mềm ( nếu cĩ sử dụng ngắt trong chương trìmh ).

Khi xảy ra hai hay nhiều ngắt đồng thời hoặc xảy ra một ngắt trong khi một ngắt khác đang được phục vụ, ta cĩ hai sơ đồ xử lý ngắt: sơ đồ chuỗi

CHƯƠNG TRÌNH CHÍNH Thực thi chương trình khơng cĩ ngắt

C/tr chính C/tr chính C/tr chính C/tr chính

ISR ISR ISR

Nhảy đe án ngắt Trở về tư ø lện h ngắt Thực thi chương trình cĩ ngắt

Trang 33 MSSV: 06DT053

SVTH: Phùng Khắc Hy

vịng và sơ đồ mức ưu tiên. Sơ đồ chuỗi vịng là sơ đồ cố định cịn sơ đồ ưu tiên ngắt được lập trình bởi người sử dụng.

2) Cho phép và khơng cho phép ngắt:

Mỗi nguyên nhân ngắt được cho phép hoặc khơng cho phép riêng rẽ thơng qua thanh ghi chức năng đặt biệt định địa chỉ bit, thanh ghi cho phép ngắt cĩ địa chỉ byte là 0A8H

Bit Ký hiệu Địa chỉ bit Mơ tả (1 = cho phép, 0=cấm)

IE.7 EA AFH Cho phép / cấm tồn cục

IE.6 _ AEH Khơng được định nghĩa

IE.5 ET2 ADH Cho phép ngắt do timer 2(8052)

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 ngồi 1

IE.1 ET0 A8H Cho phép ngắt do timer 0

IE.0 EX0 A8H Cho phép ngắt từ bên ngồi 0

Bảng 2.6 : Thanh ghi cho phép ngắt

Để cho phép một ngắt nào đĩ, hai bit sau đây phải được set bằng 1: bit cho phép ngắt riêng rẽ và bit cho phép ngắt tồn cục. Ví dụ để cho phép ngắt từ bên ngồi 0 ta dùng các lệnh sau:

SETB ET1

SETB EA

Hoặc dùng lệnh sau:

MOV IE,#10000010B

Hoặc: MOV IE,#82H

3) Ưu tiên ngắt:

Mỗi một nguyên nhân ngắt được lập trình riêng rẽ để cĩ một trong hai mức ưu tiên thơng qua thanh ghi ưu tiên ngắt IP, thanh ghi này cĩ địa chỉ byte là 0B8H. Nếu cĩ ngắt với mức ưu tiên cao xuất hiện trình phục vụ ngắt cho ngắt cĩ mức ưu tiên thấp phải tạm dừng ( nghãi là bị ngắt ). Ta khơng thể tạm dừng một chương trình phục vụ ngắt cĩ mức ưu tiên cao.

Chương trình chính do được thực thi ở mức nền và khơng được kết hợp với một ngắt nào nên luơn luơn bị ngắt bởi các ngắt cho dù các ngắt này cĩ

mức ưu tiên thấp hay cao. Nếu cĩ hai ngắt với mức ưu tiên ngắt khác nhau xuất hiện đồng thời, ngắt cĩ mức ưu tiên cao sẽ được phuc vụ trước. Sau đây là thanh ghi ưu tiên ngắt IP:

Bit Ký hiệu Địa chỉ bit Mơ tả

IP.7 _ _ Khơng sử dụng

IP.6 _ _ Khơng sử dụng

Ip.5 PT2 0BDH Ưu tiên ngắt do bộ định thời 2

IP.4 PS 0BCH Ưu tiên ngắt do port nối tiếp

IP.3 PT1 0BBH Ưu tiên ngắt do bộ định thời 1

IP.2 PX1 0BAH Ưu tiên ngắt do bên ngồi(ngắt ngồi 1)

IP.1 PT0 0B9H Ưu tiên ngắt do bộ định thời 0

IP.0 PX0 0B8H Ưu tiên ngắt do bên ngồi(ngắt ngồi 0)

Bảng 2.7 : Thanh ghi ưu tiên ngắt IP

Các bit cờ tạo các ngắt được tĩm tắc trong bảng sau:

Ngắt Cờ Thanh ghi SFR và vị trí bit

Bên ngồi 0 IE0 TCON.1

Bên ngồi 1 IE1 TCON.3

Timer 0 TF0 TCON.5

Timer 1 TF1 TCON.7

Port nối tiếp TI SCON.1

Port nối tiếp RI SCON.0

Bảng 2.8 : Các cờ ngắt

Nếu cĩ hai ngắt cĩ cùng mức ưu tiên xuất hiện đồng thời, chuỗi vịng cố định sẽ xác định ngắt nào được phục vụ trước. Chuỗi vịng này sẽ là: ngắt ngồi 0, ngắt do bộ định thời 0,ngắt ngồi 1,ngắt do bộ định thời 1, ngắt do port nối tiếp.

4) Xử lý ngắt:

Khi cĩ một ngắt xuất hiện và được CPU chấp nhận, chương trình chính bị ngắt. Các thao tác sau đây xảy ra:

Trang 35 MSSV: 06DT053

SVTH: Phùng Khắc Hy

ƒ Hồn tất việc thực thi lệnh hiện hành.

ƒ Bộ đếm chương trình PC được cất vào ngăn xếp ( 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.

ƒ Bộ đếm chương trình PC được nạp địa chỉ vector của trình phục vụ

ngắt ISR

ƒ ISR được thực thi.

ISR được thực thi để đáp ứng cơng việc của ngắt. Việc thực thi ISR kết thúc khi gặp lệnh RETI ( trở về từ một trình phục vụ ngắt ). Lệnh này lấy giá trị cũ của bộ đếm chương trình PC từ stack và phục hồi trạng thái của ngắt cũ. Việc thực thi chương trình được tiếp tục ở nơi bị tạm ngưng.

5) Các vector ngắt:

Khi một ngắt được chấp nhận, giá trị được nạp cho bộ đếm chương trình PC được gọi là vector ngắt. Vector ngắt là địa chỉ bắt đầu của trình phục vụ ngắt. Các vector được cho trong bảng sau:

Ngắt Cờ Địa chỉ vector

Reset hệ thống RST 0000H

Bên ngồi 0 IE0 0003H

Timer 0 TF 0 000BH

Bên ngồi 1 IE 1 0013H

Timer 1 TF 1 001BH

Port nối tiếp TI hoặc RI 0023H

Bảng 2.9 : Các vector ngắt

Khi một trình phục vụ ngắt được trỏ tới, cờ gây ra ngắt sẽ tự động bị xĩa về 0 bởi phần cứng. Ngoại lệ các cờ TI và RI đối với các ngắt do port nối tiếp. Nguyên nhân ngắt trên do cĩ hai khả năng tạo ra ngắt nên CPU khơng xĩa cờ ngắt.

Các bit cờ này phải được kiểm tra trong ISR để xác định nguyên nhân ngắt và sau đĩ cờ gây ra ngắt được xĩa bởi phần mềm. Vì các vector ngắt đặt ở đáy của bộ nhớ chương trình, lệnh đầu tiên của chương trình chính thường là một lệmh nhảy qua khỏi vùng nhớ chứa các vector ngắt, ví dụ như lệnh: LJMP 0030H.

CHƯƠNG BA:

GIỚI THIỆU KHÁI QUÁT VỀ IC THU PHÁT TONE DTMF

W X

Một phần của tài liệu Hệ thống báo động qua đường dây điện thoại (Trang 32 - 36)

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

(108 trang)