電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

單片機開發的6位數顯頻率計數器

作者:佚名    文章來源:網絡    點擊數:    更新時間:2008/11/4
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
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)%6;
  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;
             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)%6;
  timecount++;
  if(timecount==250)
    {
      TR0=0;
      timecount=0;
      flag=1;
    }
  P0=dispcode[dispbuf[dispcount]];
  P2=dispbit[dispcount];
  dispcount++;
  if(dispcount==8)
    {
      dispcount=0;
    }
}
Tags:單片機,89s51,頻率計數器,設計  
責任編輯:admin
相關文章列表
沒有相關文章
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
草逼视频免费看| 欧美人妻aⅴ中文字幕| 人人爽人人澡人人高潮| 激情伊人五月天久久综合| 免费v片在线观看视频网站| 波多野つ上司出差被中在线出| 人妻有码中文字幕| 欧美日韩国产专区| 亚洲图片中文字幕| 最新国产三级久久| 九九久久99综合一区二区| 日本xxxxxxx69xx| 丹麦大白屁股hdxxxx| 宅男66lu国产在线观看| 一二三四免费观看在线电影中文 | 人人干人人干人人干| 欧美特黄三级在线观看| 亚洲日本在线看片| 最新国产在线拍揄自揄视频| 久久精品无码中文字幕| 新婚娇妻1一29芷姗txt下载 | 日本69式xxx视频| 久久99精品久久久久久hb无码| 少妇高潮喷潮久久久影院| 一个人看的在线免费视频| 国产麻豆剧果冻传媒免精品费网站| 91在线视频一区| 国产成人免费ā片在线观看老同学| 老师办公室被吃奶好爽在线观看 | 91中文字幕在线| 国产小视频在线观看免费| 美女脱精光给男生摸| 公的大龟慢慢挺进我的体内视频| 正在播放西川ゆい在线| 亚洲天堂中文字幕在线观看| 日韩一区在线视频| 久久99国产精品视频| 天天射天天操天天| 99免费在线视频| 国产日韩精品一区二区在线观看播放 | 久久国产一区二区三区|