在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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)用 > 模擬串口的C語言源程序代碼

            模擬串口的C語言源程序代碼

            作者: 時(shí)間:2011-03-27 來源:網(wǎng)絡(luò) 收藏

            本程序是硬件機(jī)制寫的,使用時(shí)可設(shè)一定時(shí)中斷,時(shí)間間隔為1/4波特率,每中斷一次調(diào)用一次接收函數(shù), 每中斷4次調(diào)用一次發(fā)送函數(shù),不過.對(duì)單片機(jī)來說時(shí)鐘并須要快.要知道9600的波特率的每個(gè)BIT的時(shí)間間隔是104us.而單片機(jī)中斷一次壓棧出棧一次的時(shí)間是20us左右(標(biāo)準(zhǔn)的51核12M晶體)這樣處理時(shí)間就要考慮清楚了.呵呵.以下程序是放在定時(shí)器中斷程序函數(shù)內(nèi)的

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

            //接收部分
            sbit JieShou_D= ;//定義接收端口
            uint8 DingShiJiShu,JieShou_h;//定時(shí)計(jì)數(shù),接收緩沖器
            uint16 JieShou_T;//接收臨時(shí)寄存器
            bit KaiShi,JieShou_b;//開始接收標(biāo)準(zhǔn),接收完成標(biāo)志


            void JieShou(void) //接收函數(shù),每4次調(diào)用接收一位
            {
            if((KaiShi==0) (JieShou_D==0)) //串行開始位到來
            {
            DingShiJiShu=0; //開始定時(shí)計(jì)數(shù)
            KaiShi=1;
            JieShou_T=0xffff; //接收臨時(shí)寄存器置全1
            }
            else if((KaiShi==1) (DingShiJiShu==1)) //第2次調(diào)用,串行數(shù)據(jù)采樣時(shí)間到來
            {
            JieShou_T >>= 1;
            if(JieShou_D) JieShou_T |=0x8000;
            }
            else if(JieShou_T 0x807f ==0x803f) //接收完成 JieShou_T=1xxx_xxxx_x011_1111
            {
            KaiShi=0;
            DingShiJiShu=0;
            JieShou_h = JieShou_T >> 7; //右移7位得到串行數(shù)據(jù)
            JieShou_b=1;
            }

            if(KaiShi)
            {
            DingShiJiShu++; //只在開始接收時(shí)定時(shí)計(jì)數(shù)+1
            DingShiJiShu =0x03; //每4次調(diào)用接收一位
            }
            }


            //發(fā)送部分
            sbit FaSong_D= ;//定義發(fā)送端口
            uint16 FaSong_h; //發(fā)送緩沖區(qū)
            bit FaSong_b; //發(fā)送完成標(biāo)志

            void KaiShiFaSong(uint8 fs) //設(shè)置發(fā)送數(shù)據(jù),開始發(fā)送
            {
            FaSong_h = fs;
            FaSong_h = 1;
            FaSong_h |= 0x0200; //FaSong_h=0000_001x_xxxx_xxx_0
            FaSong_b=0; //發(fā)送標(biāo)志=0 表示正在發(fā)送中
            }

            void FaSong(void) //發(fā)送函數(shù),每調(diào)用一次發(fā)一位
            {
            if(FaSong_h) //發(fā)送未完成
            {
            if(FaSong_h 0x0001)
            FaSong_D=1;
            else FaSong_D=0;

            FaSong_h >>= 1;
            }
            else
            FaSong_b =1; //發(fā)送完成標(biāo)志=1 表示發(fā)送完成
            }

            51單片機(jī)相關(guān)文章:51單片機(jī)教程


            c語言相關(guān)文章:c語言教程




            關(guān)鍵詞: 代碼 源程序 語言 串口 模擬

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉