新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 通信波特率115.2K的串行通信C語(yǔ)言示例

        通信波特率115.2K的串行通信C語(yǔ)言示例

        作者: 時(shí)間:2012-02-19 來(lái)源:網(wǎng)絡(luò) 收藏

        //115.2k程序,校驗(yàn)方式為簡(jiǎn)單雙向校驗(yàn),
        //而且是必要的,因?yàn)槿魏尾捎弥袛唷rc等的方法
        //均很難保證速度和避免錯(cuò)誤.
        //總體速度5KB/秒

        本文引用地址:http://www.104case.com/article/172057.htm

        //單片機(jī)程序
        //使用22.1184晶振
        unsigned char time,b_break,b_break_3;
        //35.555ms
        void int_t0(void) interrupt 1 {
        TH0=0;
        if ((++b_break_3)>2) b_break=1;
        time++;
        }

        //

        unsigned char rec(void) {
        TH0=0;b_break_3=0;b_break=0;
        while (RI==0) {
        if (b_break) return(1); //等待pc發(fā)送100ms超時(shí)
        }
        RI=0;
        SBUF=SBUF;
        return(SBUF);
        }
        /*返回1表示失敗*/
        bit sen(unsigned char d) {
        SBUF=d;
        TH0=0;b_break_3=0;b_break=0;
        while (RI==0) {
        if (b_break) return(1); //等待pc送回相同字節(jié)數(shù)據(jù),100ms超時(shí)
        }
        RI=0;
        if (SBUF!=d) return(1);
        return(0);
        }

        void main(void) {
        unsigned int i;
        unsigned char d;
        EA=1;
        SCON=0xd8;PCON=0x80;
        TMOD=0x21;
        TL1=TH1=0xff;TR1=1;
        TH0=0;ET0=TR0=1;
        while (1) {
        d=rec();
        if ((!b_break)(d==0x55)) {
        d=rec();
        if (!b_break) {
        if (d==0xaa) {
        //接收到pc送來(lái)的要求發(fā)送指令0xaa55
        for (i=0;i1000;i++) {
        if (sen(i)) {
        //發(fā)送錯(cuò)誤
        break;
        }
        }
        } else if (dd==0xaa) {
        //接收到pc送來(lái)的要求接收指令0xaaaa
        for (i=0;i1000;i++) {
        d=rec();
        if (!b_break) {
        //正確接收處理
        } else {
        //接收錯(cuò)誤處理
        break;
        }
        }
        }
        }
        }
        }
        }

        //電腦程序tc2.0
        #i nclude stdio.h
        #i nclude dos.h
        #i nclude process.h
        #i nclude string.h
        #i nclude conio.h
        #i nclude dir.h>


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 龙泉市| 屏东市| 邯郸市| 元江| 东辽县| 清河县| 西平县| 喀喇| 桂东县| 融水| 鹿邑县| 隆回县| 临沧市| 景洪市| 孝义市| 正安县| 万州区| 南丰县| 会宁县| 西藏| 昌吉市| 固安县| 河北省| 保德县| 宜兴市| 平山县| 鄯善县| 麦盖提县| 且末县| 鲁山县| 鄂尔多斯市| 呼玛县| 桓仁| 龙泉市| 昌宁县| 成安县| 黑龙江省| 宜宾市| 大同市| 临泉县| 通江县|