新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機串口檢測程序

        51單片機串口檢測程序

        作者: 時間:2011-05-12 來源:網絡 收藏

        #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/172793.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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 铁岭县| 监利县| 梁平县| 镶黄旗| 伽师县| 张家界市| 肇东市| 雅江县| 凤山市| 涞水县| 福安市| 凤冈县| 三江| 建宁县| 桃江县| 邵东县| 吴忠市| 隆尧县| 玛纳斯县| 泾源县| 江门市| 霞浦县| 吕梁市| 聂荣县| 乐安县| 和静县| 庆云县| 麻阳| 茌平县| 乌兰县| 寻乌县| 康马县| 富锦市| 都江堰市| 西丰县| 社旗县| 基隆市| 句容市| 新乡县| 来宾市| 色达县|