新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機通過串口與電腦連接通信

        基于單片機通過串口與電腦連接通信

        作者: 時間:2010-09-28 來源:網絡 收藏

        本實驗實現中斷實驗,中斷和計算機進行 *
        首先接受聯機信號,然后接受計算機的相關控制信號 *
        本實驗中,采用發送不同的字符給計算機來模擬接收到的不同的計算機控制命令 *
        擴展,可以實現不同的功能 *
        * *
        *
        * *
        ********************************************************************************/

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

        #include
        #define uchar unsigned char

        uchar time,b_break,b_break_3;
        uchar buf;

        void waitsend()
        {
        while(!TI)
        {
        };
        TI = 0;
        }
        //串行中斷程序
        void int_s(void) interrupt 4 {
        ES = 0; //關閉串行中斷
        RI = 0; //清除串行接受標志位
        buf = SBUF; //從緩沖區取得數據
        P1 = buf; //數據送往p1口顯示出來
        if(buf == 255) SBUF = 255; //發送聯絡信號
        else{
        switch(buf)
        {
        case 1: SBUF = 'M',waitsend();break; //如果接受到1,發送字符'M'給計算機
        case 2: SBUF = 'C',waitsend();break; //如果接受到2,發送字符'C'給計算機
        case 3: SBUF = 'S',waitsend();break; //如果接受到3,發送字符'S'給計算機
        case 4: SBUF = '5',waitsend();break; //如果接受到4,發送字符'5'給計算機
        case 5: SBUF = '1',waitsend();break; //如果接受到5,發送字符'1'給計算機

        default: SBUF = 'n',waitsend();break; //如果接受到其它數據,發送n給計算機

        }
        }
        ES = 1; //允許中斷

        }

        void main(void) {

        P0 = 0;
        P2 = 255; //關閉數碼管顯示

        EA=1;
        SCON=0x50;PCON=0X80;
        TMOD=0x20;ES = 1;
        TL1=TH1=0xf3;TR1=1; //串口工作在模1,波特率4800@12Mhz)

        while(1);
        //無限循環等待串行中斷
        }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 额济纳旗| 荆州市| 阿鲁科尔沁旗| 海原县| 健康| 六枝特区| 罗田县| 仁布县| 泰来县| 平昌县| 阿克苏市| 绍兴市| 渭源县| 华坪县| 荃湾区| 大埔区| 忻城县| 郑州市| 宁阳县| 长岛县| 正蓝旗| 安宁市| 龙海市| 南丰县| 板桥市| 兖州市| 临泉县| 德格县| 乌拉特后旗| 高台县| 丹阳市| 观塘区| 宜黄县| 丰顺县| 清水县| 沙湾县| 灵丘县| 嵊泗县| 长葛市| 沂源县| 昌乐县|