Thông báo

Collapse
No announcement yet.

ưu tiên ngắt trong 89V51???????

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • ưu tiên ngắt trong 89V51???????

    tình hình là mình dùng ngắt timer0 để quet led 7 đoạn, còn ngắt ngoài thì INT0 để dừng khẩn cấp động cơ
    INT0 có ưu tiên ngắt cao hơn timero nhung mình không bít khai bào ưu tiện ngắt ưu tiên như thế nào cả ?????? mình dung C để lập trình
    thấy thiết lập thanh ghi IP nhung minh không hiểu lắm . Vậy ban nào biết thi bày mình với ?????????
    " Muốn biết phải hỏi, muốn giỏi phải học "

  • #2
    thì bạn cứ ghi vào thanh ghi IP giá trị tương ưng với mức ưu tiên ngắt của các ngắt mà bạn muốn. IP=0x??
    hoặc là set từng bit, như trong datasheet thôi: PX0=1;
    bạn mở mấy cái file #include<header-file> ra mà xem thôi
    /*------------------------------------------------
    IP Bit Registers
    ------------------------------------------------*/
    sbit PX0 = 0xB8;
    sbit PT0 = 0xB9;
    sbit PX1 = 0xBA;
    sbit PT1 = 0xBB;
    sbit PS = 0xBC;
    sbit PT2 = 0xBD;

    Comment


    • #3
      trong 89 có thanh ghi IP - Interrupt Priority - thanh ghi ưu tiên ngắt

      Đại khái là ngắt nào được ưu tiên ( xảy ra trước) nếu 1 hoặc nhiều ngắt xảy ra đồng thời
      mỗi ngắt trong 89 có 1 bit gọi là bit ưu tiên ngắt trong thanh ghi IP

      nếu bạn set bit tương ứng của bit đó lên 1 thì nó được ưu tiên
      còn = 0 thì nó là ngắt bình thường

      bạn sẽ thắc mắc vậy ta xét nhiều bit ưu tiên thì sao phải không
      đơn giản nếu các ngắt có cùng mức ưu tiên mà nó lại xảy ra đồng thời thì bạn xem vector ngắt ở địa chỉ nào
      địa chỉ nào "nhỏ" hơn sẽ được thực thi trước

      ^^
      Be quan. Plz contact through email:

      Comment

      Về tác giả

      Collapse

      fan.8051 Say mê Điện tử Tìm hiểu thêm về fan.8051

      Bài viết mới nhất

      Collapse

      Đang tải...
      X