Đồ án này có thể cải tiến thêm nhiều chức năng nữa cho phù hợp với nhữngdây truyền hiện đại và mục đích sử dụng của mạch như liên kết với cơcấu để có thể xếp đủ sản phẩm vào một thùng, h
Trang 1MỤC LỤC
Trang 2LỜI NÓI ĐẦU
Trong thời đại công nghệ phát triển mạnh mẽ, các thiết bị số đang
có vai trò quan trọng đối với công nghiệp và đời sống con người vàđang dần chiếm ưu thế về số lượng và chủng loại Công nghệ số đượcứng dụng trong nhiều lĩnh vực trong cộc sống, chủ yếu làm các nhiêm vụchính như: đo lường, điều khiển cơ cấu máy, truyền thong giữa các thiết bị
…tạo sự tiện dụng cho con người khi sử dụng các thiết bị điện tử
Với tính ưu việt của vi điều khiển đối với các hệ thống vừa và nhỏthực hiện một hoặc nhiều quá trình, trong đồ án này hệ thống vi điều khiểnđược dùng trong một lĩnh vực thường gặp khi nói đến khi nhắc đến viđiều khiển : đếm sự kiện Một trong những ứng dụng của nó trong thực
tế là phần đếm sản phẩm trong các dây truyền công nghiệp ngày nay Đồ
án này có thể cải tiến thêm nhiều chức năng nữa cho phù hợp với nhữngdây truyền hiện đại và mục đích sử dụng của mạch như liên kết với cơcấu để có thể xếp đủ sản phẩm vào một thùng, hay đếm số thùng trongmột lô hàng, nó cũng có thể lưu lại dữ liệu của một ca làm việc tiện choviệc kiểm tra bảo mật…
Đồ án đã được thực hiện nhằm làm rõ hơn bản chất của vi điềukhiển đối với việc điều khiển một quá trình và bản chất cấu thành củamột hệ thống vi điều khiển Từ kiến thức đã học đồng thời tham khảothêm thông tin từ nhiều nguồn cùng với sự trợ giúp của thầy cô và bạn bè,tuy vậy với vốn kiến thức có hạn không tránh khỏi những thiếu sót khithực hiện Mong các thầy cô và mọi người góp ý cho đề tài này thêmhoàn chỉnh
Trang 3CHƯƠNG I: TỔNG QUAN ĐỀ TÀI
I MẠCH ĐẾM SẢN PHẨM
Ngày nay, cùng với sự phát triển của khoa học kỹ thuật nói chung và
kỹ thuật điện tử nói riêng Kỹ thuật số đóng vai trò quan trọng trong mọilĩnh vực khoa học kỹ thuật , quản lý, công nghiệp hóa tự động hóa Do đóchúng ta phải nắm bắt vận dụng nó một cách hiệu quả nhằm góp phần vào
sự phát triển của nền khoa học kỹ thuật thế giới nói chung và phát triển của
kỹ thuật điện tử nói chung
Việc áp dụng lĩnh vực điện tử vào nghành sản xuất sản phẩm giadụng trong nhà và các hệ thống quản lý sản xuất đang được đưa vào ứngdụng rộng rãi hơn và phù hợp với chức năng cụ thể của nó làm tăng năngsuất làm việc cho dây truyền làm việc Phù hợp với tiến trình công nghiệphóa hiện đại hóa nền công nghiệp nước ta
Trong thực tế các nhà máy sản xuất lớn đã ứng dụng việc đếm sảnphẩm trong khâu đóng gói sản phẩm bằng các mạch điện tử làm tăng năngsuất lao động và giảm chi phí nhân công, tự động hóa dây truyền côngnghiệp, chính xác hóa trong sản phẩm
Mạch đếm sản phẩm mà tôi được giao làm đồ án mô phỏng một hệthống đếm sản phẩm của dây truyền công nghiệp Với đề tài này tôi chọnmạch đếm sản phẩm dùng 89s52 một trong những dòng vi xử lý mà tôi đãđược học trong môn vi điều khiển với những linh kiện nhỏ gọn thực hiệnviêc đếm sản phẩm Linh kiện hồng ngoại được chọn trong mạch là thuphát hồng ngoại tích hợp 2 trong 1 nhằm đảm bảo sự gọn nhẹ cho mạch
mô phỏng Phần giao tiếp máy tính dùng Max232 để đồng bộ tín hiệu giữamạch với máy tính (đồng bộ điện áp)
Trang 4II.TỔNG QUAN CẤU TRÚC HỆ THỐNG
1. Sơ đồ khối
Hình 1
2. Chức năng các khối
- Mạch nguồn: cung cấp nguồn điện cho hệ thống hoạt động
- Mạch Reset: Reset Vi điều khiển
- Mạch tạo xung: tạo xung cho Vi điều khiển
- Cảm biến hồng ngoại: phát hiện sản phẩm
- Mạch so sánh: gây ngắt cho vi điều khiển khi có sản phẩm đi qua
- Led đơn: báo sang khi đếm đủ sản phẩm
- Led 7 đoạn: hiển thị số lượng sản phẩm
- Max 232: Tương thích mức điện áp giữa máy tính với vi điều khiển
- Cổng COM: truyền nhận dử liệu từ máy tính tới vi điều khiển
- Giao diện: giao diện điều khiển hệ thống
Trang 5III GIỚI THIỆU VỀ LINH KIỆN SỬ DỤNG
1. Giới thiệu 89S52
Hình 2
AT89S52 là một vi điều khiển thông dụng giá rẻ và có nhiều tínhnăng hay,đặc biệt là có tích hợp mạch nạp ISP trên chíp giúp người sửdụng có thể dễ dàng thực hiện các thí nghiệm với chi phí thấp
AT89S52 gồm các chức năng chính sau:
* CPU gồm:
- Thanh ghi tích lũy A;
- Thanh ghi tích lũy phụ B,dùng cho phép nhân và phép chia;
- Đơn vị logic học (ALU: Arithmetic Logical Unit);
- Thanh ghi từ trạng thái chương trình (PSW: Programe StatusWord);
- Bốn băng thanh ghi;
- Con trỏ ngăn xếp
Trang 6* Bộ nhớ chương trình (bộ nhớ ROM) gồm 8kbyte Flash.
* Bộ nhớ dữ liệu (bộ nhớ RAM) gồm 256 byte
* Bộ UART (Universal Ansynchronous Receiver and Transmitter)
có chức năng truyền nhận nối tiếp, AT89S52 có thể giao tiếp với cổng nốitiếp của máy tính thông qua bộ UART
* 3 bộ Timer/Counter 16 bit thực hiện chức năng định thời và đếm
* Bộ chia tần số với hệ số chia la 12
* 4 cổng xuất nhập với 32 chân
Sơ đồ chân:
Trang 7Hình 3
1.1 Port 0 (P0.0->P0.7)
Ngoài chức năng xuất nhập, Port 0 còn là bus đa hợp dữ liệu và địachỉ,chức năng này sẽ được sử dụng khi giao tiếp với các thiết bị ngoài cókiến trúc như các vi mạch nhớ
P3_0 RXD Dữ liệu nhận cho port nối tiếp
P3_1 TXD Dữ liệu truyền cho port nối tiếp
Trang 8P3_5 T1 Ngõ vào của counter/timer 1
P3_6 WR Xung ghi bộ nhớ dữ liệu ngoài
P3_7 RD Xung đọc dữ liệu từ bộ nhớ ngoài hoặc thiết
bị ngoại vi
1.5 Chân /PSEN (Program Store Enable)
Là chân điều khiển đọc chương trình ở bộ nhớ ngoài, nó được nốivới chân /OE để cho phép đọc các byte mã lệnh trên ROM ngoài /PSEN
sẽ ở mức thấp trong thời gian đọc mã lệnh Mã lệnh được đọc từ bộ nhớngoài qua bus dữ liệu (Port 0) , thanh ghi lệnh để được giải mã Khi thựchiện chương trình trong ROM nội thì /PSEN ở mức cao
1.6 Chân /ALE (Adress Latch Enable)
ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần sốdao động của vi điềukhiển Tín hiêu ALE được dùng cho phép vi mạchchốt bên ngoài như 74373,74573, chốt byte địa chỉ thấp ra khỏi bus đahợp địa chỉ/ dữ liệu (Port 0)
1.7 Chân /EA (External access)
Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ tronghay ngoài vi điều khiển Nếu /EA ở mức cao (đối với VCC ) thì vi điềukhiển thi hành chương trình trong ROM nội Nếu /EA ở mức thấp (đối vớiGND) thì vi điều khiển thi hành chương trình từ bộ nhớ ngoài
1.8 Chân/RST ( Reset)
Ngõ vào /RST trên chân 9 là ngõ reset của 8051 Khi tín hiệu này
ở mức cao (trong ít nhất 2 chu kỳ máy) các thanh ghi trong bộ vi điềukhiển được tải những giá trị thích hợp để khởi động hệ thống
Trang 9Mạch reset cho 8051
Reset bằng tay Reset tự động khi cấp nguồn
Hình 4
1.9 Chân /XTAL1, /XTAL2
AT89S52 có một bộ dao động trên chíp,nó thường được nối với bộdao động thạch anh có tần số lớn nhất là 33 MHz, thông thường là12MHz
Trang 10được hiểu là tràn timer (overflow) và có thể gây ra ngắt nếu ngắt tràn timerđược cho phép.
Việc cho timer chạy/dừng được thực hiện bởi các bit TR trong thanh
ghi TCON 9 (đánh địa chỉ đến từng bit).
7 6 5 4 3 2 1 0
Khi bit TRx =1,timer x sẽ đếm,ngược lại khi TRx =0,timer sẽ khôngđếm mặc dù vẫn có xung đưa vào.Khi dừng không đếm,giá trị của timerđược sẽ giữ nguyên
Các bit TFx là các cờ báo tràn timer.khi sự tràn timer xảy ra,cờ sẽđược tự động đặt lên 1 và nếu ngắt tràn timer được cho phép,ngắt sẽ xảyra.Khi CPU xử lý ngắt tràn timerx,cờ ngắt TFx tương ứng sẽ tự động đượcxóa về 0
Giá trị đếm 16 bit của timer được lưu trong hai thanh ghi THx (bytecao) và TLx (byte thấp).Hai thanh ghi này có thể ghi/đọc được bất kỳ lúcnào.Tuy nhiên nhà sản xuất khuyến cáo rằng nên dừng timer (cho bitTRx=0) trước khi ghi/đọc các thanh ghi chứa giá trị đếm
Các thanh ghi có thể hoạt động ở nhiều chế độ,được quy định bởicác bit trong thanh ghi
TMOD (không đánh địa chỉ đến từng bit)
7 6 5 4 3 2 1 0
GATE1 C/T1# M1 M0 GATE0 C/T0# M1 M0
7 GATE1 1 Bit mở cổng cho timer 1,khi được đặt bằng 1thì timer 1 chạy khi chân INT1 ở mức cao.Nếu
bit này được là 0 thì hoạt động của timer 1không bị ảnh hưởng bởi mức logic trên chânINT1
Bit chọn chế độ counter/timer của timer
1 1=bộ đếm sự kiện1.0=bộ định khoảng thời gian
Trang 115 M1 1 Bit 1 chọn chế độ (mode) của timer 1
Bit 0 chọn chế độ của timer 1
00:chế độ 0 – timer 13bit01:chế độ 1 – timer 16bit10:chế độ 2 – 8bit tự động nạp lại11:chế độ 3 – tách timer
3 GATE0 0 Bit mở cổng cho timer 0,khi được đặt bằng 1timer 0 chỉ hoạt động khi chân INT0 ở mức
cao
Để xác định thời gian,người ta chọn nguồn xung nhịp (clock) đưavào đếm trong timer là xung nhịp bên trong (dành cho CPU).Nguồn xungnhịp này thường rất đều đặn (có tần số ổn định),do đó từ số đếm của timerngười ta có thể nhân với chu kỳ xung nhịp để tính thời gian trôi qua.Timerlúc này được gọi chính xác với cái tên “timer” ,tức bộ định thời
Để đếm các sự kiện bên ngoài,người ta chọn nguồn xung nhịp đưavào đếm trong timer là tín hiệu từ bên ngoài (đã được chuẩn đoán về dạngxung vuông 0V/5V).Các tín hiệu này sẽ được nối với các bit cổng có dồnkênh thêm các tính năng T0/T1/T2.Khi có sự kiện bên ngoài gây ra thayđổi mức xung ở đầu vào đếm,timer sẽ tự động tăng lên 1 đơn vị giống nhưtrường hợp đếm xung nhịp bên trong.Lúc này timer được gọi với cái tênchính xác khác:”counter”,tức đếm (sự kiện)
Nhìn vào bảng mô tả thanh ghi TMOD bên trên,ta có thể nhậnthấy có hai bộ 4bit giống nhau (gồm GATEx,C/Tx,Mx0 và Mx1) dànhcho hai timer 0 và 1.Ý nghĩa các bit là như nhau đối với mỗi timer
Bit GATEx quy định việc cho phép timer đếm (run timer).NếuGATEx=0,timer x sẽ đếm khi bit TRx bằng 1,dừng khi bit TRx = 0.NếuGATEx =1,timer x sẽ chỉ đếm khi bit TRx=1 và tín hiệu tại chânINTx=1,dừng khi một trong hai điều kiện trên không còn thỏamãn.Thông thường người ta dùng timer với GATE =0,chỉ dùng timervới GATE =1 khi muốn đo độ rộng xung vì lúc đó timer sẽ chỉ đếm thờigian khi xung đưa vào chân INTx ở mức cao
Trang 12Bit C/Tx quy định nguồn clock đưa vào đếm trong timer NếuC/Tx=0,timer sẽ được cấu hình là bộ định thời,nếu C/Tx=1,timer sẽ đượccấu hình là bộ đếm sự kiện.
Hai bit còn lại (Mx0 và Mx1) tạo ra tổ hợp 4 gía trị (00,01,10,11)ứng với 4 chế độ hoạt động khác nhau của timer x.Trong 4 chế độ đóthường chỉ dùng chế độ timer/counter 16bit (Mx1=0,Mx0=1) và chế độAuto Reload 8bit timer/couter (Mx1=1,Mx0=0)
Trong chế độ timer/couter 16 bit, gia trị đếm (chứa trong 2 thanhghi THx và TLx) tự động được tăng lên 1 đơn vị mỗi lần nhận được thêm
1 xung nhịp Khi giá trị đếm vượt quá giá trị max = 65535 thì sẽ tràn về 0,
cờ ngắt TFx được tự động đặt =1 Chế độ này được dùng trong các ứngdụng đếm thời gian và đếm sự kiện
Trong chế độ auto reload 8 bit giá trị đếm sẽ chỉ được chứa trongthanh ghi TRx, còn giá trị của thanh ghi THx bằng một số n (0->255) dongười lập trình đưa vào Khi có thêm một xung nhịp, giá trị đếm trongTLx đương nhiên cũng tăng lên 1 đơn vị như bình thường Tuy nhiêntrong trường hợp này giá trị đếm lớn nhất = 255 chứ không phải = 65535như trường hợp trên vì timer/counter chỉ còn 8 bit Do vậy sự kiện tràn lúcnày xảy ra nhanh hơn, chỉ cần vượt quá 255 là giá trị đếm sẽ tràn Cờ ngắtTFx vẫn được đặt bằng 1 như trong trường hợp tràn 16 bit Điểm khác biệt
là thay vì tràn về 0 giá trị THx sẽ được tự động nạp lại vào thanh ghi TLx,
do đó timer/counter sau khi tràn sẽ có giá trị bằng n và đếm từ giá trị ntrở đi Chế độ này được dùng trong việc tạo Baud rate cho truyền thôngqua cổng nối tiếp
Để sử dụng timer của 8051,ta thực hiện theo các bước sau:
- Quy định chế độ hoạt động cho timer bằng cách tính toán và ghigiá trị cho các bit trong thanh ghi TMOD
- Ghi giá trị đếm khởi đầu mong muốn vào hai thanh ghi đếmTHx và TLx Đôi khi ta không muốn timer/counter bắt đầu đếm từ 0 mà
từ một giá trị nào đó để thời điểm tràn gần hơn,hoặc chẵn hơn trongtính toán sau này.Ví dụ,nếu cho timer đếm từ 15535 thì sau 50000 xungnhịp (tức 50000 micro giây với thạch anh 12MHz) timer sẽ tràn,và thờigian 1giây có thể dễ dàng tính ra khá chính xác =20 lần tràn của timer(đương nhiên mỗi lần tràn lại phải nạp lại giá trị 15535)
- Đặt mức ưu tiên ngắt và cho phép ngắt tràn timer (nếu muốn)
Trang 13- Dùng bit TRx trong thanh ghi TCON để cho timer chạy hay dừngtheo ý muốn.
1.12 Cổng vào ra nối tiếp (Serial Port)
Cổng nối tiếp trong 8051 chủ yếu được dung trong các ứngdụng có yêu cầu truyền thông với máy tính,hoặc một vi điều khiểnkhác.Liên quan đến cổng nối tiếp chủ yếu có hai thanh ghi :SCON vàSBUF.Ngoài ra một thanh ghi khác là thanh ghi PCON (không đánh địachỉ bit) có 7bit tên là SMOD quy định tốc độ truyền của cổng nối tiếp cógấp đôi lên (SMOD = 1) hay không (SMOD = 0)
Dữ liệu được truyền nhận nối tiếp thông qua hai chân cổng P3.0(RXD) và P3.1 (TXD)
Thanh ghi SBUF là thanh ghi 8 bit chứa dữ liệu truyền hoặcnhận.Về thực chất có hai thanh ghi dữ liệu khác nhau,một để chứa dữ liệutruyền đi,một để chứa dữ liệu nhận được Cả hai thanh ghi này đều cóchung tên SBUF,tuy nhiên CPU hoàn toàn phân biệt được một cách dễdàng Khi ta muốn truyền dữ liệu đi,ta phải ghi vào thanh ghi SBUF (ví dụviết lệnh mov SBUF ,a) còn khi muốn đọc,kiểm tra dữ liệu nhận ta phảighi vào thanh ghi SBUF (ví dụ viết lệnh mov a,SBUF) CPU sẽ căn cứ vàoviệc thanh ghi SBUF nằm ở vị trí toán hạng đích (toán hạng bên trái) haytoán hạng nguồn (toán hạng bên phải) để quyết định sẽ truy nhập (đọc/ghi)thanh ghi SBUF nào Người lập trình không cần phải quan tâm xử lý vấn
đề này
Thanh ghi quy định chế độ hoạt động và điểu khiển cổng nối tiếp
là thanh ghi SCON (đánh địa chỉ bit)
Trang 14Bit SM0,SM1,SM2 quy định chế độ hoạt động của cổng nốitiếp.Thôngthường để truyền thông giữa hai vi điều khiển hoặc giữa một viđiều khiển và một máy tính,giá trị của bit SM2 được đặt bằng 0.Khitruyền thông theo kiểu mạng đa vi xử lý (multiprocessorcommunication),SM2 được đặt bằng 1.Hai bit SM0 và SM1 thực sự làcác bit quy định chế độ hoạt động của cổng nối tiếp,chúng tạo ra 4 tổhợp (00,01,10 và11) ứng với 4 chế độ hoạt động mô tả trong bảng sau:
C
hế độ 0: là chế độ truyền đồng bộ duy nhất Chân RXD sẽ là tín
hiệu truyền nhận dữ liệu, chân TXD là tín hiệu xung nhịp.Bit LSB (bit 0)của dữ liệu được truyền đi trước tiên.Tốc độ truyền cố định và bằng 1/12giá trị thạch anh
C
hế độ 1: là chế độ truyền dị bộ 8bit.Dữ liệu 8bit được đóng khung
bởi 1bit Star (=0) ở đầu và bit Stop (=1) ở cuối trước khi dữ liệu đượctruyền đi.Tốc độ truyền có thể thay đổi theo ý người lập trình
C
hế độ 2: là chế độ truyền dị bộ 9 bit.Dữ liệu truyền 9 bit được ghép
thành bởi 8 bit trong thanh ghi SBUF và bit RB8 (trường hợp nhận về)hoặc TB8 (trường hợp truyền đi) trong thanh ghi SCON.Ngoài ra các bitStar và Stop vẫn được gắn bình ở đầu và ở cuối khung truyền.Trong chế
độ này,tốc độ truyền chỉ chọn 1 trong 2 mức :1/32 hoặc 1/64 giá trị củathạch anh
C
hế độ 3: cũng là chế độ truyền dị bộ 9bit,khác với chế độ 2 ở chỗ
tốc độ truyền có thể
thay đổi được theo ý người lập trình như chế độ 1
Bit REN trong thanh ghi SCON là bit cho phép nhận dữ liệu.Dữ liệu
chỉ được nhận qua cổng nối tiếp khi bit này bằng 1
Bit TB8 là bit dữ liệu thứ 9 trong trường hợp truyền đi 9bit (8 bit
kia trong thanh ghi SBUF)
Bit RB8 là bit dữ liệu thứ 9 trong trường hợp nhận về 9bit (8 bit
kia trong thanh ghi SBUF)
Bit TI là cờ ngắt truyền,báo hiệu việc truyền 1khung dữ liệu đã hoàn
tất
Bit RI là cờ ngắt nhận,báo hiệu việc nhận 1khung dữ liệu đã hoàn
tất
Trang 15Để tạo ra tốc độ truyền (Baud rate) của cổng nối tiếp trong8051,phải dùng đến timer 1 ở chế độ Auto Reload 8bit.Giá trị nạp lạichứa trong thanh ghi TH1 được tính toán theo công thức sau (phụ thuộcvào Baud rate mong muốn và giá trị của thạch anh).
Tóm lại để sử dụng cổng nối tiếp của 8051,ta thực hiện theo cácbước sau:
- Chọn chế độ cho cổng nối tiếp (đồng bộ/dị bộ,8bit/9bit…) từ đóchọn được giá trị cho các bit trong thanh ghi SCON.Lưu ý xoá các bit TI
và RI
- Chọn tốc độ truyền mong muốn,từ đó tính ra giá trị của thanh ghiTH1.Cho timer 1 chạy ở chế độ Auto Reload 8bit (không dung ngắt tràntimer 1)
- Đặt mức ưu tiên ngắt và cho phép ngắt cổng nối tiếp nếu muốn
- Bắt đầu truyền dữ liệu bằng một lệnh ghi dữ liệu muốntruyền vào thanh ghi
SBUF.Quá trình truyền kết thúc thì cờ TI tự động đặt lên 1
- Khi một khung dữ liệu đã được nhận đầy đủ ,cờ RI sẽ tự động đặtlên và người lập trình lúc này có thể dùng lệnh đọc thanh ghi SBUF để lấy
dữ liệu nhận được ra xử lý
1.13 Ngắt (interrupt)
8051 chỉ có một ssó lượng ít các nguồn ngắt (interrupt source),hoặc
có thể gọi là nguyên nhân ngắt.Mỗi ngắt sẽ có một vector ngắt riêng, đó
là một địa chỉ cố định nằm trong bộ nhớ chương trình.Khi ngắt xảyra,CPU sẽ tự động nhảy đến thực hiện lệnh tại địa chỉ này.Bảng tóm tắtcác ngắt trong 8051 như sau:
ngắt
Thanhghi
Vectorngắt
tích cực thao kiểu đã chọn ởchân P3.2
IE0 TCON 0x0003
timer 0 tràn từ giá trị max vềmin
TF0 TCON 0x000B
Trang 163 INT1 Ngắt ngoài 1 khi tín hiệu
tích cực theo kiểu đã chọn ởchân P3.3
IE1 TCON 0x0013
timer 1 tràn từ giá trị max vềmin
TF1 TCON 0x001B
5 Serial Port Ngắt cổng nối tiếp khi vi
điều khiển nhận hoặc truyềnxong 1byte bằng cổng nốitiếp
TI,RI SCON 0x0023
Liên quan đến ngắt chủ yếu có 2 thanh ghi là thanh ghi cho phépngắt IE và thanh ghi ưu tiên ngắt IP
- Thanh ghi cho phép ngắt IE (Interrupt Enable):
Để cho phép một ngắt xảy ra,bit tương ứng với ngắt đó và bit EAphải được dặt bằng 1.Thanh ghi IE là thanh ghi đánh địa chỉ từng bit,do
đó có thể dùng các lệnh tác động bit để tác động riêng rẽ lên từng bit màkhông ảnh hưởng đến giá trị các bit khác.Cờ ngắt hoạt động độc lập vớiviệc cho phép ngắt, điều đó có nghĩa là cờ ngắt sẽ tự động đặt lên bằng 1khi có sự kiện ngắt xảy ra,bất kể sự kiện đó có được cho phép ngắt haykhông.Do vậy,trước khi cho phép một ngắt,ta nên xoá cờ của ngắt đó đểđảm bảo sau khi cho phép,các sự kiện gây ngắt trong quá khứ không thểgây ngắt nữa
- Thanh ghi ưu tiên thứ tự ngắt IP(Interrupt Priority):
Các bit trong thanh ghi IP tương ứng với các ngắt đúng nhưtrong thanh ghi IE (bit PX0 dành cho ngắt ngoài 0,bit PT0 dành cho ngắttimer 0…)
Một điều dễ nhận thấy là một ngắt được đặt mức ưu tiên cao (bittương ứng trong thanh ghi IP bằng 1) thì sẽ không có ngắt nào xen vào quátrình xử lý nó được nữa