基于單片機簡易數字頻率計設計方案(一)
系統框圖如圖1所示,主要由AT89C52單片機、異或器件、LCD1602、電源等組成。
測量頻率的原理
定時/計數器工作在方式1,每產生一次定時器0中斷,計數65536個脈沖,此時的脈沖來自振蕩器的12分頻后的脈沖,其周期為1uS。根據產生外部中斷0時,定時器0中斷的次數u,以及此時定時/計數器0計數寄存器的數值X,即可求得待測方波的周期為:T=(65536*u+X)us,取其倒數即可求得待測方波的頻率,小數點后保留兩位,即可使得頻率精度為0.1HZ。
相位差的測量原理
將兩路同頻不同相的方波信號進過鑒相器(即異或)后得到的脈沖寬度t與方波信號的周期T的比值(占空比),即對應為兩信號的相位差,此時相位差
其中,脈沖寬度的測量方法與方波周期的測量方法相同。相位差測量的原理圖如下:
本設計中,P0端口(32~39腳)被定義為N1功能控制端口,分別與N1的相應功能管腳相連接。單片機正常工作時,都需要有一個時鐘電路和一個復位電路。本設計中選擇了內部時鐘方式和按鍵電平復位電路,來構成單片機的最小電路。如圖4所示。
圖4 ?單片機最小系統
頻率、相位表的總體電路圖如圖5所示:
圖5 ?頻率相位表的總體電路圖
基于單片機簡易數字頻率計設計方案(二)
本文利用前置分頻器SAB6456A和高速數字分頻器74HC390的分頻功能,結合新型的MSP430F449單片機,給出了一種新穎的、全自動的數顯測量射頻頻率的設計方案。
圖1 信號的前端處理及分頻電路
主要器件介紹
MSP430F449單片機
MSP430F449 采用16位RISC結構,具有豐富的片內外設和大容量的片內工作寄存器和存儲器,性能價格比很高。它的特點包括:
· 超低的功耗:能夠在1.8V~ 3.6V的電壓下工作;具有工作模式(AM)和5種低功耗模式(LPM)。在低功耗模式下,CPU可以被中斷喚醒,響應時間小于6ps。
· 較強的運算能力:16位的RISC結構,豐富的尋址方式;具有16個中斷源,可以任意嵌套;在8MHz時鐘驅動下指令周期可達125ns; 內部包含硬件乘法器和大量寄存器,以及多達64KB的Flash程序空間和2KB的RAM,為存儲數據和運算提供了保證。
· 豐富的片上外設:包括看門狗定時器,基本定時器,比較器,16位定時器(TA、TB),串口0、1,液晶顯示驅動器,6個8位的I/O端口,12位ADC (最高采樣率200kHz)等。豐富的片上外設可以很方便地構建一個較為完整的系統。另外,充分利用計數器的多路任意波形產生功能和中斷控制功能,保證了一些復雜的時序控制任務的完成。
·方便高效的開發環境:MSP430F449是Flash型器件,片內有調試接口和電可擦寫的Flash存儲器,可以先下載程序到Flash內,再在器件內通過軟件控制程序的運行,由JTAG接口讀取片內信息供設計師調試。這種方式不需要仿真器和編程器,調試十分方便。
前置分頻器SAB6456A
SAB6456A是專為UHF/VHF設計的前置分頻器。內部的MCpin為分頻控制端,可對頻率范圍為70MHz-1GHz的信號進行64/256分頻,當MC pin開路時為64分頻;當MC pin接地時為256分頻。有較高的靈敏度和較強的諧波抑制能力。
圖2 單片機外圍電路
工作原理
該設計主要分兩部分:分頻和計數。首先,輸入信號限幅后經SAB6456A分頻,256分頻后的信號再經兩片74HC390高速分頻器進行1000分頻,此時模擬信號變為低頻數字信號,頻率在10kHz以下;其次,分頻后的信號直接接入MSP430F449單片機,利用內部的16位定時器A來定時和計數。該定時器可分為幾個部分:計數器部分,捕獲/比較寄存器及輸出單元。其中,計數器有4種工作模式,3個捕獲/比較寄存器。利用計數器的連續計數模式和上升沿捕獲模式,在定時器中斷中計數N個脈沖信號時間,再除N得到頻率。
硬件設計
圖1為信號的前端處理及分頻設計。輸出后的信號再經兩片SN74HC390分頻,SN74HC390是高速分頻器件,最高分頻頻率為50MHz。每片 SN74HC390可實現100分頻,采用兩片串聯,可實現對信號的1000分頻,經分頻后的數字信號頻率較低,約4kHz以下,可由單片機直接計數。
圖2為單片機外圍電路,包括復位電路,電源電路和單片機工作必須的晶振。晶振有8MHz和32.768kHz兩種,8MHz 作為定時器A的計數器輸入時鐘源;32.768kHz 作為數碼管的顯示頻率。74LS373為D型鎖存器,5V單電源供電,因輸出電流足夠大,也可以直接驅動共陰極LG3631AH型數碼管。
軟件設計
將分頻的輸出端OUT接至單片機的頻率輸入端,程序開始先延時一段時間,待信號穩定。開捕獲中斷和定時器A,在定時器A 中斷中計數N個脈沖,測量結束后得到N個脈沖的時間,然后除N得到脈沖的頻率,乘以分頻系數得到實際頻率并顯示,經過短暫延時后重新測量,如此循環測量并顯示。
在測量頻率時,為保證精度要關掉LED顯示,所以,對于頻率較低的信號會發生LED閃爍的情況,解決辦法是測量較少個脈沖以減少平均測量時間或減少延時。
采用動態掃描顯示,動態掃描顯示的原理是:由P4向各個位輪流輸出掃描信號,使每一位瞬間只有一個數碼管被選通,然后由P3向該位輸入顯示的字型碼,驅動該位字形段顯示字形。這樣,在P3送出的碼段和P4送出的位段的配合下,使各個數碼管輪流顯示各自的字形,每位的顯示時間要超過1ms,這樣人眼就感覺不到閃爍了。
測量主程序如下:
void frequency_measure(void)
{float tmp,tmp1;
key_flag=0;//按鍵標志清0
P1OUT|=BIT0;
Delay(1000); file://延時一段時間等待信號穩定
while(1)
{ IE2&=~0X80; file://關BT,關LED
CCTL1|=CCIE;//開timer a
while (f_ok_flag==0);//等待測量結束
f_ok_flag=0;
if (aa1》aa2)
overflow=overflow-1;
tmp=aa2-aa1;
tmp1=40.0/(overflow*0.008191875+(tmp/8000000.0));
result=tmp1*0.256;
IE2|=0X80;//開BT,開LED
yanshi(2,2);//可以修改這里的參數,越大表示延時越長,太小的話LED就會變暗
CCTL1&=~CCIE;//關捕獲
TACTL&=~TAIE;//關timer a
return;
}
}
流程圖如圖3所示。
圖3 主程序流程
結語
本文給出的硬件和軟件均經過實踐檢驗,使用該測量儀器所測結果精度較高。該測量儀器價格較低,結構簡單,是一種經濟型的頻率測試儀。
基于單片機簡易數字頻率計設計方案(三)
本數字頻率計將采用定時、計數的方法測量頻率,采用一個1602A LCD顯示器動態顯示6位數。測量范圍從1Hz—10kHz的正弦波、方波、三角波,時基寬度為1us,10us,100us,1ms。用單片機實現自動測量功能。
基本設計原理是直接用十進制數字顯示被測信號頻率的一種測量裝置。它以測量周期的方法對正弦波、方波、三角波的頻率進行自動的測量。
頻率測量儀的設計思路與頻率的計算
頻率測量儀的設計思路主要是:對信號分頻,測量一個或幾個被測量信號周期中已知標準頻率信號的周期個數,進而測量出該信號頻率的大小,其原理如右圖1所示。
若被測量信號的周期為,分頻數m1,分頻后信號的周期為T,則:T=m1Tx 。由圖可知: T=NTo
(注:To為標準信號的周期,所以T為分頻后信號的周期,則可以算出被測量信號的頻率f。)
由于單片機系統的標準頻率比較穩定,而是系統標準信號頻率的誤差,通常情況下很小;而系統的量化誤差小于1,所以由式T=NTo可知,頻率測量的誤差主要取決于N值的大小,N值越大,誤差越小,測量的精度越高。
基本設計原理
基本設計原理是直接用十進制數字顯示被測信號頻率的一種測量裝置。它以測量周期的方法對正弦波、方波、三角波的頻率進行自動的測量。
所謂“頻率”,就是周期性信號在單位時間(1s)內變化的次數。若在一定時間間隔T內測得這個周期性信號的重復變化次數N,則其頻率可表示為f=N/T。其中脈沖形成電路的作用是將被測信號變成脈沖信號,其重復頻率等于被測頻率fx。時間基準信號發生器提供標準的時間脈沖信號,若其周期為1s,則門控電路的輸出信號持續時間亦準確地等于1s。閘門電路由標準秒信號進行控制,當秒信號來到時,閘門開通,被測脈沖信號通過閘門送到計數譯碼顯示電路。秒信號結束時閘門關閉,計數器停止計數。由于計數器計得的脈沖數N是在1秒時間內的累計數,所以被測頻率fx=NHz。
數字頻率計(低頻)的硬件結構設計
系統硬件的構成
本頻率計的數據采集系統主要元器件是單片機AT89C51,由它完成對待測信號頻率的計數和結果顯示等功能,外部還要有分頻器、顯示器等器件。可分為以下幾個模塊:放大整形模塊、秒脈沖產生模塊、換檔模擬轉換模塊、單片機系統、LCD顯示模塊。各模塊關系圖如圖2所示:
系統工作原理圖
該系統工作的總原理圖如圖3所示:
圖3 數字頻率計系統工作原理圖
信號調理及放大整形模塊
放大整形系統包括衰減器、跟隨器、放大器、施密特觸發器。它將正弦輸入信號Vx整形成同頻率方波Vo,幅值過大的被測信號經過分壓器分壓送入后級放大器,以避免波形失真。由運算放大器構成的射級跟隨器起阻抗變換作用,使輸入阻抗提高。同相輸入的運算放大器的放大倍數為(R1+R2)/R1,改變R1的大小可以改變放大倍數。系統的整形電路由施密特觸發器組成,整形后的方波送到閘門以便計數。
由于輸入的信號幅度是不確定、可能很大也有可能很小,這樣對于輸入信號的測量就不方便了,過大可能會把器件燒毀,過小可能器件檢測不到,所以在設計中采用了這個信號調理電路對輸入的波形進行阻抗變換、放大限幅和整形,信號調理部分電路具體實現電路原理圖和參數如下圖4所示:
時基信號的產生原理:
本電路采用32768HZ晶體震蕩器,利用CD4060芯片經過14級分頻得到2HZ的信號(32768/214),在經過CD4013雙D觸發器經過二分頻得到0.5HZ的方波,即輸出秒脈沖信號使單片機進行計數。
圖七 秒脈沖產生電路原理圖
評論