• <rp id="wfxtb"><acronym id="wfxtb"></acronym></rp><em id="wfxtb"></em><dd id="wfxtb"><big id="wfxtb"><video id="wfxtb"></video></big></dd>
  • <rp id="wfxtb"></rp>

    <mark id="wfxtb"><center id="wfxtb"></center></mark>

      <rp id="wfxtb"><span id="wfxtb"><u id="wfxtb"></u></span></rp>

      <rp id="wfxtb"><object id="wfxtb"></object></rp>

      注意:訪問本站需要Cookie和JavaScript支持!請設置您的瀏覽器! 打開購物車 查看留言付款方式聯系我們
      初中電子 單片機教材一 單片機教材二
      搜索上次看見的商品或文章:
      商品名、介紹 文章名、內容
      首頁 電子入門 學單片機 免費資源 下載中心 商品列表 象棋在線 在線繪圖 加盟五一 加入收藏 設為首頁
      本站推薦:
      31. 6位數顯頻率計數器
      文章長度[] 加入時間[2008/5/30] 更新時間[2025/5/12 16:47:19] 級別[0] [評論] [收藏]
       
      1.      實驗任務
      利用AT89S51單片機的T0、T1的定時計數器功能,來完成對輸入的信號進行頻率計數,計數的頻率結果通過8位動態數碼管顯示出來。要求能夠對0-250KHZ的信號頻率進行準確計數,計數誤差不超過±1HZ。
      2.      電路原理圖
      圖4.31.1
      3.      系統板上硬件連線
      (1).            把“單片機系統”區域中的P0.0-P0.7與“動態數碼顯示”區域中的ABCDEFGH端口用8芯排線連接。
      (2).            把“單片機系統”區域中的P2.0-P2.7與“動態數碼顯示”區域中的S1S2S3S4S5S6S7S8端口用8芯排線連接。
      (3).            把“單片機系統”區域中的P3.4(T0)端子用導線連接到“頻率產生器”區域中的WAVE端子上。
      4.      程序設計內容
      (1).            定時/計數器T0和T1的工作方式設置,由圖可知,T0是工作在計數狀態下,對輸入的頻率信號進行計數,但對工作在計數狀態下的T0,最大計數值為fOSC/24,由于fOSC=12MHz,因此:T0的最大計數頻率為250KHz。對于頻率的概念就是在一秒只數脈沖的個數,即為頻率值。所以T1工作在定時狀態下,每定時1秒中到,就停止T0的計數,而從T0的計數單元中讀取計數的數值,然后進行數據處理。送到數碼管顯示出來。
      (2).            T1工作在定時狀態下,最大定時時間為65ms,達不到1秒的定時,所以采用定時50ms,共定時20次,即可完成1秒的定時功能。
      5.      C語言源程序
      #include <AT89X52.H>
      unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
      unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
                                     0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
      unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};
      unsigned char temp[8];
      unsigned char dispcount;
      unsigned char T0count;
      unsigned char timecount;
      bit flag;
      unsigned long x;
      void main(void)
      {
        unsigned char i;
        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[i]=0;
                 }
               i=0;
               while(x/10)
                 {
                   temp[i]=x%10;
                   x=x/10;
                   i++;
                 }
               temp[i]=x;
               for(i=0;i<6;i++)
                 {
                   dispbuf[i]=temp[i];
                 }
               timecount=0;
               T0count=0;
               TH0=0;
               TL0=0;
               TR0=1;
             }
         }
      }
      void t0(void) interrupt 1 using 0
      {
        T0count++;
      }
      void t1(void) interrupt 3 using 0
      {
        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;
          }
      }
      1、 本站不保證以上觀點正確,就算是本站原創作品,本站也不保證內容正確。
      2、如果您擁有本文版權,并且不想在本站轉載,請書面通知本站立即刪除并且向您公開道歉! 以上可能是本站收集或者轉載的文章,本站可能沒有文章中的元件或產品,如果您需要類似的商品請 點這里查看商品列表!
      本站協議。 版權信息。 關于我們。 本站地圖。 營業執照。 發票說明。 付款方式。 聯系方式
      深圳市寶安區西鄉五壹電子商行——粵ICP備16073394號-1;地址:深圳西鄉河西四坊183號;郵編:518102
      E-mail:51dz$163.com($改為@);Tel:(0755)27947428
      工作時間:9:30-12:00和13:30-17:30和18:30-20:30,無人接聽時可以再打手機13537585389
      91嫩草黄片动漫版