新聞中心

        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.104case.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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 海宁市| 同江市| 鹤壁市| 罗定市| 鄱阳县| 吴桥县| 应城市| 津南区| 新巴尔虎左旗| 荃湾区| 岢岚县| 淮阳县| 双桥区| 靖西县| 固始县| 巫山县| 南雄市| 博兴县| 常熟市| 石家庄市| 穆棱市| 杭锦旗| 榆中县| 老河口市| 庆元县| 西吉县| 玉林市| 长岭县| 囊谦县| 定远县| 曲周县| 沂水县| 同仁县| 穆棱市| 仁寿县| 永宁县| 乌拉特前旗| 和政县| 酒泉市| 临漳县| 阳曲县|