Counter 51
Blogroll: Best buy casual shoes | Buy converse shoes | Low price etonic shoes
Lab 4 (Interrupt) ข้อ 1 (18 กันยายน 2550) Microprocessor Report




Ninja!
Memories Of microprocessor
microprocessor
Lab 4 (Interrupt) ข้อ 1 (18 กันยายน 2550)
2 ตุลาคม 2550
จงอธิบายถึง Interrupt Vector และกลไกการเกิด Interrupt 

  การขัดจังหวะ( Interrupt ) คือการที่มีสัญญาณหรือคำสั่งที่ไม่ใช่คำสั่ง CALL หรือ JMP และทำให้การทำงานของโปรแกรมหลักถูกขัดจังหวะ และกระโดดไป
ยังตำแหน่ง ใดตำแหน่งหนึ่งที่กำหนดไว้และเมื่อทำงานเสร็จสิ้นก็จะกระโดดกลับมา
ยังโปรแกรมหลักและ ทำงานต่อไป

                                                      

                          
     สำหรับตำแหน่งที่โปรแกรมจะกระโดดไปทำงานเมื่อเกิดการขัดจังหวะ(Interrupt) เราจะเรียกว่า Interrupt Vector และโปรแกรมที่จะทำงานเมื่อเกิดการ Interrupt เราจะเรียกว่า Interrupt Service Routine สำหรับใน MCS-51 จะมีแหน่งกำเนิดสัญญาณ Interrupt ได้ทั้งหมด 5 แหล่ง(6 แหล่งสำหรับ 8052) ดังรูป

                                 
              

     สำหรับตำแหน่งของ Interrupt Vector ของแหล่งกำเนิด Interrupt แต่ละแหล่งจะมีค่าตามตาราง

                           
 
    Register ที่เกี่ยวข้อง
1)IE:Interrupt Enable Register มีตำแหน่งหน่วยความจำภายในที่ A8H

           

EA :เป็นบิตควบคุมการ Disable Interrupt ทั้งหมด โดยถ้าเป็น 0 จะหมาย
    ความว่าจะเป็นการกำหนดไม่ให้เกิดการ Interrupt ทั้งหมด แต่ถ้าเป็น 1
    หมายความว่าการ Enable/Disable จะขึ้นอยู่กับบิตควบคุมของ
    Interrupt source แต่ละแหล่ง

ET2:เป็นควบคุมการสั่งให้เกิดการ Enable Timer2 Interrupt โดยถ้าถูก
    กำหนดเป็น 1 จะหมายความว่าสามารถเกิดการ Interrupt ได้เมื่อ
    Timer2 เกิดการ Overflow

ES :เป็นควบคุมการสั่งให้เกิดการ Enable Serial Port โดยถ้าถูกกำหนดเป็น
    1 จะหมายความว่าสามารถเกิดการ Interrupt ได้เมื่อมีข้อถูกรับส่งผ่าน
    Serial Port
 
ET1:เป็นควบคุมการสั่งให้เกิดการ Enable Timer1 Interrupt โดยถ้าถูก
    กำหนดเป็น 1 จะหมายความว่าสามารถเกิดการ Interrupt ได้เมื่อ
    Timer2 เกิดการ Overflow
 
EX1:เป็นควบคุมการสั่งให้เกิดการ Enable External Interrupt โดยถ้าถูก
    กำหนดเป็น 1 จะหมายความว่าสามารถเกิดการ Interrupt ได้เมื่อระดับ
    สัญญาณที่ขา INT1 มีระดับเป็น 0 หรือเกิดการเปลี่ยนแปลงจาก 1 เป็น 0 ขึ้น
    กับการกำหนดค่าที่บิต IT1 ในรีจิสเตอร์ TCON ด้วย

ET0:เป็นควบคุมการสั่งให้เกิดการ Enable Timer0 Interrupt โดยถ้าถูก
    กำหนดเป็น 1 จะหมายความว่าสามารถเกิดการ Interrupt ได้เมื่อ
    Timer0 เกิดการ Overflow

EX0:เป็นควบคุมการสั่งให้เกิดการ Enable External Interrupt โดยถ้าถูก
    กำหนดเป็น 1 จะหมายความว่าสามารถเกิดการ Interrupt ได้เมื่อระดับ
    สัญญาณที่ขาINT0 มีระดับเป็น 0 หรือเกิดการเปลี่ยนแปลงจาก 1 เป็น 0 ขึ้นกับ
    การกำหนดค่าที่บิต IT0 ในรีจิสเตอร์ TCON ด้วย

2) IP:Interrupt Priority  มีตำแหน่งหน่วยความจำภายในคือ 0B8H

    

    ในการตอบสนอง Interrupt ถ้าหากเราต้องการใช้สัญญาณ Interrupt
จากแหล่งกำเนิดหลายแหล่ง เราต้องมีการกำหนดระดับความสำคัญ( priority)
ของสัญญาณ Interrupt สำหรับรีจิสเตอร์ที่ใช้ในการกำหนดความสำคัญของสัญญาณคือ IP แต่ถ้าหากเราไม่ได้กำหนดความสำคัญของ Interrupt ในตัวของ MCS-51 จะเรียงลำดับความสำคัญตามค่าต่อไปนี้ จากความสำคัญสูงสุดไปยังความสำคัญน้อยที่สุด
1. IE0
2. TF0
3. IE1
4. TF1
5. RI+TI

                 
              
     รูปแสดงการทำงานของระบบการขัดจังหวะใน MCS-51


posted @ 22:28:15 น. | Not Allow Comments




YourName: (* Require)
www:
* กดครั้งเดียวพอนะครับ


Privacy policy | Terms | Disclaimer | Contact
Copyright © Story owner & StoryThai.com. All rights reserved.