• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

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

    作者: 時間:2012-02-19 來源:網(wǎng)絡 收藏

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

    本文引用地址:http://www.czjhyjcfj.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; //從緩沖區(qū)取得數(shù)據(jù)
    P1 = buf; //數(shù)據(jù)送往p1口顯示出來
    if(buf == 255) SBUF = 255; //發(fā)送聯(lián)絡信號
    else{
    switch(buf)
    {
    case 1: SBUF = 'M',waitsend();break; //如果接受到1,發(fā)送字符'M'給計算機
    case 2: SBUF = 'C',waitsend();break; //如果接受到2,發(fā)送字符'C'給計算機
    case 3: SBUF = 'S',waitsend();break; //如果接受到3,發(fā)送字符'S'給計算機
    case 4: SBUF = '5',waitsend();break; //如果接受到4,發(fā)送字符'5'給計算機
    case 5: SBUF = '1',waitsend();break; //如果接受到5,發(fā)送字符'1'給計算機

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

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

    }

    void main(void) {

    P0 = 0;
    P2 = 255; //關閉數(shù)碼管顯示

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

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



    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 滕州市| 临泽县| 临江市| 双柏县| 沂南县| 射阳县| 连平县| 满洲里市| 新余市| 高碑店市| 周至县| 武安市| 湘西| 阿瓦提县| 乌鲁木齐市| 阿鲁科尔沁旗| 诸暨市| 黑龙江省| 高陵县| 鲁山县| 吴桥县| 泗水县| 桐城市| 庆阳市| 逊克县| 东乡县| 龙里县| 建宁县| 阜新市| 鄂托克旗| 恩施市| 枣庄市| 乌拉特前旗| 滨海县| 西乌| 逊克县| 竹北市| 新郑市| 仲巴县| 定州市| 二连浩特市|