在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            PIC16F877A-UART

            作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò) 收藏
            #include
            #define unchar unsigned char
            #define uint unsigned intunchar RC_label;//標(biāo)志位起始位為1結(jié)束位為0

            unchar caiji_label;//采集幀格式標(biāo)志位正確為1錯(cuò)誤為0
            unchar data RC[100];//存儲(chǔ)接收到的數(shù)據(jù)
            unchar data TX1[100];//存儲(chǔ)自身參數(shù)
            unchar data TX2[100];//存儲(chǔ)出錯(cuò)指示ERROR
            int RC_buff;//
            int i=0,j=0,k=0;//

            //*****串口初始化**********
            void initRS232()
            {
            //設(shè)置TXSTA
            CSRC=0;//
            TX9=0;//8位數(shù)據(jù)發(fā)送
            TXEN=1;//發(fā)送使能
            SYNC=0;//選擇異步模式
            BRGH=1;//高速
            TRMT=1;//發(fā)送寄存器空
            TX9D=0;//

            //設(shè)置RCSTA
            SPEN=1;//允許串口工作
            RX9=0;//接收8位數(shù)據(jù)
            SREN=1;//
            CREN=1;//使能連續(xù)接收
            ADDEN=0;//
            FERR=0;//
            OERR=0;//無(wú)超速錯(cuò)誤
            RX9D=0;//
            TRISC=0X80;//設(shè)置C口
            SPBRG=0X19;//設(shè)置波特率為9600
            }

            //*******延時(shí)*********
            void delay(int i)
            {for(i;--i;) continue;}
            //******中斷初始化******
            void int_interrupt(void)
            {
            GTE=1;//
            PEIE=1;//
            RCIE=1;//
            }

            //********中斷服務(wù)子程序*********
            void interrupt receive(void)
            {
            if(OERR==1)//判斷有無(wú)超速錯(cuò)誤
            {
            CREN=0;
            CREN=1;
            }
            if(RCIF==1)
            {
            RC_buff=RCREG;
            if(RC_buff==0x2a)//判斷是否是起始標(biāo)志*
            {
            RC_label=1;
            }
            if(RC_buff==0x23)//判斷是否是結(jié)束標(biāo)志#
            {
            RC_label=0;
            }
            }

            if(RC_label==1)
            RC[k++]=RC_buff;//將接收到的數(shù)據(jù)存儲(chǔ)在數(shù)組中
            else if(RC_label==0)
            k=0;
            if(RC[1]==0XFE&&RC[2]==0XC0&&RC[3]==0X34&&RC[5]==0X12)//判斷數(shù)據(jù)采集幀格式是否正確
            caiji_label=1;
            else caiji_label=0;
            }

            //********參數(shù)發(fā)送子程序開(kāi)始**********
            void TX_serve(void)
            {
            TX1[ ]={0X2A,0XFD,0X26,0X30,0X31,0X32};//自身參數(shù)存儲(chǔ)在TX1中
            TX2[ ]={0X56,0X52,0X52,0X4F,0X52};//出錯(cuò)指示存儲(chǔ)在TX2中
            if(caiji_label==1)//如果數(shù)據(jù)采集幀格式正確則發(fā)送自身參數(shù)幀
            {
            for(j=0;j<6;j++)
            {
            TXREG=TX1[j];
            delay(20);
            }
            }
            if(caiji_label==0) //如果數(shù)據(jù)采集幀格式錯(cuò)誤則發(fā)送出錯(cuò)指示
            {
            for(j=0;j<5;j++)
            {
            TXREG=TX2[j];
            delay(20);
            }
            }
            }

            //********主程序開(kāi)始**************
            void main()
            {
            int_interrupt();
            initRS232();
            TX_serve();
            end
            }


            關(guān)鍵詞: PIC16F877AUAR

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉