6位數(shù)顯頻率計數(shù)器,Digital frequency meter
關(guān)鍵字:頻率計,計數(shù)器,頻率計制作,頻率計電路,計數(shù)器電路,89S51
1.實驗任務(wù)
利用AT89S51單片機的T0、T1的定時計數(shù)器功能,來完成對輸入的信號進行頻率計數(shù),計數(shù)的頻率結(jié)果通過8位動態(tài)數(shù)碼管顯示出來。要求能夠?qū)?-250KHZ的信號頻率進行準確計數(shù),計數(shù)誤差不超過±1HZ。
2.電路原理圖
利用AT89S51單片機的T0、T1的定時計數(shù)器功能,來完成對輸入的信號進行頻率計數(shù),計數(shù)的頻率結(jié)果通過8位動態(tài)數(shù)碼管顯示出來。要求能夠?qū)?-250KHZ的信號頻率進行準確計數(shù),計數(shù)誤差不超過±1HZ。
2.電路原理圖
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.程序設(shè)計內(nèi)容
(1).定時/計數(shù)器T0和T1的工作方式設(shè)置,由圖可知,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
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;
}
}
(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.程序設(shè)計內(nèi)容
(1).定時/計數(shù)器T0和T1的工作方式設(shè)置,由圖可知,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
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;
}
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
發(fā)布評論請先 登錄
相關(guān)推薦
頻率計數(shù)器的技術(shù)原理和應用場景
頻率計數(shù)器,又稱頻率計,是一種專門用于測量信號頻率的電子測量儀器。以下是對其技術(shù)原理和應用場景的詳細分析:一、技術(shù)原理頻率計數(shù)器的技術(shù)原理基于周期計
發(fā)表于 10-18 14:03
計數(shù)器同步和異步怎么判斷
字系統(tǒng)中有著廣泛的應用,如定時器、頻率計、脈沖計數(shù)器等。 二、同步計數(shù)器 1. 同步計數(shù)器的概念 同步計
10 MHz OCXO,帶40 MHz頻率計數(shù)器
這個想法并不是我所有的硬件項目都有案例。幾年前我買了一個,現(xiàn)在我記不清它的意圖了。但去年我決定在這個案例中安裝OCX0和頻率計數(shù)器。我使用OCXO振蕩器有兩個原因:在我測試NTP的過程中,它是一個
頻率計數(shù)器的工作原理是什么
頻率計數(shù)器是一種電子測量儀器,用于測量信號的頻率,即單位時間內(nèi)的周期數(shù)。它廣泛應用于科學、工程、通信和醫(yī)療等領(lǐng)域,用于測試和校準電子設(shè)備。
二進制串行計數(shù)器工作原理是什么?
的工作原理進行深入解析,幫助你更好地理解這一數(shù)字電路的核心組件。 一、二進制串行計數(shù)器的基本概念 二進制串行計數(shù)器是一種基于二進制數(shù)制的計數(shù)器,它按照二進制數(shù)的規(guī)律進行
同步計數(shù)器和異步計數(shù)器的區(qū)別
在數(shù)字電子領(lǐng)域中,計數(shù)器是一種用于統(tǒng)計脈沖信號數(shù)量的重要設(shè)備。其中,同步計數(shù)器和異步計數(shù)器是兩種不同類型的計數(shù)器,它們在工作原理、特性以及應用場景等方面存在著顯著的區(qū)別。本文將詳細探討
簡單認識脈沖計數(shù)器
在數(shù)字電路和電子測量領(lǐng)域中,脈沖計數(shù)器作為一種基本而重要的工具,其應用十分廣泛。脈沖計數(shù)器,也被稱為脈沖頻率計或脈沖數(shù)計,主要用于統(tǒng)計和測量輸入脈沖信號的
同步4位計數(shù)器數(shù)據(jù)表
電子發(fā)燒友網(wǎng)站提供《同步4位計數(shù)器數(shù)據(jù)表.pdf》資料免費下載
發(fā)表于 05-15 10:08
?0次下載
頻率計有哪些作用
頻率計又稱為頻率計數(shù)器,是一種專門對被測信號頻率進行測量的電子測量儀器。其主要由四個部分構(gòu)成:時基(T)電路、輸入電路、計數(shù)顯示電路以及控制電路。又稱為
計數(shù)器怎么判斷同步和異步 計數(shù)器異步和同步的區(qū)別
應用中的各自優(yōu)勢和限制。 一、計數(shù)器概述 計數(shù)器是一個數(shù)值型的變量,它能夠用于存儲和追蹤特定事件的發(fā)生次數(shù)。在計算機系統(tǒng)中,計數(shù)器起到非常重要的作用,例如統(tǒng)計程序執(zhí)行的指令數(shù)、計算循環(huán)
如何使用時間間隔計數(shù)器/間隔計時器
頻率計數(shù)器通常具有高阻抗輸入。這通常為 1MΩ??梢允褂?X1 示波器探頭將計數(shù)器連接到被測電路的點 n。由于示波器探頭具有夾子和BNC輸入,因此這通常是一種非常方便的連接和探測方式。
淺談時間間隔計數(shù)器的定時器間隔測量功能
與頻率計數(shù)器一樣,定時器計數(shù)器或間隔定時器也具有許多組成測試儀器的模塊。它們與計數(shù)器中使用的非常相似,只需要重新配置即可提供間隔定時功能。
計數(shù)器怎么用 計數(shù)器的作用有哪些
計數(shù)器是一種被廣泛應用于各個領(lǐng)域的實用工具,在我們的日常生活中隨處可見。無論是進行時間統(tǒng)計,協(xié)助工作任務(wù)的完成,還是用于科學研究和編程技術(shù),在各個領(lǐng)域都起到了重要的作用。本文將詳細介紹計數(shù)器
同步計數(shù)器和異步計數(shù)器各有什么特點
同步計數(shù)器和異步計數(shù)器是兩種常見的數(shù)據(jù)結(jié)構(gòu),它們都用于控制對共享資源的訪問。它們的主要作用是實現(xiàn)多個線程之間的同步和并發(fā)控制。盡管它們都被用于同步的目的,但它們有很多不同的特點和用例。 同步計數(shù)器
同步計數(shù)器和異步計數(shù)器的區(qū)別主要在哪里
、應用等方面。 一、工作原理 同步計數(shù)器:同步計數(shù)器的工作原理是,在時鐘信號的驅(qū)動下,對輸入的二進制數(shù)進行加法或減法運算,從而得到計數(shù)值。在每個時鐘周期內(nèi),同步
評論