ขัดจังหวะในไมโครคอนโทรลเลอร์ 8051 และโครงสร้างและการเขียนโปรแกรม

ขัดจังหวะในไมโครคอนโทรลเลอร์ 8051 และโครงสร้างและการเขียนโปรแกรม

คุณสมบัติที่ทรงพลังและสำคัญที่สุดคือการขัดจังหวะใน ไมโครคอนโทรลเลอร์ 8051 . ในกระบวนการเรียลไทม์ส่วนใหญ่เพื่อจัดการกับเงื่อนไขบางอย่างอย่างถูกต้องงานจริงจะต้องหยุดชะงักไประยะหนึ่ง - ต้องดำเนินการที่จำเป็น - จากนั้นจะต้องกลับไปที่งานหลัก สำหรับการรันโปรแกรมประเภทดังกล่าวจำเป็นต้องมีการขัดจังหวะ แตกต่างอย่างสิ้นเชิงจากวิธีการสำรวจที่โปรเซสเซอร์ต้องตรวจสอบอุปกรณ์แต่ละตัวตามลำดับและถามว่าจำเป็นต้องใช้บริการหรือไม่ในขณะที่ใช้เวลาในการประมวลผลมากขึ้น



ขัดจังหวะในไมโครคอนโทรลเลอร์ 8051

ขัดจังหวะในไมโครคอนโทรลเลอร์ 8051

อินเทอร์รัปต์ในไมโครคอนโทรลเลอร์ 8051 เป็นที่ต้องการมากขึ้นเพื่อลดการตรวจสอบสถานะปกติของอุปกรณ์ที่เชื่อมต่อหรืออุปกรณ์ในตัว การขัดจังหวะคือเหตุการณ์ที่ระงับโปรแกรมหลักชั่วคราวส่งผ่านการควบคุมไปยังส่วนรหัสพิเศษเรียกใช้ฟังก์ชันที่เกี่ยวข้องกับเหตุการณ์และดำเนินการโฟลว์โปรแกรมหลักต่อจากที่ค้างไว้




อินเทอร์รัปต์เป็นประเภทต่างๆเช่นซอฟต์แวร์และฮาร์ดแวร์การขัดจังหวะแบบสวมหน้ากากและไม่สามารถปิดบังได้การขัดจังหวะแบบคงที่และเวกเตอร์เป็นต้น Interrupt Service Routine (ISR) เข้ามาในรูปภาพเมื่อเกิดการขัดจังหวะจากนั้นบอกให้โปรเซสเซอร์ดำเนินการที่เหมาะสมสำหรับการขัดจังหวะและหลังจากการเรียกใช้ ISR คอนโทรลเลอร์จะกระโดดเข้าสู่โปรแกรมหลัก

ประเภทของอินเทอร์รัปต์ในไมโครคอนโทรลเลอร์ 8051

ไมโครคอนโทรลเลอร์ 8051 สามารถรับรู้เหตุการณ์ที่แตกต่างกันห้าเหตุการณ์ที่ทำให้โปรแกรมหลักหยุดชะงักจากการทำงานปกติ ห้าแหล่งที่มาของการขัดจังหวะใน 8051 คือ:



  1. ตัวจับเวลา 0 ล้นขัดจังหวะ - TF0
  2. ตัวจับเวลา 1 ล้นขัดจังหวะ - TF1
  3. ฮาร์ดแวร์ภายนอกขัดจังหวะ - INT0
  4. ฮาร์ดแวร์ภายนอกขัดจังหวะ - INT1
  5. การสื่อสารแบบอนุกรมขัดจังหวะ - RI / TI

ตัวจับเวลาและการขัดจังหวะแบบอนุกรมถูกสร้างขึ้นภายในโดยไมโครคอนโทรลเลอร์ในขณะที่การขัดจังหวะภายนอกถูกสร้างขึ้นโดยเพิ่มเติม อุปกรณ์เชื่อมต่อ หรือสวิตช์ที่เชื่อมต่อภายนอกกับไมโครคอนโทรลเลอร์ การขัดจังหวะภายนอกเหล่านี้สามารถทริกเกอร์ขอบหรือระดับที่ทริกเกอร์ เมื่อเกิดการขัดจังหวะไมโครคอนโทรลเลอร์จะรันรูทีนบริการขัดจังหวะเพื่อให้ตำแหน่งหน่วยความจำสอดคล้องกับการขัดจังหวะที่เปิดใช้งาน การขัดจังหวะที่ตรงกับตำแหน่งหน่วยความจำมีให้ในตารางเวกเตอร์ขัดจังหวะด้านล่าง

ตารางเวกเตอร์ขัดจังหวะ

ตารางเวกเตอร์ขัดจังหวะ

โครงสร้างขัดจังหวะของคอนโทรลเลอร์ไมโคร 8051

เมื่อ 'RESET' การขัดจังหวะทั้งหมดจะถูกปิดใช้งานดังนั้นการขัดจังหวะเหล่านี้ทั้งหมดจะต้องเปิดใช้งานโดยซอฟต์แวร์ ในการขัดจังหวะทั้งห้านี้ถ้าใครหรือทั้งหมดถูกเปิดใช้งานสิ่งนี้จะตั้งค่าแฟล็กอินเทอร์รัปต์ที่เกี่ยวข้องดังแสดงในรูป การขัดจังหวะเหล่านี้สามารถตั้งค่าหรือล้างทีละบิตในการลงทะเบียนฟังก์ชันพิเศษบางอย่างที่เปิดใช้งานการขัดจังหวะ (IE) และสิ่งนี้จะขึ้นอยู่กับลำดับความสำคัญซึ่งดำเนินการโดยการลงทะเบียนลำดับความสำคัญการขัดจังหวะ IP


โครงสร้างขัดจังหวะของไมโครคอนโทรลเลอร์ 8051

โครงสร้างขัดจังหวะของไมโครคอนโทรลเลอร์ 8051

Interrupt Enable (IE) ลงทะเบียน: การลงทะเบียนนี้มีหน้าที่ในการเปิดใช้งานและปิดใช้งานการขัดจังหวะ เป็นการลงทะเบียนบิตแอดเดรสซึ่งต้องตั้งค่า EA เป็นหนึ่งเพื่อเปิดใช้งานการขัดจังหวะ บิตที่สอดคล้องกันในรีจิสเตอร์นี้เปิดใช้งานการขัดจังหวะโดยเฉพาะเช่นตัวจับเวลาอินพุตภายนอกและอนุกรม ในการลงทะเบียน IE ด้านล่างบิตที่ตรงกับ 1 จะเปิดใช้งานการขัดจังหวะและ 0 ปิดใช้งานการขัดจังหวะ

Interrupt Enable (IE) ลงทะเบียน

Interrupt Enable (IE) ลงทะเบียน

Interrupt Priority Register (IP): นอกจากนี้ยังสามารถเปลี่ยนระดับความสำคัญของการขัดจังหวะโดยการตั้งค่าหรือล้างบิตที่เกี่ยวข้องในการลงทะเบียนลำดับความสำคัญของการขัดจังหวะ (IP) ดังที่แสดงในรูป สิ่งนี้ช่วยให้การขัดจังหวะที่มีลำดับความสำคัญต่ำสามารถขัดจังหวะการขัดจังหวะที่มีลำดับความสำคัญสูงได้ แต่ห้ามมิให้การขัดจังหวะโดยการขัดจังหวะที่มีลำดับความสำคัญต่ำอื่น ในทำนองเดียวกันการขัดจังหวะที่มีลำดับความสำคัญสูงจะไม่ถูกขัดจังหวะ หากไม่ได้ตั้งโปรแกรมลำดับความสำคัญของการขัดจังหวะเหล่านี้ไมโครคอนโทรลเลอร์จะดำเนินการในลักษณะที่กำหนดไว้ล่วงหน้าและลำดับของมันคือ INT0, TF0, INT1, TF1 และ SI

ลงทะเบียน IP

ลงทะเบียน IP

ลงทะเบียน TCON: นอกเหนือจากการลงทะเบียนสองรายการข้างต้นแล้ว TCON register ยังระบุประเภทของการขัดจังหวะภายนอกให้กับไมโครคอนโทรลเลอร์ 8051 ดังแสดงในรูป อินเทอร์รัปต์ภายนอกทั้งสองไม่ว่าจะเป็นขอบหรือระดับที่ทริกเกอร์ระบุโดยรีจิสเตอร์นี้โดยชุดหรือล้างด้วยบิตที่เหมาะสมในนั้น และยังเป็นทะเบียนที่อยู่ได้เล็กน้อย

ลงทะเบียน TCON

ลงทะเบียน TCON

Interrupt Programming ใน 8051

1. การตั้งเวลาขัดจังหวะการเขียนโปรแกรม

การขัดจังหวะตัวจับเวลา 0 และตัวจับเวลา 1 ถูกสร้างขึ้นโดยบิตรีจิสเตอร์ตัวจับเวลา TF0 และ TF1 สิ่งเหล่านี้ขัดขวาง การเขียนโปรแกรมด้วยรหัส C เกี่ยวข้องกับ:

  • การเลือกตัวจับเวลาโดยกำหนดค่าทะเบียน TMOD และโหมดการทำงาน
  • การเลือกและโหลดค่าเริ่มต้นของ TLx และ THx สำหรับโหมดที่เหมาะสม
  • การเปิดใช้งานการลงทะเบียน IE และบิตจับเวลาที่เกี่ยวข้องในนั้น
  • การตั้งค่าตัวจับเวลารันบิตเพื่อเริ่มจับเวลา
  • การเขียนรูทีนย่อยสำหรับตัวจับเวลาสำหรับเวลาที่ต้องการและล้างค่าตัวจับเวลา TRx ที่ส่วนท้ายของรูทีนย่อย
การตั้งเวลาขัดจังหวะการเขียนโปรแกรม

การตั้งเวลาขัดจังหวะการเขียนโปรแกรม

2. การเขียนโปรแกรมขัดจังหวะฮาร์ดแวร์ภายนอก

ไมโครคอนโทรลเลอร์ 8051 ประกอบด้วยการขัดจังหวะฮาร์ดแวร์ภายนอกสองตัว: INT0 และ INT1 ตามที่กล่าวไว้ก่อนหน้านี้ สิ่งเหล่านี้เปิดใช้งานที่พิน 3.2 และพิน 3.3 สิ่งเหล่านี้อาจเป็นขอบทริกเกอร์หรือระดับทริกเกอร์ ในระดับทริกเกอร์ค่าต่ำที่พิน 3.2 จะเปิดใช้งานอินเทอร์รัปต์ขณะที่พิน 3.2 การเปลี่ยนจากสูงไปต่ำจะทำให้ขอบทริกเกอร์อินเทอร์รัปต์ การทริกเกอร์ขอบหรือการทริกเกอร์ระดับนี้ถูกตัดสินโดยการลงทะเบียน TCON ที่ได้กล่าวไว้ข้างต้น ขั้นตอนการเขียนโปรแกรมใน 8051 มีดังนี้:

  • เปิดใช้งานบิตของการขัดจังหวะภายนอกที่เกี่ยวข้องในการลงทะเบียน IE
  • หากเป็นการทริกเกอร์ระดับให้เขียนรูทีนย่อยที่เหมาะสมกับการขัดจังหวะนี้หรือมิฉะนั้นให้เปิดใช้งานบิตรีจิสเตอร์ TCON ที่ตรงกับขอบที่ทริกเกอร์อินเทอร์รัปต์ - ไม่ว่าจะเป็น INT0 หรือ INT1
การเขียนโปรแกรมขัดจังหวะฮาร์ดแวร์ภายนอก

การเขียนโปรแกรมขัดจังหวะฮาร์ดแวร์ภายนอก

3.Serial Communication Interrupt Programming

การขัดจังหวะการสื่อสารแบบอนุกรมจะเกิดขึ้นเมื่อมีความจำเป็นในการส่งหรือรับข้อมูล เนื่องจากบิตขัดจังหวะหนึ่งถูกตั้งค่าสำหรับทั้งแฟล็ก TI (Transfer Interrupt) และ RI (Receiver Interrupt) รูทีน Interrupt Service จึงต้องตรวจสอบแฟล็กเหล่านี้เพื่อทราบการขัดจังหวะที่แท้จริง

การดำเนินการหรือตรรกะของแฟล็กทั้งสองนี้ (RI และ TI) ทำให้เกิดการขัดจังหวะนี้และถูกล้างโดยซอฟต์แวร์เพียงอย่างเดียว ที่นี่ SCON ลงทะเบียนพิเศษใช้สำหรับการควบคุม การสื่อสาร การดำเนินการโดยเปิดใช้งานบิตที่เกี่ยวข้องในนั้น

  • กำหนดค่าการลงทะเบียน IE เพื่อเปิดใช้งานการขัดจังหวะแบบอนุกรม
  • กำหนดค่าการลงทะเบียน SCON สำหรับการรับหรือโอนการดำเนินการ
  • เขียนรูทีนย่อยสำหรับการขัดจังหวะนี้ด้วยฟังก์ชันที่เหมาะสมและล้างแฟล็ก TI หรือ RI ด้วยในรูทีนนี้
การเขียนโปรแกรม Serial Interrupt

การเขียนโปรแกรม Serial Interrupt

ทั้งหมดนี้เกี่ยวกับการขัดจังหวะในไมโครคอนโทรลเลอร์ 8051 ประเภทโครงสร้างและการเขียนโปรแกรม หวังว่าคุณจะได้รับข้อมูลดีๆจากบทความนี้ นอกจากนี้คุณสามารถเขียนถึงเราในส่วนความคิดเห็นด้านล่างสำหรับการใช้งานแบบเรียลไทม์ โครงการไมโครคอนโทรลเลอร์ เพื่อให้เราสามารถช่วยเหลือคุณเพื่อประสบการณ์ที่ดียิ่งขึ้น

เครดิตภาพ

  • ขัดจังหวะในไมโครคอนโทรลเลอร์ 8051 โดย วิศวกร
  • ตารางเวกเตอร์ขัดจังหวะโดย 8051 โครงการ
  • โครงสร้างขัดจังหวะของไมโครคอนโทรลเลอร์ 8051 โดย แปรง
  • Interrupt Enable (IE) ลงทะเบียนโดย อิเล็กโทรอน
  • ลงทะเบียน IP โดย วงจร
  • TCON ลงทะเบียนโดย วงจร