新聞中心

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

        單片機通過串口中斷與電腦連接通信

        作者: 時間:2012-02-19 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/172059.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);
        //無限循環等待串行中斷
        }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 商河县| 乌拉特后旗| 夏津县| 东平县| 政和县| 班玛县| 崇明县| 毕节市| 襄垣县| 云霄县| 广昌县| 泰安市| 柳州市| 牟定县| 甘肃省| 阿勒泰市| 崇义县| 西峡县| 兰西县| 芦溪县| 乌拉特前旗| 崇仁县| 武强县| 凤山县| 无为县| 山西省| 仪陇县| 沁水县| 巴塘县| 额尔古纳市| 尼玛县| 故城县| 嘉祥县| 普兰县| 中阳县| 定安县| 息烽县| 外汇| 定远县| 莱西市| 东平县|