新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的頻率計的C語言源代碼

        基于單片機的頻率計的C語言源代碼

        作者: 時間:2012-08-21 來源:網絡 收藏

        本文是AT89C51計的C源程序。該計主要實現的功能有如下幾個:

        本文引用地址:http://www.104case.com/article/171002.htm

        AT89C51單片機的頻率計

          1. 測試功能

          它表明數字計所具備的全部測試功能,一般包括測頻,周期,累計脈沖數,頻率比,時間間隔及自較等功能。

          2. 測量范圍

          它說明不同功能的有效測量范圍。如測頻率時,測量范圍是數字頻率計處于正常工作條件下,被測信號的頻率范圍,一般用頻率的上,下限值表示,低端大部分從10HZ開始;高端因不同的頻率計而異。因此高端頻率是確定低,中,高速計數器的依據。在測量周期時,測量范圍常用周期的最大值,最小值表示。

          3. 輸入特性

          數字頻率計一般有2~3個輸入通道,測試不同項目時,被測信號可經不同的通道輸入儀器。輸入特性是表明數字式頻率計于被測信號源相連的一組特性參數,通常包括以下幾個方面。

          (1)輸入靈敏度。通常指儀器能正常工作的最小輸入電壓的有效值。常用的數字頻率計的靈敏度在100mV左右。

          (2)最大輸入電壓。指儀器所能允許的最大輸入電壓值,被測信號超過該值,則儀器不能保證正常工作,甚至會損壞。

          (3)輸入耦合方式。儀器設置AC和DC兩種耦合方式。AC耦合時,被測信號經隔直電容輸入,DC耦合時,被測信號直接進入輸入電路。AC耦合時適用于測量帶有直流電平的信號,DC耦合適用于低頻脈沖或階躍方波信號的測量。

          (4)輸入阻抗。為了減輕信號源的負載,數字式頻率計一般采用高頻輸入阻抗。輸入阻抗由輸入電阻和輸入電容兩部分組成。

          4. 顯示及工作方式

          它表明可顯示的內容,顯示數字的位數,所用的顯示器件以及一次測量完畢顯示測量結果的持續時間。有的還說明電子計數器是“不記憶”顯示方式或“記憶”顯示方式。

          5. 輸出

          儀器可以直接輸出的標準頻率信號有幾種,而且可以表明輸出測量數據的編碼方式和輸出電平等。

        C程序
        #includereg52.h>
        #include intrins.h>
        #define uchar unsigned char
        #define uint unsigned int
        uchar temp[8]={0,0,0,0,0,0,0,0};
        uchar temp1[8]={0,0,0,0,0,0,0,0};
        uchar T1count,timecount,T1count1,timer,yushu,yushu1;
        long fre,frx;
        float zhou;
        bit flag;
        bit flag1;
        void delay(uchar);
        bit result;
        sbit ird=P1^1;
        sbit id=P1^0;
        sbit clr=P1^2;

        sbit en=P1^5;
        sbit rw=P1^6;
        sbit rs=P1^7;

        sbit rd=P3^7;
        sbit kb=P1^3;
        sbit kx=P1^4;


        sbit A0=P3^6;
        sbit A1=P3^7;
        bit start;

        uchar code tab1[]=fre: ;
        uchar code tab2[]=frx: ;

        void delay(uchar z)
        {
        uchar x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);
        }

        panduan_bz()
        {
        rs = 0;
        rw = 1;
        en = 1;
        result = (bit)(P20x80);
        en = 0;
        return(result);
        }

        void write_com(uchar com)
        {
        while(panduan_bz());
        rs = 0;
        rw = 0;
        en = 0;
        P2=com;
        delay(5);
        en = 1;
        delay(5);
        en = 0;
        }

        void write_dat(uchar dat)
        {
        while(panduan_bz());
        rs = 1;
        rw = 0;
        en = 0;
        P2=dat;
        delay(5);
        en = 1;
        delay(5);
        en = 0;
        }


        void init()
        {
        uchar num;
        en = 0;
        write_com(0x38);
        write_com(0x0c);
        write_com(0x06);
        write_com(0x01);
        write_com(0x80);
        for(num=0;num16;num++)
        {
        write_dat(tab1[num]);
        delay(5);
        }
        write_com(0x80+0x40);
        for(num=0;num16;num++)
        {
        write_dat(tab2[num]);
        delay(5);
        }
        }

        void init1()
        {
        ird=1;
        id=1;
        TMOD=0x55;
        TH1=0;
        TL1=0; //初值為0
        TH0=0;
        TL0=0;
        TR0=1;
        TR1=1;
        IE=0x8a;
        RCAP2H=(65536-47850)/256; //重裝載計數器賦初值


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 桃园县| 同江市| 桦甸市| 策勒县| 山西省| 和田县| 玉山县| 疏勒县| 庐江县| 潜江市| 上思县| 宜宾市| 平顶山市| 康定县| 砚山县| 南部县| 西平县| 龙岩市| 西丰县| 鸡泽县| 彝良县| 中方县| 木兰县| 唐山市| 布拖县| 湖南省| 乌拉特前旗| 诸城市| 阜南县| 永仁县| 阳泉市| 友谊县| 天祝| 苏州市| 玉溪市| 碌曲县| 乐亭县| 玉田县| 图片| 井陉县| 宁夏|