We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
#include<reg51.h> sbit op1=P0^0; sbit op2=P0^1; sbit op3=P0^2; sbit op4=P0^3; int c; void delay(void)//delay .5 second { int d; for(d=0;d<10;d++) { TF1=0;//clear overflow flag TL1=0xB0; TH1=0x3C; TR1=1; //start timer while(TF1==0) TR1=0; //stop timer } } void intr1(void) interrupt 2 //external interrupt1 function { EX1=0; //disable all interrupts TH0=0x00; //reset counter TL0=0x00; TR0=1; //start counter delay(); TR0=0; //stop counter c=TL0; //store count EX1=1; //enable all interrupts } void main() { TMOD=0x25; //initialize T0 as 16bit counter and T1 as 16bit timer IE=0x84; //enable external interrupt 1 if((c>=0x73)&&(c<=0x7D)) { if(op1==0) { op1=1; } else { op1=0; } } else if((c>=0x5F)&&(c<=0x69)) { if(op2==0) { op2=1; } else { op2=0; } } else if((c>=0x4B)&&(c<=0x55)) { if(op3==0) { op3=1; } else { op3=0; } } else if((c>=0x37)&&(c<=0x41)) { if(op4==0) { op4=1; } else { op4=0; } } }
Just as well the OP didn't ask for comments on the code ... It would have been quite a long list.
In my opinion the return from main is just a minor!