wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

模擬串口自動測量波特率的單片機程序

作者:萬致遠(yuǎn)   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2012年07月27日   【字體:

我這個程序能夠測量串口的波特率,并且將自身的波特率設(shè)置到通訊波特率。
這個在STC89C52/STC15F104(其實主要針對STC15F104,因為它沒有串口)上面通過。不過因為是模擬串口,在11.0592 12T的情況下,最多到19200。
然后在STC15F104上面,要適量的減少補償值……
順便說一句,編譯器建議使用sdcc。keil的SB printf函數(shù)搞死我了……在22.1184 6T的情況下大約能到57600.
當(dāng)然在STC15F系列到115200毫無壓力,可是是半雙工的。要做全雙工只能減倍波特率……
測量波特率的方法很簡單。校準(zhǔn)他的波特率的方法就是發(fā)送沒有連續(xù)低電平的字符,類似0x55/0xff/0x7f之類的。使用這個特性還可以將它用在STC自動冷啟動下載器中。不過注意要限制校準(zhǔn)波特率。否則你的正常串口通訊可能會被干擾,因為你比如115200通訊的時候,正好波形類似57600的7F,校準(zhǔn)上去了把你的連接掐了,估計很多人都會看看程序是不是跑飛了……所以一定要把同步波特率降到4800以下,因為STC-ISP的默認(rèn)最低波特率是從1200~4800.
這個也可以適用于不準(zhǔn)晶振的單片機和計算機通訊。方法就是計算機以不同波特率發(fā)送校準(zhǔn)信號,找出誤碼率最低的波特率,然后發(fā)送確認(rèn),讓單片機在這個重載值下運行,也適用于時鐘速度可能變化的單片機/懶得計算重載值的人使用。
然后低于4800的波特率在11.0592的速度下面只能分頻,這也是不得已的……
上代碼:

/*
* 自適應(yīng)波特率模擬串口程序,
* BY 萬致遠(yuǎn)@rwzy.co.cc
* CRYSTAL:任意
*/
#include <hwconfig.h>
#include <type-def.h>
#include <stdio.h>
#define MIS_0 0
#define MIS_2 1
#define MIS_4 2
#define MIS_8 3
#define MIS_16 4
#define TX1 P1_0 //發(fā)送數(shù)據(jù)端口
#define RX1 P1_1 //接收數(shù)據(jù)端口
BYTE min_mode;//減倍模式
void WaitTF1()
{
    while(!TF1);
    TF1=0;
    if(min_mode==MIS_2)
    {// /2
        while(!TF1);
        TF1=0;
    }
    else if(min_mode == MIS_4)
    {// /4
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
    }
    else if(min_mode == MIS_8)
    {// /8
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
    }
    else if(min_mode == MIS_16)
    {// /16
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
        while(!TF1);
        TF1=0;
    }
}

void WByte(BYTE out)
{
    //發(fā)送啟始位
    BYTE i=8;
    BYTE tmp=out;
    TR1=1;//開定時器
    TX1=0;
    WaitTF1();
    //發(fā)送8位數(shù)據(jù)位
    while(i--)
    {
        TX1=(tmp&0x01);     //先傳低位
        tmp=tmp>>1;
        WaitTF1();
    }
    //發(fā)送校驗位(無)
    //發(fā)送結(jié)束位
    TX1=1;
    WaitTF1();
    TR1=0;
}   
void putchar(char ch)
{
    WByte(ch);
}
BYTE RByte()
{
    BYTE in=0;
    BYTE cnt;
    while(RX1==1);//等待RXD變低,啟動定時器,這個是阻塞模式
    TR1=1;//同步開定時器//這里……
    //while(!TF1);
    //TF1=0;   
    WaitTF1();
    if(min_mode !=0)
    {
        while(!TF1);//注意這里的周期稍微長。要補償
        TF1=0;
    }
    for(cnt=0;cnt<8;cnt++)
    {
        in=in >>1;//從高移到低
        if(RX1==1) in = in | 0x80;//如果RXD=1,則最高置位
        WaitTF1();//等待一位過去
    }
    while(!TF1);//注意這里的周期稍微長。要補償
    TF1=0;
    TR1=0;//關(guān)閉定時器
    return in;
}

UINT f_Test(void)//測試脈寬
{
    TMOD=0x10;//設(shè)置計數(shù)器1為方式一計數(shù)器模式
    TH1=0;
    TL1=0;//定時器CLR
    while(!RX1);//等待頻率腳變高,這個是測低電平的
    while(RX1);//等待腳變低,更換符號可以測正脈沖
    TR1=1;//開啟定時器
    while(!RX1);//等待變高
    TR1=0;//停止計數(shù)
    //cyc=TH0<<8;
    //cyc=cyc+TL0;
    return (TH1<<8)+TL1;
}
void baud_t()
{
    BYTE k;//復(fù)用變量
    ULONG frq=0; //周期變量
    for(k=0;k<5;k++)// 變量復(fù)用大法
    {
        frq=frq+f_Test();//測試
    }//測量5次取平均
    frq=frq/5;
    if(frq<0xff)
    {
        k=0x100-(frq&0xff);
        min_mode=MIS_0;
    }
    else
    {
        if(frq / 2 < 0xff)
        {//2400baud
            k=0x100-((frq/2)&0xff); //2分頻
            min_mode=MIS_2;
        }
        else if(frq / 4 < 0xff)
        {//1200baud
            k=0x100-((frq/4)&0xff);//4分頻
            min_mode=MIS_4;
        }
        else if(frq / 8 < 0xff)
        {//1200baud
            k=0x100-((frq/8)&0xff);//8分頻
            min_mode=MIS_8;
        }
        else if(frq / 16 < 0xff)
        {//1200baud
            k=0x100-((frq/16)&0xff);//16分頻
            min_mode=MIS_16;
        }
    }
    if(k > 0x50)
    {
        k=k+6;//加補償,因為if語句讓機器周期加長
        //如果對于STC的新MCU,這里要按照情況調(diào)整
    }
    TMOD=0x20;//設(shè)置定時器1為自動裝載模式
    TH1=k;//載入新波特率
    TL1=k;
}
void main()
{
    while(1)
    {
        baud_t();//測量波特率,阻塞模式
        printf("Hello world!\n");
        printf("Here:mode=%d,T1=0x%X\r\n",min_mode,TH1);//這里如果你要使用keil請自己寫字符串發(fā)送函數(shù),和sprintf配合使用
        printf("Could you please test another baudrate?\r\n");
        printf("But I think that I couldn't to do.....\r\n");
    }
}

萬致遠(yuǎn)@rwzy.co.cc
求M~~~

關(guān)閉窗口

相關(guān)文章

欧美一级特黄aaaaaa| 欧美男女视频| 精品一区二区三区五区六区七区| 国产精品18在线| 天天干,天天干| 澳门黄色一级片| 日色在线视频| 国产亚洲精品拍拍拍拍拍| 国产成人精品网| 成年人看片网站| 大桥未久一区二区三区| 成人美女av在线直播| 中文字幕成人精品久久不卡| 欧美日韩精品福利| 神马久久午夜| 高清欧美精品xxxxx在线看| 一区二区不卡久久精品| 亚洲不卡在线视频| 99自拍偷拍视频| www.午夜av| 青青青免费在线| 日韩国产一区久久| 国产日韩欧美另类| 欧美人交a欧美精品| 日韩成人激情视频| 欧美系列日韩一区| 午夜欧美2019年伦理| 久久久久久久久久久99999| 青青草伊人久久| 午夜性色一区二区三区免费视频| 日韩高清在线免费观看| 伊人久久一区| 日韩精品三区| 日本一本在线免费福利| 成人在线观看一区| 青青草社区在线| 一级特黄色大片| 日韩久久久久久久久| 影音先锋男人看片资源| 日本美女视频网站| 婷婷中文字幕在线观看| 日本精品www| av免费观看大全| 国产911在线观看| 日本日本精品二区免费| 国产精品一区二区欧美| 日本久久91av| 久久久久久国产三级电影| 正在播放欧美一区| 亚洲欧美国产精品久久久久久久 | 国产乱码一区二区| 国产精品久免费的黄网站| 五月天激情丁香| 日本精品久久久久中文| 一级黄色片大全| 午夜福利三级理论电影| 韩国黄色一级片| 一个人看的视频www| 在线播放免费视频| 天天色天天综合网| 亚洲高清视频免费| 欧美午夜精品一区二区| 国产伦精品一区二区免费| 娇妻高潮浓精白浆xxⅹ| 日本wwwwwww| 日本在线不卡一区二区| 极品白嫩的小少妇| 野花社区视频在线观看| 免费看黄色aaaaaa 片| 成人免费毛片日本片视频| 男人网站在线观看| 国产精品20p| 国产精品成人在线视频| 午夜激情福利网| 国产一级做a爱免费视频| 国产在线视频第一页| 日韩欧美中文字幕一区二区| 91在线视频免费播放| 亚洲一级黄色大片| 人妻无码一区二区三区久久99| 女人18毛片一区二区三区| 中文av字幕| 日日夜夜操操操| av一级毛片| 一级视频在线观看视频在线啦啦| 九色蝌蚪在线| 日本丰满www色| 日本性视频网站| 777.av| 在线视频三级| 一级毛片视频在线| 美女91在线看| 57pao国产一区二区| 精品国产一区二区三区香蕉沈先生| 日韩精品欧美| 亚洲综合社区| 成人av在线播放网址| 亚洲欧洲精品天堂一级| 99久久精品国产精品久久| 国产日韩精品一区| 精品久久久久久中文字幕一区奶水 | 亚洲日本中文字幕| 精品中文字幕视频| 国产精品久久久久秋霞鲁丝| 国产视频在线观看一区| 国产又粗又长又爽视频| 羞羞的视频在线| 欧美视频在线第一页| 欧美一区二区三区电影在线观看| 中文字幕中文字幕在线中心一区| 免费无码不卡视频在线观看| 免费看欧美一级片| 亚洲精品国产一区二区三区| 国产精品扒开腿做爽爽| 亚洲国产成人精品激情在线| 亚洲国产av一区二区| 在线观看黄网站免费继续| 嘿咻视频在线看| av资源中文在线| 亚洲一区二区电影| 中文字幕一区二区av| 国产精品18久久久久久vr| 亚洲精品va在线观看| 欧美成人综合网站| 97视频在线观看免费高清完整版在线观看| 亚洲最大av网站| 妞干网在线视频观看| 国产男女猛烈无遮挡a片漫画| 自拍偷拍欧美亚洲| 伊人国产视频| 午夜亚洲成人| gogo大尺度成人免费视频| 888久久久| www.一区二区| 欧美伊人精品成人久久综合97 | 国产永久av在线| 开心久久婷婷综合中文字幕| 一本一道久久综合狠狠老| 国产精品一区二区果冻传媒| 欧美日韩国产色| 在线观看欧美www| 2014国产精品| 日本新janpanese乱熟| 91插插插插插插| 午夜视频1000| 原千岁中文字幕| 欧美xnxx| 久久九九电影| 午夜视频在线观看一区二区 | yiren22综合网成人| 亚洲高清在线一区| 久久一区欧美| 午夜久久久影院| 欧美精品一区二区免费| 亚洲电影一二三区| 一区二区三区免费在线观看视频 | 国产三级av在线播放| 国产精品女人久久久| 91麻豆福利| 中文字幕系列一区| 在线亚洲激情| 亚洲小说欧美激情另类| 久久久久北条麻妃免费看| 久久精品第九区免费观看| 爱情岛论坛亚洲自拍| 亚洲一区在线观| 国产乱妇乱子| 成人久久精品| 国产一区二区三区在线观看免费视频| 色88888久久久久久影院野外| 欧美日韩电影在线观看| 91视频成人免费| 特级片在线观看| 羞羞视频免费| 亚洲综合在线电影| 另类人妖一区二区av| 欧美三级电影网站| 91精品美女在线| 超碰在线超碰在线| 可以免费观看的毛片| av电影在线播放高清免费观看| sdde在线播放一区二区| 国产精品无码永久免费888| www.久久久久久.com| 视色,视色影院,视色影库,视色网| caoporn91| 九九大香尹人视频免费| 亚洲午夜国产成人| 成人黄色综合网站| 亚洲无线码在线一区观看| 亚洲精品一区二区三区蜜桃久| 国产免费嫩草影院| 米奇四色影视| 亚洲大奶少妇| 国产日韩成人精品| 欧美激情奇米色| 亚洲成人av免费看| 黄色av网址在线| 色老头在线观看| 日韩国产一区二| 精品少妇一区二区| 日韩区国产区| 狠狠躁夜夜躁人人爽天天高潮| 国产bdsm| blacked蜜桃精品一区| 一区二区三区在线视频观看| 国产成人91久久精品| 挪威xxxx性hd极品| 国产精品777一区二区| 久久精品资源| 久久久久久夜精品精品免费| 久久久噜噜噜久久久| 8x8x成人免费视频| 欧美最猛黑人猛交69| 欧美成人福利| 久久亚洲欧美国产精品乐播 | 黑人玩欧美人三根一起进| 日韩精品亚洲专区| 亚洲精品视频免费在线观看| 青青青在线观看视频| 一区二区三区免费在线| 免费在线午夜视频| 日本午夜精品一区二区三区电影| 亚洲精美色品网站| 免费国产a级片| 亚洲第一视频在线| 欧美激情20| 久久一区二区三区国产精品| 欧美亚洲视频一区二区| 久久久老熟女一区二区三区91| 色多多视频网站| 无码少妇一区二区三区| 五月婷婷激情综合网| 国产一区二区三区四区hd| 九九视频免费在线观看| 四虎影视2018在线播放alocalhost| 欧美精品黄色| 亚洲二区中文字幕| 欧美一级在线看| 亚洲免费国产| 久久精品凹凸全集| 在线精品国精品国产尤物884a| 日本一区视频在线观看| 国产一区二区在线视频聊天| 啊啊啊久久久| 国产欧美综合色| 91网在线免费观看| 国产香蕉在线视频| 国产黄色小视频在线| 成人一区在线观看| 国产成人91久久精品| 99久久久免费精品| 国产鲁鲁视频在线观看免费| 韩国精品在线观看| 91精品国产高清久久久久久久久| 国产aⅴ激情无码久久久无码| 天天操夜夜干| 人禽交欧美网站| 91国内在线视频| 国产精品99久久久久久成人| 成年人免费在线视频| 成人动漫一区二区在线| 国产九九精品视频| 天堂在线免费观看视频| 天堂电影一区| 亚洲午夜在线电影| 中文字幕在线观看一区二区三区| 天天操天天干天天舔| 久久久久97| 精品少妇一区二区| 久久久久久久久久久久久久久国产| 国内福利视频| 亚洲激情不卡| 欧美黄色片免费观看| 免费黄色激情视频| 成人午夜在线影视| 国产精品人成在线观看免费| 欧美激情论坛| 亚洲天堂电影在线观看| 精品国产视频| 在线性视频日韩欧美| b站大片免费直播| 在线免费观看黄| 亚洲国产成人午夜在线一区| 免费不卡亚洲欧美| 青青在线观看视频中文字| 欧美三级伦理在线| 丝袜亚洲另类欧美重口| 精品无码在线观看| 国产黄大片在线观看画质优化| 国产欧美va欧美不卡在线| 欧美精品123| 男女午夜激烈无遮挡| 天天影视欧美综合在线观看| 亚洲一级一级97网| 91视频免费看片| 久久一卡二卡| 欧美日韩国产中文字幕| 成人久久久久久久久| 五月天电影免费在线观看一区| 日韩高清国产一区在线| 国产精品视频1区| 在线观看国产成人| 精品视频自拍| 亚洲日本中文字幕| 午夜国产福利视频| 嗯啊主人调教在线播放视频| 尤物网站在线观看| av漫画网站在线观看| 精品剧情在线观看| 一区二区三区视频播放| 精品动漫一区二区三区| 国产三级日本三级在线播放| 蜜芽视频在线观看| 91亚洲男人天堂| 亚洲国产一区二区精品视频| 性生活视频网址| 久久电影网电视剧免费观看| 国产成人精品一区二区三区| 日本成人一级片| 亚洲三级网址| 欧美激情高清视频| 日韩精品一区二区亚洲av观看| 北条麻妃在线一区二区免费播放| 亚洲美女av在线播放| 成人免费毛片东京热| 国产69精品久久| 亚洲伦理一区二区三区| 在线一区视频观看| 欧美成人午夜剧场免费观看| 天天爱天天干天天操| 国产精品成久久久久三级| 国产成人自拍偷拍| 欧美丝袜激情| 欧美一区二区三区四区在线| 国产成人精品a视频| 欧美日本一区二区视频在线观看| 国产精品av电影| 久艹在线播放| 蜜臀久久99精品久久久久宅男| 日韩中文字幕网站| 国产精品视频一区在线观看| 秋霞蜜臀av久久电影网免费| 精品国产一区二区三区四区在线观看| 五月婷婷亚洲综合| 国产欧美日韩精品高清二区综合区| 另类图片亚洲另类| 国产欧美久久久精品免费| 综合天堂av久久久久久久| 国产精品免费视频xxxx| 欧美无遮挡国产欧美另类| 男人的天堂久久精品| 日韩电影免费观看在| 黄色免费观看网站| 亚洲美女免费在线| 男人操女人下面视频| 中文av在线全新| 亚洲欧美制服综合另类| 日韩国产成人在线| 欧美日本不卡| 精品乱码一区| 国产字幕中文| 亚洲一区二区三区四区在线免费观看| 久久精品一卡二卡| av免费在线一区| 日韩视频免费在线观看| 成人黄色在线观看视频| 老妇喷水一区二区三区| 亚洲激情一区二区| 蜜桃视频在线观看网站| 欧美日精品一区视频| 三级a在线观看| 春色校园综合激情亚洲| 亚洲欧美精品在线| 国产成人精品av在线观| 美美哒免费高清在线观看视频一区二区 | 91蜜桃在线视频| 精品国产免费一区二区三区四区 | 日韩欧美国产成人| 国产日韩精品中文字无码| 欧美日韩不卡合集视频| 一本本久综合久久爱| 亚洲精品久久久久久国产精华液| 成人无码精品1区2区3区免费看 | 好男人免费精品视频| 欧美乱熟臀69xxxxxx| 日本三级网站在线观看| 91精品精品| 日本一区二区三区四区在线观看| 日韩a级作爱片一二三区免费观看| 欧美性大战xxxxx久久久| 日本三级免费看| 在线视频日韩| 佐佐木明希av| 激情网站在线| 精品国产欧美成人夜夜嗨| 99热这里只有精品99| 国产一区在线观看视频| 国产成人精品无码播放| 成人影院在线免费观看|