1. Trang chủ
  2. » Luận Văn - Báo Cáo

CHƯƠNG 3 họ VI điều KHIỂN 8051

26 6 0

Đ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

Tiêu đề Chương 3 Họ Vi Điều Khiển 8051
Người hướng dẫn Thầy Hồ Trung Mỹ
Trường học Trường Đại học Bách Khoa Thành phố Hồ Chí Minh
Chuyên ngành Điện tử
Thể loại Giáo trình
Thành phố TPHCM
Định dạng
Số trang 26
Dung lượng 573,63 KB

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

Nội dung

Ch ng trình ph ục vụ ngắt cókích th ớc nhỏ Nếu chỉ có một nguồn ngắt được sử dụng, ví dụ Timer 0, thì có thể sử dụng khung chương trình sau : ORG 0000H ; ResetLJMP MAIN ORG 000BH ; Điểm

Trang 1

CH NG 3

Hi ệu đính từ slide của thầy Hồ Trung Mỹ

B ộ môn Điện tử - DH BK TPHCM

Trang 2

3.7 Ng ắt (Interrupt)

2

Trang 3

Gi ới thiệu ngắt

được phục vụ bởi một chương trình khác

đồng thời

ức ngắt ( ở Background)

Trang 4

Th ực thi chương trình

4

Trang 5

T ổng quan v cấu trúc ngắt của 8051

Trang 6

Các ngu ồn ngắt

6

Trang 7

Thanh ghi cho phép ng ắt IE

– Mã hóa ưu tiên được sử dụng.

– Ch ỉ có 2 cấp ưu tiên trong 8051 ⇒ Vẫn có nhiều ngắt có

th ể có cùng ưu tiên ngắt

Trang 8

Th ứ tự u tiên ngắt

8

Trang 9

Khi ng ắt xảy ra và được CPU chấp nhận, chương

x ảy ra:

– L ệnh hiện hành hoàn tất việc thực thi

– CPU s ẽ cất PC vào ngăn xếp ( địa chỉ quay về )

– CPU s ẽ nhảy đến ISR khác nhau theo nguồn ngắt khác nhau

– PC ← địa chỉ vector ngắt (= 3+( # of nguồn ngắt)*8)

– Th ực thi ISR

Trang 10

Các vector ng ắt

10

Trang 11

T ổ chức bộ nhớ khi sử dụng ngắt

Trang 12

12

Trang 13

Ch ng trình ph ục vụ ngắt có

kích th ớc nhỏ

Nếu chỉ có một nguồn ngắt được sử dụng, ví dụ Timer 0, thì có thể sử

dụng khung chương trình sau :

ORG 0000H ; ResetLJMP MAIN

ORG 000BH ; Điểm vào ISR cho Timer 0T0ISR: ; Bắt đầu ISR cho Timer 0

.

RETI ; Quay về chương trình chínhMAIN: ; Chương trình chính

.

Nếu sử dụng nhiều ngắt, thì cẩn thận, phải bảo đảm là chúng bắt đầu ở vịtrí đúng và không chạy lố sang ISR kế Vì chỉ có một ngắt được sử dụng

Trang 14

Ch ng trình ph ục vụ ngắt có

Thí d ụ lúc này chỉ xét Timer 0, có thể sử dụng khung sau :

ORG 0000H ; Đi m vào reset LJMP MAIN

ORG 000BH ; Đi m vào ISR của Timer 0 LJMP T0ISR

ORG 0030H ; Các vector ng ắt ti p theo

MAIN: ; Ch ng trình chính

.

T0ISR: ; B ắt đầu ISR cho Timer 0

RETI ; Quay v ch ng trình chính.

Để đơn giản, chương trình của chúng ta sẽ chỉ làm một việc lúc ban đầu Chương trình khởi động timer, cổng nối tiếp và các thanh ghi ngắt cho thích hợp và rồi không làm gì cả

Công vi ệc hoàn toàn được làm trong ISR Sau các lệnh khởi động, chương trình chính chứa lệnh sau :

HERE: SJMP HERE

hay d ạng viết gọn như sau:

Trang 15

a) Ng ắt timer

được bật lên một

Trang 16

Thí d ụ: Tạo sóng vuông bằng ngắt của Timer

Các ng ắt của Timer xảy ra khi các thanh ghi timer

TLx/THx tràn và đặt cờ báo tràn lên 1 (TFx) Ta có

ch ương trình như sau:

16

Trang 17

Phân tích CT T ạo sóng vuông bằng ngắt Timer

• Ngay sau khi reset, PC được nạp trị 0000H

• Lệnh đầu tiên được thực thi LJMP MAIN mà rẽ nhánh bỏ qua ISR của Timer 0 đến địa chỉ 0030H trong bộ nhớ mã

• Ba lệnh kế (các dòng 11–13) khởi trị Timer 0 chế độ 2 tràn sau 50 μs

• Lệnh MOV IE, #82H cho phép ngắt của Timer 0 Dĩ nhiên tràn thứ nhất

sẽ không xảy ra trong vì có trì hoãn ở các lệnh khởi tạo trị

• Cứ sau 50 μs một ngắt xảy ra; chương trình chính bị ngắt và ISR (của

Timer 0) thực thi ISR này đảo trạng thái bit cổng và quay về chương

trình gọi nó (vòng lặp tại chỗ) và tiếp tục như vậy với 50 μs kế

Chú ý là c ờ timer TF0 không b xóa bằng phần m m Khi các ngắt

đ ợc cho phép, TF0 tự động b xóa bằng phần cứng khi CPU chỉ

đ n ngắt.

• Tình cờ địa chỉ quay về trong chương trình chính là địa chỉ của lệnh

SJMP Địa chỉ được cất vào ngăn xếp bên trong trước khi chỉ đến mỗi

ngắt và được lấy lại từ ngăn xếp khi thực thi lệnh RETI ở cuối ISR Vì SP

đã không được khởi tạo trị, do đó mặc nhiên nó có giá trị reset là 07H Tác vụ cất (PUSH) để địa chỉ quay về trong các ô nhớ RAM nội 08H (PCL

Trang 18

Thí d ụ: Tạo hai sóng vuông dùng ngắt (1/2)

Viết chương trình dùng các ngắt để tạo ra các sóng vuông đồng thời

7 KHz và 500 Hz ở các chân P1.7 và P1.6

Bài giải

Cấu hình phần cứng với những định thì cho các dạng sóng mong

muốn được cho trong hình sau:

18

Trang 19

Thí d ụ: Tạo hai sóng vuông dùng ngắt (2/2)

Trang 20

Ng ắt timer

XTAL = 6MHz

20

Trang 21

b) Ng ắt cổng nối tiếp

đang đợi trong SBUF để được đọc (RI = 1)

được xóa bằng phần mềm

Trang 22

b) Ng ắt cổng nối tiếp

22

Trang 23

Ng ắt cổng nối tiếp

12MHz, SMOD = 1

Trang 24

c) Ng ắt ngoài

được lập trình qua bit IT0 hay IT1 trong TCON

TCON

24

Trang 26

26

Ngày đăng: 23/12/2022, 16:08

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w