日韩欧美视频第二区,秋霞成人午夜鲁丝一区二区三区,美女日批视频在线观看,av在线不卡免费

電子開發網

電子開發網電子設計 | 電子開發網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 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
主站蜘蛛池模板: 香河县| 黔西县| 冀州市| 思茅市| 宣化县| 手游| 化德县| 武山县| 淅川县| 信丰县| 靖州| 剑阁县| 佳木斯市| 高陵县| 敖汉旗| 固原市| 枣庄市| 乌兰县| 唐海县| 兴城市| 博白县| 九龙县| 永昌县| 鄄城县| 青川县| 江津市| 松滋市| 澄江县| 石屏县| 玛曲县| 清镇市| 永德县| 枣阳市| 桐城市| 青田县| 福海县| 砚山县| 阜宁县| 乌拉特前旗| 田东县| 潞城市|