您当前的位置:五五电子网电子知识单片机-工控设备STC单片机(用STC89C51RC/RD+实现多串口 正文
用STC89C51RC/RD+实现多串口

用STC89C51RC/RD+实现多串口

点击数:7644 次   录入时间:03-04 11:39:48   整理:http://www.55dianzi.com   STC单片机(
                                      
            rs_shift_count++;           //2--9:数据位 10:停止位
                                      
            if ( rs_shift_count == 9)
            {
                rs_BUF = rs_BUF >> 1;   //接收第8位  
                rs_BUF_bit7 = rs_RXD;
                if( ReceivePoint < rs_RECEIVE_MAX)
                {                       //保存收到的字节   
                    rs232buffer[ReceivePoint++] = rs_BUF;
                }
                else
                {
                    rs_f_RI_enable = 0; //缓冲区满, 禁止接收  
                }
            }
            else
            {
                if (rs_shift_count < 9 ) //收到的是数据位 1 -- 7 
                {
                    rs_BUF = rs_BUF >> 1;
                    rs_BUF_bit7 = rs_RXD;
                }
                else
                {   //收到停止位,继续检测 PC 机发出的下一个起始位   
                    soft_receive_init();
                }
            }
        }
        TCON_TFx = 0;                  //清定时器中断标志  
    }
    else
    {
        /************************ 发送 ****************************/ 
        if (rs_f_TI_enable == 1)
        {
            rs_timerL += rs_FULL_BIT_L;//下次中断在数据位的末尾时刻  
            rs_timerH = rs_FULL_BIT_H;

            rs_shift_count--;          //0:停止位末尾时刻到 
                                       //1:发送停止位 
                                       //2--9:发送数据位 
            if (rs_shift_count > 9)    //错误状态 
            {
                rs_shift_count = 9;
                rs_BUF = 0xFF;
            }

            if (rs_shift_count > 1)    //2--9:发送数据位 
            {
                ACC = rs_BUF;
                ACC = ACC >> 1;
                rs_TXD = CY;
                rs_BUF = ACC;
            }
            else
            {
                if (rs_shift_count == 0) //0:停止位末尾时刻到 
                {
                    rs_TXD = 1;
                    rs_f_TI = 1;       //已发送完毕一个字节 
                }
                else
                {
                    rs_TXD = 1;        //1:发送停止位 
                }
            }
        }
    }
}

//由收转到发时,要先调用 soft_send_enable () 

上一页  [1] [2] [3] [4]  下一页


本文关键字:暂无联系方式STC单片机(单片机-工控设备 - STC单片机(