SlideShare a Scribd company logo
2
Most read
3
Most read
4
Most read
Tài liệu tham khảo TH. Vi xử lý                              GVHD: Trần Hoài Tâm


             CHƯƠNG VI : HOẠT ĐỘNG NGẮT

1. MỞ ĐẦU:
      Ngắt (interrupt) là sự sảy ra của một điều kiện làm cho trương trình hiện
hành bị tạm ngưng trong khi điều kiên này đượ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à thực hiện các ứng
dụng của vi điều khiển. Các ngắt cho phép hệ thống đáp ứng một sự kiện theo cách
không đồng bộ và xử lý một sự kiện trong khi một chương trình khác đang thực thi.
Một hệ thống được điều khiển bởi ngắt cho ta ảo tưởng đang làm nhiều công việc
đồng thời.
      CPU dĩ nhiên không thể thực hiện nhiều hơn một lệnh ở một thời điểm
nhưng CPU có thể tạm ngưng việc thực thi một chương trình để thực thi một
chương trình khác rồi sau đó quay trở về thực thi tiếp chương trình đang bị tạm
ngưng. Điều này giống như CPU rời khỏi chương trình gọi để thực hiện chương
trình con bị gọi để rồi sau đó quay về chương trình gọi.
      Chương trình xử lý một ngắt được gọi là chương trình phục vụ ngắt ISR
(interrupt service routine). ISR được thực thi nhằm đáp ứng một ngắt và trong
trường hợp tổng quát thực hiện việc xuất nhập với một thiết bị. Khi một ngắt xuất
hiện, việc thực thi trương trình chính tạm thời bị dừng và CPU thực hiện rẽ nhánh
đến trình phục vụ ngắt ISR. 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” RETI. 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.
2. TỔ CHỨC NGẮT CỦA 8051:
      Có 5 nguyên nhân tạo ra ngắt đối với 805: hai ngắt do bên ngoài, hai ngắt do
bộ định thời và một ngắt do port nối tiếp. 8052 có thêm nguyên nhân ngắt thứ 6: do
bộ định thời được thêm vào, bộ định thời thứ ba. Khi ta thiết lập trạng thái ban đầu
cho hệ thống, tất cả các ngắt điều bị vô hiệu hóa và sau đó chúng được cho phép
                                         42
Tài liệu tham khảo TH. Vi xử lý                                  GVHD: Trần Hoài Tâm
riêng rẻ bằng phần mềm.
          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 đang phụ vụ, ta có hai sơ đồ xử lý ngắt: sơ đồ chuổi vòng và sơ đồ hai mức ưu
tiên.
          2.1 Cho phép và không cho phép ngắt:
          Mỗi một 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 đặc biệt định địa chỉ bit, thanh ghi cho phép ngắt IE
(interrupt enable) có địa chỉ byte là 0A8H. Mỗi một bit của thanh ghi này cho phép
hoặc không cho phép từng nguyên nhân ngắt riêng rẻ, thanh ghi IE đồng thời có
một bit toàn cục (global) cho phép hoặc không cho phép tất cả các ngắt.
                          Bảng 6.1 Thanh ghi cho phép ngắt IE
    Bit      Ký hiệu    Địa chỉ bit     Mô tả ( 0: không cho phép, 1: cho phép )
   IE.7         EA            AFH     Cho phép/không cho phép ngắt toàn cục
   IE.6          -            AEH     Không sử dụng
   IE.5         ET2           ADH     Cho phép ngắt do bộ định thời 2
   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 bộ định thời 1
   IE.2         EX1           AAH     Cho phép ngắt từ bên ngoài ( ngắt ngoài 1 )
   IE.1         ET0           A9H     Cho phép ngắt do bộ định thời 0
   IE.0         EX0           A8H     Cho phép ngắt từ bên ngoài ( ngắt ngoài 0 )

          Ex: Ngắt do bộ định thời 1 được cho phép bằng cách dùng hai lệnh:
          SETB ET1                    ; Cho phép ngắt do bộ định thời một
          SETB EA                     ; set bit EA bằng 1 để cho phép ngắt toàn cục
          <=>    MOV IE, #10001000B
          2.2 Ư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 chức năng thanh ghi đặc biệt được định địa chỉ bit, thanh ghi ưu
tiên ngắt IP (interrupt priority), thanh ghi này có địa chỉ byte là 0B8H.
                                Bảng 6.2 Thanh ghi ưu tiên ngắt IP
                                            43
Tài liệu tham khảo TH. Vi xử lý                                 GVHD: Trần Hoài Tâm
       Bit   Ký hiệu      Địa chỉ bit      Mô tả (1: mức cao, 0: mức thấp)

      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 ngoà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 ngoài 0
      Khi hệ thống được thiết lập lại trạng thái ban đầu, thanh ghi IP sẽ mặc định
tất cả các ngắt ở mức ưu tiên thấp.
      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ị tạm dừng bởi các ngắt. Nếu có hai ngắt xảy ra đồng
thời thì ngắt nào có mức ưu tiên cao hơn sẽ được phục vụ trước.
      2.3 Chuỗi vòng:
      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 ngoài 0,
ngắt do bộ định thời 0, ngắt ngoài 1, ngắt do bộ định thời 1, ngắt do port nối tiếp,
ngắt do bộ định thời 2.
3. 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:
    Hoà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 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
                                          44
Tài liệu tham khảo TH. Vi xử lý                                     GVHD: Trần Hoài Tâm
      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. Lệnh này lấy lại 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ũ.
      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ủa nguyên nhân ngắt tương ứng.
                                 Bảng 6.3 Bảng véctor ngắt
                          Ngắt                       Địa chỉ vector
                Reset hệ thống                           0000H
                Ngắt ngoài 0                             0003H
                Ngắt do bộ định thời 0                   000BH
                Ngắt ngoài 1                             0013H
                Ngắt do bộ định thời 1                   001BH
                Ngắt do port nối tiếp                    0023H
                Ngắt do bộ định thời 2                   002BH

4. THIẾT KẾ CHƯƠNG TRÌNH SỬ DỤNG CÁC NGẮT:
      Khuôn mẫu đề nghị cho một chương trình được thực thi độc lập có sử dụng
ngắt như sau:
      ORG 0000H                         ; điểm nhập sau khi reset
      LJMP MAIN
      -                                 ; các điểm nhập của các ISR
      -
      ORG 0030H                         ; điểm nhập chương trình chính
      MAIN:                             ; chương trình chính bắt đầu
                -
                -
                END
      4.1 Các trình phục vụ ngắt kích thước nhỏ:
                                              45
Tài liệu tham khảo TH. Vi xử lý                                 GVHD: Trần Hoài Tâm
      Các trình phục vụ ngắt phải được bắt đầu ở gần đáy của bộ nhớ chương trình
tại các địa chỉ qui định. Mặc dù chỉ có 8 byte giữa các điểm nhập của các trình phục
vụ ngắt, dung lượng này thường đủ để thực hiện các công việc được yêu cầu và
quay trở về chương thình chính từ một trình phục vụ ngắt. Điều này có nghĩa là
trình phục vụ ngắt cho các ngắt tương ứng thường không dài quá 8 byte.
      Nếu có nhiều ngắt được dùng ta phải cẩn thận để đảm bảo các ISR được bắt
đầu đúng vị trí mà không tràn sang ISR kế.
      Ex:
      ORG 0000H                          ; điểm nhập reset
      LJMP MAIN
      ORG 000BH                          ; điểm nhập ngắt bộ định thời 0
      T0_ISR :                           ; bắt đầu ISR cho bộ định thời 0
             MOV P2, #00001111B
             RETI                        ; trở về chương trình chính
      MAIN :                             ; chương trình chính
             -
             -
             END                         ; kết thúc chương trình
      4.2 Các trình phục vụ ngắt kích thước lớn:
      Nếu một trình phục vụ ngắt dài hơn 8 byte được cần đến, ta phải di chuyển
phương trình này đến một nơi khác trong bộ nhớ chương trình hoặc ta có thể cho
lấn qua điểm nhập của ISR kế. Điển hình là ISR bắt đầu với một lệnh nhảy đến một
vùng khác của bộ nhớ chương trình, ở đó ISR được trãi rộng nếu cần.
      Ex:
             ORG 0000H            ; điểm nhập reset
             LJMP MAIN
             ORG 000BH            ; điểm nhập ngắt do timer 0
             LJMP T0_ISR
             -                    ; điểm nhập các ngắt khác (nếu có)
                                         46
Tài liệu tham khảo TH. Vi xử lý                                     GVHD: Trần Hoài Tâm
             -
             ORG 0030H            ; địa chỉ phía trên các vector ngắt
             MAIN:                ; chương trình chính
                    -
                    -
                    -
             T0_ISR:              ; chương trình con phục vụ ngắt
                    -             ; do bộ định thời 0
                    -
                    -
                    RETI          ; quay về chương trình chính
             END
       Ex: Viết chương trình tạo sóng vuông có tần số 10KHz trên chân p1.0 sử
dụng bộ định thời 0 và ngắt do bộ định thời 0.
             ORG 0000H            ; điểm nhập reset
             LJMP MAIN
             ORG 000BH            ; điểm nhập ngắt timer 0
       T0_ISR:                    ; ISR timer 0
             CPL P1.0             ; đảo bit P1.0
             RETI                 ; trở về chương trình chính
       MAIN:
             MOV TMOD, #00000010B                  ; timer 0 hoạt động ở chế độ 2 (8
bit)
             MOV TH0, #-50                         ; giá trị nạp lại tương ứng với 50us
             MOV IE, #10000010B                    ; cho phép ngắt do bộ định thời 0
             SETB TR0                              ; bật timer 0
             SJMP $                                ; nhảy tại chỗ
       END
       Ex: Viết chương trình sử dụng các ngắt để tạo ra đồng thời các dạng sóng
                                         47
Tài liệu tham khảo TH. Vi xử lý                            GVHD: Trần Hoài Tâm
vuông có tần số là 10KHz trên chân P1.0 và 500Hz trên chân P1.1
             ORG 0000H
             LJMP MAIN
             ORG 000BH
             LJMP NGAT_T0
             ORG 001BH
             LJMP NGAT_T1
             ORG 0030H
      MAIN:
             MOV TMOD, #00010010B            ; timer 1 chế độ 1, timer 0 chế độ 2
             MOV TH0, #-50
             MOV TH1, #HIGH(-1000)
             MOV TL1, #LOW(-1000)
             MOV IE, #10001010B
             SETB TR0
             SETB TR1
             SJMP $
      NGAT_T0:
             CPL P1.0
             RETI
      NGAT_T1:
             CLR TR1
             MOV TH1, #HIGH(-1000)
             MOV TL1, #LOW(-1000)
             SETB TR1
             CPL P1.1
             RETI
      END
      4.3 Các ngắt ngoài:
                                       48
Tài liệu tham khảo TH. Vi xử lý                               GVHD: Trần Hoài Tâm
        Ngắt ngoài xảy ra khi có mức thấp hoặc có cạnh âm trên chân /INT0 hoặc /
INT1.
        Việc chọn các ngắt thuộc tác động cạnh hay các ngắt loại tác động mức được
lập trình thông qua các bit IT0 và IT1 của thanh ghi TCON.
        Vì các chân ngắt ngoài được lấy mẫu một lần ở mỗi chu kỳ máy các ngõ vào
này phải được duy trì tối thiểu 12 chu kỳ dao động để đảm bảo rằng việc lấy mẫu là
đúng.
        Nếu ngắt ngoài thuộc tác động cạnh nguyên nhân ngắt ngoài phải được duy
trì tại chân yêu cầu ở mức cao tối thiểu một chu kỳ và sau đó ở mức thấp tối thiểu
một chu kỳ nữa để đảm bảo rằng việc chuyển trạng thái được phát hiện. IE0 và IE1
tự động được xóa khi CPU trỏ tới trình phục vụ ngắt tương ứng.
        Nếu ngắt ngoài thuộc loại tác động mức, nguyên nhân ngắt ngoài phải được
duy trì trạng thái tích cực cho đến khi ngắt theo yêu cầu thực sự tạo ra. Sau đó
nguyên nhân ngắt phải ở trạng thái thụ động trước khi trình phục vụ ngắt được thực
thi xong hoặc trước khi có một ngắt khác được tạo ra.
        Thông thường, một công việc được thực thi bên trong trình phục vụ ngắt làm
cho nguyên nhân ngắt trả tín hiệu yêu cầu ngắt trở về trạng thái không tích cực.




                                         49

More Related Content

PDF
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
DOC
Chuong2 cấu trúc phần cứng 8051
PDF
Lập trình PLC S7 1200 tiếng Việt-Chuong 6 profinet
PDF
Giáo trình điều khiển lập trình cỡ nhỏ - LOGO!
PDF
Ktmt chuong 5
PDF
Đề tài: Hệ thống cảnh báo, phòng chống hỏa hoạn và rò rỉ khí gas
PDF
Luận văn: Thiết kế hệ thống tưới cây tự động, HAY
PDF
Tài liệu kỹ thuật biến tần siemens G120C
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
Chuong2 cấu trúc phần cứng 8051
Lập trình PLC S7 1200 tiếng Việt-Chuong 6 profinet
Giáo trình điều khiển lập trình cỡ nhỏ - LOGO!
Ktmt chuong 5
Đề tài: Hệ thống cảnh báo, phòng chống hỏa hoạn và rò rỉ khí gas
Luận văn: Thiết kế hệ thống tưới cây tự động, HAY
Tài liệu kỹ thuật biến tần siemens G120C

What's hot (20)

PDF
Đề tài: Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm
PDF
Đề tài: Thiết kế vòng tay đo nhịp tim sử dụng công nghệ IoTs, HAY
PDF
Kiến trúc máy tính và hợp ngữ bài 04
PDF
Kĩ thuật đo lường
PDF
bài giảng ký thuật vi xử lý PTIT
PDF
Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...
PDF
Đồ án thiết kế robot dò đường
PDF
Giáo trình đo lường cảm biến, Lê Chí Kiên.pdf
DOC
ĐỒ ÁN: Thiết kế mạch đếm sản phẩm dùng cảm biến hồng ngoại!
DOCX
Bài giảng Assembly
PDF
Tai lieu tra_cuu_pic 18f4520
PDF
Xử lý tín hiệu số
PDF
Đề tài: Hệ thống giám sát điện năng tiêu thụ trong hộ gia đình
DOC
Đề tài: hệ thống phân loại sản phẩm bằng nhận dạng mờ, HAY
PDF
Giáo trình mạng máy tính PTIT
PDF
Bai giang-vhdl
PDF
Robot tu hanh 4 banh da huong
PDF
Đề tài: Hệ thống giám sát nông nghiệp bằng công nghệ Iot, HAY
PDF
Kiến trúc máy tính
PDF
Hệ thống truyền động điện động cơ đồng bộ 4 góc phần tư, HAY
Đề tài: Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm
Đề tài: Thiết kế vòng tay đo nhịp tim sử dụng công nghệ IoTs, HAY
Kiến trúc máy tính và hợp ngữ bài 04
Kĩ thuật đo lường
bài giảng ký thuật vi xử lý PTIT
Chương trình điều khiển đèn giao thông cho ngã tư theo 3 chế độ dựa theo đồng...
Đồ án thiết kế robot dò đường
Giáo trình đo lường cảm biến, Lê Chí Kiên.pdf
ĐỒ ÁN: Thiết kế mạch đếm sản phẩm dùng cảm biến hồng ngoại!
Bài giảng Assembly
Tai lieu tra_cuu_pic 18f4520
Xử lý tín hiệu số
Đề tài: Hệ thống giám sát điện năng tiêu thụ trong hộ gia đình
Đề tài: hệ thống phân loại sản phẩm bằng nhận dạng mờ, HAY
Giáo trình mạng máy tính PTIT
Bai giang-vhdl
Robot tu hanh 4 banh da huong
Đề tài: Hệ thống giám sát nông nghiệp bằng công nghệ Iot, HAY
Kiến trúc máy tính
Hệ thống truyền động điện động cơ đồng bộ 4 góc phần tư, HAY
Ad

Viewers also liked (20)

PDF
C cho 8051
PDF
Hệ điều hành (chương 1)
PDF
Ktmt chuong 6
PDF
Ktmt chuong 1
DOC
Hệ PhâN TáN
 
PPT
Chuong 1 - CSDL phân tán
PDF
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
PDF
[Cntt] bài giảng kĩ thuật vi xử lí
PDF
lý thuyết cơ sở dữ liệu phân tán
PDF
02.Os Structure
PDF
Vi Điều Khiển Ứng Dụng AT89s52
PDF
Lập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plc
PDF
11 Lập trình ngắt
PDF
Lập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trình
PDF
Đề thi hệ thống thông tin quản lý
PDF
13 DC Bước - Bàn phím DAC
PDF
He thong chong trom bang hong ngoai dung vi xu ly
PDF
00 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_3002
PDF
Quy trinh tieu chuan sua chua tu lanh 123thue
DOCX
ở đâY là những mạch ứng dụng tham khảo trong thiết kế mạch nguồn cho mạch như...
C cho 8051
Hệ điều hành (chương 1)
Ktmt chuong 6
Ktmt chuong 1
Hệ PhâN TáN
 
Chuong 1 - CSDL phân tán
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
[Cntt] bài giảng kĩ thuật vi xử lí
lý thuyết cơ sở dữ liệu phân tán
02.Os Structure
Vi Điều Khiển Ứng Dụng AT89s52
Lập trình PLC S7 1200 tiếng Việt-Chuong 2 các khai niệm về plc
11 Lập trình ngắt
Lập trình PLC S7 1200 tiếng Việt-Chuong 5 tập lệnh lập trình
Đề thi hệ thống thông tin quản lý
13 DC Bước - Bàn phím DAC
He thong chong trom bang hong ngoai dung vi xu ly
00 su dung_plc_dieu_khien_he_thong_truyen_dong_trong_robot_cong_nghiep_3002
Quy trinh tieu chuan sua chua tu lanh 123thue
ở đâY là những mạch ứng dụng tham khảo trong thiết kế mạch nguồn cho mạch như...
Ad

Similar to Chuong6 hoạt động ngắt (20)

PDF
Chuong 5 hoat dong ngat
PDF
Msptieuluan
PDF
Ch03
DOC
Chuong4 hoạt động định thời
PPTX
KTMT-Chuong 7 -Các phương pháp vào ra.pptx
PDF
Chuong 2-4. Timer va UART tren 8051 .pdf
PDF
Bài 3- Ngắt(Lý thugggggyết) & Timer .pdf
PDF
Chương 3.pdfsssssssssssssssssssssssssssssssssssss
DOC
De cuong thiet bi ngoai vi
DOC
Chuong5 hoạt động port nối tiếp
PDF
Ktvxl 7a timer
DOCX
Bao cao do an dieu khien dong co dc
DOC
Bao cao thuc tap pic18 f4520
PPT
Chuong2
PPT
Atmel avr
PDF
Altivar 31 vietnamese_final_3755
PDF
Hướng dẫn làm quen với stm8 f103 - tincanban.com
PPTX
Electricity Supplier Business Plan by Slidesgo (1).pptx
PPTX
KTĐKĐCĐ Nhóm 5.pptx
PDF
Mitsubishi
Chuong 5 hoat dong ngat
Msptieuluan
Ch03
Chuong4 hoạt động định thời
KTMT-Chuong 7 -Các phương pháp vào ra.pptx
Chuong 2-4. Timer va UART tren 8051 .pdf
Bài 3- Ngắt(Lý thugggggyết) & Timer .pdf
Chương 3.pdfsssssssssssssssssssssssssssssssssssss
De cuong thiet bi ngoai vi
Chuong5 hoạt động port nối tiếp
Ktvxl 7a timer
Bao cao do an dieu khien dong co dc
Bao cao thuc tap pic18 f4520
Chuong2
Atmel avr
Altivar 31 vietnamese_final_3755
Hướng dẫn làm quen với stm8 f103 - tincanban.com
Electricity Supplier Business Plan by Slidesgo (1).pptx
KTĐKĐCĐ Nhóm 5.pptx
Mitsubishi

More from Đinh Công Thiện Taydo University (20)

PDF
DOC
Cam bien trong robot(sensor robot)
PDF
PDF
Ly thuyet dieu khien tu dong full
DOC
Do an. He thong dien tinh Tra Vinh
PPT
Bao cao. Cam bien vi tri va cam bien dich chuyen
PDF
Do an tot nghiep_Phuong phap thiet ke mang truyen hinh cap huu tuyen CATV (HFC)
PDF
CHƯƠNG 8 PHẦN 2 NGHIÊN CỨU TÍNH ỔN ĐỊNH CỦA QUÁ TRÌNH QUÁ ĐỘ
PDF
CHƯƠNG 8 PHẦN 1 NGHIÊN CỨU TÍNH ỔN ĐỊNH CỦA QUÁ TRÌNH QUÁ ĐỘ
PDF
CHƯƠNG 7 PHẦN 1 TÍNH TOÁN NGẮN MẠCH
PDF
CHƯƠNG 7 PHẦN 2 TÍNH TOÁN NGẮN MẠCH
PDF
CHƯƠNG 5 CÁC THUẬT TOÁN DÙNG CHO VIỆC THÀNH LẬP NHỮNG MA TRẬN MẠNG
PDF
CHƯƠNG 6 TRÀO LƯU CÔNG SUẤT
PDF
CHƯƠNG 3 MÔ HÌNH HÓA CÁC PHẦN TỬ TRONGHỆ THỐNGĐIỆN
PDF
CHƯƠNG 4 PHẦN 2 CÁC MA TRẬN MẠNG VÀ PHẠM VI ỨNG DỤNG
PDF
CHƯƠNG 2 GIẢI PHƯƠNG TRÌNH VI PHÂN BẰNG PHƯƠNG PHÁP SỐ
Cam bien trong robot(sensor robot)
Ly thuyet dieu khien tu dong full
Do an. He thong dien tinh Tra Vinh
Bao cao. Cam bien vi tri va cam bien dich chuyen
Do an tot nghiep_Phuong phap thiet ke mang truyen hinh cap huu tuyen CATV (HFC)
CHƯƠNG 8 PHẦN 2 NGHIÊN CỨU TÍNH ỔN ĐỊNH CỦA QUÁ TRÌNH QUÁ ĐỘ
CHƯƠNG 8 PHẦN 1 NGHIÊN CỨU TÍNH ỔN ĐỊNH CỦA QUÁ TRÌNH QUÁ ĐỘ
CHƯƠNG 7 PHẦN 1 TÍNH TOÁN NGẮN MẠCH
CHƯƠNG 7 PHẦN 2 TÍNH TOÁN NGẮN MẠCH
CHƯƠNG 5 CÁC THUẬT TOÁN DÙNG CHO VIỆC THÀNH LẬP NHỮNG MA TRẬN MẠNG
CHƯƠNG 6 TRÀO LƯU CÔNG SUẤT
CHƯƠNG 3 MÔ HÌNH HÓA CÁC PHẦN TỬ TRONGHỆ THỐNGĐIỆN
CHƯƠNG 4 PHẦN 2 CÁC MA TRẬN MẠNG VÀ PHẠM VI ỨNG DỤNG
CHƯƠNG 2 GIẢI PHƯƠNG TRÌNH VI PHÂN BẰNG PHƯƠNG PHÁP SỐ

Recently uploaded (20)

PDF
KHOA HỌC KĨ THUẬT NGHIÊN CỨU CÔNG NGHỆ SẢN XUẤT NƯỚC XỊT PHÒNG TỪ THẢO MỘC TH...
PPTX
Bài giảng Quần xã sinh vật sinh học lớp 8
PDF
Cơ sở lý luận về các phương thức thanh toán quốc tế.pdf
PDF
LÝ THUYẾT VÀ BÀI TẬP HÓA HỌC 11 CẢ NĂM - FORM 2025 - PHÂN THEO MỨC ĐỘ (DÙNG C...
PDF
LÝ THUYẾT VÀ BÀI TẬP HÓA HỌC 11 CẢ NĂM - FORM 2025 - PHÂN THEO MỨC ĐỘ (DÙNG C...
PPTX
LEC 3 Tổn thương da nặng do thuốc bài giảng
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 GLOBAL SUCCESS - CẢ NĂM (30...
PDF
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
PDF
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD LỚP 11 BÁM SÁT NỘI DUNG SGK - PH...
PPTX
Chuong1,2-Phuongphapnghiencuukhoahoc.pptx
PPTX
Những vấn đề chung về Marketing căn bản trong kinh tế
PPTX
BPH.tang sinh lanh tinh tuyen tien lietpptx
PPTX
chủ nghĩa xã hội thực tiễn quá trình cách mạng việt nam.pptx
DOCX
CHUYÊN ĐỀ WORD FORM (tháng 3 - 2020).docx
PDF
Giấy báo nhập học mới năm 2024. Dành cho sinh viên
PPTX
Bài giảng chương 3 phương pháp luận nghiên cứu khoa học_HQH.pptx
PDF
LÝ THUYẾT VÀ BÀI TẬP HÓA HỌC 12 CẢ NĂM - FORM 2025 - PHÂN THEO MỨC ĐỘ (DÙNG C...
PDF
Bài tập bám sát từng unit global success lớp 10 11 12 form 2025
PDF
BÀI TẬP BỔ TRỢ TIẾNG ANH 10 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
PPTX
Bài giảng giao tiếp ứng xử dành cho nhân viên mới
KHOA HỌC KĨ THUẬT NGHIÊN CỨU CÔNG NGHỆ SẢN XUẤT NƯỚC XỊT PHÒNG TỪ THẢO MỘC TH...
Bài giảng Quần xã sinh vật sinh học lớp 8
Cơ sở lý luận về các phương thức thanh toán quốc tế.pdf
LÝ THUYẾT VÀ BÀI TẬP HÓA HỌC 11 CẢ NĂM - FORM 2025 - PHÂN THEO MỨC ĐỘ (DÙNG C...
LÝ THUYẾT VÀ BÀI TẬP HÓA HỌC 11 CẢ NĂM - FORM 2025 - PHÂN THEO MỨC ĐỘ (DÙNG C...
LEC 3 Tổn thương da nặng do thuốc bài giảng
BÀI TẬP TEST BỔ TRỢ THEO TỪNG UNIT - TIẾNG ANH 10 GLOBAL SUCCESS - CẢ NĂM (30...
BÀI TẬP BỔ TRỢ FRIENDS PLUS 9 - BÀI TẬP TRẮC NGHIỆM, TỰ LUẬN - CẢ NĂM (BÁM SÁ...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD LỚP 11 BÁM SÁT NỘI DUNG SGK - PH...
Chuong1,2-Phuongphapnghiencuukhoahoc.pptx
Những vấn đề chung về Marketing căn bản trong kinh tế
BPH.tang sinh lanh tinh tuyen tien lietpptx
chủ nghĩa xã hội thực tiễn quá trình cách mạng việt nam.pptx
CHUYÊN ĐỀ WORD FORM (tháng 3 - 2020).docx
Giấy báo nhập học mới năm 2024. Dành cho sinh viên
Bài giảng chương 3 phương pháp luận nghiên cứu khoa học_HQH.pptx
LÝ THUYẾT VÀ BÀI TẬP HÓA HỌC 12 CẢ NĂM - FORM 2025 - PHÂN THEO MỨC ĐỘ (DÙNG C...
Bài tập bám sát từng unit global success lớp 10 11 12 form 2025
BÀI TẬP BỔ TRỢ TIẾNG ANH 10 GLOBAL SUCCESS BÁM SÁT ĐỀ MINH HỌA MỚI NHẤT - PHI...
Bài giảng giao tiếp ứng xử dành cho nhân viên mới

Chuong6 hoạt động ngắt

  • 1. Tài liệu tham khảo TH. Vi xử lý GVHD: Trần Hoài Tâm CHƯƠNG VI : HOẠT ĐỘNG NGẮT 1. MỞ ĐẦU: Ngắt (interrupt) là sự sảy ra của một điều kiện làm cho trương trình hiện hành bị tạm ngưng trong khi điều kiên này đượ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à thực hiện các ứng dụng của vi điều khiển. Các ngắt cho phép hệ thống đáp ứng một sự kiện theo cách không đồng bộ và xử lý một sự kiện trong khi một chương trình khác đang thực thi. Một hệ thống được điều khiển bởi ngắt cho ta ảo tưởng đang làm nhiều công việc đồng thời. CPU dĩ nhiên không thể thực hiện nhiều hơn một lệnh ở một thời điểm nhưng CPU có thể tạm ngưng việc thực thi một chương trình để thực thi một chương trình khác rồi sau đó quay trở về thực thi tiếp chương trình đang bị tạm ngưng. Điều này giống như CPU rời khỏi chương trình gọi để thực hiện chương trình con bị gọi để rồi sau đó quay về chương trình gọi. Chương trình xử lý một ngắt được gọi là chương trình phục vụ ngắt ISR (interrupt service routine). ISR được thực thi nhằm đáp ứng một ngắt và trong trường hợp tổng quát thực hiện việc xuất nhập với một thiết bị. Khi một ngắt xuất hiện, việc thực thi trương trình chính tạm thời bị dừng và CPU thực hiện rẽ nhánh đến trình phục vụ ngắt ISR. 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” RETI. 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. 2. TỔ CHỨC NGẮT CỦA 8051: Có 5 nguyên nhân tạo ra ngắt đối với 805: hai ngắt do bên ngoài, hai ngắt do bộ định thời và một ngắt do port nối tiếp. 8052 có thêm nguyên nhân ngắt thứ 6: do bộ định thời được thêm vào, bộ định thời thứ ba. Khi ta thiết lập trạng thái ban đầu cho hệ thống, tất cả các ngắt điều bị vô hiệu hóa và sau đó chúng được cho phép 42
  • 2. Tài liệu tham khảo TH. Vi xử lý GVHD: Trần Hoài Tâm riêng rẻ bằng phần mềm. 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 đang phụ vụ, ta có hai sơ đồ xử lý ngắt: sơ đồ chuổi vòng và sơ đồ hai mức ưu tiên. 2.1 Cho phép và không cho phép ngắt: Mỗi một 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 đặc biệt định địa chỉ bit, thanh ghi cho phép ngắt IE (interrupt enable) có địa chỉ byte là 0A8H. Mỗi một bit của thanh ghi này cho phép hoặc không cho phép từng nguyên nhân ngắt riêng rẻ, thanh ghi IE đồng thời có một bit toàn cục (global) cho phép hoặc không cho phép tất cả các ngắt. Bảng 6.1 Thanh ghi cho phép ngắt IE Bit Ký hiệu Địa chỉ bit Mô tả ( 0: không cho phép, 1: cho phép ) IE.7 EA AFH Cho phép/không cho phép ngắt toàn cục IE.6 - AEH Không sử dụng IE.5 ET2 ADH Cho phép ngắt do bộ định thời 2 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 bộ định thời 1 IE.2 EX1 AAH Cho phép ngắt từ bên ngoài ( ngắt ngoài 1 ) IE.1 ET0 A9H Cho phép ngắt do bộ định thời 0 IE.0 EX0 A8H Cho phép ngắt từ bên ngoài ( ngắt ngoài 0 ) Ex: Ngắt do bộ định thời 1 được cho phép bằng cách dùng hai lệnh: SETB ET1 ; Cho phép ngắt do bộ định thời một SETB EA ; set bit EA bằng 1 để cho phép ngắt toàn cục <=> MOV IE, #10001000B 2.2 Ư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 chức năng thanh ghi đặc biệt được định địa chỉ bit, thanh ghi ưu tiên ngắt IP (interrupt priority), thanh ghi này có địa chỉ byte là 0B8H. Bảng 6.2 Thanh ghi ưu tiên ngắt IP 43
  • 3. Tài liệu tham khảo TH. Vi xử lý GVHD: Trần Hoài Tâm Bit Ký hiệu Địa chỉ bit Mô tả (1: mức cao, 0: mức thấp) 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 ngoà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 ngoài 0 Khi hệ thống được thiết lập lại trạng thái ban đầu, thanh ghi IP sẽ mặc định tất cả các ngắt ở mức ưu tiên thấp. 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ị tạm dừng bởi các ngắt. Nếu có hai ngắt xảy ra đồng thời thì ngắt nào có mức ưu tiên cao hơn sẽ được phục vụ trước. 2.3 Chuỗi vòng: 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 ngoài 0, ngắt do bộ định thời 0, ngắt ngoài 1, ngắt do bộ định thời 1, ngắt do port nối tiếp, ngắt do bộ định thời 2. 3. 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:  Hoà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 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 44
  • 4. Tài liệu tham khảo TH. Vi xử lý GVHD: Trần Hoài Tâm 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. Lệnh này lấy lại 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ũ. 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ủa nguyên nhân ngắt tương ứng. Bảng 6.3 Bảng véctor ngắt Ngắt Địa chỉ vector Reset hệ thống 0000H Ngắt ngoài 0 0003H Ngắt do bộ định thời 0 000BH Ngắt ngoài 1 0013H Ngắt do bộ định thời 1 001BH Ngắt do port nối tiếp 0023H Ngắt do bộ định thời 2 002BH 4. THIẾT KẾ CHƯƠNG TRÌNH SỬ DỤNG CÁC NGẮT: Khuôn mẫu đề nghị cho một chương trình được thực thi độc lập có sử dụng ngắt như sau: ORG 0000H ; điểm nhập sau khi reset LJMP MAIN - ; các điểm nhập của các ISR - ORG 0030H ; điểm nhập chương trình chính MAIN: ; chương trình chính bắt đầu - - END 4.1 Các trình phục vụ ngắt kích thước nhỏ: 45
  • 5. Tài liệu tham khảo TH. Vi xử lý GVHD: Trần Hoài Tâm Các trình phục vụ ngắt phải được bắt đầu ở gần đáy của bộ nhớ chương trình tại các địa chỉ qui định. Mặc dù chỉ có 8 byte giữa các điểm nhập của các trình phục vụ ngắt, dung lượng này thường đủ để thực hiện các công việc được yêu cầu và quay trở về chương thình chính từ một trình phục vụ ngắt. Điều này có nghĩa là trình phục vụ ngắt cho các ngắt tương ứng thường không dài quá 8 byte. Nếu có nhiều ngắt được dùng ta phải cẩn thận để đảm bảo các ISR được bắt đầu đúng vị trí mà không tràn sang ISR kế. Ex: ORG 0000H ; điểm nhập reset LJMP MAIN ORG 000BH ; điểm nhập ngắt bộ định thời 0 T0_ISR : ; bắt đầu ISR cho bộ định thời 0 MOV P2, #00001111B RETI ; trở về chương trình chính MAIN : ; chương trình chính - - END ; kết thúc chương trình 4.2 Các trình phục vụ ngắt kích thước lớn: Nếu một trình phục vụ ngắt dài hơn 8 byte được cần đến, ta phải di chuyển phương trình này đến một nơi khác trong bộ nhớ chương trình hoặc ta có thể cho lấn qua điểm nhập của ISR kế. Điển hình là ISR bắt đầu với một lệnh nhảy đến một vùng khác của bộ nhớ chương trình, ở đó ISR được trãi rộng nếu cần. Ex: ORG 0000H ; điểm nhập reset LJMP MAIN ORG 000BH ; điểm nhập ngắt do timer 0 LJMP T0_ISR - ; điểm nhập các ngắt khác (nếu có) 46
  • 6. Tài liệu tham khảo TH. Vi xử lý GVHD: Trần Hoài Tâm - ORG 0030H ; địa chỉ phía trên các vector ngắt MAIN: ; chương trình chính - - - T0_ISR: ; chương trình con phục vụ ngắt - ; do bộ định thời 0 - - RETI ; quay về chương trình chính END Ex: Viết chương trình tạo sóng vuông có tần số 10KHz trên chân p1.0 sử dụng bộ định thời 0 và ngắt do bộ định thời 0. ORG 0000H ; điểm nhập reset LJMP MAIN ORG 000BH ; điểm nhập ngắt timer 0 T0_ISR: ; ISR timer 0 CPL P1.0 ; đảo bit P1.0 RETI ; trở về chương trình chính MAIN: MOV TMOD, #00000010B ; timer 0 hoạt động ở chế độ 2 (8 bit) MOV TH0, #-50 ; giá trị nạp lại tương ứng với 50us MOV IE, #10000010B ; cho phép ngắt do bộ định thời 0 SETB TR0 ; bật timer 0 SJMP $ ; nhảy tại chỗ END Ex: Viết chương trình sử dụng các ngắt để tạo ra đồng thời các dạng sóng 47
  • 7. Tài liệu tham khảo TH. Vi xử lý GVHD: Trần Hoài Tâm vuông có tần số là 10KHz trên chân P1.0 và 500Hz trên chân P1.1 ORG 0000H LJMP MAIN ORG 000BH LJMP NGAT_T0 ORG 001BH LJMP NGAT_T1 ORG 0030H MAIN: MOV TMOD, #00010010B ; timer 1 chế độ 1, timer 0 chế độ 2 MOV TH0, #-50 MOV TH1, #HIGH(-1000) MOV TL1, #LOW(-1000) MOV IE, #10001010B SETB TR0 SETB TR1 SJMP $ NGAT_T0: CPL P1.0 RETI NGAT_T1: CLR TR1 MOV TH1, #HIGH(-1000) MOV TL1, #LOW(-1000) SETB TR1 CPL P1.1 RETI END 4.3 Các ngắt ngoài: 48
  • 8. Tài liệu tham khảo TH. Vi xử lý GVHD: Trần Hoài Tâm Ngắt ngoài xảy ra khi có mức thấp hoặc có cạnh âm trên chân /INT0 hoặc / INT1. Việc chọn các ngắt thuộc tác động cạnh hay các ngắt loại tác động mức được lập trình thông qua các bit IT0 và IT1 của thanh ghi TCON. Vì các chân ngắt ngoài được lấy mẫu một lần ở mỗi chu kỳ máy các ngõ vào này phải được duy trì tối thiểu 12 chu kỳ dao động để đảm bảo rằng việc lấy mẫu là đúng. Nếu ngắt ngoài thuộc tác động cạnh nguyên nhân ngắt ngoài phải được duy trì tại chân yêu cầu ở mức cao tối thiểu một chu kỳ và sau đó ở mức thấp tối thiểu một chu kỳ nữa để đảm bảo rằng việc chuyển trạng thái được phát hiện. IE0 và IE1 tự động được xóa khi CPU trỏ tới trình phục vụ ngắt tương ứng. Nếu ngắt ngoài thuộc loại tác động mức, nguyên nhân ngắt ngoài phải được duy trì trạng thái tích cực cho đến khi ngắt theo yêu cầu thực sự tạo ra. Sau đó nguyên nhân ngắt phải ở trạng thái thụ động trước khi trình phục vụ ngắt được thực thi xong hoặc trước khi có một ngắt khác được tạo ra. Thông thường, một công việc được thực thi bên trong trình phục vụ ngắt làm cho nguyên nhân ngắt trả tín hiệu yêu cầu ngắt trở về trạng thái không tích cực. 49