蘇鵬飛,楊延寧,任新成,張 雄
(1.延安大學 網絡信息中心,陜西 延安 716000;2.延安大學 物理與電子信息學院, 陜西 延安 716000)
在電子測量領域,頻率是一個重要的參數,往往作為計算的基礎參量與參考數值,隨著計算機網絡和電子科學技術的不斷發(fā)展,頻率的測量要求越來越高[1]。常見的測頻方法中,以電子計數器測量頻率的方法最為常見,電子計數器測頻電路主要由時序邏輯電路和組合邏輯電路組成,成品頻率計體積大,測量速度較慢,測量結果誤差較大[2]。這種傳統(tǒng)的硬件電路測頻方法已不能滿足現代頻率測量的要求,需重新引入軟件設計,尋求一種更快速、準確的頻率測量方法。因此,本文采用STC89C52單片機設計了一種便攜式數字頻率計,它較好地克服了傳統(tǒng)頻率計存在的不足,提高了頻率測量精確度,該頻率計具有適用范圍廣,產品體積小巧,測量準確,便于攜帶等特點。
為減小量化誤差,一般采用測頻法測量高頻信號,采用測周法測量低頻信號[3]。對于頻率范圍在1 Hz~20 MHz的信號,采用測周法更為準確。設計要求具體如下:
(1)測量信號:方波,正弦波和三角波等周期信號;
(2)測量范圍:1 Hz~20 MHz;
(3)顯示范圍:8位數值。
電路由信號采集模塊、脈沖產生模塊、分頻模塊、單片機系統(tǒng)和輸出顯示模塊組成,經信號采集與放大后的被測信號,從施密特反相器74HC14輸入后觸發(fā)并反相,將放大的被測信號整形為平滑、沒有毛刺的信號,當頻率過大時再通過分頻電路進行分頻處理,后經單片機STC89C52脈沖計數,最后顯示在液晶顯示屏LCD1602上。系統(tǒng)原理框圖如圖1所示。
圖1 系統(tǒng)原理框圖
頻率計原理如圖2所示。被測信號從P1輸入,將微弱頻率信號通過電容耦合、三極管2SC3355放大電路放大到可檢測到的信號。經放大后的信號進入74HC14施密特觸發(fā)反相器,對不同的波形進行變換,變換成穩(wěn)定清晰、平滑的脈沖信號。若該信號頻率大于20 kHz,進入計數器74HC390進行100分頻。未經分頻的脈沖信號進入單片機的定時/計數器0,而100分頻后的脈沖信號進入單片機的定時/計數器1,經軟件算法量程自動切換處理,換算出真實數值,輸出待測信號頻率數值,最后通過LCD1602液晶顯示器顯示測量值,顯示的最高位為8位,頻率單位為Hz。實際上,被測信號在整形之前,信號頻率未知,有時無法采集到微弱信號,而單片機STC89C52對輸入電壓要求很嚴,達到一定范圍的電平值才能夠導通[4],因此,要確保合適的信號輸入,需調節(jié)放大器的增益,放大微弱信號,衰減強信號。由于單片機只能辨識采樣信號,也只能對脈沖波形進行計數,而實際的被測信號往往可能是三角波、正弦波等,為提高波形的平滑度、減小毛刺,需對這類信號整形處理,以減小測量誤差。可在放大電路后加上整形電路,利用施密特觸發(fā)器將邊緣平滑,將待測信號變換成相同頻率的脈沖波后計數。
圖2 頻率計原理圖
輸入正弦波時的一組測量結果見表1所列。測量結果與實際值接近,測量誤差很小,表明所設計的頻率計符合要求。
軟件系統(tǒng)設計部分通過模塊化實現,包括初始化模塊、頻率測量模塊、量程自動切換模塊以及顯示模塊等。軟件編程采用功能強大、兼容性強的C語言實現[5]。分頻器,寄存器,中斷控制,量程檔位,顯示器和計數/定時器等通過初始化模塊進行初始化。其中起到初始化作用的是初始化定時器0和計數器1,當脈沖信號分別經過初始化定時器0和初始化計數器1時,信號每下降一次就會觸發(fā)一次計數器1,執(zhí)行一次中斷處理,在中斷處理程序中就會相應的加1次,如果用下降沿次數Cnt來表示,即Cnt+1。與此同時,每50 ms觸發(fā)一次定時器0,對下降沿次數進行計數處理,如果數據大于20 kHz,即轉入量程自動切換模塊,自動切換量程后,算上100分頻后作為最后的數據,計算出信號頻率的實際值,輸入到顯示模塊,表示數值。主程序流程如圖3所示。
焊接是工藝設計中的重要環(huán)節(jié),應保證焊接工藝質量,優(yōu)化排版布局,減小焊接過程對元器件的損傷[6]。同時盡可能減少程序調試,達到理想的指標和要求。首先,焊接輸入波形的整形放大電路,通過示波器觀察輸入波形和輸出波形,若波形出現偏差,檢查各元器件引腳焊接是否存在“虛焊”現象,或者引腳連接是否正確,發(fā)現問題,及時調整,直至出現正確的波形;其次,焊接分頻電路和顯示電路接入函數信號發(fā)生器,調節(jié)頻率為1 Hz~20 MHz范圍內的方波、三角波、正弦波,觀察顯示是否正確,若不正確,重新調試;最后將兩部分電路連接起來再調試,多次復測,直至出現正確結果。在Proteus中繪制仿真圖,若輸出準確波形,則說明電路符合設計要求,再繪制電路原理圖,最后用Keil軟件進行軟件編程及調試,直至出現正確結果[7]。
圖3 主程序流程圖
表1 正弦波的測量值
本文基于STC89C52單片機設計的頻率計適用于多種場合,可準確測量常見波形的頻率值,具有高精確度,操作簡單,顯示速度快,自動測量等優(yōu)點。雖然可測量1 Hz~20 MHz之間的頻率,但仍存在一定的局限性,當測量頻率接近20 MHz時,誤差增大,還需改進。
[1]吳佳軍.簡易數字頻率計的設計分析[J].無線互聯科技,2017(15):69-70.
[2]李朝陽.數字頻率計的設計與實現[J].電子測試,2017(14):5-6.
[3]張國勤.基于單片機與FPGA的等精度頻率計設計[J].四川兵工學報,2015,36(12):85-88.
[4]宋璐,衛(wèi)亞博,馮艷平.基于單片機的數字頻率計的設計和仿真[J].電子設計工程,2017,25(1):140-142.
[5]張玉葉,郗艷華.一種100 MHz數字頻率計的設計與實現[J].陜西理工學院學報(自然科學版),2016,32(4):11-16.
[6]張楠楠,陳龍,郭恒哲,等.基于FPGA的多功能數字頻率計的設計與實現[J].電子世界,2016(12):50-51.
[7] 高香梅,劉春梅.基于Proteus和Keil的仿真技術在單片機教學中的應用[J].電子世界,2017(7):88-90.
[8]章津楠,張長勝,郭清成.一種簡單方法實現基于STC89C52RC單片機的頻率計[J].福建電腦,2009,25(1):160-161.