基于單片機高性價比頻率計的設(shè)計與實現(xiàn)
關(guān)鍵詞:單片機 同步 頻率測量
1 系統(tǒng)測量原理
測量方法采用多周期同步測量法,保證了測量精度。
多周期同步測量原理與傳統(tǒng)的頻率和周期的測量原理不同,時鐘信號(f0)經(jīng)同步電路作用后與被測信號同步。主門 與主門 在時間T 內(nèi)被同時打開,于是計數(shù)器 和計數(shù)器 便分別對被測信號和時鐘信號的周期數(shù)進行累計。在T內(nèi),事件計數(shù)器的累加數(shù)為Na;時間計數(shù)器的累加數(shù)為Nb。再由單片機運算得出被測頻率為(Na/Nb)×f。由于D觸發(fā)器的同步作用,計數(shù)器 所記錄的Na值已不存正負1誤差的影響。但由于時鐘信號與閘門的開和關(guān)無確定的相位關(guān)系,計數(shù)器 所記錄的Nb值仍存在正負1誤差的影響,由于時鐘頻率很高,正負1誤差影響小,所以測量精度與被測信號頻率無關(guān),且在全頻段的測量精度是均衡的。
圖1 系統(tǒng)測量原理框圖
2 系統(tǒng)硬件設(shè)計
在頻率計設(shè)計中,硬件電路采用了8051單片機、雙四位二進制計數(shù)器74LS393、緩存器74LS244、8155帶RAM和定時器/計數(shù)器的可編程并行接口芯片、16K程序存儲器擴展芯片2716、十倍分頻器74s196、反向器74ls14、反向驅(qū)動器7406、7407等。所采用的芯片技術(shù)成熟,性能可靠,性價比較高。
系統(tǒng)硬件主要由四部分組成:通道部分、計數(shù)器部分、單片機控制和接口部分、顯示部分。
2.1通道部分
本頻率計的輸入通道由兩部分組成,第一部分就是常見的信號預(yù)處理電路,包括對被測信號的放大、整形、濾波等等。第一級由開關(guān)三極管構(gòu)成的零偏置放大器,三極管采用開關(guān)三極管以保證放大器具有良好的高頻響應(yīng)。第二級是由74LS14施密特觸發(fā)器構(gòu)成的電路。施密特觸發(fā)器一方面起到整形作用,用于把放大器生成的單相脈沖信號轉(zhuǎn)換成與TTl/CMOS兼容的方波信號。另一方面其滯后帶寬可以有效抑制信號中的干擾。第三級是由74ls196構(gòu)成的分頻器電路。本機設(shè)計測頻范圍20HZ~100MHZ,當被測頻率大于10 MHZ時,需經(jīng)分頻電路分頻后再送入計數(shù)器電路。第四級是由4N25構(gòu)成的光電隔離電路,用于把輸入的電信號轉(zhuǎn)化為光信號進行傳輸,從而把測量電路與外界干擾隔開,能有效地保證測量精度。
第二部分是同步門電路,它的作用是保證被測信號和頻率基準信號同時進入測量電路。其構(gòu)成主要包括由與門組成的主門I和主門II,以及由D觸發(fā)器構(gòu)成的同步門控制電路,主門I控制被測信號fx的通過,主門II控制時鐘信號f的通過。
2.2計數(shù)器部分
計數(shù)器包括時間計數(shù)器和事件計數(shù)器兩部分,它們是完全相同的計數(shù)電路。分別由前后兩級組成,前級電路由高速的TTL計數(shù)器74LS393構(gòu)成八位二進制計數(shù)器;后級由單片機內(nèi)的計數(shù)器構(gòu)成十六位二進制計數(shù)器。計數(shù)前,先由P1.3發(fā)計數(shù)器清零信號,計數(shù)后通過74LS244 緩沖器將測量結(jié)果讀入內(nèi)存。這樣設(shè)計既充分利用了硬件資源,又大大提高了測量頻率范圍。
圖2 計數(shù)器電路圖
2.3 單片機控制和接口部分
8051單片機的任務(wù)是進行整機測量過程的控制、故障的自動檢測以及測量結(jié)果的處理與顯示等。
P1口與P2 口被用于施加各種控制信號,其中:P1.0 作為預(yù)置閘門時間的控制線;P1.1作為同部門控制電路的復(fù)位信號線;P1.2用于查詢閘門時間的狀態(tài)線;P1.3作為計數(shù)器復(fù)位信號線。
單片機內(nèi)部有兩個16位二進制定時/計數(shù)器,用做兩個主計數(shù)器的一部分,并通過T0,T1分別與外部事件計數(shù)器和時間計數(shù)器的進位端相接。外部的時間計數(shù)器和事件計數(shù)器的測量結(jié)果分別通過擴展輸入口與P0口相連。
8155作為單片機的擴展I/O口,主要用來與顯示電路接口, 8155內(nèi)部的14 位計數(shù)器被用來作為本機的閘門時間計數(shù)器,定時器的輸入信號取自單片機ALE端;定時器的輸出與單片機的INT1相連,作為中斷信號。
2.4 顯示部分
采用8 位LED數(shù)碼管進行顯示。這是一個較為典型的采用8155并行口組成的顯示電路。八位LED顯示采用了動態(tài)顯示軟件譯碼工作方式。LED顯示器選用共陰極,段碼由8155PA口提供,位選碼8155PB口提供。其中7406反向驅(qū)動器做作為位選碼驅(qū)動器,這是因為8155PB口正邏輯輸出的位控與共陰極LED要求的低電平點亮正好相反,即當PB口位控線輸出高電平時,點亮一位LED。7407是同相驅(qū)動器,作段選碼驅(qū)動器。
3 系統(tǒng)軟件設(shè)計
軟件采用匯編語言編寫,應(yīng)用模塊化設(shè)計方法,主要包括中斷監(jiān)控服務(wù)程序,數(shù)值比較子程序,數(shù)據(jù)處理子程序,十進制轉(zhuǎn)換子程序,LED顯示子程序。主流程圖如下:
圖3 程序主流程圖
程序編寫較難的部分是數(shù)據(jù)處理部分,它涉及到多字節(jié)的乘除法。因為乘數(shù)和被乘數(shù)各為三字節(jié),因此需要進行九次乘法運算,得到九個部分積。我們知道MUL AB 指令,把累加器A和寄存器B中的兩個無符號8位數(shù)相乘,所得的16位乘積結(jié)果,低位字節(jié)放在A中,高位字節(jié)放在B中。假定部分積的高字節(jié)以“H ”為標志,部分積的低字節(jié)以“L”為標志,還要對相加產(chǎn)生的進位進行處理。
下圖為乘法的具體實現(xiàn)過程的示意圖:
圖4 乘法運算示意圖
乘法運算程序的關(guān)鍵段如下:
MOV A,R6
MOV B,R3
MUL AB ;得第一次部分積
MOV O8H,A ;得乘積的第六字節(jié)
MOV 09H,B ;R3R6H
MOV A,R6
MOV B,R2
MUL AB ;得第二次部分積
ADD A,O9H ;R3R6H+R2R6L
MOV 0BH,A
CLR A
ADDC A,B ;R2R6H+C
MOV OAH,A
MOV A,R6
MOV B,R1
MUL AB ;得第三次部分積
ADD A,0AH ;R2R6H+R1R6L
MOV OCH,A
CLR A
ADDC A,B ;R1R6H+C
4 結(jié)束語
該系統(tǒng)結(jié)構(gòu)簡單,與傳統(tǒng)的電路相比,該系統(tǒng)處理速度快、穩(wěn)定性高,采用多周期同步測量法實現(xiàn)全頻段的頻率精確測量,具有較高的性價比。
本文的創(chuàng)新觀點是計數(shù)器和定時器分別由前后兩級組成,前級電路由高速的TTL計數(shù)器74LS393構(gòu)成八位二進制計數(shù)器;后級由單片機內(nèi)的計數(shù)器構(gòu)成十六位二進制計數(shù)器,大大提高了頻率計的測量范圍。
參考文獻
[1]李光第,朱月秀等 . 單片機基礎(chǔ)[M] . 北京航空航天大學(xué)出版社,2004
[2]李朝青. 單片機原理及接口技術(shù)設(shè)計[M] . 北京航空航天大學(xué)出版社,2003
[3]趙茂泰. 智能儀器原理及應(yīng)用[M] . 電子工業(yè)出版社,2004
[4]赫建國,劉建新等 . 基于單片機的頻率計設(shè)計[J] 西安郵電學(xué)院學(xué)報,2003
[5]曹柏榮,林士瑋 . 基于單片機的康復(fù)儀研究[J] 微計算機信息, 2006,2-1:21-23。