void interrupt TRANSIT_INTER(void)<br />{<br /> if(RAIE&&RAIF)<br /> {<br /> IOCA=0x00;<br /> GIE=0;<br /> RAIE=0;<br /> RAIF=0;<br /> INTCON=0;<br /> temp=TMR0; //关闭所有中断,清除所有中断标志<br /> TMR0=0;<br /> PORTC=0xFF;<br /> if(INT_time==0)<br /> {<br /> INT_time++;<br /> TRANSIT.b0=1;<br /> }<br /> else<br /> {<br /> INT_time++;<br /> if((temp>30)&&(temp<50))<br /> {<br /> T_data=T_data&0xFE;<br /> T_data=T_data<<1;<br /> COUNTER++;<br /> }<br /> if((temp>70)&&(temp<90))<br /> {<br /> T_data=T_data|0x01;<br /> T_data=T_data<<1;<br /> COUNTER++;<br /> }<br /> else<br /> INT_time=0;<br /> if(COUNTER==8)<br /> {<br /> eeprom_write(SIZE++,T_data);<br /> COUNTER=0;<br /> T_data=0xAA;<br /> }<br /> }<br /> //if((SIZE==1)&&(T_data!=0xFF)) //判断是否收到同步码0xFF<br /> //TRANSIT.b3=1;<br /> //if((SIZE==2)&&(T_data!=0xFE)) //判断是否收到同步码0xFE<br /> TRANSIT.b3=0; <br /> INTCON=0x80;<br /> if(TRANSIT.b3||SIZE==26)<br /> {<br /> SIZE=0;<br /> INT_time=0;<br /> TRANSIT.b0=0;<br /> INTCON=0x00;<br /> }<br /> }<br /> RAIE=1;<br />}<br />以上是中断服务程序
|