1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng lý thuyết vi xử lý-Chương 6: Hoạt động ngắt doc

19 406 2
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 293,54 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngắt Ngắt Interrupt Interrupt là là việc việc xảy xảy ra ra một một ñiều ñiều kiện kiện làm làm cho cho chương chương trình trình ñang ñang thực thực thi thi bị bị tạm tạm dừng dừng ñể ñ

Trang 1

KHOA CÔNG NGHỆ ðIỆN TỬ

BỘ MÔN ðIỆN TỬ CÔNG NGHIỆP

BÀI GIẢNG LÝ THUYẾT

VI XỬ LÝ

TP HỒ CHÍ MINH THÁNG 09

THÁNG 09 20092009

VI XỬ LÝ

Giáo Giáo viên: PHẠM QUANG TRÍviên: PHẠM QUANG TRÍ

Trang 2

KHOA CÔNG NGHỆ ðIỆN TỬ

BỘ MÔN ðIỆN TỬ CÔNG NGHIỆP

CHƯƠNG 6

HOẠT ðỘNG NGẮT

Trang 3

 Ngắt Ngắt ((Interrupt Interrupt)) là là việc việc xảy xảy ra ra một một ñiều ñiều kiện kiện làm làm cho cho chương

chương trình trình ñang ñang thực thực thi thi bị bị tạm tạm dừng dừng ñể ñể quay quay sang sang thực thực thi

thi một một chương chương trình trình khác khác Sau Sau khi khi thực thực thi thi xong xong ñoạn ñoạn chương

chương trình trình này này sẽ sẽ quay quay trở trở về về ñể ñể thực thực thi thi tiếp tiếp chương chương trình

trình ñang ñang bị bị tạm tạm dừng dừng

 CPU CPU không không thể thể thực thực thi thi nhiều nhiều hơn hơn một một lệnh lệnh ở ở một một thời thời ñiểm

ñiểm nhưng nhưng CPU CPU có có thể thể tạm tạm ngưng ngưng việc việc thực thực thi thi một một

GIỚI THIỆU CHUNG

ñiểm

ñiểm nhưng nhưng CPU CPU có có thể thể tạm tạm ngưng ngưng việc việc thực thực thi thi một một chương

chương trình trình ñể ñể thực thực thi thi một một chương chương trình trình khác khác rồi rồi sau sau ñó ñó quay

quay về về thực thực thi thi tiếp tiếp tục tục chương chương trình trình ñang ñang bị bị tạm tạm ngưng ngưng

 Một Một hệ hệ thống thống ñược ñược ñiều ñiều khiển khiển bởi bởi ngắt ngắt cho cho ta ta ảo ảo tưởng tưởng nhiều

nhiều công công việc việc ñang ñang ñược ñược vi vi xử xử lý lý thực thực hiện hiện ñồng ñồng thời thời

Trang 4

 Sự Sự giống giống nhau nhau và và khác khác nhau nhau giữa giữa ngắt ngắt ((Interrupt Interrupt)) và và gọi gọi chương

chương trình trình con con ((Call Call Sub Sub Rountine Rountine))::

 GiốngGiống nhaunhau::

Làm

Làm tạmtạm dừngdừng chươngchương trìnhtrình ñangñang thựcthực thi,thi, thựcthực thithi mộtmột chương

chương trìnhtrình khác,khác, sausau ñóñó quayquay vềvề ñểñể thựcthực thithi tiếptiếp tụctục chương

chương trìnhtrình ñangñang bịbị tạmtạm dừngdừng

 KhácKhác nhaunhau::

GIỚI THIỆU CHUNG

 KhácKhác nhaunhau::

Trang 5

 Biểu Biểu diễn diễn việc việc thực thực thi thi chương chương trình trình có có ngắt ngắt và và không không có có ngắt

ngắt::

GIỚI THIỆU CHUNG

Trang 6

 Các Các nguồn nguồn ngắt ngắt của của 8051 8051::

1

1 NgắtNgắt dodo tíntín hiệuhiệu bênbên ngoàingoài 00

2

2 NgắtNgắt dodo tíntín hiệuhiệu bênbên ngoàingoài 11

3

3 NgắtNgắt dodo TimerTimer 00

4

4 NgắtNgắt dodo TimerTimer 11

5

5 NgắtNgắt dodo portport nốinối tiếptiếp

TỔ CHỨC NGẮT CỦA 8051



 LưuLưu ýý::

 KhiKhi tata resetreset hệhệ thốngthống thìthì tấttất cảcả cáccác ngắtngắt ñềuñều bịbị cấmcấm hoạthoạt

ñộng ñộng

 CácCác nguồnnguồn ngắtngắt nàynày ñượcñược chocho phépphép hoặchoặc cấmcấm hoạthoạt ñộngñộng

bằng bằng lệnhlệnh dodo ngườingười lậplập trìnhtrình thiếtthiết lậplập

 ðểðể giảigiải quyếtquyết trườngtrường hợphợp haihai hayhay nhiềunhiều ngắtngắt xảyxảy rara ñồngñồng thờithời

hoặc

hoặc mộtmột ngắtngắt xảyxảy rara trongtrong khikhi mộtmột ngắtngắt kháckhác ñangñang ñượcñược thực

thực thithi thìthì CPUCPU dựadựa vàovào haihai yếuyếu tốtố:: ưuưu tiêntiên ngắtngắt vàvà chuỗichuỗi vòng

vòng

Trang 7

 Các Các cờ cờ báo báo tín tín hiệu hiệu ngắt ngắt ((c c ng t ng t))::



 IEIE00 – CờCờ ngắtngắt ngoàingoài 00



 IEIE11 – CờCờ ngắtngắt ngoàingoài 11



 TFTF00 – CờCờ ngắtngắt TimerTimer 00



 TFTF11 – CờCờ ngắtngắt TimerTimer 11



 TITI vàvà RIRI – CờCờ ngắtngắt portport nốinối tiếptiếp

TỔ CHỨC NGẮT CỦA 8051



 LưuLưu ýý::

 CờCờ ngắtngắt ñượcñược ñặtñặt bằngbằng 11 khikhi tíntín hiệuhiệu ngắtngắt tươngtương ứngứng xảyxảy rara

 CờCờ ngắtngắt ñượcñược xóaxóa bằngbằng 00 khikhi ISRISR củacủa ngắtngắt ñượcñược thựcthực thithi

(ngoại (ngoại trừtrừ cờcờ TITI vàvà RIRI phảiphải xóaxóa bằngbằng lệnhlệnh))

Trang 8

 Chọn Chọn loại loại kích kích hoạt hoạt cho cho ngắt ngắt ngoài ngoài::



 CóCó 22 kiểukiểu kíchkích hoạthoạt chocho ngắtngắt ngoàingoài:: kíchkích hoạthoạt mứcmức hayhay kíchkích

hoạt hoạt cạnhcạnh



 ViệcViệc chọnchọn kiểukiểu kíchkích hoạthoạt ñượcñược lậplập trìnhtrình thôngthông quaqua cáccác bitbit

IT IT00 vàvà ITIT11

TỔ CHỨC NGẮT CỦA 8051

Trang 9

 Chọn Chọn loại loại kích kích hoạt hoạt cho cho ngắt ngắt ngoài ngoài::



 LưuLưu ýý::

 ITIT00,, ITIT11 ñượcñược ñặtñặt bằngbằng 00 khikhi chọnchọn kiểukiểu kíchkích mứcmức

 ITIT00,, ITIT11 ñượcñược ñặtñặt bằngbằng 11 khikhi chọnchọn kiểukiểu kíchkích cạnhcạnh xuốngxuống

 ThờiThời giangian duyduy trìtrì táctác ñộngñộng củacủa tíntín hiệuhiệu ngắtngắt

TỔ CHỨC NGẮT CỦA 8051

Trường hợp ngắt ngoài kích cạnh xuống

Trang 10

 Chọn Chọn loại loại kích kích hoạt hoạt cho cho ngắt ngắt ngoài ngoài::



 LưuLưu ýý::

 ITIT00,, ITIT11 ñượcñược ñặtñặt bằngbằng 00 khikhi chọnchọn kiểukiểu kíchkích mứcmức thấpthấp

 ITIT00,, ITIT11 ñượcñược ñặtñặt bằngbằng 11 khikhi chọnchọn kiểukiểu kíchkích cạnhcạnh xuốngxuống

 ThờiThời giangian duyduy trìtrì táctác ñộngñộng củacủa tíntín hiệuhiệu ngắtngắt

TỔ CHỨC NGẮT CỦA 8051

Trường hợp ngắt ngoài kích mức thấp

Trang 11

 Thanh Thanh ghi ghi cho cho phép phép ngắt ngắt ((IE IE:: Interrupt Interrupt Enable Enable))::

CÁC CÁC THANH GHI SỬ DỤNG TRONG NGẮT THANH GHI SỬ DỤNG TRONG NGẮT

Trang 12

 Thanh Thanh ghi ghi ưu ưu tiên tiên ngắt ngắt ((IP IP:: Interrupt Interrupt Priority Priority))::

CÁC CÁC THANH GHI SỬ DỤNG TRONG NGẮT THANH GHI SỬ DỤNG TRONG NGẮT

Trang 13

 Chuỗi Chuỗi vòng vòng ngắt ngắt ((Interrupt Interrupt Polling Polling Sequence Sequence))::

•• ðểðể giảigiải quyếtquyết vấnvấn ñềñề haihai hayhay nhiềunhiều tíntín hiệuhiệu ngắtngắt cócó mứcmức ưuưu tiên

tiên giốnggiống nhaunhau xuấtxuất hiệnhiện ñồngñồng thờithời

•• ThứThứ tựtự chuỗichuỗi vòngvòng (từ(từ thấpthấp ñếnñến cao)cao):: NgắtNgắt ngoàingoài 00 →→ Ngắt Timer

Timer 00 →→ NgắtNgắt ngoàingoài 11 →→ NgắtNgắt TimerTimer 11 →→ NgắtNgắt portport nốinối tiếptiếp

CÁC CÁC THANH GHI SỬ DỤNG TRONG NGẮT THANH GHI SỬ DỤNG TRONG NGẮT

Timer

Timer 00 →→ NgắtNgắt ngoàingoài 11 →→ NgắtNgắt TimerTimer 11 →→ NgắtNgắt portport nốinối tiếptiếp

Trang 14

 Các Các vectơ vectơ ngắt ngắt của của 8051 8051::

•• VectơVectơ ngắtngắt làlà ñịañịa chỉchỉ bắtbắt ñầuñầu chươngchương trìnhtrình phụcphục vụvụ ngắtngắt ((ISRISR)) của

của ngắtngắt tươngtương ứngứng

•• BảngBảng quiqui ñịnhñịnh ñịañịa chỉchỉ bắtbắt ñầuñầu củacủa cáccác ISRISR::

VECTƠ NGẮT CỦA 8051

Trang 15

 Khuông Khuông mẫu mẫu chương chương trình trình KHÔNG KHÔNG sử sử dụng dụng ngắt ngắt::

ORG 0000H ;ðiểm nhập của reset hệ thống.

MAIN:

……… ;Các lệnh của chương trình chính.

……… ;;

……… ;;

END ;Chỉ dẫn kết thúc chương trình.

THIẾT KẾ CHƯƠNG TRÌNH CÓ SỬ DỤNG NGẮT

END ;Chỉ dẫn kết thúc chương trình.

Trang 16

 Khuông Khuông mẫu mẫu chương chương trình trình CÓ CÓ sử sử dụng dụng ngắt ngắt::

ORG 0000H ;ðiểm nhập của reset hệ thống.

SJMP SJMP MAINMAIN ;Lệnh nhảy ñể vượt qua các ISR.

……… ;ðiểm nhập của các ISR.

……… ;;

……… ;;

ORG 0030H ;ðiểm nhập của chương trình chính.

THIẾT KẾ CHƯƠNG TRÌNH CÓ SỬ DỤNG NGẮT

ORG 0030H ;ðiểm nhập của chương trình chính.

MAIN:

……… ;Các lệnh của chương trình chính.

……… ;;

……… ;;

END ;Chỉ dẫn kết thúc chương trình.

Trang 17

 Ví Ví d d 1 1:: Dùng Dùng ngắt ngắt Timer Timer 0 0 và và ngắt ngắt ngoài ngoài 1 1

ORG 0000H ;ðiểm nhập của reset hệ thống.

SJMP

SJMP MAINMAIN ;Lệnh nhảy ñể vượt qua các ISR.

ORG 000BH ;ðiểm nhập cho ISR của Timer 0.

……… ;ISR của Timer 0 ( ;ISR của Timer 0 (dung lượng dung lượng ≤ ≤ 8 byte 8 byte) ).

………

RETI ;Kết thúc ISR của Timer 0.

ORG 0013H ;ðiểm nhập cho ISR của ngắt ngoài 1.

THIẾT KẾ CHƯƠNG TRÌNH CÓ SỬ DỤNG NGẮT

ORG 0013H ;ðiểm nhập cho ISR của ngắt ngoài 1.

……… ;ISR của ngắt ngoài 1 ( ;ISR của ngắt ngoài 1 (dung lượng dung lượng ≤ ≤ 8 byte 8 byte) ).

………

RETI ;Kết thúc ISR của ngắt ngoài 1.

ORG 0030H ;ðiểm nhập của chương trình chính.

MAIN:

……… ;Các lệnh của chương trình chính.

……… ;;

……… ;;

END ;Chỉ dẫn kết thúc chương trình.

Trang 18

 Ví Ví d d 2 2:: Dùng Dùng ngắt ngắt Timer Timer 0 0 và và ngắt ngắt ngoài ngoài 1 1

ORG 0000H ;ðiểm nhập của reset hệ thống.

SJMP MAIN ;Lệnh nhảy ñể vượt qua các ISR.

ORG 000BH ;ðiểm nhập cho ISR của Timer 0.

JMP T0_ISR ;Lệnh nhảy ñến ISR của Timer 0.

ORG 0013H ;ðiểm nhập cho ISR của ngắt ngoài 1.

JMP EX1_ISR ;Lệnh nhảy ñến ISR của ngắt ngoài 1.

ORG 0030H ;ðiểm nhập của chương trình chính.

MAIN:

………

THIẾT KẾ CHƯƠNG TRÌNH CÓ SỬ DỤNG NGẮT

……… ;Các lệnh của chương trình chính.

……… ;;

SJMP $ ;Lệnh cách ly chương trình.

T0_ISR:

……… ;ISR của Timer 0 ( ;ISR của Timer 0 (dung lượng dung lượng > 8 byte > 8 byte) ).

………

RETI ;Kết thúc ISR của Timer 0.

EX1_ISR:

……… ;ISR của ngắt ngoài 1 ( ;ISR của ngắt ngoài 1 (dung lượng dung lượng > 8 byte > 8 byte) ).

………

RETI ;Kết thúc ISR của ngắt ngoài 1.

END ;Chỉ dẫn kết thúc chương trình.

Trang 19

CÁM ƠN SỰ CHÚ Ý LẮNG NGHE

VÀ TRÂN TRỌNG GIẢI ðÁP CÁC

CÂU HỎI

Ngày đăng: 27/06/2014, 22:20

TỪ KHÓA LIÊN QUAN