在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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ī)12M晶振與9600波特率漫談

            51系列單片機(jī)12M晶振與9600波特率漫談

            作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
            最近寫了個(gè)小程序,用到9600波特率,板子上是12M晶振。但在調(diào)試的時(shí)候,死活都配不出9600的波特率。于是上狗狗,狗了一下,發(fā)現(xiàn)不少朋友們都遇到了相同的問(wèn)題,而且下了板上釘釘?shù)慕Y(jié)論:51單片機(jī)在12M晶振的時(shí)候是無(wú)法實(shí)現(xiàn)9600波特率的。

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

            網(wǎng)友們大都推薦改成11.0592M晶振。當(dāng)然這個(gè)方案是絕對(duì)可行的,但我實(shí)在懶得去買這號(hào)晶振(跑一趟電子市場(chǎng)要花3小時(shí)呢)。于是重新去研究芯片手冊(cè),終于功夫不負(fù)有心人,我發(fā)現(xiàn),如果你一不小心選的是52或者54、58的芯片,這個(gè)問(wèn)題是可以解決的哦。





            51單片機(jī)通常由TIMER1來(lái)產(chǎn)生波特率,TIMER1的頻率是晶振的1/12,也就是1M。它的頻率太低導(dǎo)致它不能實(shí)現(xiàn)9600波特率。這也給我們提供了一條新的解決途徑:如果我們能提高時(shí)鐘頻率,那么也可能實(shí)現(xiàn)9600的波特率。





            提高時(shí)鐘頻率是不是一定要提高晶振頻率呢?當(dāng)然,答案是否定的(改晶振頻率那就太土了)。52及以上的單片機(jī)提供了TIMER2,可作為波特率發(fā)器。且它作為波特率發(fā)生器時(shí),它的頻率是晶振的1/2,也就是6M。其結(jié)構(gòu)如圖1。



            coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
            filled="f" stroked="f">


















            o:title=""/>



            圖1 TIMER2 的波特率發(fā)生器







            TIMER2作為波特率發(fā)生器,要注意以下幾點(diǎn):



            1.
            C/T位清零,選擇OSC/2作為時(shí)鐘;



            2.
            TH2和TL2串聯(lián)成16位時(shí)鐘,溢出后自動(dòng)重裝;重裝常數(shù)存放在RCAP2H和RCAP2L;



            3.
            置RCLK和TCLK為1,將特率生成器切換到TIMER2;



            4.
            置TR2,啟動(dòng)TIMER2。





            代碼如下:



            void Uart0_Init()



            {



            //9600波特率對(duì)應(yīng) FFD9H



            RCAP2L = 0xD9;



            RCAP2H
            = 0xFF;





            //RCLK、TCLK置1



            //TR2置1



            T2CON
            = 0x34;





            //串口工作模式1,接收使能



            SCON
            = 0x50;





            //允許串口中斷



            ES
            = 1;





            return;



            }





            void Uart0_Ist() interrupt 4



            {



            if(RI)



            {



            RI
            = 0;



            //Do
            whatever you want;



            }



            if(TI)



            {



            TI
            = 0;



            //Do
            whatever you want;



            }



            }

            以上設(shè)置,用串口調(diào)試助手調(diào)試通過(guò)。



            評(píng)論


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

            關(guān)閉