Professional Documents
Culture Documents
Interrupt Sample Interrupt String
Interrupt Sample Interrupt String
#include<reg51.h>
#include<intrins.h>
#include<reg51.h>
sbit status=P1^7;
#include<intrins.h>
void extint0(void) interrupt 0
sbit status=P1^7;
{
code char s[6]="vector";
status=~status;
void extint1(void) interrupt 2
}
{
main()
static unsigned char i;
{
TR1=1;
unsigned char x=0x01;
status=~status;
IE=0x81;
SBUF=s[i++];
TCON =0x00;//level triggering
while(!TI);
while(1)
TI=0;
{
if(i==6)
P0=x;
EA=0;
x=_crol_(x,1);
TR1=0;
}
}
}
main()
EA=EX1=1;
IT1=1;
SCON=0x40;
TMOD |=0x20; }
TH1=TL1=-3; main()
while(1) {
P0=x; EA=EX0=EX1=IT0=IT1=1;
x=_crol_(x,1); PX0=1;
} while(1)
} {
P0=x;
x=_crol_(x,1);
Interrupt priority
}
}
#include<reg51.h>
#include<intrins.h>
sbit status1=P1^7;
Timer interrupt
sbit status2=P1^1;
#include<reg51.h>
void extint0(void) interrupt 0
#include<intrins.h>
{
sbit status1=P1^7;
status1=~status1;
sbit status2=P1^0;
}
void timer0(void) interrupt 1
void extint01(void) interrupt 2
{
{
TR1=1;
while(1)
status1=~status1;
status2=~status2;
TF0=0;
} sbit status1=P1^7;
sbit status2=P1^0;
{ {
status2=~status2; if(TI)
TF1=0; {
} TI=0;
main() status1=~status1;
{ }
EA=ET0=ET1=1; {
TR0=1; RI=0;
while(1) status2=~status2;
{ }
P0=x; }
x=_crol_(x,1); main()
} {
EA=ES=1;
SCON=0x50;
TMOD=0x20;
TR1=1;
Timer serial interrupt while(1);
#include<reg51.h> }
for(i=0;i<65535;i++);
main()
Timer serial interrupt 1
{
#include<reg51.h>
unsigned char x=0x01;
#include<intrins.h>
EA=ES=1;
sbit status1=P1^7;
SCON=0x50;
sbit status2=P1^1;
TMOD=0x20;
void settxrx(void) interrupt 4
TR1=1;
{
while(1)
if(TI)
{
{
P0=x;
TI=0;
x=_crol_(x,1);
status1=~status1;
SBUF='A';
}
while(!TI);
else
//TI=0;
{
// delay();
RI=0;
}
status2=~status2;
}
}
void delay(void)
unsigned int i;
for(i=0;i<65535;i++);