基于單片機的選頻表自動變步長的設(shè)計實現(xiàn)
在小規(guī)模話路、基群、超群載波通訊中廣泛使用電頻振蕩器和選頻表來測量載波通訊設(shè)備與線路的電平、增益、衰減、防衛(wèi)度等特性?,F(xiàn)在振蕩器和選頻表已經(jīng)基本上利用數(shù)字化器件產(chǎn)生頻率,得到高精度的正弦波信號,再對其進行必要的處理送給輸出或乘法器。但由于傳統(tǒng)的儀器采取的是模擬器件產(chǎn)生頻率,并采取轉(zhuǎn)動轉(zhuǎn)輪來改變頻率達到使用目的,為了滿足傳統(tǒng)用戶的使用習慣和要求,故必須在新的數(shù)字化設(shè)備上實現(xiàn)此功能?,F(xiàn)在有的數(shù)字化設(shè)備上已經(jīng)實現(xiàn)此功能,但轉(zhuǎn)輪必須配合步長鍵來使用,即用戶只能先設(shè)置合適的步長,然后轉(zhuǎn)動轉(zhuǎn)輪才能達到合適的變化量,在大頻率的調(diào)節(jié)當中用戶覺得很不方便, 我們在設(shè)計中實現(xiàn)了轉(zhuǎn)動轉(zhuǎn)輪時能夠根據(jù)轉(zhuǎn)輪的轉(zhuǎn)動速度自動調(diào)節(jié)步長功能:速度越快,頻率變化的步長越大;速度越慢,則頻率變化的步長越小。這樣在調(diào)節(jié)頻率時,須大范圍變化時可快速轉(zhuǎn)動轉(zhuǎn)輪,而細調(diào)時則慢慢的轉(zhuǎn)動轉(zhuǎn)輪,達到微調(diào)效果。在實際的使用中證明:此種調(diào)節(jié)方法比較符合操作人員的習慣,因此具有較好的使用價值。
本文引用地址:http://m.butianyuan.cn/article/172178.htm此方法采取發(fā)射接收對管加轉(zhuǎn)輪實現(xiàn)變步長,如圖1所示,電路的采樣部分由一個圓形的扇葉和兩組紅外發(fā)射接收對管組成(扇葉按圖2所示做成,空隙和葉片的寬度為1:1)。由于一組紅外發(fā)射接收對管檢測扇葉轉(zhuǎn)動時,只能檢測出輪輪是否在轉(zhuǎn)動,而無法判斷出它的轉(zhuǎn)向,所以必須采用兩組紅外發(fā)射接收對管。令兩組紅外發(fā)射接收對管分別為A和B(A和B兩點間的距離要保證小于葉片或空隙的寬度),當紅外發(fā)射接受對管工作時,若對管之間是空隙(無葉片),則接收管的輸出為”0”, 若對管之間是葉片,則接收管的輸出為“1”。
現(xiàn)在分析如何判斷出轉(zhuǎn)輪的轉(zhuǎn)向。如圖2 所示,在任意時刻,A和B的輸出只存在四種狀態(tài): 0 0 , 0 1 , 1 0 , 1 1。以A和B處于 1 1狀態(tài)為例,如果轉(zhuǎn)輪正轉(zhuǎn)時,即扇葉順時針轉(zhuǎn)動,A和B的下一個狀態(tài)必然為 1 0 ;如果轉(zhuǎn)輪倒轉(zhuǎn)時,扇葉逆時針轉(zhuǎn)動,A和B的下一個狀態(tài)必然為0 1 。由此我們可判斷出轉(zhuǎn)輪的轉(zhuǎn)向。在正常工作時,先檢測A和B的狀態(tài),并將該狀態(tài)保存下來,然后一直檢測A和B的狀態(tài),一旦狀態(tài)發(fā)生變化即轉(zhuǎn)輪開始轉(zhuǎn)動,讀出A和B的狀態(tài),按表中所示的變化規(guī)律,得出轉(zhuǎn)輪的轉(zhuǎn)向,從而進行相應(yīng)的處理,然后返回,刷新狀態(tài)保存,并繼續(xù)檢測,即在轉(zhuǎn)動過程中不斷檢測出A和B的狀態(tài),更新狀態(tài)保存,并根據(jù)下一個狀態(tài)不斷進行轉(zhuǎn)向判斷。由于通常單片機的指令執(zhí)行時間只有us數(shù)量級, 所以A和B的狀態(tài)一旦發(fā)生變化時,立刻就會被檢測出來,因此狀態(tài)變化情況都被包括在表1中,而不會出現(xiàn)從1 1變化到0 0之類情況。實踐當中,我們采用AMD公司的PIC16C74A單片機,使用4.000MHZ的晶振,指令的執(zhí)行時間為1us,檢測的狀態(tài)變化情況都如表 1所示,沒有出現(xiàn)異常現(xiàn)象。
狀態(tài)變化表
下面簡介如何自動判斷步長,這主要由單片機的軟件實現(xiàn):當A和B的狀態(tài)發(fā)生變化時,記錄下來從一狀態(tài)變化到另一狀態(tài)所需的時間,設(shè)定一定的時間門限值,狀態(tài)變化時間越短,轉(zhuǎn)輪轉(zhuǎn)動速度越快,步長越大;相反,狀態(tài)變化時間越長,轉(zhuǎn)輪轉(zhuǎn)動速度越慢,步長越小。根據(jù)狀態(tài)變化所需的時間,判斷出屬于哪一類步長,調(diào)用相應(yīng)處理即可達到自動變步長的效果。在具體的實現(xiàn)過程中,從開始讀A和B的狀態(tài)并保存狀態(tài)時開始啟動單片機的內(nèi)部計時器,一旦判斷出A和B的狀態(tài)發(fā)生變化時,關(guān)斷計數(shù)器,讀出計數(shù)器的值,算出所需的時間,然后由此時間判斷出在哪一個門限值之間,從而設(shè)置正確的步長,達到自動變步長的目的。為了使單片機盡可能地把時間花在檢測轉(zhuǎn)輪的變化上,所以在內(nèi)部計數(shù)器的設(shè)置上我們采取分頻數(shù)選大一點的措施,即執(zhí)行128條指令時內(nèi)部計數(shù)器中斷一次。圖3給出程序的框圖。
圖 3
在實際產(chǎn)品中,也有采用直流電機來實現(xiàn)變步長功能的方法。對于永磁式直流電機而言,當轉(zhuǎn)動電動機的轉(zhuǎn)子時,電動機的線圈中會流過一定的電流,表現(xiàn)在電動機的接線端口上就有一定的電壓,當電動機的轉(zhuǎn)子正轉(zhuǎn)時,電機輸出為正電壓;如果反轉(zhuǎn)時,輸出為負電壓,并且轉(zhuǎn)動轉(zhuǎn)子的速度越快,輸出電壓越高。利用永磁式直流電機的這一特點,將電機的輸出電壓經(jīng) A/D轉(zhuǎn)換后檢測出轉(zhuǎn)輪的轉(zhuǎn)向和轉(zhuǎn)速。以上介紹的采取發(fā)射接收對管實現(xiàn)自動變步長的方法相對于直流電機法具有不用模擬 /數(shù)字轉(zhuǎn)換器(ADC),結(jié)構(gòu)簡單,易于實現(xiàn),成本很低的優(yōu)點,當然在實際應(yīng)用中需考慮到操作時轉(zhuǎn)動轉(zhuǎn)輪的速度可能不太均勻,在軟件的實現(xiàn)上要加上一定的速度保持控制功能。這種基于單片機的自動變步長方法,在實際中已分別地運用于新型數(shù)字化的HX-D11型選頻電平表和HX-G11型電平振蕩器中,取得了令人滿意的效果。此方法,也可應(yīng)用于數(shù)字化掃頻儀等儀器中。
參考文獻
《PIC系列單片機原理和程序設(shè)計》竇振中京航空航天大學出版社
TLC548/549的使用指南 美國TI儀器公司
評論