低頻相位測量儀軟件設(shè)計_第1頁
低頻相位測量儀軟件設(shè)計_第2頁
低頻相位測量儀軟件設(shè)計_第3頁
低頻相位測量儀軟件設(shè)計_第4頁
低頻相位測量儀軟件設(shè)計_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1 緒論近年來,隨著科學技術(shù)的迅速發(fā)展,很多測量儀逐漸向“智能儀器”和“自動測試系統(tǒng)”發(fā)展這使得儀器的功能豐富而使用簡單。低頻數(shù)字式相位測試儀在工業(yè)領(lǐng)域中是經(jīng)常用到的通用測量工具。相位檢測技術(shù)的應用已深入到如多領(lǐng)域,廣泛應用于國防、科研、學校和廠礦,傳統(tǒng)的模擬指針式儀表顯然不能夠滿足所需的精度要求,隨著電子技術(shù)以及微機技術(shù)的發(fā)展,數(shù)字式儀表因其高精度的測量分辨率以及高度的智能化、直觀化的特點得到越來越廣泛的應用。同時,在電力系統(tǒng)中電網(wǎng)并網(wǎng)合閘時,要求兩電網(wǎng)的電信號相同,這就要求精度的測量兩工頻信號之間的相位差。還有測量兩列同頻信號的相位差在研究網(wǎng)絡(luò)、系統(tǒng)的頻率特性中具有重要的意義。同時,微電子

2、技術(shù)的迅猛發(fā)展,給國民經(jīng)濟、生產(chǎn)活動和社會活動帶來極大的變革。特別是集成電路和微電子技術(shù)的飛躍發(fā)展,更為設(shè)計、安裝體積小、性能優(yōu)越、功能全的裝置創(chuàng)造了良好的條件??梢哉f,電子技術(shù)的應用水平是現(xiàn)代化進程的一個重要標志。微電子技術(shù)、計算機技術(shù)、通信技術(shù)、單片機原理技術(shù)等先進技術(shù)與具體應用對象相結(jié)合而設(shè)計的產(chǎn)品更是受世人青睞。本次設(shè)計即是利用單片機實現(xiàn)對低頻相位差的測量,使得儀表更加數(shù)字化、智能化,功能比起采用電子或數(shù)字電路更加強大。在科學研究、實驗或生產(chǎn)實踐中,常常需要對低頻移相網(wǎng)絡(luò)的信號進行相位測量,但某些測量方法僅僅局限于測某一頻率信號的相位,不能滿足一定范圍內(nèi)任意頻率信號的相位測量,總之低頻

3、相位測量儀的現(xiàn)代科學技術(shù)中的應用越來越多,比如在電力系統(tǒng)中常常需要對兩個同頻率信號(如工頻電壓和工頻電流)之間的相位關(guān)系進行準確的測量?!跋辔粫r間”法和“功率比例法”是兩種比較傳統(tǒng)的相位差測量方法,在現(xiàn)代技術(shù)領(lǐng)域中還對基于離散付里葉變換的相位測量原理進行了研究,并有了一定的成效,研究表明基于離散付里葉變換原理的相位測量方法具有測量精度高 抗干擾能力強 電路設(shè)計簡單等特點??傊辔粶y量技術(shù)在我們生活中起到了不可忽視的。本低額教字式相位測量儀由AT89C51芯片和集成電路構(gòu)成。由于AT89C51芯片的集成度高,智能程度高,功能強大,使得它實現(xiàn)起來比較簡單,而且,具有體積小,性價比高、性能穩(wěn)定的特點

4、。2 設(shè)計方案論證從功能角度來看, 看相位測量儀要完成信號頻率和相位差的測量. 相位測量儀有兩路輸入信號, 也是被測信號, 它們是兩個同頻率的正弦信號,頻率范圍為20HZ20KHZ(正好是音頻范圍),幅度為U PP =15V(可以擴展到0.35V), 但兩者幅度不一定相等?,F(xiàn)在來講解一下相位、相位差的概念。在“電路原理”課程中已經(jīng)介紹過這些概念,不妨令正弦信號為A (t )=Am sin(t+0 ,式中A m 稱為幅值(最大值),且A A m 2 ,A 稱為有效值;(t )=t+0稱為相位,0稱為初相位,稱為角頻率。A m 、0稱為正弦量的三要素。只有兩個同頻率的(正弦)信號才有相位差的概念。

5、不妨令兩個同頻率的正弦信號為A 1(t )=A1m sin(t+01 ,A2(t )=A2m sin(t+02 ,則相位差=(t+01- (t+02= 01-02,由此可看出,相位差在數(shù)值上等于初相位之差,是一個角度。不妨令=T,其中T 是相位差對應的時間差,且令T 為信號周期,則有比例關(guān)系T :360=T:可以推導得到=(T /T)×360,此式說明,相位差與T一一對應,可以通過測量時間差T 及信號周期T ,計算而得到相位差,這就是相位差的基本測量原理。由相位差的基本測量原理可知,相位差的測量本質(zhì)上是時間差T 及信號周期T 的測量,也就是時間的測量,而時間的測量不可避免地要用到電子

6、計數(shù)器。時間的測量有多種方法,而設(shè)計題目關(guān)于相位測量儀的技術(shù)指標要求會影響到我們對方案的選擇,由一般常識可知,單片機應用系統(tǒng)一般能較好地實現(xiàn)各種不同的測量及控制功能,因此,選擇使用單片機實現(xiàn)系統(tǒng)功能,完成系統(tǒng)指標。2.1 原理框圖以單片機為核心的相位測量儀原理框圖如圖2-1所示。兩路待測信號經(jīng)整形后變成了矩形波I 、V ,且可以認為I 和V 是同頻率、不同相伴的矩形波。 圖2-1 以單片機為核心的相位測量儀原理框圖2.2 頻率的測量單片機對信號頻率的測量可以采用直接測頻率的方法和測周期的方法。一般是信號頻率較高時,采用直接測頻率的方法,而信號頻率較低時,采用測周期的方法。(1)用直接測頻率的方

7、法獲得信號頻率。讓定時器/計數(shù)器T1對外部事件計數(shù),而讓定時器/計數(shù)器T0定時1s, 只有在這1s 內(nèi)T1啟動對外部事件(即信號I )計數(shù),則T1的計數(shù)值就是待測信號的頻率。(2)用測周期方法獲得信號頻率。由圖2-2可知,對I 進行2分頻后的信號波形中,高電平寬度正好對應I 的周期,將此高電平信號作為單片機內(nèi)部定時器的硬件啟動/停止信號,便可測得周期T ,再由公式f=1/T,計算得到頻率。 2.3 相位差的測量鑒相器就是異或門,在鑒相器的輸出波形IV 中,正脈沖寬度就是要測量的I和V 相位差所對應的時間差T ,如圖2-3所示。在測量相位差時還應考慮超前、滯后兩種情況(如圖2-3中所示為I 超前

8、V )。把I V 波形中的正脈沖作為門控信號,控制閘門的啟閉,即控制單片機內(nèi)部定時器/計數(shù)器的啟動/停止,從而達到測量時間差T 的目的,再根據(jù)公式=T,計算得到圖2-2 用測周期的方法獲得信號頻率相位差T 。另外,由圖2-3可知,I V 信號是I 信號的二倍頻(I 與V 同頻),由此可見,對于同頻不同相的兩個信號,經(jīng)過異或門后可得到二倍頻的信號。因此從這個意義上講,異或門可實現(xiàn)信號的二倍頻。 2.4 單片機測量時間差、周期的方法下面詳細談?wù)剢纹瑱C測量時間差、周期的方法。2.4.1 工作原理51系列單片機的芯片內(nèi)部集成了兩個16bit 的硬件定時器/計數(shù)器,它們是T0、T1。單片機芯片內(nèi)部的硬件

9、定時器/計數(shù)器有三個特點:定時器/計數(shù)器可以與CPU 并行工作;定時器/計數(shù)器可以采用中斷方式與系統(tǒng)協(xié)調(diào)工作;定時器/計數(shù)器可以由軟件或硬件控制啟動和停止。單片機的定時器/計數(shù)器受TMOD 及TCON 的控制,如圖2-4所示。 圖2-4 TMOD 和TCON若GATE=0,則由TR i 控制定時器/計數(shù)器的啟動和停止,為純軟件控制方式。 若GATE=1,TR i =1,則由INT i 引腳的外部信號控制定時器/計數(shù)器的啟動和停止,是純硬件控制方式。若GATE=1,則由TR i 和INT i 引腳的外部信號混合控制定時器/計數(shù)器的啟動和停止,軟、硬件結(jié)合控制方式。定時器/計數(shù)器工作在定時工作方式

10、時,其計數(shù)器對內(nèi)部機器周期進行加1計數(shù),TCON而定時器/計數(shù)器的工作啟動、停止采用外部硬件控制。2.4.2 具體實現(xiàn)方法電路圖如圖2-5所示,該電路由單片機、整形電路、門電路等組成。由定時器/計數(shù)器T0、T1分別測量周期、時間差。 圖2-5 單片機測量時間差、周期的電路圖時序圖如圖2-6所示。需要說明的是,由軟件創(chuàng)建一標志位2FH.1,當輸入引腳P3.6=0時,CPU 置位標志位2FH.1,而當P3.6=1時,CPU 在讀取時間差數(shù)據(jù)后清零標志位2FH.1。 圖2-6 時序圖3 系統(tǒng)硬件設(shè)計本設(shè)計將硬件系統(tǒng)分為數(shù)據(jù)采樣處理及單片機最小系統(tǒng)兩個部分,這就充分發(fā)揮了單片機控制運算能力強的特點。數(shù)

11、據(jù)采集由鑒相器完成,可以準確地采集到兩個同頻正弦的相位差所對應的時間差以及信號的周期,從而提高系統(tǒng)的可靠性。由于單片機具有較強的運算、控制能力,因此,使用單片機最小系統(tǒng)完成讀取鑒相器得到的數(shù)據(jù),并根據(jù)所讀取的數(shù)據(jù)計算待測信號的頻率及兩路同頻信號之間的相位差。同時通過功能鍵切換,由顯示模塊可以顯示待測信號的頻率和相位差。3.1 輸入電路設(shè)計輸入電路起到波形變換及整形的功能,由于被測信號是周期相同、幅度和相位不同的兩路正弦信號,為了準確地測量出兩路正弦信號的相位差及其頻率,需要對輸入波形進行整形,使輸入信號變成矩形信號,并送給鑒相器進行處理。我們設(shè)計了這兩種整形輸入電路方案。第一種方案是使用單門限

12、電壓比較器來完成,當輸入信號電壓每通過一次零時限電壓比較器的輸出就要翻轉(zhuǎn)一次,即比較器的輸出端將產(chǎn)生一次電壓跳變,它的正、負向幅度均受到供電電源的限制,因此,輸出電壓小型是具有正負極性的方波,這樣就完成了電壓波形的整形工作。但是通常情況下,輸入信號往往會含有干擾,這對單門限電壓比較器尤為不利,由于有干擾信號,導致單門限電壓比較器在輸入信號過零點時會產(chǎn)生多次觸發(fā)翻轉(zhuǎn)的現(xiàn)象,這樣就會導致采集數(shù)據(jù)(計數(shù))不準確,從而使單片機無法計算出正確的被測信號的頻率和相位差數(shù)值。這種方案電路圖如圖3-1。 圖3-1 采用單門限電壓比較器的整形電路另外,在相位差測量過程中,不允許兩路被測輸入信號在整形輸入電路中發(fā)

13、生相對相移,或者應該使得兩路被測信號在整形輸入電路中引起的附加相移是相同的,因此,我們對A 、B 兩路信號采用了相同的整形電路。為了避免出現(xiàn)被測輸入信號在過零點時多次觸發(fā)翻轉(zhuǎn)的現(xiàn)象,我們設(shè)計了第二種整形電路,即使用施密特觸發(fā)器組成的整形電路。由于施密特觸發(fā)器在單門限電壓比較器的基礎(chǔ)上引入了正反饋網(wǎng)絡(luò),因為正反饋的作用,它的門限電壓跟著輸出電壓U 0的變化而改變,從而使施密特觸發(fā)器有兩個門限電壓, 所以可以提高輸入電路的抗干擾能力。第二種整形電路電路如圖3-2所示,電路中我們使用兩個施密特觸發(fā)器觸發(fā)器對兩路被測輸入信號進行整形。在圖3-2中,比較器LM339連接成施密特觸發(fā)器的形式。為了保證輸入

14、電路對相位差測量不帶來誤差,必須保證兩個施密特觸發(fā)器的兩個門限電平對應相等,這可以通過調(diào)節(jié)電位器R 8來實現(xiàn)。輸入信號再通過各種門電路以便單片機完成相位差及周期的測量。 圖3-2 由Schmitt 觸發(fā)器構(gòu)成的輸入電路3.2 單片機電路的設(shè)計這部分電路由單片機、晶振電路、復位按鍵電路等組成。在設(shè)計中我們充分利用單片機具有的較強的運算能力和控制能力這一特點,對獲取的輸入信號的周期、相位差16bit 二進制數(shù)據(jù)進行處理及相關(guān)運算。P 1口的P 1.7、P 1.6接入兩個輕觸按鍵,結(jié)合軟件編程實現(xiàn)頻率與相位差的顯示切換功能。另外,在設(shè)計中使用了單片機串口UART ,將待顯示信息送給顯示模塊顯示。設(shè)計

15、中的單片機是AT89C51,它是美國ATMEL 公司生產(chǎn)的8位單片機,它的主要特性有:與MCS-51兼容;內(nèi)部集成有4KB 可編程Flash 存儲器;128×8位內(nèi)部RAM ,有1000次寫/擦循環(huán);數(shù)據(jù)可保留10年;024MHz全靜態(tài)工作方式;三級程序存儲器鎖定;32根可編程I/O線;兩個16位定時器/計數(shù)器;5個中斷源;可編程串行通道;低功耗的閑置和掉電模式;片內(nèi)含振蕩器和時鐘電路。因此,它完全可以滿足本系統(tǒng)設(shè)計的需要。單片機電路如圖3-3所示,為了提高單片機的I/O口帶負載能力,電路中采用了3個上接排電阻。 P1.6 圖3-3 AT89C51電路圖3.2.1 時鐘電路計算機工作

16、時,是在統(tǒng)一的時鐘脈沖控制下一拍一拍的進行的,這個脈沖是由單片機控制器中的時序電路發(fā)出的。單片機的時序就是CPU 在執(zhí)行指令時所需控制信號的時間順序。為了保證各部件間的同步工作,單片機內(nèi)部電路就在惟一的時鐘信號控制下嚴格的按時序進行工作。要給單片機提供時序要有相關(guān)的硬件電路,即振蕩器和時鐘電路,因此選擇了內(nèi)部時鐘方式。利用芯片內(nèi)部的振蕩器,然后在引腳X1和X2兩端跨接晶體或陶瓷諧振器,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時鐘電路如圖3-4所示,單片機是一種時序電路,必須提供脈沖信號才能正常工作,在單片機內(nèi)部已集成了振蕩器,使用晶體振蕩器,接18、19腳。外接晶振時,C2和C3值通

17、常選擇為30PF 左右。C2,C3對頻率有微調(diào)作用。晶體的頻率范圍可在1.212MHZ 之間選擇。在實際連接中,為了減少寄生電容,更好地保證振蕩器穩(wěn)定可靠地工作,振蕩器和電容應盡可能安裝得與單片機芯片靠近。 圖3-4 AT89C51晶振電路分析可知, 只要計數(shù)脈沖的間隔相等,則計數(shù)值就代表了時間的流逝。由此,單片機中的定時器和計數(shù)器是一個東西,只不過計數(shù)器是記錄的外界發(fā)生的事情,而定時器則是由單片機提供一個非常穩(wěn)定的計數(shù)源。那么提供給定時器的計數(shù)源就是由單片機的晶振經(jīng)過12分頻后獲得的一個脈沖源,計數(shù)脈沖的間隔與晶振有關(guān),12M 的晶振,計數(shù)脈沖的間隔是1微秒。3.2.2復位電路由圖3-5可以

18、看出,是按鍵電平復位電路,相當于按復位鍵后復位端通過電阻與Vcc 電源接通。復位是單片機的初始化操作,單片機在啟動運行時,都需要先復位,其作用是使CPU 和系統(tǒng)中其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。晶振工作時,RST 引腳持續(xù)2個機器周期高電平將使單片機復位,當振蕩器復位器件時,要保持RST 腳兩個機器周期的高電平時間??撮T狗計時完成后,RST 腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH 上的DISRTO 位可以使此功能無效。DISRTO 默認狀態(tài)下,復位高電平有效。因而,復位是一個很重要的操作方式,但單片機本身是不能自動進行復位的,必須配合相應的外部電路

19、來實現(xiàn)。這種復位電路的工作原理是:通電時,電容兩端相當于是短路,于是RST 引腳上為高電平,然后電源通過電阻對電容充電,RST 端電壓慢慢下降,降到一定程序,即為低電平,單片機開始正常工作。 圖3-5 復位電路3.3 顯示模塊的設(shè)計系統(tǒng)硬件電路中采用LED 數(shù)碼管靜態(tài)顯示的方式。顯示電路由6個共陰極7段LED 數(shù)碼管和6片串入/并出的移位寄存器74LS164芯片組成。這種顯示方式不僅可以得到較為簡單的硬件電路,而且可以得到穩(wěn)定的數(shù)據(jù)輸出顯示,不僅占用單片機端口少,而且可以充分利用單片機芯片內(nèi)部的串行口資源,容易掌握其編程規(guī)律,簡化軟件編程。試驗證明,這種顯示模塊具有較高的可靠性。設(shè)計出的顯示模

20、塊電路圖如圖3-4所示。多位LED 顯示時,常將所有位的段選線并聯(lián)在一起,由一個8位I/O口控制,而共陰極點或共陽極點分別由另一個8位I/O口控制;也可采用并行擴展口構(gòu)成顯示電路,通常,需要擴展器件管腳的較多,價格較高。本文將介紹一種利用單片機的一個并行I/O口實現(xiàn)多個LED 顯示的簡單方法。其中,74LS164是8位并行輸出門控串行輸入移位寄存器,LED 采用共陰極數(shù)碼管。顯示時,其顯示數(shù)據(jù)以串行方式從89C51的RXD 口輸出送往移位寄存器74LS164的A 、B 端,然后將變成的并行數(shù)據(jù)從輸出端Q0Q7輸出,以控制開關(guān)管WT1WT8的集電極,然后再將輸出的LED 段選碼同時送往數(shù)碼管LE

21、D1LED6。LED1LED2LED5LED6 圖3-4 顯示模塊電路圖3.4 相位測量儀整體電路綜合上面的設(shè)計過程,相位測量儀整體電路圖如附錄所示。4 系統(tǒng)軟件設(shè)計程序是為計算某一算式或完成某一工作的若干指令的有序集合。計算機的全部工作概括起來,就是執(zhí)行這一指令序列的過程。為計算機準備這一指令序列的過程稱為程序設(shè)計??捎糜诔绦蛟O(shè)計的語言可分為三種:機器語言、匯編語言和高級語言。在計算機中,所有的數(shù)符和指令都是用二進制代碼來表示的。這種二進制代碼表示的指令系統(tǒng)稱為機器語言。計算機可以識別機器語言并加以執(zhí)行。但對于使用者來說,不易看懂,不便記憶,容易出錯。為了克服這些缺點,匯編語言出現(xiàn)了。程序設(shè)

22、計自動化的第一階段就是用英文字符來代替機器語言,這些英文字符被稱為助記符。用助記符表示指令系統(tǒng)的語言稱為匯編語言,用匯編語言編寫的程序稱為匯編語言程序。但是,計算機不能直接識別在匯編語言中出現(xiàn)的字母、數(shù)字和符號,需要將其轉(zhuǎn)換成用二進制代碼表示的機器語言程序,計算機才能夠識別和執(zhí)行。匯編語言醒目、易懂、不易出錯,即使出錯,也容易被發(fā)現(xiàn)修改,執(zhí)行速率高,本次設(shè)計就是采用匯編語言程序編寫的代碼。系統(tǒng)連續(xù)3次測量時間差和周期,每一次測量時間差和周期占用兩個待測信號周期T 的時間。單片機在處理數(shù)據(jù)(數(shù)字濾波、計算、送數(shù)據(jù)顯示、鍵盤處理)期間,使用軟件停止定時器工作。顯示部分采用UART 方式0串行送數(shù)據(jù)

23、給74SL164,由74LS164驅(qū)動LED 數(shù)碼管顯示,這樣可以減輕CPU 的負擔(相對于動態(tài)掃描而言)。鍵盤處理實際上就是通過按鍵S 1切換顯示不同的內(nèi)容,即顯示頻率和相位差。系統(tǒng)主程序是一個順序執(zhí)行的循環(huán)程序,框圖如圖4-1所示。子程序SUB1完成的功能是3次測量時間差、周期并保存到內(nèi)存。了程序SUB1的流程圖如圖4-2所示。因這第一次測量時間差、周期的起始時刻表一定的隨機性(這是由于軟件啟動定時器/計數(shù)器T 0、T 1第一次分別測得的周期、時間差是不準確的,故舍棄)。MCU 完成的任務(wù)有三個方面, 歸納為以下三點:(1)從鑒相器獲取數(shù)據(jù)。單片機從鑒相器獲取兩種數(shù)據(jù),一是待測信號的周期T

24、 (單位是1s),為16bit 無符號二進制數(shù),二是待測信號的相位差對應的時間差T (單位也是1s),也為16bit 無符號二進制數(shù)。(2)對獲取的數(shù)據(jù)進行處理:從前面分析可知頻率f=1/T,=(T /T)×360,但89C51獲得的周期數(shù)據(jù)單位是1s,而要測得的頻率是在1s 內(nèi)測得的頻率值,所以可求得f=1/T/10-6,即可得到f=1000000/T。1)按照公式f=1000000/T計算頻率,單位是Hz ,這是一個多字節(jié)除法運算問題。 2)按照公式=T/T×360計算相位差,單位是1,這是一個多字節(jié)乘法、除法運算問題。(3)將計算得到的頻率值及相位差值送LED 數(shù)碼管

25、顯示。在系統(tǒng)硬件設(shè)計時,顯示模塊中有6個LED 數(shù)碼管,實際需要的LED 數(shù)碼管個數(shù)確定方法如下:題目要求相位差顯示為0o 359o ,分辨率為1o ,則數(shù)碼管選3個。 頻率顯示20Hz20kHz,20Hz20000Hz,則要5個數(shù)碼管。綜合考慮和兩點,并考慮在顯示頻率、相位差時分別給出一個標志符號于最右邊的數(shù)碼管上,分別顯示“o ”和“H”,則選定6個LED 數(shù)碼管作為系統(tǒng)的顯示器。這樣,顯示緩沖區(qū)(連續(xù)區(qū)域)為12Bytes (12個內(nèi)存單元)。硬件電路中不需要的LED 數(shù)碼管通過軟件讓其消隱而不顯示。6位LED 數(shù)碼管的工作情況為:根據(jù)顯示選擇設(shè)置(頻率/相位差),CPU 從顯示緩沖區(qū)取

26、數(shù)據(jù),通過UART 方式0串行輸出數(shù)據(jù),由74LS164接收數(shù)據(jù)并驅(qū)動6位LED 數(shù)碼管顯示。在軟件編程時應解決無效數(shù)字“0”的消隱問題。不需要CPU 對LED 顯示內(nèi)容定時刷新(與LED 動態(tài)掃描顯示不同)。4.1 程序流程圖通過分析單片機應完成的任務(wù)可知,這些任務(wù)可以按順序執(zhí)行(沒有對時序要求很嚴格的任務(wù))。所以,整個單片機源程序由主程序及若干子程序組成,而主程序是一個循環(huán)執(zhí)行的順序程序。主程序流程圖如圖4-1所示,主程序主要完成待測信號的頻率、相位差的測量,并由鍵盤作為功能鍵切換,由顯示模塊LED 顯示出結(jié)果。具體思路:首先初始化程序,包括定義各內(nèi)存空間,各標志位,初始化堆棧、寄存器等;

27、由于程序要用到T/C,所以應首先使TR0和TR1置位,即由INT0和INT1引腳的外部信號控制T/C的啟動和停止;為使測量的頻率、相位差準確,程序設(shè)計采用調(diào)用三次測量時間差、周期的子程序SUB1,并將測量到的時間差、周期保存到內(nèi)存中;采了3個值后,使TR0和TR1復位,計平均數(shù),再計算頻率、相位差,即可得到較準確的相位差值;最后鍵盤作為功能鍵切換,由LED 顯示出待測信號的頻率和相位差。測量時間差、周期子程序的程序流程圖如圖4-2所示,計算頻率子程序流程圖如圖4-3所示,鍵盤子程序流程圖如圖4-4所示,計算相位差子程序流程圖如圖4-5所示,顯示子程序流程圖如圖4-6所示。顯示子程序主要完成將待

28、測信號的頻率、相位差值在LED 上顯示出來。具體思路:初始化程序時設(shè)頻率顯示緩沖區(qū)首地址為70H ,相位差顯示緩沖區(qū)首地址為78H ,進入顯示子程序DISPLAY 后,先查詢控制顯示頻率或相位差的標志位2FH.0,若2FH.0=0,則轉(zhuǎn)去執(zhí)行顯示相位差;若2FH.0=1,則轉(zhuǎn)去執(zhí)行顯示頻率,不管顯示頻率還是相位差,都應先將顯示緩沖區(qū)首地址賦給R0保存;接下來消隱去掉無效數(shù)字0;在LED 上顯示結(jié)果,需查表求段碼(一般用MOVC A ,A+DPTR的指令),并經(jīng)UART 方式來發(fā)送段碼,直至顯示數(shù)碼送完,這樣,即可完成頻率和相位差的顯示。 圖4-1 主程序流程圖 圖4-2 測量時間差、周期子程序

29、流程圖 圖4-4 鍵盤子程序流程圖圖4-3 計算頻率子程序流程圖 圖4-5 計算相位差子程序流程圖 圖 4-6 顯示子程序流程圖4.2 單片機源程序用匯編語言編寫的單片機源程序如下::*; 符號定義DATA1 EQU 40H ;16bit 周期T 的數(shù)據(jù)存放內(nèi)存單元DATAH EQU 41HDATA2L EQU 43H ; 16bit相位差對應的時間差的數(shù)據(jù)存放內(nèi)存單元 DATA2H EQU 44H;-; 除法占用單元及乘法占用單元AD0 EQU 30H ; 存放被除數(shù)(或被乘數(shù))的字節(jié)數(shù)單元 AD1 EQU 31H ; 存放除數(shù)(或乘數(shù))的字節(jié)數(shù)的單元ADA EQU 4FH ; 存放被除數(shù)(

30、或被乘數(shù))的末地址,即最低位低字節(jié)單元地址ADB EQU 5FH ; 存放除數(shù)(或乘數(shù))的末地址,即最低位低字節(jié)單元地址ADC EQU 4DHADE EQU 5DHKEY1 BITP1.7 ; 切換顯示的按鍵S1 KEY2 BITP1.6 ; 未使用按鍵S2 ALA BIT P3.5 ; 未使用DISPBIT BIT 2FH.0 ; 控制顯示頻率或相位差的標志位 SAMP1A EQU 40HSAMP1B EQU 41HSAMP1C EQU 42HSAMP2A EQU 43HSAMP2B EQU 44HSAMP2C EQU 45HSAMP3A EQU 46H- 21 -SAMP3B EQU 47

31、HSAMP3C EQU 48HSAMP4A EQU 49HSAMP4B EQU 4AHSAMP4C EQU 4BHSAMP5A EQU 4CHSAMP5B EQU 3DHSAMP5C EQU 3EH*4.2.1 主程序ORG 00HLJMP 100HORG 100HMAIN: MOV 2FH,#01HMAIN1: NOPSETBTR0 SETB TR1LCALL SUB1CLR TR0CLR TR1 LCALL ZZLBLCALL ZHUNBEIZHOUQI ; 裝入頻率計算數(shù)據(jù)(1000000及周期T )分別到4AH4DH及5DH5EH中CLR 2F H.3JNB 2F H.3,DIVDD1

32、LJMP CHCHUDIVDD1:LCALL DIVD1 ; 調(diào)用除法子程序(4字節(jié)除以2字節(jié))計算頻率MOV 6FH,4FH ; 二進制形式的頻率值在4E 、4FH 中,最高位在4EH中- 22 - MOV 35H,4FHMOV 34H,4EHLCALL BCDST ; 將二進制數(shù)據(jù)轉(zhuǎn)換成BCD 碼MOV R0,#30HMOV R1,#3FHMOV R7,#04HMOV 30H,#0MOV 31H,#0LCALL BCD 2BCD; 將壓縮BCD 碼格式轉(zhuǎn)換成單字節(jié)BCD 碼格式 MOV 70H,#18; 頻率值存放在30H31H中,最低位在30H 中,最高位在32H 中 MOV 71H,3

33、0H; 內(nèi)存單元70H72H是頻率值顯示緩沖區(qū),其中70H 是符號位 MOV 72H,31HMIANWC:LCALL X360; 裝入相位計算數(shù)據(jù) LCALL MULNM; 調(diào)用乘法子程序求360乘以時間差(2字節(jié)乘以2字節(jié)) MOV 4CH,5CH; 將上述乘積送入除法的被乘數(shù)緩沖區(qū) MOV 4DH,5DHMOV 4EH,5EHMOV 4FH,5FHMOV 5FH,DATAL; 裝入被測周期T 的數(shù)據(jù) MOV 5EH,DATAHLCALL DIVD1; 調(diào)用除法子程序計算得到相位差值 MOV 35H,4FH; 壓縮BCD 格式的相位差值存放在4FH4EH中,4FH 中的為最低位 MOV 34

34、H,4EHLCALL BCDST; 將二進制數(shù)據(jù)轉(zhuǎn)換為壓縮格式的BCD 碼MOV R0,#30H- 23 -MOV R7,#04HMOV 30H,#0MOV 31H,#0LCALL BCD 2BCD ; 由壓縮BCD 碼轉(zhuǎn)換為單字節(jié)BCD 碼MOV 78H,#16 ; 相位差值存放在30H31H中,最低位在30H 中,最高位在31H 中MOV 79H,30H ; 內(nèi)存單元78H7AH是相位差值顯示緩沖區(qū),其中78H 是符號位MOV 7AH,31HCHCHu:LCALLDISP ; 調(diào)用顯示子程序KEYCOD:JB P1.7,MIANI1 ; 查詢按鍵S 1LCALL DELAY1 ; 軟件延時

35、消抖JNB P1.7,$ ; 等待S 1釋放CPL 2FH.0 ; 取反標志位2 FH.0LCALL DELAY2MIANI1: LCALL DELAY1LCALL DELAY1LCALL DELAY1LJMP MIAN1 ; 繼續(xù)主程序循環(huán)(主程序段到此為此)*4.2.2 測量時間差、周期子程序SUB1:MOV R4,#4LOOP3: JNB P3.6,BZDJNZ 2F H.1,LCCJNZ R4,#4,SAVE JMP CTSA VE: MOV DATAL,TL0MOV DATAH,TH0- 24 -MOV DATA2L,TL1MOV DATA2H,TH1CT: CLR TR0CLR T

36、R1CLR 2FH.1SUB R4,#1JMP LCBZ: SETB 2FH.1 LC: CJNZR4,#0,LOOP3 RET*4.2.3 中值濾波子程序ZZLB: POP APOP R0MOV R0,#SAMP1AMOV A,#01HMOV R0,AINC R0MOV A,#51HMOV R0,AINC R0MOV A,#50HMOV R0,AINC R0MOV A,#02HMOV R0,AINC R0MOV A,#56HMOV R0, A- 25 - INC R0MOV A, #12H MOV R0, A INC R0MOV A, #02H MOV R0, AINC R0 MOV A,

37、#56H MOV R0, A INC R0 MOV A, #10H MOV R0, A INSER:MOV R2, #02H SORT:MOV A, R2 MOV R3, A MOV R0, #SAMP1A LOOP:MOV A, R0 INC R0 MOV R1, A CLR C SUBB A, R0 JC DONE MOV A, R0 DEC R0 XCH A, R0 INC R0 MOV R0, A DONE: DJNZR3, LOOP DJNZR2, SORT INC R0MOV A, R0MOV R0, #SAMP1AINC R0INC R0MOV A, R0MOV 20H, APU

38、SH R0PUSH ARET* 4.2.4 計算頻率子程序PROC ZHUNBEIZHOUQI ; 為了計算頻率將被除數(shù)1000000裝入4CH4FH單元中ZHUNBEIZHOUQI: ; 將除數(shù)(周期T )裝入5EH51FH單元中MOV 5FH, DATALMOV 5EH, DATAHMOV 4FH, #40H ; 低位MOV 4EH, #42HMOV 4DH, #0FHMOV 4CH, #00HRETNOP ;PC 值出錯處理NOP ; 空操作NOP ; 空操作LJMP MIAN ; 重新復位啟動END*PROC DIVD1DIVD1: PUSH ACC ; 現(xiàn)場保護PUSH PSWPUS

39、H BMOV A ,R2JNZ DIV1 ; 判斷R2是否為0,若R2為0,則執(zhí)行ERR0R1;若R2不為0,則執(zhí)行除法DIV1ERR0R1: MOV A, R1JNZ DIV1 ; 判斷R1是否為0,若R1為0,則執(zhí)行ERR0R ,若R1不為0,則執(zhí)行除法DIV1DIV1: MOV A, R5CLR CSUBB A, R1MOV A, R6SUBB A, R2JNC DVOF ;R6R5-R2:R1,夠減,轉(zhuǎn)DVOF (溢出);不夠減轉(zhuǎn)DIV2DIV2: MOV R7, #10H ; 置循環(huán)次數(shù)16CLR C ;C 清零ROL R3 ; 被除數(shù)低16位左移1位ROL R4DIV3: ROL

40、R5ROL R6MOV R0, C ; 將R6最高位放入R0中保存MOV A, R5;做R6:R5-R2:R1的減法,結(jié)果放入R6:R5中CLR CSUBB A, R1MOV R5, R5MOV A, R6SUBB A, R2MOV R6, AJNC DIV4 ;C=0,說明夠減,在R3最低位上商1MOV A, R5 ;C=1,說明不夠減,恢復余數(shù)CLR CADD A, R1MOV R5, AMOV A, R6ADDC A, R2MOV R6, ACLR C ; 不夠減,商0LJMP DIV5DIV4: SETB C ; 夠減,商1DIV5: ROL R3ROL R4DEC R7CJNZ DI

41、V3 ;R7不等于0,說明除法未完,轉(zhuǎn)DIV3繼續(xù)除CLR C ; 清C ,表示除法已除完DNE: POP B ; 現(xiàn)場恢復POP PSWPOP ACCRETDVOF: MOV B, #0FFH ; 溢出標志LJMP DONEERR0R: RET ; 若除數(shù)為0,結(jié)束運算* PROC BCDSTBCDST: PUSH PSWPUSH ACC; 現(xiàn)場保護PUSH BMOV A ,R4;二進制整數(shù)送AMOV B ,#100 ;十進制數(shù)100送BDIV A B ;(A )/100,確定百位上的數(shù)MOV R5,A ;百位數(shù)存入R5中MOV A ,#10 ;將10送A 中XCH A ,B ;將10和B

42、中余數(shù)互換DIV A B ;(A )/10,得十、個位上的數(shù),商是十位,余數(shù)是個位SWAP A ;將A 中商(十位數(shù))移入商4位ADD A ,B ;將B 中余數(shù)(個位數(shù))加到A 中MOV R4,A ;將十、個位BCD 碼存入R4中POP B ;恢復現(xiàn)場POP ACCPOP PSWRET*PROC BCD 2BCDBCD 2BCD:PUSH PSW ;現(xiàn)場保護PUSH ACCMOV A ,R5ANL A ,#0FHMOV R5,A ;R5中存高位單字節(jié)BCD 碼MOV R3,R4ANL A ,#F0H;屏蔽低4位MOV R4,A ;中間位壓縮BCD 碼轉(zhuǎn)為的單字節(jié)BCD 碼存入R4中MOV A

43、,R3SWAP A ;交換中間位和低位ANL A ,#F0H;屏蔽低4位SWAP AMOV R3,A ;低位存入R3中PUSH ACCPUSH PSW*4.2.5 計算相位差子程序PROC X360X3600: MOV60H, DATA2LMOV 61H, DATA2HMOV 62H, 68HMOV 63H, 01HRET * PROC MULNM:MULNM: PUSH A;PUSH BPUSH PSWMOV A, R0MOV B, R2MUL ABMOV R6, AMOV R7, BMOV A, R1MOV B, R2MUL ABMOV R4, AMOV R5, BMOV A, R7ADD

44、 A, R4MOV R7, AMOV A, R5ADDC A, #00HMOV R5, AMOV A, R0MOV B, R3MUL ABMOV R3, AMOV R4, BMOV A, R7ADD A, R3MOV R7, AMOV A, R5ADDC A, R4MOV R5, AMOV A, R1MOV B, R3MUL ABMOV R3, AMOV R4, BMOV A, R5ADD A, R3MOV R2, AADDC A, #00HMOV R3, AMOV R1, R7MOV R0, R6POP PSWPOP BPOP ARET* DELAY: MOV 30H, #50D1: MOV

45、 31H, #100DJNZ 31H, $DJNZ 30H, D1RET*4.2.6 顯示子程序DISPLAY: MOV DPTR, #TABMOV R7, #5JB 2FH.0, FREQXIANGWEI:MOV R0, #78HSJMP NEXTFREQ: MOV R0, #70HNEXT: MOV A, R0MOVC A, A+DPTRMOV SBUF, AJNB TI, $CLR TIINC R0DJNZ R7, NEXTRETTAB: DB 3FH, 06H, 5BH, 4FH, 66H;DB 6DH, 7DH, 07H, 7FH, 6FH;DB 77H, 7CH, 39H, 5EH

46、, 79H, 7EH4.3 調(diào)試與仿真(1)編輯源程序。在Wave6000軟件平臺上編輯上述源程序。(2)編譯源程序。在編譯過程中可能有很多語法錯誤,要一一排除,最后通過編譯。(3)仿真調(diào)試:1)軟件仿真調(diào)試并獲得通過。2)硬件仿真調(diào)試并獲得通過。(4)寫目標程序到程序存儲器中。在仿真調(diào)試獲得通過后,便可以將目標程序通過通用編程器寫到AT89C51芯片內(nèi)部的程序存儲器中。5 系統(tǒng)設(shè)計總結(jié)在完成上面的設(shè)計后,很有必要對自己做的設(shè)計總結(jié)一下,以便發(fā)現(xiàn)問題及時解決,發(fā)現(xiàn)不足及時補充,發(fā)現(xiàn)錯誤及時糾正。設(shè)計任務(wù)要求相位測量絕對誤差小于或等于±2o 。相位差測量誤差主要來自三個方面:整形電路;

47、鑒相器產(chǎn)生的計數(shù)誤差,由單片機運算引入的計算誤差,計算誤差很小可忽略之。由此可見,相位測量誤差主要受輸入信號整形電路的影響。整形電路的任務(wù)是把任意波形(一般是正弦波)變換成矩形波。在設(shè)計中,我們選用由LM339構(gòu)成的斯密特觸發(fā)器作為輸入信號的整形電路。斯密特觸發(fā)器可以很好地消除抖動,但也給相位測量儀系統(tǒng)帶來了相伴差的測量誤差。如果兩路待測輸入正弦信號的幅度基本相等,且兩個斯密特觸發(fā)器的門限電壓又很接近,斯密特觸發(fā)器引入的相位誤差不會對測量精度造成多大影響。但是,如果兩路輸入信號的幅度相差比較大的話,則由斯密特觸發(fā)器構(gòu)成的整形電路引入的相位測量誤差可能會比較大。經(jīng)計算表明,在極限情況下,斯密特觸

48、發(fā)器整形電路帶來的相位差的測量誤差可能達不到不能接受的程度。如果直接采用過零電壓比較器作為輸入信號的整形電路,那么,過零電壓比較器在電位零點附近極有可能振蕩!這是因為在零點電位附近的輸入電壓位于電壓比較器的線性放大區(qū),這樣得到的整形后的信號電壓的跳變沿附近會有許多抖動,正是因為這種抖動使得系統(tǒng)測量工作根本無法正常進行。致 謝轉(zhuǎn)眼間,我已經(jīng)在美麗的鄭州輕工業(yè)學院度過了兩個年頭。兩年,這是我人生中非常重要的兩年,我有幸能夠接觸到這些不僅傳授我知識、學問,而且從更高層次指導我的人生與價值追求的良師。他們使我堅定了人生的方向,獲得了追求的動力,留下了大學生活的美好回憶。感謝鄭州輕工業(yè)學院兩年來的培養(yǎng),

49、在此,我真誠地向我尊敬的老師們和母校表達我深深的謝意!這篇論文是在我的導師王新金老師的多次指導下完成的。從論文的選題到結(jié)構(gòu)安排,從內(nèi)容到文字潤飾,都凝聚了他大量的心血。在這篇論文的寫作過程中,王新金老師不辭辛勞,多次與我就論文中許多核心問題作深入細致地探討,給我提出切實可行的指導性建議,并細心全面地修改了我的論文。王新金老師對本論文從選題、構(gòu)思、資料收集到最后定稿的各個環(huán)節(jié)給予細心的指引和教導, 使我對低頻相位測量儀有了更加深刻的認識, 并最終得以完成畢業(yè)論文, 對此, 我打心眼里表示我最衷心的感謝. 王老師嚴謹?shù)闹螌W態(tài)度、豐富淵博的知識、敏銳的學術(shù)思維、精益求精的工作態(tài)度、積極進取的科研精神

50、以及誨人不倦的師者風范是我畢生的學習楷模。王老師的高深精湛的造詣與嚴謹求實的治學精神將永遠激勵著我。王老師這種一絲不茍的負責精神,使我深受感動。更重要的是王老師在指導我的論文的過程中,始終踐行著“授人以魚,不如授之以漁”的原則。他常教導我要志存高遠,嚴格遵守學術(shù)道德和學術(shù)規(guī)范,為以后的繼續(xù)深造打好堅實的基礎(chǔ)。在此,請允許我向尊敬的王新金老師表示真摯的謝意!感謝和我一起度過兩年大學的朋友徐偉、張寶藝。是你在我失意時給我鼓勵,在我失落時給我支持,感謝你和我一路走來,讓我在人生這一驛站中倍感溫暖!在論文的寫作過程中,也得到了許多同學的寶貴建議,同時還得到許多社會人士的支持和幫助,在此一并致以誠摯的謝

51、意。最后,衷心感謝所有老師對我的栽培、支持和鼓勵,感謝所有朋友的關(guān)心和幫助。向在百忙中抽出時間對此論文進行評審并提出寶貴意見的各位專家表示衷心地感謝!衷心祝愿母校鄭州輕工業(yè)學院的明天更加美好!低頻相位測量儀軟件設(shè)計 參考文獻 1 馬衷梅. 單片機應用程序設(shè)計. 北般出版社. 1998.1 2 陸坤. 電子設(shè)計技術(shù). 電子科技大學出版社 .2001.1 3 沙戰(zhàn)友. 新編實用數(shù)字化測量技術(shù). 國防工大出版社 2000.8 4 劉公致. 一種較精確的相位測量方法. 杭州電子工業(yè)學院學報. 1999.3 5 李洋. 現(xiàn)代電子設(shè)計與創(chuàng)新. 中國電力出版社. 2007.7 6 黃智偉. 全國大學生電子設(shè)

52、計競賽訓練教程. 電子工業(yè)出版社 2005.1 7 高有堂、翟天嵩、朱清慧. 電子設(shè)計與實戰(zhàn)指導. 電子工業(yè)出版社 2007.4 8 黃智偉. 全國大學生電子設(shè)計競賽電路設(shè)計. 北京航空航天大學出版社. 2006.12 9 David Karlins. Build Your Own Web Site M. McGraw-Hill Osborne Media. 2003.1 10 何立民 單片機應用技術(shù)選編【C】 北京航空航天大學出版社 1998.8 11 劉國林,殷貫西.電子測量M.機械工業(yè)出版社.2003. 12 Dan Suciu, Gottfried Vosen. The World W

53、ide Web and databases. Springer ,2001.1 13 李朝青. 單片機原理及接口技術(shù). 北京航空航天大學出版社. 1994.8 14 劉國林、殷貫西. 電子測量. 機械工業(yè)出版社. 2003.6 15 趙新民、 王祁副. 能儀器設(shè)計基礎(chǔ). 哈爾濱工業(yè)大學出版社. 2002.1 16 熊靜琪. 計算機控制技術(shù). 電子工業(yè)出版社. 2003.4 - 36 - +5 LED1 DPY_7-SEG_DP LED2 DPY_7-SEG_DP LED5 DPY_7-SEG_DP LED6 DPY_7-SEG_DP 附 +5V DPY a a b c f b g d e e c d f dp g dp DPY a a b c f b g d e e c d f dp g dp DPY a a b c f b g d e e c d f dp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論