STC12C5204AD单片机串口通讯红 {MOD}部分为什么P2和P3调换就传送不了数据!!!急求

2019-07-15 10:21发布

void delay1ms(x) //0.5ms          
{
  int y,z;
   for(y=x;y>0;y--)       
    for(z=60;z>0;z--);
}void init_uart()
{
        TMOD=0x20;         //定时器/计算器工作模式寄存器
        TH1=0xFD;         //timer high 1
        TL1=0xFD;         //timer low  1
        TR1=1;             //定时器T1的运行控制位
        SCON=0x50;         //串行控制寄存器
        EA=1;        //CPU的总中断允许控制位
        ES=1;        //串行口中断允许位       
}

void UART_R() interrupt 4
{
          RI=0;
         Serial_digtal[ch++]=SBUF;
         if(ch==N)        //获取SBUF接收到的数据
         flag=1;       
        }

void main()
{
        init_uart();
        while(1)
        {
                if(flag==1)                //接收完成标志为1
                {
                        ES=0;                //关串口中断              
                                                for(ch=0;ch<N;ch++)
                                         {                           
                        SBUF=Serial_digtal[ch];                //发送数据
                        while(!TI);        //等待发送中断请求标志位为1
                        TI=0;  
                                                }              //发送中断请求标志位清0
                        ES=1;                         //开串口中断
                                                ch=0;  
                                            flag=0;                                   //接收完成标志清0            
                }
              //  P2=~Serial_digtal[0];
             //   P3=digtalW[2];
                   P3=~Serial_digtal[0];
                   P2=digtal1[6];                    
                delay1ms(10);
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。