8051Interrupts
Interrupts Programming• An interrupt is an external or internal event that  interrupts the microcontroller to inform it th...
Steps in executing an interrupt• Finish current instruction and saves the PC on stack.• Jumps to a fixed location in memor...
Interrupt Sources• Original 8051 has 6 sources of interrupts  – Reset  – Timer 0 overflow  – Timer 1 overflow  – External ...
Interrupt VectorsEach interrupt has a specific place in code memory where  program execution (interrupt service routine) b...
Interrupt Enable (IE) registerAll interrupt are disabled after resetWe can enable and disable them bye IE
External interrupt type control• By low nibble of Timer control register TCON• IE0 (IE1): External interrupt 0(1) edge fla...
Interrupt Priorities• What if two interrupt sources interrupt at the same  time?• The interrupt with the highest PRIORITY ...
Interrupt Priorities (IP) Register ---     ---    PT2     PS     PT1     PX1        PT0   PX0IP.7: reservedIP.6: reservedI...
#include<reg51.h>void delay(unsigned int);void timer0(void) interrupt 0{P0=0xff;} void delay(unsigned int it)             ...
Upcoming SlideShare
Loading in...5
×

37471656 interrupts

588

Published on

interrupt 8051

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
588
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
82
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

37471656 interrupts

  1. 1. 8051Interrupts
  2. 2. Interrupts Programming• An interrupt is an external or internal event that interrupts the microcontroller to inform it that a device needs its service. Interrupts vs. Polling• A single microcontroller can serve several devices.• There are two ways to do that: – interrupts – polling.• The program which is associated with the interrupt is called the interrupt service routine (ISR) or interrupt handler.
  3. 3. Steps in executing an interrupt• Finish current instruction and saves the PC on stack.• Jumps to a fixed location in memory depend on type of interrupt• Starts to execute the interrupt service routine until RETI (return from interrupt)• Upon executing the RETI the microcontroller returns to the place where it was interrupted. Get pop PC from stack
  4. 4. Interrupt Sources• Original 8051 has 6 sources of interrupts – Reset – Timer 0 overflow – Timer 1 overflow – External Interrupt 0 – External Interrupt 1 – Serial Port events (buffer full, buffer empty, etc)
  5. 5. Interrupt VectorsEach interrupt has a specific place in code memory where program execution (interrupt service routine) begins.External Interrupt 0: 0003hTimer 0 overflow: 000BhExternal Interrupt 1: 0013hTimer 1 overflow: 001BhSerial : 0023hTimer 2 overflow(8052+) 002bh
  6. 6. Interrupt Enable (IE) registerAll interrupt are disabled after resetWe can enable and disable them bye IE
  7. 7. External interrupt type control• By low nibble of Timer control register TCON• IE0 (IE1): External interrupt 0(1) edge flag. – set by CPU when external interrupt edge (H-to-L) is detected.• IT0 (IT1): interrupt 0 (1) type control bit. – IT=1 edge trigger – IT=0 low-level trigger(MSB) (LSB) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Timer 1 Timer0 for Interrupt
  8. 8. Interrupt Priorities• What if two interrupt sources interrupt at the same time?• The interrupt with the highest PRIORITY gets serviced first.• All interrupts have a power on default priority order. 1. External interrupt 0 (INT0) 2. Timer interrupt0 (TF0) 3. External interrupt 1 (INT1) 4. Timer interrupt1 (TF1) 5. Serial communication (RI+TI)• Priority can also be set to “high” or “low” by IP reg.
  9. 9. Interrupt Priorities (IP) Register --- --- PT2 PS PT1 PX1 PT0 PX0IP.7: reservedIP.6: reservedIP.5: timer 2 interrupt priority bit(8052 only)IP.4: serial port interrupt priority bitIP.3: timer 1 interrupt priority bitIP.2: external interrupt 1 priority bitIP.1: timer 0 interrupt priority bitIP.0: external interrupt 0 priority bit
  10. 10. #include<reg51.h>void delay(unsigned int);void timer0(void) interrupt 0{P0=0xff;} void delay(unsigned int it) IE=0x81; { TCON=0x03; unsigned int i; while(1) for(i=0;i<it;i++); for(i=0;i<it;i++); { } P1=0x00; delay(200);void main() P1=0xff;{ delay(200); }}
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×