新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機上的RS485接口

        單片機上的RS485接口

        作者: 時間:2016-11-24 來源:網絡 收藏

        6) 芯片使用例程:

        #define RS485_Receive 1

        #define RS485_Send 0

        //--定義串口緩存:緩存為循環鏈表

        unsigned char rs_buffer[RS_BUFFER_SIZE]; //串口接收緩存

        int rs_buffer_pointer; //串口緩存首指針(指向最后一個接受到的字節)

        int rs_buffer_amount; //串口緩字節數

        //--定義結束

        //--定義串口與MCU的硬件連接

        sbit RS_Mode=P0^0;

        //--定義結束

        void RS_Init()

        {

        TH1=FF;

        TL1=FF;

        TMOD=0x21;

        PS=1;

        EA=1;

        ET1=0;

        SM0=0;

        SM1=1;

        SM2=0;

        TR1=1;

        REN=1;

        RI=0;

        TI=0;

        ES=1;

        RS_Mode=RS485_Receive;

        rs_buffer_poiter=-1;

        rs_buffer_amount=0;

        }

        void RS_Receive() interrupt 4 using 2 //中斷方式接收串口數據

        {

        ES=0;

        if(RI)

        {

        //此處處理串口緩存

        rs_buffer_pointer++;

        rs_buffer_pointer=rs_buffer_pointer%RS_BUFFER_SIZE;

        rs_buffer[rs_buffer_pointer]=SBUF;

        rs_buffer_amount++;

        RI=0;

        }

        ES=1;

        }

        void RS_Send(unsigned char data) //用戶函數,發送一個字節的數據

        {

        ES=0;

        RS_Mode=RS485_Send;

        SBUF=data;

        RS_Mode=RS485_Receive;

        ES=1;

        while(TI==0);

        TI=0;

        }


        上一頁 1 2 下一頁

        關鍵詞: 單片機RS485接

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 平乐县| 吉木乃县| 阿拉善右旗| 买车| 会宁县| 普定县| 中西区| 正安县| 广灵县| 高陵县| 类乌齐县| 车致| 宜阳县| 乌兰县| 浦北县| 馆陶县| 类乌齐县| 思茅市| 霍山县| 麦盖提县| 罗平县| 灵璧县| 古田县| 东乡| 郸城县| 阜新| 永丰县| 新田县| 武汉市| 当雄县| 辽阳市| 荥阳市| 凤冈县| 贵德县| 绥阳县| 芒康县| 乐平市| 星子县| 尼勒克县| 双城市| 榆树市|