0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用單片機(jī)實(shí)現(xiàn)數(shù)字頻率計(jì)數(shù)器的設(shè)計(jì)說明

Wildesbeast ? 來源:單片機(jī)教程網(wǎng) ? 作者:h1654155169.2086 ? 2020-05-05 15:34 ? 次閱讀

1. 實(shí)驗(yàn)任務(wù)

利用AT89S51單片機(jī)的T0、T1的定時(shí)計(jì)數(shù)器功能,來完成對輸入的信號進(jìn)行頻率計(jì)數(shù),計(jì)數(shù)的頻率結(jié)果通過8位動(dòng)態(tài)數(shù)碼管顯示出來。要求能夠?qū)?-250KHZ的信號頻率進(jìn)行準(zhǔn)確計(jì)數(shù),計(jì)數(shù)誤差不超過±1HZ。

2. 電路原理

圖4.31.1

3. 系統(tǒng)板上硬件連線

(1). 把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0-P0.7與“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端口用8芯排線連接。

(2). 把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0-P2.7與“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的S1S2S3S4S5S6S7S8端口用8芯排線連接。

(3). 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.4(T0)端子用導(dǎo)線連接到“頻率產(chǎn)生器”區(qū)域中的WAVE端子上。

4. 程序設(shè)計(jì)內(nèi)容

(1). 定時(shí)/計(jì)數(shù)器T0和T1的工作方式設(shè)置,由圖可知,T0是工作在計(jì)數(shù)狀態(tài)下,對輸入的頻率信號進(jìn)行計(jì)數(shù),但對工作在計(jì)數(shù)狀態(tài)下的T0,最大計(jì)數(shù)值為fOSC/24,由于fOSC=12MHz,因此:T0的最大計(jì)數(shù)頻率為250KHz。對于頻率的概念就是在一秒只數(shù)脈沖的個(gè)數(shù),即為頻率值。所以T1工作在定時(shí)狀態(tài)下,每定時(shí)1秒中到,就停止T0的計(jì)數(shù),而從T0的計(jì)數(shù)單元中讀取計(jì)數(shù)的數(shù)值,然后進(jìn)行數(shù)據(jù)處理。送到數(shù)碼管顯示出來。

(2). T1工作在定時(shí)狀態(tài)下,最大定時(shí)時(shí)間為65ms,達(dá)不到1秒的定時(shí),所以采用定時(shí)50ms,共定時(shí)20次,即可完成1秒的定時(shí)功能。

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)%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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44452

    瀏覽量

    630807
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2248

    瀏覽量

    94178
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1871

    瀏覽量

    90727
收藏 人收藏

    評論

    相關(guān)推薦

    萌新求助,求一個(gè)單片機(jī)實(shí)現(xiàn)數(shù)字頻率計(jì)的方案

    萌新求助,求一個(gè)單片機(jī)實(shí)現(xiàn)數(shù)字頻率計(jì)的方案
    發(fā)表于 11-08 07:36

    基于單片機(jī)和CPLD的數(shù)字頻率計(jì)的設(shè)計(jì)

    基于單片機(jī)和CPLD的數(shù)字頻率計(jì)的設(shè)計(jì) 在傳統(tǒng)的控制系統(tǒng)中,通常將單片機(jī)作為控制核心并輔以相應(yīng)的元器件構(gòu)成一個(gè)整體。但這種方法硬件連線復(fù)
    發(fā)表于 10-15 08:59 ?1164次閱讀
    基于<b class='flag-5'>單片機(jī)</b>和CPLD的<b class='flag-5'>數(shù)字頻率計(jì)</b>的設(shè)計(jì)

    基于單片機(jī)數(shù)字頻率計(jì)的方案

    基于單片機(jī)數(shù)字頻率計(jì)的方案 概述:設(shè)計(jì)一種以單片機(jī)AT89C51為核心的數(shù)字頻率計(jì),介紹了單片機(jī)、數(shù)
    發(fā)表于 03-24 10:02 ?6421次閱讀
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>數(shù)字頻率計(jì)</b>的方案

    基于單片機(jī)AT89S52控制的數(shù)字頻率計(jì)的設(shè)計(jì)

    提出一種基于單片機(jī)AT89S52控制的數(shù)字頻率計(jì)的設(shè)計(jì)新方法。該方法將待測頻率信號經(jīng)過整形放大后輸入單片機(jī),然后由單片機(jī)控制內(nèi)部
    發(fā)表于 02-02 11:20 ?363次下載
    基于<b class='flag-5'>單片機(jī)</b>AT89S52控制的<b class='flag-5'>數(shù)字頻率計(jì)</b>的設(shè)計(jì)

    數(shù)字頻率計(jì)的制作

    數(shù)字頻率計(jì)是采用數(shù)字電路制做成的能實(shí)現(xiàn)對周期性變化信號頻率測量的儀器。頻率計(jì)主要用于測量正弦波、矩形波、三角波和尖脈沖等周期信號的
    發(fā)表于 11-20 14:55 ?158次下載

    基于verilog語言的數(shù)字頻率計(jì)設(shè)計(jì)

    基于verilog語言的數(shù)字頻率計(jì)設(shè)計(jì)基于verilog語言的數(shù)字頻率計(jì)設(shè)計(jì)基于verilog語言的數(shù)字頻率計(jì)設(shè)計(jì)基于verilog語言的數(shù)字頻率計(jì)設(shè)計(jì)
    發(fā)表于 12-08 15:57 ?0次下載

    基于51單片機(jī)數(shù)字頻率計(jì)

    基于51單片機(jī)數(shù)字頻率計(jì)源程序。
    發(fā)表于 12-17 15:12 ?116次下載

    四位數(shù)字頻率計(jì)數(shù)碼管顯示NEW

    電子專業(yè)單片機(jī)相關(guān)知識學(xué)習(xí)教材資料——四位數(shù)字頻率計(jì)數(shù)碼管顯示NEW
    發(fā)表于 08-08 17:03 ?57次下載

    基于單片機(jī)的系統(tǒng)硬件數(shù)字頻率計(jì)的設(shè)計(jì)

    基于單片機(jī)的系統(tǒng)硬件數(shù)字頻率計(jì)的設(shè)計(jì)
    發(fā)表于 09-21 15:32 ?47次下載
    基于<b class='flag-5'>單片機(jī)</b>的系統(tǒng)硬件<b class='flag-5'>數(shù)字頻率計(jì)</b>的設(shè)計(jì)

    基于單片機(jī)的自動(dòng)量程數(shù)字頻率計(jì)的設(shè)計(jì)

    基于單片機(jī)的自動(dòng)量程數(shù)字頻率計(jì)的設(shè)計(jì),
    發(fā)表于 10-26 10:59 ?31次下載

    基于單片機(jī)設(shè)計(jì)的數(shù)字頻率計(jì)文檔下載

    單片機(jī)設(shè)計(jì)的數(shù)字頻率計(jì)論文及總結(jié)
    發(fā)表于 12-21 17:10 ?34次下載

    基于51單片機(jī)數(shù)字頻率計(jì)的設(shè)計(jì)簡介

    基于51單片機(jī)數(shù)字頻率計(jì)設(shè)計(jì)說明。
    發(fā)表于 05-27 14:41 ?51次下載

    基于51單片機(jī)數(shù)字頻率計(jì)的設(shè)計(jì)講解

    基于51單片機(jī)數(shù)字頻率計(jì)的設(shè)計(jì)講解(單片機(jī)原理及應(yīng)用)-該文檔為基于51單片機(jī)數(shù)字頻率計(jì)的設(shè)計(jì)講解資料,講解的還不錯(cuò),感興趣的可以下載看
    發(fā)表于 07-22 10:54 ?86次下載
    基于51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>數(shù)字頻率計(jì)</b>的設(shè)計(jì)講解

    基于單片機(jī)數(shù)字頻率計(jì)設(shè)計(jì)

    ,方波信號及其他各種單位時(shí)間內(nèi)變化的物理量。在進(jìn)行模擬、數(shù)字電路的設(shè)計(jì)、安裝、調(diào)試過程中,由于其使用十進(jìn)制數(shù)顯示,測量迅速,精確度高,顯示直觀,經(jīng)常要用到頻率計(jì)。? ?本數(shù)字頻率計(jì)將采用定時(shí)、
    發(fā)表于 11-04 12:51 ?31次下載
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>數(shù)字頻率計(jì)</b>設(shè)計(jì)

    基于51單片機(jī)數(shù)字頻率計(jì)原理圖

    基于單片機(jī)數(shù)字頻率計(jì)設(shè)計(jì)原理圖免費(fèi)下載。
    發(fā)表于 04-18 09:24 ?17次下載