AT89S52 串口中断

void Openint(void)   //打开中断
{
  EA=1;//开中断
  IT0=1; //外部中断0下降沿触发
  IT1=1; //外部中断1下降沿触发
  EX0=1;//外部中断0
  EX1=1;//外部中断1
  ET0=1;//开timer0中断
  ES=0;//开串口中断

}

void IntGradeSet(void)  //设置优先级
{
  PS=0;      //串口优先级
  PT0=0;  //timer0中断优先级
  PT1=0;  //timer1中断优先级
  PX0=0;  //int0中断优先级
  PX1=0;  //int1中断优先级
}
 
void UARTint(void) interrupt 4   using 3        //串口中断处理
{
 uchar     receivr_buffer;
 TI=0;  //很重要,否则会一直进中断处理程序的!
 EA=0;
 if(RI==1)
   {   
     RI=0;     
     receivr_buffer = SBUF;
     
     if (point == 0)
     {
         if (receivr_buffer == 0xa5)   
            IDChageRx[point++] = receivr_buffer;
             //point++;   
         else point = 0;
     }
     
     else if (point>0 && point<4)
         IDChageRx[point++] = receivr_buffer;
     
     else
     {
       point = 0;
       IDChageRx[0]=0;
       IDChageRx[1]=0;
       IDChageRx[2]=0;
       IDChageRx[3]=0;
     }
  }
 EA=1;

转载于:https://www.cnblogs.com/papam/archive/2009/08/24/1552894.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值