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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

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

作者:萬致遠   來源:本站原創   點擊數:  更新時間:2012年07月27日   【字體:

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

/*
* 自適應波特率模擬串口程序,
* BY 萬致遠@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 //發送數據端口
#define RX1 P1_1 //接收數據端口
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)
{
    //發送啟始位
    BYTE i=8;
    BYTE tmp=out;
    TR1=1;//開定時器
    TX1=0;
    WaitTF1();
    //發送8位數據位
    while(i--)
    {
        TX1=(tmp&0x01);     //先傳低位
        tmp=tmp>>1;
        WaitTF1();
    }
    //發送校驗位(無)
    //發送結束位
    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;//關閉定時器
    return in;
}

UINT f_Test(void)//測試脈寬
{
    TMOD=0x10;//設置計數器1為方式一計數器模式
    TH1=0;
    TL1=0;//定時器CLR
    while(!RX1);//等待頻率腳變高,這個是測低電平的
    while(RX1);//等待腳變低,更換符號可以測正脈沖
    TR1=1;//開啟定時器
    while(!RX1);//等待變高
    TR1=0;//停止計數
    //cyc=TH0<<8;
    //cyc=cyc+TL0;
    return (TH1<<8)+TL1;
}
void baud_t()
{
    BYTE k;//復用變量
    ULONG frq=0; //周期變量
    for(k=0;k<5;k++)// 變量復用大法
    {
        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,這里要按照情況調整
    }
    TMOD=0x20;//設置定時器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請自己寫字符串發送函數,和sprintf配合使用
        printf("Could you please test another baudrate?\r\n");
        printf("But I think that I couldn't to do.....\r\n");
    }
}

萬致遠@rwzy.co.cc
求M~~~

關閉窗口

相關文章

精品午夜久久| 国产日韩在线精品av| 精品国产成人系列| 色欧美88888久久久久久影院| 亚洲欧洲综合另类| 一区二区中文视频| 成人精品免费视频| heyzo一本久久综合| 国产精品一区二区你懂的| 免费av网站大全久久| 爽好多水快深点欧美视频| 国产亚洲永久域名| 老司机精品导航| 卡一卡二国产精品| 国产乱子轮精品视频| 国产suv一区二区三区88区| 成人自拍视频在线| 久久久不卡影院| 国产精品沙发午睡系列990531| 国产女人水真多18毛片18精品视频| 2020国产精品自拍| 国产精品久久久久一区| 亚洲精品国产一区二区精华液 | 中文字幕在线免费观看视频| 国产极品在线观看| 欧美第一视频| 日韩三级成人| 91精品尤物| 国产日产一区| 欧美一区二区| 视频一区欧美精品| 国产精品中文欧美| 久久精品欧美一区二区三区不卡| 欧美国产禁国产网站cc| 国产午夜精品一区二区三区嫩草| 国产精品国产三级国产普通话三级| 亚洲欧洲国产日本综合| 亚洲成国产人片在线观看| 日本久久电影网| 欧美一区在线视频| 在线观看精品国产视频| 久久久久久久国产精品| 国产日韩av在线播放| 精品无码久久久久国产| 影音先锋成人资源网站| 白嫩少妇丰满一区二区| 中文字幕永久免费| 少妇被躁爽到高潮无码文| 午夜精品免费观看| 四虎影视18库在线影院 | 911精品美国片911久久久| 亚洲激情另类| 国产成人精品亚洲777人妖 | 91传媒视频在线播放| 日韩精品一区二区三区三区免费| 国产一区二区三区三区在线观看| 欧美激情一级二级| 97超级在线观看免费高清完整版电视剧| 国产精品视频福利| 成人欧美一区二区三区黑人孕妇| 免费看污久久久| 国产网站免费在线观看| xxxx黄色片| 欧美不卡视频在线观看| 高清乱码毛片入口| 黑人巨大狂躁日本妞在线观看| 在线观看国产麻豆| xxxxxx欧美| 国产欧美一区| 久久爱另类一区二区小说| 国产精品美女久久久久久久 | 亚洲韩国一区二区三区| 精品久久人人做人人爰| 久久青草精品视频免费观看| 国产精品对白一区二区三区| 加勒比海盗1在线观看免费国语版| 午夜久久福利视频| 91人妻一区二区三区蜜臀| 国产精品久久久久久免费播放| 欧美人乱大交xxxxx| 中文字幕福利片| 国产精品粉嫩| 91久久国产| 成人黄色小视频在线观看| 大桥未久av一区二区三区| 国产亚洲精品激情久久| 成人激情视频在线观看| 黄色www网站| 日本 欧美 国产| 日本高清视频在线| 色琪琪免费视频网站| 高潮一区二区| 亚洲五月婷婷| 一区在线播放视频| 亚洲女人天堂av| 1卡2卡3卡精品视频| 欧美 日韩精品| 日韩精品一区二区三区在线视频| 四虎精品一区二区三区| 狠狠干在线视频| 国产精品99久久免费| 久久精品国语| 婷婷中文字幕综合| 色与欲影视天天看综合网| 欧美福利精品| 99riav国产精品视频| 一级黄色大片视频| 你懂的网站在线播放| av片哪里在线观看| 国产精品99久久| 国产女主播一区| 亚洲日本中文字幕免费在线不卡| 99免费在线视频观看| 在线观看亚洲色图| 91精品国产高清一区二区三密臀| 91popny丨九色丨国产| 污污的网站在线免费观看| 婷婷亚洲图片| 亚洲欧洲国产日韩| 最近2019年日本中文免费字幕 | 青青草娱乐视频| 黄页网站在线| 一区在线免费观看| 亚洲午夜日本在线观看| 欧美二区在线播放| 91亚洲精品国产| 免费一级片在线观看| 国产香蕉成人综合精品视频| av片在线观看网站| 激情欧美国产欧美| 黄色91在线观看| 国产精品久久国产精品99gif| 午夜肉伦伦影院| 中文字幕免费高清网站| 九色在线91| 亚洲视频国产| 成人免费福利片| 亚洲精品美女视频| 欧美一区二区三区四区在线观看地址| 能免费看av的网站| 欧美性xxxxx极品视频| 羞羞的视频在线观看| 最新日韩在线| 欧美视频在线不卡| 91aaaa| 曰本三级日本三级日本三级| 亚洲精品综合网| 免费网站成人| 99在线精品免费视频九九视| 欧美日韩综合视频网址| 亚洲中国色老太| 无码精品一区二区三区在线播放| 四虎成人影院网址| 成年人黄色大片在线| 视频在线观看国产精品| 精品日韩一区二区三区| 欧美日韩国产免费一区二区三区| 激情五月激情综合| 成年女人免费又黄又爽视频| 国产一区二区在线观| 99精品视频在线播放观看| 久久中文字幕视频| av在线无限看| 2017亚洲男人天堂| 久久电影tv| 91在线码无精品| 欧美精品激情在线观看| 污污视频网站在线| 欧美孕妇与黑人巨交| 亚洲18在线| 综合自拍亚洲综合图不卡区| 奇米一区二区三区四区久久| 亚洲熟妇一区二区| 日本黄色入口| 天堂资源在线亚洲| 精品久久久一区二区| 成人做爰66片免费看网站| 神马午夜精品91| av在线电影网站| 欧美亚洲不卡| 日韩精品一区二区三区蜜臀| 国产日韩第一页| 国产精品久久影视| 国产v日韩v欧美v| 99这里都是精品| 国产成人精品久久久| 一区二区精品免费| 欧美h版电影| 欧美色综合网| 日韩av在线免播放器| 能在线观看的av| 尤物在线精品视频| 粉嫩久久久久久久极品| 欧美日韩视频在线| 亚洲永久激情精品| 国产不卡av在线播放| 色综合一本到久久亚洲91| 国产精品拍天天在线| 91手机视频在线观看| 日本一区二区欧美| yellow91字幕网在线| 国产成人综合视频| 欧美一区二区三区精品电影| 阿v天堂2014| 欧美高清成人| 国产高清成人在线| 国产精品第一页在线| 可以直接看的黄色网址| 888av在线| 国产精品一区二区果冻传媒| 97视频在线免费观看| 干b视频在线观看| 亚洲一区二区三区精品中文字幕 | 成人精品国产福利| 欧美亚洲视频在线看网址| 国产熟妇搡bbbb搡bbbb| 五月亚洲综合| 欧美亚洲韩国| 亚洲色图视频网| 鲁鲁狠狠狠7777一区二区| 欧美国产成人精品一区二区三区| 波多野结依一区| 国产精品人妖ts系列视频| 91欧美激情另类亚洲| 亚洲综合图片网| a免费在线观看| 国产精品久久99| 美女精品国产| 中文字幕一区二区三区波野结| 午夜日韩成人影院| 综合精品久久久| 视频一区不卡| 综合蜜桃精品| 亚洲色图丝袜| 亚洲国产精品人人爽夜夜爽| 欧美视频第一区| 在线成人私人影院| 蜜乳av一区二区| 欧美精品xxx| 国产第100页| 2017亚洲天堂1024| 国产精品免费视频观看| 视频在线99re| 一区二区三区免费视频网站| 国产一区二区三区四区五区| 亚洲精品色婷婷福利天堂| 女人色极品影院| 国产区卡一卡二卡三乱码免费| 国产一区二区三区四区五区传媒 | 国产精品青草综合久久久久99| 成人免费淫片aa视频免费| 91福利在线观看视频| 国产精品毛片久久久久久久久久99999999| 五月天激情综合| 日韩欧美一区二| 国产极品视频| 久久久久久穴| 色综合久久88色综合天天看泰| 免费在线观看av网址| 国产精品久久亚洲不卡| 欧美性xxxx极品hd满灌| caoporn超碰97| 男女啪啪a级毛片| 国产高清久久| 51色欧美片视频在线观看| 妺妺窝人体色www婷婷| 在线日韩影院| 欧美日韩你懂得| 国产天堂在线播放| 一区二区三区四区在线免费视频| 国产精品1区2区3区| 精品国产一二| 国产网站免费看| 一本色道88久久加勒比精品| 国产精品精品视频| 亚洲另类欧美日韩| 亚洲3区在线| 亚洲午夜国产成人av电影男同| 欧美在线一级片| av剧情在线观看| 国产尤物一区二区在线| 精品日本一区二区三区在线观看| 国产亚洲精品久久久网站好莱| 欧美高清日韩| 国产一区二区色| 三级在线观看网站| 9191国语精品高清在线| 国产成人亚洲精品| 中文字幕在线观看你懂的| 成人精品中文字幕| 欧美一级电影免费在线观看| 国产一级片av| 欧美超碰在线| 久久久久北条麻妃免费看| 免费看一级视频| 成人嫩草影院| 欧美精品videossex性护士| 国产乱码精品一区二三区蜜臂| 99久久www免费| 欧美在线中文字幕| 午夜福利理论片在线观看| 成人写真视频| 国产欧美精品一区二区| 欧美性猛交xxxx免费看久久| 亚洲欧美视频一区二区三区| 国产精品swag| www.超级碰| 久久久久久**毛片大全| 噜噜噜久久亚洲精品国产品麻豆 | 日韩一区欧美二区| 欧美一区二区三区在线免费观看| 国产精品久久久精品a级小说| 国产成人在线观看| 国产在线拍揄自揄拍无码| 初尝黑人巨炮波多野结衣电影| 国产精品久久久久久久午夜片| 99热都是精品| 日韩a级作爱片一二三区免费观看| 午夜精品久久久久久久99水蜜桃| 波多野结衣国产精品| sm在线播放| 亚洲欧美日韩网| 久久艹免费视频| 午夜日韩激情| 国产精品电影一区| 免费拍拍拍网站| 中文字幕无线码一区| blacked蜜桃精品一区| 成人两性免费视频| 香蕉视频网站在线播放| 成人福利电影精品一区二区在线观看| 日韩国产一级片| 中文字幕有码在线观看| 欧美精品乱码久久久久久按摩 | 欧美体内she精视频| 国产精品理论在线| 日韩在线激情| 久久久视频免费观看| 一色屋成人免费精品网站| 国内一区二区在线| 波多野结衣50连登视频| 国产高清免费av在线| 欧美一级爆毛片| 中文字幕在线日本| 国语精品一区| 亚洲一区二区在线免费观看| 日韩av视屏| 欧美日韩国产成人在线91| 日本少妇久久久| 在线日本高清免费不卡| 国产乱码精品一区二区三区卡 | 亚洲在线视频一区二区| 国产精品一级伦理| 欧美精品在线视频| 亚洲图片欧美日韩| 日韩精品久久久久久| 一区二区三区四区欧美| 免费网站看v片在线a| 这里只有精品电影| 波多野结衣电影在线播放| 日韩影院精彩在线| 男人j进女人j| bl在线肉h视频大尺度| 欧美黄色片视频| 2017亚洲男人天堂| 中文字幕在线一区免费| 国产视频不卡在线| 国产一区二区精品福利地址| 美女被啪啪一区二区| lutube成人福利在线观看| 久久sese| 欧美一区二区在线视频| 四虎影院在线免费播放| 亚洲日本成人| 青青青免费在线| 日本伦理一区二区| 中文国产亚洲喷潮| 欧美wwwwxxxx| 91亚洲男人天堂| 手机看片福利视频| 午夜精品偷拍| 影音欧美亚洲| 鲁鲁在线中文| 清纯唯美亚洲综合| 灌醉mj刚成年的大学平面模特| 一本到三区不卡视频| 日韩不卡在线播放| 丝瓜av网站精品一区二区| 污网站免费在线| 88久久精品| 国产99午夜精品一区二区三区| 黄色片在线免费观看| 中文字幕日韩在线播放| 欧美日本色图| 亚洲国产精品久久久男人的天堂| 欧美日韩精品在线观看视频| 日韩天堂av| 亚洲精品无码久久久久久| 成人a在线观看高清电影| 国产精品电影观看|