在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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) > 設計應用 > 31. 6位數(shù)顯頻率計數(shù)器

            31. 6位數(shù)顯頻率計數(shù)器

            作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
            1.實驗任務
            利用AT89S51單片機的T0、T1的定時計數(shù)器功能,來完成對輸入的信號進行頻率計數(shù),計數(shù)的頻率結(jié)果通過8位動態(tài)數(shù)碼管顯示出來。要求能夠?qū)?-250KHZ的信號頻率進行準確計數(shù),計數(shù)誤差不超過±1HZ。
            2.電路原理

            圖4.31.1

            3.系統(tǒng)板上硬件連線
            (1).把“單片機系統(tǒng)”區(qū)域中的P0.0-P0.7與“動態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端口用8芯排線連接。
            (2).把“單片機系統(tǒng)”區(qū)域中的P2.0-P2.7與“動態(tài)數(shù)碼顯示”區(qū)域中的S1S2S3S4S5S6S7S8端口用8芯排線連接。
            (3).把“單片機系統(tǒng)”區(qū)域中的P3.4(T0)端子用導線連接到“頻率產(chǎn)生器”區(qū)域中的WAVE端子上。
            4.程序設計內(nèi)容
            (1).定時/計數(shù)器T0和T1的工作方式設置,由圖可知,T0是工作在計數(shù)狀態(tài)下,對輸入的頻率信號進行計數(shù),但對工作在計數(shù)狀態(tài)下的T0,最大計數(shù)值為fOSC/24,由于fOSC=12MHz,因此:T0的最大計數(shù)頻率為250KHz。對于頻率的概念就是在一秒只數(shù)脈沖的個數(shù),即為頻率值。所以T1工作在定時狀態(tài)下,每定時1秒中到,就停止T0的計數(shù),而從T0的計數(shù)單元中讀取計數(shù)的數(shù)值,然后進行數(shù)據(jù)處理。送到數(shù)碼管顯示出來。
            (2).T1工作在定時狀態(tài)下,最大定時時間為65ms,達不到1秒的定時,所以采用定時50ms,共定時20次,即可完成1秒的定時功能。
            5.C語言源程序
            #include
            unsignedcharcodedispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
            unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
            0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
            unsignedchardispbuf[8]={0,0,0,0,0,0,10,10};
            unsignedchartemp[8];
            unsignedchardispcount;
            unsignedcharT0count;
            unsignedchartimecount;
            bitflag;
            unsignedlongx;
            voidmain(void)
            {
            unsignedchari;
            TMOD=0x15;
            TH0=0;
            TL0=0;
            TH1=(65536-4000)/256;
            TL1=(65536-4000)%256;
            TR1=1;
            TR0=1;
            ET0=1;
            ET1=1;
            EA=1;
            while(1)
            {
            if(flag==1)
            {
            flag=0;
            x=T0count*65536+TH0*256+TL0;
            for(i=0;i<8;i++)
            {
            temp=0;
            }
            i=0;
            while(x/10)
            {
            temp=x%10;
            x=x/10;
            i++;
            }
            temp=x;
            for(i=0;i<6;i++)
            {
            dispbuf=temp;
            }
            timecount=0;
            T0count=0;
            TH0=0;
            TL0=0;
            TR0=1;
            }
            }
            }
            voidt0(void)interrupt1using0
            {
            T0count++;
            }
            voidt1(void)interrupt3using0
            {
            TH1=(65536-4000)/256;
            TL1=(65536-4000)%256;
            timecount++;
            if(timecount==250)
            {
            TR0=0;
            timecount=0;
            flag=1;
            }
            P0=dispcode[dispbuf[dispcount]];
            P2=dispbit[dispcount];
            dispcount++;
            if(dispcount==8)
            {
            dispcount=0;
            }
            }


            評論


            技術專區(qū)

            關閉