余雪兵 楊志浩 常曉明
摘 要:在電子相關領域頻率是一個較為重要的測量參數,它可以反映出信號的一些特征,因此頻率的測量已成為電子領域較為主要的的測量之一。頻率計作為常用的測量儀器,廣泛應用在高校、軍事、科研機構等方面。近些年隨著電子信息領域的蓬勃發展,人們對頻率測量的精度要求越來越高,所以數字化的電子產品越來越受到大家的青睞。數字頻率計具有可操作性強、精度高、功能齊全等優點,因此在今后,數字頻率計必將是測量頻率的主流儀器。
關鍵詞:頻率計;單片機;計數器;定時器
1.引言
數字頻率計的使用十分廣泛,在許多電子設備中都需要測量頻率。盡管一些數字頻率計設計過程復雜,但是功能齊全操作簡單對使用者的要求很低。目前的數字頻率計正在向微型化和智能方向發展。本文基于以上考慮,利用AT89C51單片機的兩個定時計數器功能,來完成對采集到的信號進行頻率計數,計數的頻率結果通過液晶顯示屏LCD1602顯示出來。預期設計結果能夠對0-480KHZ的信號頻率進行準確計數,計數誤差不超過±10HZ。
2.系統方案設計
2.1三種方案比較
2.1.1 方案一
頻率計需要的定時1S的時間由多諧振蕩器產生,其中多諧振蕩器由NE555定時器和電位器組成,在進行分頻操作就可以得到1S的脈沖;整形放大電路通過邏輯門電路和二極管組成;閘門電路用一個邏輯門,只在定時脈沖高電平時通過;計數電路可以通過5個十進制的計數器組成,計數器再將脈沖個數通過LED數碼管顯示出來。
2.1.2方案二
固定閘門信號1s,由555定時器和電容電阻構成的多諧振蕩器產生脈寬1s的脈沖或晶振為32.768KHZ的晶振電路經CD4060的14級2分頻得到2HZ的方波,再經4分頻得到1s脈寬的脈沖。閘門信號和放大整形后的待測信號與非,多次十分頻后接74LS151,再送到計數端。用74LS90計最高位的QD腳的負跳變沿個數,用來控制74LS151的信號通路,鎖存和清零都由74LS123產生。
原理:每次計數都是以HZ為單位,超量程時,最高位由0到9,再9到置數為1,74LS90輸出控制74LS151選擇,將后面的脈沖10分頻,有就是將最低位乘上10。74LS90同時控制小數點和量程的轉換,當然小數點和量程指示顯示要加鎖存。計數器記錄1s內所有的脈沖個數,但只保留了最高的3位。欠量程時有就是100HZ以下時,將高位的0消隱。(此方法只是個人想法,具體地電路設計還未嘗試)。
2.1.3方案三
用4MHZ的晶振電路產生4MHZ的基準信號,經4分頻,經過多次分頻,分別得到1MHZ,100kHZ,10kHZ,1kHZ,100HZ,10HZ,1HZ,0.1HZ的頻率接74LS151八選一數據選擇器,再經D觸發器2分頻得到1us,10us,100us,1ms,10ms,100ms,1s,10s的閘門信號。用74LS123產生鎖存和清零信號。74LS192作為擴展電路控制74LS151和74LS138完成自動換擋功能,欠量程和超量程信號分別有中間位和最高位的進位產生。
2.2 方案選擇
方案一用的是555定時器,精度和穩度都不高。是4位數碼管顯示,可擴展電路過于簡單,而且網上多采用這種方案。方案二是固定閘門信號的脈寬,靈活性太差,每次計數顯示等待時間為2s。小數點顯示和量程指示都要加鎖存,過于繁瑣。方案三對基準信號分頻得到不同的閘門信號,靈活性高,計數和顯示的時間可變。擴展電路采用74LS192可加可減計數器,量程可擴展。 它們的計算頻率的原理一樣: 閘門信號待測信號計數單位時間內的脈沖個數。
通過比較三種方案,最終我們選擇顯示電路用:LCD1602液晶顯示電路;用51單片機T0計數、T1定時;波形整形電路較為簡單,就是通過一個NPN型三極管,利用三極管的開關特性來保護電路;電路還附帶一個由555構成的方波發生電路作為整個系統的內部信號,也可以通過選擇接入外部正弦波、三角波、鋸齒波等信號來測量頻率。以下所有電路及軟件都是按照此決定方案設計。
3.硬件簡介
3.1 單片機簡介
STC89C52單片機有40個引腳。包括時鐘信號引腳、控制信號引腳等。有4個8位并行I/O端口,1個全雙工異步串行端口,5個中斷源,2個優先級,2個16位定時/計數器。其中在STC89C52單片機中的中斷系統可以實現二級中斷服務。當同一優先級的中斷提出中斷請求時,則由單片機內部的查詢邏輯來確定響應 的次序。此外,有兩個可編程定時/計數器的STC89C52單片機:它們可以作為定時器,也可以作為計數器。
3.2 LCD液晶顯示屏
1602液晶顯示屏是一種專門顯示字符、數字、字母、漢字等的點陣型顯示模塊。它的工作電壓為5V,控制簡單、成本較低、適用于普通的數據顯示。但是同時也具有功耗高、不能顯示曲線、圖像等缺點。通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,LCD1602模塊使用HD44780控制器,可以通過編程實現字符信息的傳送和現實。HD44780控制器通過指令(IR)和數據注冊(DR),RAM(DDRAM),字符發生器(CGRAM)字符發生器存儲器(CGRAM),地址計數器,RAM(AC)的顯示數量進行注冊。IR的功能是注冊指令代碼,只能寫入不能讀取,DR的功能用于注冊數據。
STC89C52單片機的P0口的8位作為數據傳輸口,P1口的0、1、2位分別連接LCD1602的EN、R/W、RS功能端。其中R/W端是信號的讀寫端、EN是信號的使能端、RS是寄存器的選擇端。這個模塊設計的關鍵步驟是顯示模塊的初始化。首先對屏幕進行清除并將端口數據設置為8位,接下來顯示行號和列號,最后設定一個無方向增量,將字符發送到LCD的BUFF區。經過設計決定使用兩個字符數組,其中一個用于顯示具體字符,另外一個顯示電壓數值。要顯示的內容被發送到相應的數組,通過串口傳送給LCD1602完成顯示。
3.3 NE555電路
使用555定時器可以簡便的組成多種振蕩器和整形電路。這類電路在定時、控制、自動化方面有極為廣泛的應用。多諧振蕩器是555應用的電路之一,所謂多諧振蕩器是指電路沒有穩定狀態,只有兩個暫時的穩態,功能就是產生一定頻率和幅度的矩形信號,輸出狀態不斷在高低電平之間切換。
3.4 電源電路
本設計的電源是一款自己設計的數控直流穩壓電源。此電源電路由直流帶能源、顯示電路、單片機控制電路組成。具體是采用單片機作為控制器,通過改變輸入數字量來改變輸出電壓值,經過集成運算放大器輸出,間接的改變輸出電壓的大小。與常用的穩壓電源相比較,具有操作簡單,可調節電壓值、功能豐富、可顯示等優點。
4.軟件設計
4.1程序流程
4.2程序設計
程序設計內容 :首先需要定時/計數器的工作方式設置, 需要明確T0是工作在計數狀態下,對采集到的信號進行頻率計數,由基本原理可以知道對工作在計數狀態下的T0,最大計數值為FOSC=1/24,由于我們采用的晶振電路FOSC=12MHz,因此:T0的最大計數頻率為250KHz。頻率的概念是在一秒內脈沖的個數就是頻率值。所以T1工作在定時狀態下,每定時1秒中到,就停止T0的計數,而從T0的計數單元中讀取計數的數值,然后進行數據處理,就能夠得到頻率值。送到1602液晶屏顯示出來。
4.3 程序內容
程序設計應用C語言編寫,主要分為四個模塊。模塊一用于設置定時器工作方式,開中斷。模塊二是T0計數的子程序;模塊三是T1定時的子程序;模塊四是液晶屏讀寫程序。
5.測試結果
經過我們的測試可以得出結論:本頻率計在誤差允許的范圍內可以接受信號的峰峰值為1.2v以上,可測頻率范圍為1hz~480khz左右。可接受的信號類型為方波、正弦波、三角波等。相對來說頻率范圍還是太小,主要問題出在我們的信號處理模塊,后期我們會基礎提升這一塊。
參考文獻:
[1]孫安青編著.AT89S51單片機實驗及基礎教程. 桂林電子科技大學,2003年
[2]江曉安編著.數字電路. 西安電子科技大學出版社, 2002年
[3]楊振江編著.單片機原理與實踐指導.中國電力出版社,2008年