ไมโครคอนโทรลเลอร์ - 8051 อินเตอร์รัปต์
การขัดจังหวะคือเหตุการณ์ที่หยุดโปรแกรมหลักชั่วคราวส่งผ่านการควบคุมไปยังแหล่งภายนอกและดำเนินการตามภารกิจ จากนั้นจะส่งการควบคุมไปยังโปรแกรมหลักที่ค้างไว้
8051 มีสัญญาณขัดจังหวะ 5 รายการ ได้แก่ INT0, TFO, INT1, TF1, RI / TI การขัดจังหวะแต่ละครั้งสามารถเปิดใช้งานหรือปิดใช้งานได้โดยการตั้งค่าบิตของรีจิสเตอร์ IE และระบบขัดจังหวะทั้งหมดสามารถปิดใช้งานได้โดยการล้างบิต EA ของรีจิสเตอร์เดียวกัน
IE (Interrupt Enable) ลงทะเบียน
การลงทะเบียนนี้มีหน้าที่ในการเปิดใช้งานและปิดใช้งานการขัดจังหวะ การลงทะเบียน EA ถูกตั้งค่าเป็นหนึ่งสำหรับเปิดใช้งานการขัดจังหวะและตั้งค่าเป็น 0 เพื่อปิดใช้งานการขัดจังหวะ ลำดับบิตและความหมายแสดงในรูปต่อไปนี้
EA | IE 7 | มันปิดการขัดจังหวะทั้งหมด เมื่อ EA = 0 ไม่มีการขัดจังหวะจะรับทราบและ EA = 1 เปิดใช้งานการขัดจังหวะทีละรายการ |
- | IE 6 | สงวนไว้สำหรับใช้ในอนาคต |
- | IE 5 | สงวนไว้สำหรับใช้ในอนาคต |
ES | IE 4 | เปิด / ปิดการขัดจังหวะพอร์ตอนุกรม |
ET1 | IE 3 | เปิด / ปิดการใช้งานการขัดจังหวะการโอเวอร์โฟลของ timer1 |
EX1 | IE 2 | เปิด / ปิดการขัดจังหวะภายนอก 1. |
ET0 | IE1 | เปิด / ปิดการใช้งานการขัดจังหวะการโอเวอร์โฟลของ timer0 |
EX0 | IE.0 | เปิด / ปิดการขัดจังหวะภายนอก 0 |
IP (Interrupt Priority) ลงทะเบียน
เราสามารถเปลี่ยนระดับความสำคัญของอินเทอร์รัปต์ได้โดยเปลี่ยนบิตที่เกี่ยวข้องในรีจิสเตอร์ Interrupt Priority (IP) ดังแสดงในรูปต่อไปนี้
การขัดจังหวะที่มีลำดับความสำคัญต่ำสามารถถูกขัดจังหวะได้โดยการขัดจังหวะที่มีลำดับความสำคัญสูงเท่านั้น
หากได้รับการขัดจังหวะสองระดับที่มีลำดับความสำคัญต่างกันพร้อมกันระบบจะให้บริการคำขอของระดับความสำคัญที่สูงกว่า
หากได้รับคำขอที่มีระดับความสำคัญเดียวกันพร้อมกันลำดับการสำรวจภายในจะเป็นตัวกำหนดว่าจะให้บริการคำขอใด
- | IP.6 | สงวนไว้สำหรับใช้ในอนาคต |
- | IP 5 | สงวนไว้สำหรับใช้ในอนาคต |
ปล | IP.4 | เป็นการกำหนดระดับความสำคัญของการขัดจังหวะพอร์ตอนุกรม |
PT1 | IP.3 | เป็นการกำหนดการขัดจังหวะตัวจับเวลา 1 ลำดับความสำคัญ |
PX1 | IP.2 | เป็นการกำหนดระดับความสำคัญของการขัดจังหวะภายนอก |
PT0 | IP.1 | เป็นการกำหนดระดับลำดับความสำคัญของการขัดจังหวะ timer0 |
PX0 | IP.0 | เป็นการกำหนดการขัดจังหวะภายนอกของระดับความสำคัญ 0 |
ลงทะเบียน TCON
TCON register ระบุประเภทของอินเทอร์รัปต์ภายนอกให้กับไมโครคอนโทรลเลอร์