Ngắt trong Vi điều khiển 8051 và Cấu trúc và Lập trình

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Các tính năng quan trọng và mạnh mẽ nhất bị gián đoạn trong Vi điều khiển 8051 . Trong hầu hết các quy trình thời gian thực, để xử lý các điều kiện nhất định đúng cách, tác vụ thực tế phải được tạm dừng trong một thời gian - cần phải thực hiện hành động - và sau đó phải quay lại tác vụ chính. Để thực hiện loại chương trình như vậy, ngắt là cần thiết. Nó hoàn toàn khác với phương pháp thăm dò trong đó bộ xử lý phải kiểm tra tuần tự từng thiết bị và hỏi xem dịch vụ có được yêu cầu hay không trong khi tốn nhiều thời gian xử lý hơn.

Ngắt trong vi điều khiển 8051

Ngắt trong vi điều khiển 8051



Ngắt trong vi điều khiển 8051 mong muốn hơn để giảm việc kiểm tra trạng thái thường xuyên của các thiết bị được giao diện hoặc các thiết bị có sẵn. Ngắt là một sự kiện tạm thời đình chỉ chương trình chính, chuyển điều khiển đến một phần mã đặc biệt, thực thi chức năng liên quan đến sự kiện và tiếp tục lại luồng chương trình chính mà nó đã dừng lại.


Ngắt có nhiều loại khác nhau như phần mềm và phần cứng, có thể che và không che được, cố định và ngắt vectơ, v.v. Quy trình dịch vụ ngắt (ISR) xuất hiện trong hình ảnh khi xảy ra ngắt, sau đó yêu cầu bộ xử lý thực hiện hành động thích hợp cho ngắt và sau khi thực thi ISR, bộ điều khiển sẽ nhảy vào chương trình chính.



Các loại ngắt trong Vi điều khiển 8051

Bộ vi điều khiển 8051 có thể nhận ra năm sự kiện khác nhau khiến chương trình chính bị gián đoạn khỏi quá trình thực thi bình thường. Năm nguồn ngắt trong 8051 là:

  1. Timer 0 ngắt tràn- TF0
  2. Bộ hẹn giờ 1 ngắt tràn- TF1
  3. Ngắt phần cứng bên ngoài- INT0
  4. Ngắt phần cứng bên ngoài- INT1
  5. Ngắt giao tiếp nối tiếp- RI / TI

Các ngắt Bộ định thời và Nối tiếp được tạo ra bên trong bởi bộ vi điều khiển, trong khi các ngắt bên ngoài được tạo ra bởi thiết bị giao tiếp hoặc các công tắc được kết nối bên ngoài với bộ vi điều khiển. Các ngắt bên ngoài này có thể được kích hoạt cạnh hoặc kích hoạt mức. Khi một ngắt xảy ra, bộ vi điều khiển thực hiện quy trình phục vụ ngắt để vị trí bộ nhớ tương ứng với ngắt cho phép nó. Ngắt tương ứng với vị trí bộ nhớ được đưa ra trong bảng vectơ ngắt bên dưới.

Bảng vectơ ngắt

Bảng vectơ ngắt

Cấu trúc ngắt của bộ điều khiển vi mô 8051

Khi ‘ĐẶT LẠI’, tất cả các ngắt sẽ bị vô hiệu hóa và do đó, tất cả các ngắt này phải được phần mềm kích hoạt. Trong tất cả năm ngắt này, nếu bất kỳ ai hoặc tất cả được kích hoạt, điều này sẽ đặt các cờ ngắt tương ứng như trong hình. Tất cả các ngắt này có thể được thiết lập hoặc xóa từng bit trong một số thanh ghi chức năng đặc biệt được Kích hoạt ngắt (IE), và điều này đến lượt nó phụ thuộc vào mức độ ưu tiên, được thực thi bởi thanh ghi ưu tiên ngắt IP.


Cấu trúc ngắt của vi điều khiển 8051

Cấu trúc ngắt của vi điều khiển 8051

Đăng ký cho phép ngắt (IE): Thanh ghi này chịu trách nhiệm cho phép và vô hiệu hóa ngắt. Nó là một thanh ghi có địa chỉ bit, trong đó EA phải được đặt thành một để kích hoạt ngắt. Bit tương ứng trong thanh ghi này cho phép ngắt cụ thể như bộ định thời, đầu vào bên ngoài và nối tiếp. Trong thanh ghi IE bên dưới, bit tương ứng với 1 kích hoạt ngắt và 0 vô hiệu hóa ngắt.

Đăng ký Kích hoạt ngắt (IE)

Đăng ký Kích hoạt ngắt (IE)

Đăng ký ưu tiên ngắt (IP): Cũng có thể thay đổi mức độ ưu tiên của các ngắt bằng cách đặt hoặc xóa bit tương ứng trong thanh ghi Ưu tiên ngắt (IP) như trong hình. Điều này cho phép ngắt mức ưu tiên thấp ngắt ngắt mức ưu tiên cao, nhưng cấm ngắt bởi một ngắt có mức ưu tiên thấp khác. Tương tự, ngắt có mức ưu tiên cao không thể bị ngắt. Nếu các ưu tiên ngắt này không được lập trình, bộ vi điều khiển sẽ thực thi theo cách xác định trước và thứ tự của nó là INT0, TF0, INT1, TF1 và SI.

Đăng ký IP

Đăng ký IP

Đăng ký TCON: Ngoài hai thanh ghi trên, thanh ghi TCON chỉ định loại ngắt bên ngoài cho vi điều khiển 8051, như trong hình. Hai ngắt bên ngoài, cho dù là cạnh hay mức được kích hoạt, được thanh ghi này chỉ định bởi một tập hợp hoặc được xóa bởi các bit thích hợp trong đó. Và, nó cũng là một đăng ký có địa chỉ bit.

Đăng ký TCON

Đăng ký TCON

Lập trình ngắt trong 8051

Lập trình ngắt 1.Timer

Các ngắt Timer 0 và Timer 1 được tạo ra bởi các bit thanh ghi bộ định thời TF0 và TF1. Những ngắt lập trình bằng mã C liên quan đến:

  • Chọn bộ định thời bằng cách cấu hình thanh ghi TMOD và phương thức hoạt động của nó.
  • Chọn và tải các giá trị ban đầu của TLx và THx cho các chế độ thích hợp.
  • Bật các thanh ghi IE và bit hẹn giờ tương ứng trong đó.
  • Đặt bit chạy bộ hẹn giờ để bắt đầu bộ hẹn giờ.
  • Viết chương trình con cho bộ định thời trong khoảng thời gian cần thiết và xóa giá trị bộ định thời TRx ở cuối chương trình con.
Lập trình ngắt hẹn giờ

Lập trình ngắt hẹn giờ

2. Lập trình ngắt phần cứng bên ngoài

Bộ vi điều khiển 8051 bao gồm hai ngắt phần cứng bên ngoài: INT0 và INT1 như đã thảo luận trước đó. Chúng được kích hoạt ở chân 3.2 và pin 3.3. Chúng có thể được kích hoạt cạnh hoặc kích hoạt mức. Trong kích hoạt mức, mức thấp ở chân 3.2 cho phép ngắt, trong khi ở chân 3.2 - quá trình chuyển đổi cao xuống thấp cho phép ngắt được kích hoạt cạnh. Kích hoạt cạnh hoặc kích hoạt mức này được quyết định bởi thanh ghi TCON đã được thảo luận ở trên. Các quy trình lập trình trong 8051 là như sau:

  • Kích hoạt bit tương ứng của ngắt bên ngoài trong thanh ghi IE.
  • Nếu đó là mức kích hoạt, chỉ cần viết chương trình con thích hợp với ngắt này, hoặc nếu không thì kích hoạt bit thanh ghi TCON tương ứng với ngắt được kích hoạt cạnh - cho dù đó là INT0 hay INT1.
Lập trình ngắt phần cứng bên ngoài

Lập trình ngắt phần cứng bên ngoài

3. Lập trình ngắt liên lạc trên không

Các ngắt liên lạc nối tiếp xuất hiện khi có nhu cầu gửi hoặc nhận dữ liệu. Vì một bit ngắt được đặt cho cả cờ TI (Ngắt chuyển) và RI (Ngắt bộ thu), quy trình Dịch vụ Ngắt phải kiểm tra các cờ này để biết ngắt thực sự.

Hoạt động hợp lý HOẶC của hai cờ này (RI và TI) gây ra ngắt này và nó bị xóa bởi một mình phần mềm. Ở đây, một thanh ghi đặc biệt SCON được sử dụng để kiểm soát giao tiếp hoạt động bằng cách cho phép các bit tương ứng trong đó.

  • Cấu hình thanh ghi IE để bật ngắt nối tiếp
  • Định cấu hình đăng ký SCON để nhận hoặc chuyển hoạt động
  • Viết chương trình con cho ngắt này với chức năng thích hợp và xóa các cờ TI hoặc RI với trong quy trình này.
Lập trình ngắt nối tiếp

Lập trình ngắt nối tiếp

Đây là tất cả về ngắt trong vi điều khiển 8051, các loại, cấu trúc và lập trình của chúng. Hy vọng bạn có thể đã nhận được thông tin tốt từ bài viết này. Ngoài ra, bạn có thể viết thư cho chúng tôi trong phần bình luận bên dưới để triển khai trong thời gian thực dự án vi điều khiển để chúng tôi có thể hỗ trợ bạn để có trải nghiệm thực hành tốt hơn.

Tín ảnh