久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2471|回復(fù): 2
收起左側(cè)

關(guān)于51單片機(jī)的頻率計(jì)設(shè)計(jì)的一些疑惑

[復(fù)制鏈接]
ID:726557 發(fā)表于 2020-5-20 09:07 | 顯示全部樓層 |閱讀模式
70黑幣
下面是我在論壇上下載的頻率計(jì)的代碼和電路圖,我在原電路圖的基礎(chǔ)上加了一個(gè)整形電路,晶振頻率設(shè)置的是11.0592MHZ,仿真的結(jié)果也在下面。我的問題是:
1.為什么它會(huì)在較高頻率時(shí)出現(xiàn)較大誤差。我覺得這段代碼設(shè)計(jì)算頻率用的是直接測(cè)頻法,可為什么會(huì)在測(cè)高頻出現(xiàn)較大誤差,而在測(cè)低頻時(shí)很準(zhǔn)確,是我理解錯(cuò)了,它用的是測(cè)周法?
2.為什么當(dāng)我上調(diào)輸入頻率時(shí)(大概5kHZ以上),顯示結(jié)果會(huì)出現(xiàn)閃動(dòng),調(diào)的越高閃動(dòng)的越快,是動(dòng)態(tài)顯示的哪里出了問題嗎?有什么解決思路?
3.x=T0count*65536+TH0*256+TL0,這段代碼我還是不太明白,為什么要將計(jì)數(shù)器值這樣轉(zhuǎn)換才能成為頻率值?
以上是我的疑惑,希望哪位大佬能幫我解答一下,十分感謝!

電路圖

電路圖

單片機(jī)源程序如下:
#include <AT89X51.H>
unsigned char codedispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};     //P2的掃描位
unsigned char codedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
                              0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};   //數(shù)碼管的字形編碼
unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};//初始化顯示值
unsigned char temp[8];     //存放顯示的數(shù)據(jù)
unsigned char dispcount;   //顯示計(jì)數(shù)器值
unsigned char T0count;     //T0的計(jì)數(shù)器值
unsigned char timecount;   //計(jì)時(shí)計(jì)數(shù)器值
bit flag;                  //標(biāo)志位
unsigned long x;           //頻率值
//頻率計(jì)算函數(shù)
void HzCal(void)
{
unsigned char i;
x=T0count*65536+TH0*256+TL0; //得到T0的16位計(jì)數(shù)器值
for(i=0;i<8;i++)
  {
   temp[ i]=0;
  }
        i=0;
        while(x/10)         //拆分
          {
            temp[ i]=x%10;
            x=x/10;
             i++;
           }
        temp[ i]=x;
        for(i=0;i<6;i++)    //換算為顯示數(shù)據(jù)
          {
            dispbuf[ i]=temp[ i];
          }
        timecount=0;
        T0count=0;
}

void main(void)
{

TMOD=0x15;              //設(shè)置定時(shí)器工作方式,T0計(jì)數(shù),T1定時(shí),均工作在方式1
TH0=0;
TL0=0;
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;       //初始化T1
TR1=1;
TR0=1;
ET0=1;
ET1=1;
EA=1;                     //開中斷

while(1)
   {
    if(flag==1)
       {
        flag=0;
        HzCal();   //頻率計(jì)算函數(shù)
        TH0=0;
        TL0=0;
        TR0=1;
      }
   }
}
//定時(shí)器T0中斷服務(wù)子函數(shù)
void t0(void) interrupt 1 using 0
{
T0count++;
}
//定時(shí)器T1中斷服務(wù)子函數(shù)  
void t1(void) interrupt 3 using 0
{
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;          //初始化T1預(yù)裝值,1ms定時(shí)
timecount++;                   //掃描
if(timecount==200)             //秒定時(shí)
    {
     TR0=0;                     //啟動(dòng)T0
     timecount=0;
     flag=1;
    }
P2=0xff;                         //初始化選擇引腳
P0=dispcode[dispbuf[dispcount]]; //輸出待顯示數(shù)據(jù)
P2=dispbit[dispcount];
dispcount++;                    //切換到下一個(gè)選擇引腳
if(dispcount==8)                //如果已經(jīng)掃描完成切換
    {
     dispcount=0;
    }


回復(fù)

使用道具 舉報(bào)

ID:756622 發(fā)表于 2020-5-20 17:24 | 顯示全部樓層
這應(yīng)該是利用T1每秒使flag置1,T0測(cè)每秒內(nèi)的脈沖數(shù)實(shí)現(xiàn)測(cè)量頻率的。x=T0count*65536+TH0*256+TL0,T0count是計(jì)數(shù)器的溢出次數(shù),假如說在未到達(dá)flag為1時(shí),T0已經(jīng)計(jì)數(shù)到最大值(65536)了(也就是已經(jīng)檢測(cè)到65536個(gè)脈沖了),所以會(huì)溢出,然后重新計(jì)數(shù),TH0和TL0應(yīng)該分別是T0當(dāng)前計(jì)數(shù)值的高4位和低四位。通過這個(gè)式子可以把1s內(nèi)的計(jì)數(shù)值(脈沖數(shù))正確計(jì)算出來,單位周期的內(nèi)的脈沖數(shù)不就是頻率嗎,所以就測(cè)量出頻率了。我也不是很懂,以上是我的見解。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:726557 發(fā)表于 2020-5-21 09:46 | 顯示全部樓層
新征途 發(fā)表于 2020-5-20 17:24
這應(yīng)該是利用T1每秒使flag置1,T0測(cè)每秒內(nèi)的脈沖數(shù)實(shí)現(xiàn)測(cè)量頻率的。x=T0count*65536+TH0*256+TL0,T0count ...

我懂了,謝謝大佬!也就是T0count溢出次數(shù)乘每次溢出的脈沖數(shù),再加上現(xiàn)在的,TH0*256是要左移與TL0合并,得到1s脈沖數(shù),就是現(xiàn)在的頻率值了。
謝謝!
我還是對(duì)一二問不太明白,想了很久,還是不太明白,能解答一下嗎?非常感謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美小视频在线观看 | 国产精品我不卡 | 日本中文在线 | 黄色网络在线观看 | 可以免费观看的av | 国产高清在线精品一区二区三区 | 亚洲国产情侣 | 国产一区二区三区久久久久久久久 | 日韩精品在线看 | 女女爱爱视频 | 91国内精精品久久久久久婷婷 | 黄色av网站免费看 | 一a一片一级一片啪啪 | 五月婷婷激情 | 奇米久久 | 一区二区三区四区国产 | 久久国产秒 | 久久精品福利 | 欧美精品一二三 | 91久久精品国产免费一区 | 日韩色在线 | 国产超碰人人爽人人做人人爱 | 久久久久久国产精品三区 | 亚洲精品www | 欧美日韩在线免费观看 | 欧美激情亚洲天堂 | 亚洲色图在线观看 | 国产精品1区2区3区 一区中文字幕 | av中文字幕在线播放 | 国产成人综合av | 欧美一区二区三区久久精品 | 日韩美av | 成人福利片 | 国产精品人人做人人爽 | 日韩一区二区在线观看视频 | 精品欧美一区二区三区久久久 | 天天射影院| 精品久久视频 | 日日干夜夜操 | 午夜视频网站 | 欧美日韩高清免费 |