Interrupts theory in 8051.

 

 * Interrupt is a signal that calls the ISR (Internet Service Routine)

* 8051 has 5 interrupts - 2 external ( hardware ) & 3 internal ( Timer 0, Timer 1, Serial )

Registers used for interrupts : Tcon , IE  & IP .

TCON register : ( 8 bit register )

 
                                         | TFO |  TR0  |  TF1 |  TR1 | IE1 |  IT1  |  IE0 |  IT0 |
                                               TIMER1      TIMER0              Interrupts

IE0 / IE1  - if external interrupt is noticed. It sets the flag. 


IT0 / IT1 - when 0 specifies interrupt on falling edge 

                  when 1 specifies interrupt on low level.




Interrupt Enable register : ( 8 bit register )

 
                            | EA |  Res  |  Res |  ES | ET1 |  EX1  |  ET0 |  EX0 |
                                     

EA - if 0 all interrupts disabled.
         if  1  all interrupts enabled.


ES -   if   0 all serial interrupts disabled.
          if  1  all serial interrupts enabled.


ET1 - Timer 1 interrupt (en/dis).
EX1 - External 1 interrupt (en/dis).
ET0 - Timer 0 interrupt (en/dis).
EX0 - External 0  interrupt (en/dis).
 

    

Interrupt Priority register : ( 8 bit register )

 

                            |  - |  -  |  - |  PS  | PT1 |  PX1  |  PT0 |  PX0 |

PS - Serial Interrupt.
PT1 - Timer 1.
PX1 - External 1.
PT0 - Timer 0.
PX0 - External 0.


SET any of these bit 1 if you want to prioritize your interrupts.

if you don't use IP register then predefined priority is :  External 0 (Priority 1)
                                                                                        Timer 0     (Priority 2)
                                                                                       External 1  (Priority 3)
                                                                                         Timer 1     (Priority 4)
                                                                                          Serial      (Priority 5)


                                     



Comments