在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機與PC機串口通信

            51單片機與PC機串口通信

            作者: 時間:2012-12-01 來源:網(wǎng)絡(luò) 收藏

            單片機P2口接8只LED燈,P3.2~P3.3引腳連接有K1和K2共2個按鍵,使用單片機串行口與通信。
            1)由控制單片機的P2口,將送出的數(shù)以二進制形式顯示在LED燈上;
            2)按下按鍵K1向PC機發(fā)送數(shù)字0x55,按下K2向PC機發(fā)送數(shù)字0xAA。
            源程序如下:
            //出自:51hei單片機學習網(wǎng)http://www.51hei.com
            #define uchar unsigned char
            #include "string.h"
            #include "reg51.h"
            unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,
            0x08,0x03,0x46,0x21,0x06,0x0e}; //十六進制-7段譯碼表
            void mDelay(unsigned int DelayTime) //延時函數(shù)
            { unsigned char j=0;
            for(;DelayTime>0;DelayTime--)//延時循環(huán)
            { for(j=0;j125;j++)
            {;}}}
            void SendData(uchar Dat) //發(fā)送函數(shù)
            { uchar i=0;
            SBUF=Dat;//發(fā)送Dat
            while(1){
            if(TI) //如果發(fā)送中斷標志為1,則等待,
            { TI=0; break; }//否則清除發(fā)送中斷標志
            }}
            uchar Key() //按鍵處理函數(shù)
            { uchar KValue;//聲明鍵值函數(shù)
            P3|=0x3e; //中間4位置高電平 0011 1101
            if((KValue=P3|0xe3)!=0xff)//如果按鍵按下
            { mDelay(10); //延遲時間函數(shù)
            if((KValue=P3|0xe3)!=0xff)//如果按鍵還在按下狀態(tài)
            { for(;;)//等待
            if((P3|0xe3)==0xff) //如果按鍵抬起,
            return(KValue);//返回鍵值
            }}
            return(0); //如果按鍵沒有按下,返回0
            }
            void main()//主函數(shù)
            { uchar KeyValue;//定義鍵值變量KeyValue
            unsigned char ns,ng,temp;//定義變量ns,ng,temp
            P2=0xff;//熄滅P2口連接的所有發(fā)光管
            TMOD=0x20;//確定定時器工作模式,模式2,常數(shù)自動裝入
            TH1=0xFD;
            TL0=0xFD;//定時器1的初值波特率為9600,晶體為11.0592MHz
            //PCON=0x80; 若是SMOD=1 可以使波特率加倍
            TR1=1;//啟動定時器1
            SCON=0x40; //串口工作方式1運行在8位模式
            REN=1; //允許接收
            for(;;) //無限循環(huán)
            {if(KeyValue=Key())//調(diào)用按鍵函數(shù),獲取按鍵信息
            { if((KeyValue|0xfb)!=0xff)//如果按鍵k1按下
            SendData(0x55); //調(diào)用發(fā)送函數(shù),送出0x55
            if((KeyValue|0xf7)!=0xff)//如果k2按下
            SendData(0xaa); //調(diào)用發(fā)送函數(shù),送出0xaa
            }
            if(RI)//如果接收中斷發(fā)生
            { P2=SBUF;//將接收數(shù)據(jù)寫到端口P2
            RI=0; }//清除接收標志位
            temp=P2;//暫存接收到的數(shù)據(jù)
            ng=temp 0x0f;//取接收數(shù)據(jù)低4位
            ns=temp>>4;//將高4位右移4位
            ns =0x0f;//取接收數(shù)據(jù)高4位
            P0=table[ng];//P0口連接的數(shù)碼管顯示低4位
            P1=table[ns]; //P1口連接的數(shù)碼管顯示高4位
            }}



            關(guān)鍵詞: 51單片機 PC機 串口通信

            評論


            相關(guān)推薦

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

            關(guān)閉