<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機 特殊功能寄存器(SFR) SBUF使用方法

          51單片機 特殊功能寄存器(SFR) SBUF使用方法

          作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏
            串行口中有兩個緩沖寄存器SBUF,一個是發(fā)送寄存器,一個是接收寄存器,在物理結構上是完全獨立的。它們都是字節(jié)尋址的寄存器,字節(jié)地址均為99H。這個重疊的地址靠讀/寫指令區(qū)分:串行發(fā)送時,CPU向SBUF寫入數(shù)據(jù),此時99H表示發(fā)送SBUF;串行接收時,CPU從SBUF讀出數(shù)據(jù),此時99H表示接收SBUF。
            單片機串口
            #include #include
            #define unit unsigned int
            #define uchar unsigned char
            uchar date;
            uchar recFlag;//接收數(shù)據(jù)標識,0 未接收數(shù)據(jù) 1 接收數(shù)據(jù)
            void init_serial();
            void send();
            void receive();
            main()
            {
            init_serial();
            IE=0; //屏蔽中斷
            while(1)
            { receive(); send();}
            }
            void init_serial() //初始化串口
            { TMOD=0x20; //定時器T1使用工作方式2
            TH1=250; //設置初值
            TH0=250;
            TR1=1; //開始計時
            PCON=0x80; //SMOD=1;
            SCON=0x50; //工作方式1,波特率9600bit/s,允許接收
            TI=1;
            }
            void send()
            { if(TI==1) //檢測輸出是否READY
            { if(recFlag==1) //是否接收過數(shù)據(jù)
            { SBUF=date; //發(fā)送數(shù)據(jù)
            recFlag=0;
            TI=0;
            }
            }
            }
            void receive()
            { if(RI==1) //檢測是否有數(shù)據(jù)接收
            { date=SBUF; //接收數(shù)據(jù)
            recFlag=1; //設置接收標識符
            RI=0;
            }
            }


          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();