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

    EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機串口檢測程序(C語言代碼)

    51單片機串口檢測程序(C語言代碼)

    作者: 時間:2012-07-18 來源:網絡 收藏

    #i nclude reg51_STC.H
    #define uchar unsigned char
    #define uint unsigned int

    //--------------------------------------------------------------------------
    //函數名稱: UART_Init()
    //函數功能: 初始化函數,在系統時鐘為11.059MHZ時,設定波特率為9600bit/s
    //其他說明: 接收中斷允許,發送中斷禁止
    //--------------------------------------------------------------------------

    void UART_Init(void)
    {
    SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
    TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
    PCON |= 0x80 ; //SMOD=1;
    TH1 = 0xFA ; //Baud:9600 fosc=11.0592MHz
    ES=1;
    TR1 = 1 ; // timer 1 run
    EA=1;
    }


    //--------------------------------------------------------------------------
    //函數名稱: main(void)
    //函數功能: 主函數
    //其他說明: 無
    //--------------------------------------------------------------------------

    void main(void)
    {
    UART_Init();
    while(1);
    }


    //--------------------------------------------------------------------------
    //函數名稱: Uart_SendData()
    //函數功能: 串口發送一個字節的數據
    //其他說明: 此供中斷調用
    //--------------------------------------------------------------------------

    void Uart_SendData(uchar dat)
    {
    SBUF=dat; //寫SBUF,開始發送
    while(TI==0); //等待發送
    TI=0; //清發送標志位
    }


    //--------------------------------------------------------------------------
    //函數名稱: INT_UartRcv()
    //函數功能: 串口接收中斷函數
    //其他說明: 無
    //--------------------------------------------------------------------------

    void INT_UartRcv(void) interrupt 4
    {
    uchar Rcv;
    if(RI)
    {
    RI=0; //
    Rcv=SBUF;
    Uart_SendData(Rcv); //返回接收數據,可以改為其他函數
    }
    }

    本文引用地址:http://www.czjhyjcfj.com/article/171154.htm

    NO。2

    #i ncludereg52.h>
    #i nclude string.h>
    #define INBUF_LEN 4 //數據長度
    unsigned char inbuf1[INBUF_LEN];
    unsigned char checksum,count3;
    bit read_flag= 0 ;
    void init_serialcomm( void )
    {
    SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
    TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
    PCON |= 0x80 ; //SMOD=1;
    TH1 = 0xF4 ; //Baud:4800 fosc=11.0592MHz
    IE |= 0x90 ; //Enable Serial Interrupt
    TR1 = 1 ; // timer 1 run
    EA=1;
    }

    //向串口發送一個字符


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 定兴县| 庆元县| 炉霍县| 绥宁县| 闽侯县| 东港市| 林周县| 龙井市| 陆河县| 道真| 临洮县| 灵台县| 布拖县| 彭州市| 错那县| 新郑市| 诏安县| 冷水江市| 岳阳县| 黄龙县| 文成县| 盐源县| 新昌县| 望奎县| 贡觉县| 康乐县| 满城县| 蓝田县| 明星| 大渡口区| 荔波县| 开封市| 甘泉县| 肇庆市| 苗栗县| 巴林左旗| 尼勒克县| 鄂托克旗| 株洲市| 灵山县| 社旗县|