在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51串口 單片機(jī)上接收數(shù)據(jù)程序

            51串口 單片機(jī)上接收數(shù)據(jù)程序

            作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò) 收藏
            #include

            #include

            本文引用地址:http://www.biyoush.com/article/201611/315388.htm

            #define uchar unsigned char
            #define uint unsigned int

            //sbit BEEP = P1; // P1接8個(gè)LED
            unsigned char Receive(void)
            {
            unsigned char dat;
            while(RI==0) //只要接收中斷標(biāo)志位RI沒有被置“1” 當(dāng)接收完畢時(shí),中斷標(biāo)志RI被置1
            ; //等待,直至接收完畢(RI=1)
            RI=0; //為了接收下一幀數(shù)據(jù),需將RI清0
            dat=SBUF; //將接收緩沖器中的數(shù)據(jù)存于dat
            return dat;
            }

            void main (void)
            {
            int i =0;
            SCON = 0x50; //REN=1允許串行接受狀態(tài),串口工作模式2
            TMOD|= 0x20; //定時(shí)器1工作方式2
            // PCON|= 0x80; //波特率提高一倍
            //TH1 = 0xFD; //baud*2 /* reload value 19200、數(shù)據(jù)位8、停止位1。效驗(yàn)位無(wú)(11.0592)
            TH1 = 0xFD;// //baud /* 波特率9600、數(shù)據(jù)位8、停止位1。效驗(yàn)位無(wú) (11.0592M)
            TL1 = 0xFD;
            TR1 = 1; //開啟定時(shí)器1
            //ES = 1; //開串口中斷 是否開串口中斷和開總中斷不影響。
            //EA = 1; // 開總中斷
            // IE = 0x0;
            REN=1; //允許接收
            while(1)
            {
            P1=Receive(); //將接收到的數(shù)據(jù)送P2口顯示
            }

            }

            c51串口接收并發(fā)送數(shù)據(jù)程序
            2007年11月02日 下午 10:00


            #include
            #defineBUFFERLEGTH 10
            //-----------------------------------------------------------------
            void UART_init();//串口初始化函數(shù)
            void COM_send(void);//串口發(fā)送函數(shù)
            char str[20]="hellorn";

            //-------------------------------------------------------------------
            void main(void)
            {
            unsigned char i;
            UART_init();//初始化串口
            for(i = 0;i < 10 ;i++)
            {
            COM_send();//首先發(fā)送一次數(shù)據(jù)作為測(cè)試用

            };

            while(1);
            }


            //-------------------------------------------------------------
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱: UART_init()串口初始化函數(shù)
            // 函數(shù)功能: 在系統(tǒng)時(shí)鐘為11.059MHZ時(shí),設(shè)定串口波特率為9600bit/s
            //串口接收中斷允許,發(fā)送中斷禁止
            //--------------------------------------------------------------------------------------------------
            void UART_init()
            {
            //初始化串行口和波特率發(fā)生器
            SCON =0x50;//選擇串口工作方式1,打開接收允許
            TMOD =0x20;//定時(shí)器1工作在方式2,定時(shí)器0工作在方式1
            TH1 =0xfA;//實(shí)現(xiàn)波特率9600(系統(tǒng)時(shí)鐘11.0592MHZ)
            PCON = 0x80;
            TR1 =1;//啟動(dòng)定時(shí)器T1
            ET1 =0;
            ES=1;//允許串行口中斷
            PS=1;//設(shè)計(jì)串行口中斷優(yōu)先級(jí)
            EA =1;//單片機(jī)中斷允許
            }
            //------------------------------------------------------------
            void COM_send(void)
            {
            unsigned char point = 0;
            for(point=0;point< 20;point++)//連續(xù)發(fā)送二十位數(shù)據(jù)//把緩存區(qū)的數(shù)據(jù)都發(fā)送到串口
            {
            SBUF=str[point];
            while(!TI);
            TI=0;
            }
            }
            //--------------------------------------------------------------
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱: com_interrup()串口接收中斷處理函數(shù)
            // 函數(shù)功能: 接收包括起始位S在內(nèi)的十位數(shù)據(jù)到數(shù)據(jù)緩沖區(qū)
            //--------------------------------------------------------------------------------------------------
            void com_interrupt(void) interrupt 4 using 3
            {
            unsigned char RECEIVR_buffer;
            if(RI)//處理接收中斷
            {
            RI=0;//清除中斷標(biāo)志位
            RECEIVR_buffer=SBUF;//接收串口數(shù)據(jù)

            if (RECEIVR_buffer == s)
            {
            SCON =0x40;//接收不允許
            COM_send();//發(fā)送數(shù)據(jù)
            SCON =0x50;//接收允許
            }
            }




            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉