新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機測量頻率的設計與實現

        單片機測量頻率的設計與實現

        作者: 時間:2012-11-27 來源:網絡 收藏

        對于周期波頻率的測量方法很多,但大多是通過測量間接計算頻率。本文介紹了用目前應用比較廣泛的系列對周期波頻率進行測量,并通過LED以數字形式直觀地示出頻率,實現測量的智能化,省去間接對頻率計算的麻煩與錯誤。文章對其測量原理,設計和實現作了說明,介紹了主要程序,并進行了誤差分析。

        引言
        目前廣泛應用到國民經濟建設和日常生話的許多領域,成為測控技術現代化不可缺少的重要工具。而本文適應這一發展趨勢,把系列應用于對周期波頻率的測量。并通過LED顯示器自動顯示出來,這對于頻率的測量帶來了極大的方便。

        設計思想
        利用施密特觸發器將邊緣緩慢變化的周期性信號如正弦波、三角波或任意形狀的模擬信號變換成同頻率的矩形脈沖。通過系列單片機內部的兩個十六位定時,計數器測量某段時間內的外加脈沖數,經過處理并通過LED直接顯示出所加信號的頻率。單片機內部的T0用來定時,T1用來計數(下降沿觸發)。當來一個計數脈沖則計數一次。在T0開始定時的同時,T1開始計數;T0定時1s時間到時,T1停止計數。方框圖如圖1所示。
        單片機測量頻率的設計與實現

        硬件設計
        的硬件電路主要由計數脈沖形成電路和計數顯示電路兩大部分組成。計數脈沖形成電路用"555"定時器接成施密特觸發器對外加的周期波進行變換,使之輸出為矩形脈沖。電路如圖2所示,計數顯示電路如圖3所示,主要包括:
        (1)由INTEL公司生產、晶振頻率為12MHz的89S02單片機。通過軟件編程使它內部的定時器T0定時,T1對外部的所加脈沖計數。然后把測量結果值通過P0口輸出。89S02自帶8K閃存,可以有90—100個現場測量數據,供回放調檢。
        (2)4位七段共陰極的LED顯示器。
        (3)由于采用的是4位共陰極的動態掃描方式顯示,段代碼由89S02的P0口提供,位選線則由89S02P2口的P2.0~P2.3提供。由于89S02的輸入,輸出口不能提供足夠的灌電流,因此用G1~G4提供給LED足夠的顯示電流。
        單片機測量頻率的設計與實現
        單片機測量頻率的設計與實現

        軟件設計
        用MCS-51單片機的程序主要包括:初始化程序,定時計數程序、LED顯示程序。初始化程序略。定時計數主要程序:
        MOV R2,#14H ;定時20個0.05秒
        ANL TMOD,#0FH;設置T0定時T1計數
        ORL TMOD,#51H
        MOV TH0,#3AH;置定時器初值
        MOV TL0,#B1H
        MOV TH1,#00H;置計數器初值
        MOV TL1,#00H
        SETB TR0 ;啟動定時
        SETB TR1 ;啟動計數
        XX:JBC TF0,LOOP ;定時溢出則轉移
        SJMP XX ;否則繼續查詢
        LOOP:MOV TH0,#3AH ;置定時初值
        MOV TL0,#B1H
        DJNZ R2,XX ;R2不等于0則轉移
        CLR TR1 ;停止計數
        LED顯示程序
        MOV A,0H
        MOV A,TL1 ;TL1值送累加器A
        MOV B,#100 ;處理計數結果
        DIV AB
        MOV R0,B ;余數放77H單元
        MOV 77H,R0
        MOV 7AH,A ;商放7AH單元
        MOV A,0H
        MOV A,77H ;77H送累加器A
        MOV B,#10 ;處理計數結果
        DIV AB
        MOV R0,B ;余數放78H單元
        MOV 78H,R0
        MOV 79H,A ;商放79H單元
        (測量數據存儲程序略)
        DPLOP1: MOV A,78H ;取出時間的十位數送A
        MOVC A,@A+DPTR ;查表
        MOV P0,A ;送P0口
        CLR P2.3 ;開個位顯示
        ACALL D1MS ;延時0.1秒
        SETB P2.3 ;關個位顯示
        MOV A,79H ;取出時間的個位數送A
        MOVC A,@A+DPTR ;查表
        MOV P0,A ;送P0口
        CLR P2.2 ;開十位顯示
        ACALL D1MS ;延時0.1秒
        SETB P2.2 ;關十位顯示
        MOV A,7AH ;取出時間的百位數送A
        MOVC A,@A+DPTR ;查表
        MOV P0,A ;送P0口
        CLR P2.1 ;開百位顯示
        ACALL D1MS ;延時0.1秒
        SETB P2.1 ;關百位顯示
        D1MS:MOV R5,#60
        DJNZ R5,$
        LJMP DPLOP1
        RET
        ;段數碼管各劃的數字排列表
        NUMTAB:DB
        0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;
        顯示內容的對應代碼
        0 1 2 3 4 5 6 7 8 9;顯示內容

        測量范圍
        在上述程序下的最大為255Hz。適當調整程序后的最大測量頻率可為89S02主頻的1/12,但在保證測量精度的前提下最大測量頻率宜安排在主頻的1/100以下。

        誤差分析
        上述程序的最大測量頻率為255Hz,由于單片機在響應中斷的時候有2—6個機器周期,按最大誤差計算,6-2=4個機器周期,在1 s鐘中斷響應一共發生20次,最不利的累計誤差時間為4×20=80微秒,因此在此程序下的最大誤差為80/1000000=0.08/1000,這樣的精度完全能滿足現場檢測的需要。

        塵埃粒子計數器相關文章:塵埃粒子計數器原理
        施密特觸發器相關文章:施密特觸發器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 连平县| 革吉县| 孝感市| 怀集县| 南京市| 图木舒克市| 梅州市| 建平县| 武城县| 墨竹工卡县| 哈尔滨市| 蕉岭县| 忻城县| 西平县| 北碚区| 大新县| 荆门市| 高安市| 桦南县| 汽车| 张北县| 承德市| 定边县| 水富县| 平舆县| 新闻| 六枝特区| 大渡口区| 彰武县| 泽普县| 高密市| 高台县| 松江区| 普定县| 都安| 介休市| 安乡县| 宣汉县| 张家川| 井陉县| 新巴尔虎左旗|