在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 三種單片機(jī)模擬串口方法介紹

            三種單片機(jī)模擬串口方法介紹

            作者: 時間:2010-02-28 來源:網(wǎng)絡(luò) 收藏

            /*定時器0,100us溢出中斷*/
            SIGNAL(SIG_OVERFLOW0)
            {
            TCNT0=151;//重載數(shù)據(jù),計(jì)時區(qū)間為151---255,共104uS,一個位的時間
            if(TxLength)//
            {
            if(start==0)
            {
            Sbit0();//起始位
            SUDR=*(TxPoint++);
            }
            else
            {
            if((start=8))
            {
            if(SUDR(1(start-1)))Sbit1();//數(shù)據(jù)1
            else Sbit0();//數(shù)據(jù)0
            }
            else Sbit1();//停止位
            }
            if(start10)start++;
            else
            {
            TxLength--;//一字節(jié) 發(fā)送完成,字節(jié)數(shù)減1
            start=0;
            }//
            }
            }

            /*定時器1,1ms溢出中斷*/
            SIGNAL(SIG_OVERFLOW1)
            {
            eep_ms++;
            }
            /*定時器2*/
            SIGNAL(SIG_OVERFLOW2)
            {
            sei();
            if(INT0_time)//有數(shù)據(jù)
            {
            INT0_time=0;//中斷次數(shù)清0
            rdata=1;//置有數(shù)據(jù)標(biāo)志
            eep_ms=0;
            if(RxLength10)DispBuff[RxLength++]=RUDR;

            }
            if(rtime4)rtime++;//字節(jié)間隔時間,間隔3個字節(jié)重新開始一幀
            else RxLength=0;
            }

            SIGNAL(SIG_INTERRUPT0)//INT0,邊沿觸發(fā)中斷
            {
            unsigned char temp,temp2=0;
            static unsigned char pre_TCNT2,j=0;
            if(INT0_time==0)//一個字節(jié)第一個下降沿中斷,起始位開始
            {
            TCNT2=130;
            pre_TCNT2=130;
            RUDR=0xff;//接收的數(shù)據(jù)初值
            j=0; //位數(shù)清零
            INT0_time++;//中斷次數(shù)加一
            }
            else
            {
            temp=TCNT2;
            if(temp>pre_TCNT2)temp2=temp-pre_TCNT2;//取一個高/低電平的寬度
            if(temp2>10)//濾過窄電平(干擾信號)
            {
            pre_TCNT2=temp;//記錄前一次的時間值
            temp=0;
            while(temp2>13)//計(jì)算位的個數(shù),約13為一個位(8*13=104uS)
            {
            temp2-=13;//
            temp++;
            }
            if(temp2>6)temp++;//計(jì)算位的個數(shù),一般13為一個位
            if(INT0_time==1)temp-=1;
            if(INT0_time1)//奇數(shù)次中斷
            {
            while(temp)//位0的個數(shù)
            {
            RUDR=~(1 temp--;
            j++;
            }
            }
            else j+=temp;//偶數(shù),位1的個數(shù),跳過
            INT0_time++;//中斷次數(shù)加一
            }
            }
            rtime=0;
            }

            上一頁 1 2 3 下一頁

            關(guān)鍵詞: 介紹 方法 串口 模擬 單片機(jī)

            評論


            相關(guān)推薦

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

            關(guān)閉