中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機串口通訊程序

        單片機串口通訊程序

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

        通信協(xié)議: 第1字節(jié),MSB為1,為第1字節(jié)標志,第2字節(jié),MSB為0,為非第一字節(jié)標志,其余類推……,最后一個字節(jié)為前幾個字節(jié)后7位的異或校驗和。

        測試方法:可以將串口調(diào)試助手的發(fā)送框?qū)懮?95 10 20 25,并選上16進制發(fā)送,接收框選上16,如果每發(fā)送一次就接收到95 10 20 25,說明測試成功。

        //這是一個C51串口接收(中斷)和發(fā)送例程,可以用來測試51的中斷接收

        //和查詢發(fā)送,另外我覺得發(fā)送沒有必要用中斷,因為程序的開銷是一樣的

        #i nclude

        #i nclude

        #define INBUF_LEN 4 //數(shù)據(jù)長度

        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

        // TI=1;

        }

        //向串口發(fā)送一個字符

        void send_char_com( unsigned char ch)

        {

        SBUF=ch;

        while (TI== 0 );

        TI= 0 ;

        }

        //向串口發(fā)送一個字符串,strlen為該字符串長度

        void send_string_com( unsigned char *str, unsigned int strlen)

        {

        unsigned int k= 0 ;

        do

        {

        send_char_com(*(str + k));

        k++;

        } while (k strlen);

        }

        //串口接收中斷函數(shù)

        void serial () interrupt 4 using 3

        {

        if (RI)

        {

        unsigned char ch;

        RI = 0 ;

        ch=SBUF;

        if (ch> 127 )

        {

        count3= 0 ;

        inbuf1[count3]=ch;

        checksum= ch- 128 ;

        }


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉