低頻數(shù)字式相位測量儀設計【畢業(yè)論文】_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  本科畢業(yè)論文(設計)</p><p><b> ?。ǘ?屆)</b></p><p>  低頻數(shù)字式相位測量儀設計</p><p>  所在學院 </p><p>  專業(yè)班級 電氣工程及其自動化 </p>

2、<p>  學生姓名 學號 </p><p>  指導教師 職稱 </p><p>  完成日期 年 月 </p><p><b>  摘 要</b></p><p>  本系統(tǒng)是以

3、AT89S51單片機為核心的一個相位測量儀,整個系統(tǒng)由移相網絡和相位測量儀兩部分組成。</p><p>  數(shù)字式相位測量儀實現(xiàn)了對20Hz到10KHz的峰-峰值為1V到5V的正弦信號、方波信號等信號進行精確的測頻、測相的功能;移相網絡則采用RC移相網絡來實現(xiàn),在100Hz、1KHz、10KHz三種情況下,可以實現(xiàn)最大相移±45°的調整。相位測量儀由信號處理模塊、單片機模塊和數(shù)碼管顯示模塊組成

4、,對20Hz到10KHz信號進行頻率和相位差的測量,而被測信號的相位差、頻率則是通過LED數(shù)碼管顯示。</p><p>  整個系統(tǒng)設計硬件結構簡單,軟件采用C51語言實現(xiàn),程序簡單可讀性強,效率高。與傳統(tǒng)的電路系統(tǒng)相比,具有處理速度快、穩(wěn)定性高、性價比高的特點。</p><p>  關鍵詞:單片機;頻率;相位測量;相位差</p><p><b>  Ab

5、stract</b></p><p>  The system is a phase meter based on microcontroller AT89S51, and is composed of two parts: Phase Shift Module and Phase Measurement Module. </p><p>  The digital phase

6、 meter achieves to accurately measure frequency and phase for sinusoidal signal and square wave signal with the frequency from 20Hz to 10KHz, the peak from -1V to 5V. Phase Shift Module is achieved by using RC phase shif

7、t networks, and it can achieve maximum phase shift of ±45° at the frequency of 100Hz, 1KHz and 10KHz. Phase Measurement Module is composed of signal processing circuit, single-chip microcomputer circuit and dig

8、ital display circuit, and to measure frequency and ph</p><p>  The system has simple hardware structure and uses C51 language for software, the program is simple, readable and efficient. Compared with the co

9、nventional circuit system, the system has the features of high processing speed, high stability and cost-effective.</p><p>  Key Words: Microcontroller; Frequency; Phase Measure; Phase Difference</p>

10、<p><b>  目 錄</b></p><p><b>  1 概述1</b></p><p><b>  1.1引言1</b></p><p>  1.2 課題的主要內容和基本要求2</p><p><b>  2 總體設計3</b&

11、gt;</p><p><b>  2.1移相網絡3</b></p><p>  2.2數(shù)字式相位測量儀5</p><p><b>  3 硬件設計8</b></p><p><b>  3.1移相網絡8</b></p><p>  3.2 數(shù)字

12、式相位測量儀12</p><p>  3.2.1 信號處理模塊13</p><p>  3.2.2 單片機模塊17</p><p>  3.2.3 LED數(shù)碼管顯示模塊18</p><p><b>  4 軟件設計22</b></p><p>  4.1 主程序22</p>

13、<p>  4.2 測量時間差、周期子程序23</p><p>  4.3 HD7279讀、寫子程序子程序24</p><p>  5 制作和調試27</p><p>  5.1 硬件部分的制作和調試27</p><p>  5.2 軟件部分的制作和調試27</p><p><b> 

14、 6 結論28</b></p><p>  致 謝錯誤!未定義書簽。</p><p><b>  參考文獻29</b></p><p>  附錄1 系統(tǒng)實物圖30</p><p>  附錄2 實驗原理圖31</p><p>  附錄3 程序清單32</p>

15、;<p><b>  1 概述</b></p><p><b>  1.1引言</b></p><p>  隨著科學技術的突飛猛進的發(fā)展,電子技術廣泛的應用于工業(yè)、農業(yè)、交通運輸、航空航天、國防建設等國民經濟的諸多領域中,而電子測量技術又是電子技術中進行信息檢測的重要手段,在現(xiàn)代科學技術中占有舉足輕重的作用和地位。</p&g

16、t;<p>  低頻數(shù)字式相位測試儀在工業(yè)領域中是經常用到的一般測量工具,比如在電力系統(tǒng)中電網并網合閘時,要求兩電網的電信號相同,這就要求精確的測量兩工頻信號之間的相位差。還有測量兩列同頻信號的相位差在研究網絡、系統(tǒng)的頻率特性中具有重要意義[1]。</p><p>  相位差是工業(yè)測控領域經常需要測量的參數(shù),如電力系統(tǒng)中功率因數(shù)的測量、鐵路系統(tǒng)中相敏軌道電路相位差的測量以及科氏質量流量計中的相位差測

17、量等等。而相位差的測量又不同于傳統(tǒng)的電壓、電流信號或物位、溫度量的測量。首先,相位差信號依附于電壓、電流信號中,如何剔除電壓、電流、頻率變化對相位差測量的影響是相位差測量中很重要的一個方面;其次相位差是一個比較量,測量兩路信號之間的相位差不僅需要保證兩路信號的頻率相同,而且要排除由于兩路信號的幅值等其它因素不一致而對測量造成的影響[2-3]。因此,如何準確可靠地測量相位差是值得研究的課題。</p><p>  目

18、前新制造的相位測量儀一般都是采用數(shù)字化方法設計的。常用的設計方法有采用單片機、可編程邏輯器件CPLD或FPGA和DSP?,F(xiàn)在隨著集成電路的發(fā)展,很多測量儀逐漸向“智能儀器”和“自動測試系統(tǒng)”發(fā)展,這使得儀器的使用比較簡單,功能越來越多。</p><p>  本設計就是以單片機為核心的一個相位測量儀,整個系統(tǒng)分為移相網絡和數(shù)字式相位測量儀兩部分。系統(tǒng)的原理是由信號發(fā)生器產生同頻率但不同相位的信號,再將這兩個同頻不同

19、相位的正弦波通過整形,變成方波,然后測量其中一個方波的周期,從而得到兩輸入信號的頻率;再測量兩方波過零時間差,通過計算獲得信號的相位差。再通過單片機編程,將相位差在LED數(shù)碼管中顯示出來。</p><p>  1.2 課題的主要內容和基本要求</p><p>  首先,制作一個模擬移相網絡,滿足下列要求:</p><p>  a.輸入信號頻率:100Hz、1kHz、

20、10kHz。</p><p>  b.連續(xù)相移范圍:-45°~+45°。 </p><p>  c.輸出的正弦信號峰-峰值可分別在1V~5V范圍內變化。</p><p>  在此基礎上,利用單片機設計并制作一個低頻數(shù)字式相位測量儀,性能要求如下:</p><p>  a.頻率范圍:20Hz~10kHz。 </p>

21、;<p>  b.相位測量絕對誤差≤2°。</p><p>  c.具有頻率測量及數(shù)字顯示功能。 </p><p>  d.相位差數(shù)字顯示:相位讀數(shù)為0°-359.9°,分辨率為0.1°。</p><p><b>  2 總體設計</b></p><p>  本設計以

22、AT89S51單片機為核心,構成低頻相位測量儀。它具有移相、頻率和相位測量兩大功能。移相電路由移相網絡和信號放大電路組成,對固定頻率信號100Hz、1KHz、10KHz可實現(xiàn)-45°~+45°的相移;頻率、相位測量電路由阻抗變換電路、整形電路、計數(shù)器電路、顯示電路組成,對20Hz~10KHz信號進行頻率和相位測量。單片機系統(tǒng)是整個硬件系統(tǒng)的核心,它既是協(xié)調整機工作的控制器,又是數(shù)據(jù)處理器,并完成對最終顯示的控制??傮w

23、設計框圖如圖2-1所示。</p><p>  圖2-1 總體設計框圖</p><p><b>  2.1移相網絡</b></p><p>  移相網絡有數(shù)字移相網絡和模擬移相網絡兩種。</p><p><b>  方案一:數(shù)字移相</b></p><p>  單片機或CPLD

24、控制高速ADC,對一個周期內的信號進行多次采樣,將數(shù)據(jù)保存在高速RAM中。然后根據(jù)需要移相的大小,對量化數(shù)據(jù)的地址加上一個相位偏移量后輸出。該方案的優(yōu)點是相移量可以很大(0°~360°都可),并且精度高,數(shù)字控制方便。但是一個周期內需要采樣較多點,對ADC速度、RAM速度要求很高。數(shù)字移相有三種方法:</p><p>  方法一:用傳統(tǒng)的直接頻率合成器</p><p>

25、  采用傳統(tǒng)的直接頻率合成器,再通過移相網絡實現(xiàn)移相輸出。這種方法能快速實現(xiàn)頻率變換,具有低相位噪聲的優(yōu)點,是所有方法中最高的工作頻率。但由于采用大量的倍頻、分頻、混頻和濾波及移相環(huán)節(jié),導致結構復雜,成本高,容易產生雜散分量,并且難以實現(xiàn)相位差1°精度[4]。</p><p>  方法二:地址生成器與外ROM構成的信號發(fā)生器</p><p>  將正弦波的采樣點存在外ROM中,當

26、單片機向地址發(fā)生器發(fā)出控制信號后,地址發(fā)生器便以輸入數(shù)值為初始值進行地址累加。外ROM便根據(jù)輸入的地址輸出存儲的正弦波,再經過D/A轉換和整流電路后,輸出模擬正弦波A。同理,另一通道輸出同頻率的模擬正弦波B。改變單片機的控制信號的時間就改變了輸出信號的頻率,改變兩個地址生成器的初始地址就改變了輸出新號的相位差[5]。</p><p>  方法三:采用直接數(shù)字頻率合成器(DDFS)</p><p

27、>  采用直接數(shù)字頻率合成器(DDFS),它主要由相位累加器、波形表、D/A輸出、低通濾波器四部分組成。采用這種純數(shù)字化的方法,產生信號的頻率準確、頻率分辨率高,輸出相位連續(xù),頻率、相位和幅度均可實現(xiàn)程控[6]。</p><p><b>  方案二:模擬移相。</b></p><p>  由于只要實現(xiàn)- 45°~+ 45°的相移要求,考慮到實

28、現(xiàn)難易程度,決定采用R、C移相網絡來實現(xiàn)相位的偏移。電路圖如圖2-2所示。</p><p> ?。╝)超前網絡 (b)滯后網絡</p><p>  (c) (d)</p><p>  圖2-2 移相網絡電路原理圖</p><p&g

29、t;  對于相位超前RC網絡: (2-1)</p><p>  對于相位滯后RC網絡: (2-2)</p><p>  它們對應得相頻特性分別為: (2-3)</p><p><b> ?。?-4)</b></p>

30、<p>  理論上要實現(xiàn)相移范圍為- 45°~+ 45°,則要求,,也就是說,都為1。</p><p>  2.2數(shù)字式相位測量儀</p><p>  從功能角度來看,相位測量儀要完成信號頻率的測量和相位差的測量。相位測量儀有兩路輸入信號,也是被測信號,它們是同頻率的正弦信號,頻率范圍為20Hz—20KHz,令正弦電信號為:</p><

31、p><b> ?。?-5)</b></p><p>  其中,稱為振幅(最大值),且,A稱為有效值;稱為相位,稱為初相位,稱為角頻率。、、稱為正弦量的三要素。</p><p>  只有兩個同頻率的(正弦)信號,才有相位差的概念。不妨令兩個同頻率的正弦信號為:</p><p><b> ?。?-6)</b></p

32、><p><b> ?。?-7)</b></p><p>  則相位差,由此可以看出,相位差在數(shù)值上等于初相位之差,是一個角度。</p><p>  測量相位差有兩種方案:</p><p>  方案一:相位-電壓轉換法</p><p>  波形圖如圖2-3,將兩個頻率相同,相位差為的被測正弦信號,經限

33、幅放大和脈沖整形后變成兩個方波,在經微分得到兩個對應被測信號負向過零瞬間的尖脈沖,利用非飽和型高速雙穩(wěn)態(tài)電路將這兩組負脈沖所觸發(fā),輸出周期為T、寬度為Tx的方波,若方波幅度為Ug,則此方波的平均值為:</p><p><b> ?。?-8)</b></p><p>  因此,用低通濾波器將方波中的基波和諧波分量全部濾除后,輸出電壓即直流電壓Uo。上式中T為被測信號的周

34、期,Tx由兩信號的相位差決定。</p><p>  因為正弦信號與正弦信號的相位差為,也就是時間上差Tx,所以Tx與的關系為:</p><p><b> ?。?-9)</b></p><p><b>  即:U1</b></p><p><b>  (2-10)</b><

35、/p><p>  將公式(2-8)代入上式得</p><p><b> ?。?-11)</b></p><p>  方案二:相位-時間轉換法</p><p>  波形圖如圖2-4,首先將頻率相同,相位不同的正弦信號通過過零比較器轉變成方波信號,然后進行與運算,產生脈寬為Tx、周期為T的另一方波,若計算時鐘脈沖周期為Tc,則在

36、Tx時間內的計數(shù)數(shù)值為:</p><p><b> ?。?-12)</b></p><p>  所以即為相位差的讀數(shù)。</p><p>  縱觀上述兩種方案,方案一是將相位差信號轉變?yōu)殡妷盒盘栠M行測量,對單一頻率信號的相位檢測時,相位差信號與電壓信號之間存在唯一對應關系,電壓的高低反應了相位的大小,但當輸入的信號頻率在一定范圍可變時,此方法不適

37、用。原因有二:一是相位變化會引起輸出電壓信號Uo的變化,二是頻率變化也會影響輸出信號Uo的變化。 所以對于20Hz-10KHz 范圍內的信號檢測系統(tǒng)的輸出Uo與被測信號的相位之間不存在唯一對應關系。方案二是將相位差信號轉變?yōu)闀r間信號進行測量,相位差與(Tx/T)之間始終著一一對應關系,因此不管頻率如何變化,只要測量出(Tx/T)大小,相位差的大小也就確定了[7]。</p><p>  圖2-3 相位-電壓轉換波形

38、 圖2-4相位-時間轉換波形</p><p><b>  3 硬件設計</b></p><p>  本系統(tǒng)硬件主要有兩個模塊組成:移相網絡和數(shù)字式相位測量儀。</p><p><b>  3.1移相網絡</b></p><p>  圖3-1 移相網絡電路圖</p>

39、<p>  移相網絡的電路如圖3-1所示。輸入信號經過兩個RC網絡后一路超前于輸入信號,一路滯后于輸入信號,并分別輸入給兩個運放構成的電壓跟隨器,當電位器調到頂端時,滯后信號占主導地位;當電位器調至底端時,超前信號占主導地位。</p><p>  根據(jù)題目要求,移相網絡輸入信號的頻率有3個值,需要搭接3個不同的移相網絡,由撥碼開關控制。下面進行參數(shù)的粗略計算,各參數(shù)取值由下所示。</p>

40、<p> ?。?) (3-1)</p><p>  取=0.033,則=482</p><p>  (2) (3-2)</p><p>  取=0.1,則=1.59</p><p>  (3)

41、 (3-3)</p><p>  取=0.33,則=4.77</p><p>  調節(jié)電位器R1可以改變輸出的相位,調節(jié)電位器R2和R3,可以改變輸出相位的幅值。</p><p>  該電路中的LM324是四運放集成電路,它采用14腳雙列直插塑料封裝,內部包含四組完全相同的運算放大器,除電源共用外,四組運放相互獨立。每一組運算放大器可用圖

42、3-2所示的符號來表示,它有5個引腳,其中“+”、“-”為兩個信號輸入端,“V+”、“V-”為正、負電源端,“Vo”為輸出端。兩個信號輸入端中,Vi-(-)為反相輸入端,表示運放輸出端Vo的信號與該輸入端的位相反;V+(+)為同相輸入端,表示運放輸出端Vo的信號與該輸入端的相位相同。LM324的引腳排列見圖3-3。</p><p>  圖3-2 每一級運算放大器 圖3-3 LM

43、324引腳排列</p><p>  仿真軟件采用Multisim 8,仿真電路圖如圖3-4所示。本系統(tǒng)有三個輸入頻率10KHz、1KHz和100Hz,輸入不同頻率時,只要修改相應R、C的參數(shù)就可以了。在以下六幅仿真圖片中,藍色的波形是A輸出的信號,黃色的波形是B輸出的信號。滯后網絡時電位器RW1調至頂端,超前網絡時電位器RW1調至底端。</p><p>  圖3-4 移相網絡仿真電路圖&l

44、t;/p><p>  圖3-5 f=10KHz時的超前網絡</p><p>  圖3-6 f=10KHz時的滯后網絡</p><p>  圖3-7 f=1KHz時的超前網絡</p><p>  圖3-8 f=1KHz時的滯后網絡</p><p>  圖3-9 f=100Hz時的超前網絡</p><p&g

45、t;  圖3-10 f=100Hz時的滯后網絡</p><p>  圖3-11 電位器RW1調至中間時輸出波形</p><p>  當電位器RW1調至中間處時,不管輸入信號的頻率是10KHz、1KHz或者是100Hz,A輸出和B輸出的波形完全一致,如圖3-11所示。移相網絡測試數(shù)據(jù)見表3-1。</p><p>  表3-1 移相網絡測試數(shù)據(jù)</p>

46、<p>  結果分析:由表3-1所見,輸入頻率為100Hz和1KHz時,移相范圍達到了要求(-45°~+45°)。當輸入頻率為10KHz時,最小相位差沒有達到要求。主要是電路中選擇的電阻跟理論值存在誤差,另外,電容對波形也存在一定的影響。</p><p>  3.2 數(shù)字式相位測量儀</p><p>  以單片機為核心的相位測量儀原理框圖如圖3-12所示。&l

47、t;/p><p>  圖3-12 相位測量儀系統(tǒng)框圖</p><p>  相位測量儀需要測量兩個數(shù)據(jù):頻率和相位差。</p><p><b>  (1)頻率的測量</b></p><p>  MCU對信號頻率的測量可以采用直接測率的方法和測周期的方法。一般是信號頻率較高時,采用直接測頻率的方法,而信號頻率較低時,采用測周期的

48、方法。因為該設計是測低頻的相位,故采用測周期的方法。</p><p>  由圖3-13可知,對I進行2分頻后的信號波形中,高電平的寬度正好對應I的周期,我們將此高電平信號作為MCU內部定時器的硬件啟動/停止信號,便可測得周期T,再由公式f=1/T,計算得到頻率f。</p><p>  圖3-13 用測周期的方法獲得信號頻率</p><p><b> ?。?

49、)相位差的測量</b></p><p>  相位差的測量是通過鑒相器來實現(xiàn)的。鑒相器就是異或門,在鑒相器的輸出波形中,正脈沖寬度就是要測量I和V相位差所對應的時間差,如圖3-14所示。</p><p>  圖3-14鑒相器的輸入、輸出波形圖</p><p>  在測量相位差時還應考慮超前、滯后兩種情況(圖3-14為I超前V)。把波形中的正脈沖作為門控信號

50、,控制閘門的開啟閉合,即控制單片機內部定時器/計數(shù)器的啟動停止,從而達到測量時間差的目的,再根據(jù)公式,計算得到相位差。</p><p>  另外,由圖3-14可知,信號是I信號的二倍頻,由此可見,對于同頻不同相的兩個信號,經過異或門后可得到二倍頻的信號。因此從這個意義上講,異或門可以實現(xiàn)信號的二倍頻。</p><p>  3.2.1 信號處理模塊</p><p>&

51、lt;b>  1、整形電路</b></p><p>  在相位差測量過程中,不允許兩路信號在放大整形電路中發(fā)生相對相移。為了使兩路信號在測量電路中引起的附加相移是相同的,圖3-15中輸入1和輸入2安排了相同的電路。第一級運放將輸入信號放大,第二級運放作比較器,經過限幅電路后再通過一個74HC14D的施密特觸發(fā)器,使其轉換成TTL電平的信號,并將原本邊沿變化緩慢的周期信號變換為邊沿很陡峭的矩形脈沖

52、信號,得到了效果比較好的整形波形。</p><p>  設計任務要求輸入阻抗≥100k,所以采用同相放大器,在輸入端并上一個100k的電阻,這樣就能滿足輸入阻抗要求。</p><p>  2、時間差、周期的測量電路</p><p>  MCU-51系列單片機的芯片內部集成了兩個16位的硬件定時器/計數(shù)器,它們是T0、T1。MCU芯片內部的硬件定時器/計數(shù)器有三個特點

53、:</p><p>  定時器/計數(shù)器可以與CPU并行工作;</p><p>  定時器/計數(shù)器可以采用中斷方式與系統(tǒng)協(xié)調工作;</p><p>  定時器/計數(shù)器可以由軟件或硬件控制啟動和停止。</p><p>  圖3-15 信號處理電路圖</p><p>  我們讓定時器/計數(shù)器工作在定時工作方式,其計數(shù)器對內部

54、機器周期進行加1計數(shù),而定時器/計數(shù)器的工作啟動、停止采用外部硬件控制。</p><p>  電路圖如3-16所示,該電路由單片機、門電路等組成。由定時器/計數(shù)器T0、T1分別測量周期、時間差,用P3.6來控制定時器讀數(shù)的時間。</p><p>  圖3-17是圖3-16對應的時序圖。具體的PROTEL原理圖見附錄2。</p><p>  圖3-16 MCU測量時間

55、差、周期的電路圖</p><p><b>  圖3-17 時序圖</b></p><p>  1)、異或門鑒相電路</p><p>  異或門由一片74LS86構成,起鑒相作用。這樣將兩路方波信號輸入后,即可將兩信號高低電平相異的部分以高電平輸出,而這個輸出信號的脈沖寬度就是所要求的相位差。電路原理圖如圖3-18所示。</p>&

56、lt;p>  2)、相位超前或滯后判斷電路</p><p>  相位超前或滯后判斷模塊由D觸發(fā)器構成,采用74LS74芯片。74LS74是一個邊沿觸發(fā)器數(shù)字電路器件,每個器件中包含兩個相同的、相互獨立的上升沿有效的D觸發(fā)器電路。74LS74內部管腳圖如圖3-19所示。</p><p>  將待測信號1經整形后送入D腳,待測信號2經整形后送入CLK腳,若Q輸出為高電平,則說明待測信號1

57、的相位超前待測信號2;反之則說明待測信號1的相位滯后待測信號2。于是將Q的值送至發(fā)光二極管,若發(fā)光二極管點亮,則說明待測信號1相位超前待測信號2,反之,則說明待測信號1的相位滯后待測信號2[8]。電路原理圖如圖3-20所示。</p><p>  圖3-18 鑒相電路</p><p>  圖3-19 74LS74內部管腳圖</p><p>  圖3-20相位超前滯后判

58、斷電路</p><p><b>  3)、二分頻電路</b></p><p>  二分頻電路也是由D觸發(fā)器來實現(xiàn),同樣用74LS74芯片。將待測信號1整形后輸入CLK腳,將D觸發(fā)器的D腳與腳相連,則從Q端輸出的就是待測信號1的二分頻電路。時序圖如圖3-21所示,電路圖如圖3-22所示。</p><p>  圖3-21 二分頻電路時序圖</

59、p><p>  圖3-22 二分頻電路原理圖</p><p>  3.2.2 單片機模塊</p><p>  系統(tǒng)設計中使用AT89S51單片機,它是51系列的8位單片機,基于CMOS的靜態(tài)控制器,共有32個I/O端口,3個定時器/計數(shù)器,8個中斷,支持異步串行收發(fā);3級程序存儲器,8KB的閃存,128B的片內RAM,串行口是一個全雙工的串行通信口,具有兩個數(shù)據(jù)指針DP

60、TR0和DPTR1。</p><p><b>  1、時鐘電路</b></p><p>  單片機的時鐘信號用來為單片機芯片內部各種微操作提供時間基準。單片機的時鐘信號通常由兩種方式產生:一是內部振蕩方式。二是外部時鐘方式。本系統(tǒng)采用內部振蕩方式。</p><p>  在單片機內部有一個高增益反相放大器,只要在單片機的XTAL1和XTAL2引腳

61、外接晶體振蕩器就構成了自激振蕩器并在單片機內部產生時鐘脈沖信號。電容器C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在5—30pF,典型值為30pF。對于晶振的取值,因為本設計要求相位測量精度絕對誤差≤2°,因此,在所測信號一個周期中,只有計數(shù)數(shù)值超過360次時才能達到要求。對于被測信號頻率為20KHz時,其周期為50us,在50us內計數(shù)值為360次,由此可計算出時間基準信號的頻率為20KHz×360=7.2MHz,

62、由于買了12MHz晶振,所以采用12MHz晶振作為時基信號源[9]。電路圖如圖3-23所示。</p><p>  圖3-23 時鐘電路</p><p><b>  2、復位電路</b></p><p>  復位是使單片機的CPU或系統(tǒng)中的其他部件處于某一確定的初始狀態(tài),并從這一狀態(tài)開始工作。單片機的工作就是從復位開始的。本系統(tǒng)選用上電與按鍵均有

63、效的復位電路,它不僅在上電時可以自動復位,而且在單片機運行期間,利用按鍵也可以完成復位操作。如圖3-24所示。</p><p>  圖3-24 復位電路</p><p>  3.2.3 LED數(shù)碼管顯示模塊</p><p>  本系統(tǒng)要將兩路信號之間的相位差和頻率通過LED數(shù)碼管顯示出來,所以這里采用HD7279A這塊芯片。</p><p>

64、  HD7279A芯片是一片具有串行接口,可同時驅動八位共陰式數(shù)碼管的智能顯示驅動芯片,該芯片同時還可連接多達64鍵的鍵盤矩陣,單片即可完成LED顯示和鍵盤接口的全部功能。HD7279A內部含有譯碼器,可直接接受BCD碼或16進制碼,并同時具有兩種譯碼方式。此外,它還具有多種控制指令,如左移、右移、閃爍、消隱、段點亮、段關閉、讀鍵盤數(shù)據(jù)指令等。HD7279A具有片選信號,可方便地實現(xiàn)多于8位的顯示或多于64鍵的鍵盤接口。</p&g

65、t;<p>  HD7279A還具有如下的特點:無需外圍元件,可直接驅動數(shù)碼管;多種譯碼方式,各顯示位可分別控制譯碼方式;段尋址功能,可以單獨控制顯示段,最多64鍵的鍵盤控制器,內含去抖動電路[10]。</p><p>  HD7279A的引腳總用有28個,采用雙列直插式封裝。HD7279A的引腳功能如表3-2所示。</p><p>  表3-2 HD7279的引腳功能<

66、;/p><p>  HD7279A外圍電路連接圖如圖3-25所示。由于在本系統(tǒng)中用到了鍵盤,所以電路中的8只下拉電阻不得省略。下拉電阻大于位選電阻的5倍而小于其50倍,典型值為10倍。下拉電阻的取值范圍是10K—100K,位選電阻的取值范圍是1K—10K。在不影響顯示的前提下,下拉電阻盡可能取小,這樣可以提高鍵盤部分的抗干擾能力。</p><p>  HD7279A還需要一個外接的RC振蕩電路

67、以供系統(tǒng)工作,其典型值分別為。另外,因為芯片直接驅動LED數(shù)碼管顯示,電流較大,且為動態(tài)掃描方式,所以如果該部分電路電源連線較細較長,可能會引入較大的電源噪聲干擾,將HD7279A的正負電源端上并入去耦電容就可以提高電路的抗干擾能力。</p><p>  HD7279A和AT89S51的連接如圖3-26所示,HD7279A的片選輸入端CS與AT89S51的P1.4口相連接,同步時鐘輸入端CLK與AT89S51的P

68、1.5口相連接,串行數(shù)據(jù)輸入/輸出端DATA與AT89S51的P1.6口相連接,按鍵有效輸出端KEY與AT89S51的P1.7口相連接。</p><p>  HD7279A用串行方式與微處理器連接,串行數(shù)據(jù)從DATA腳送入芯片,并由CLK端同步,當片選信號變?yōu)榈碗娖胶螅珼ATA引腳上的數(shù)據(jù)在CLK引腳的上升沿被寫入到HD7279A芯片的緩沖寄存器。</p><p>  圖3-25 HD72

69、79A外圍電路</p><p>  圖3-26 HD7279A與AT89S51的連接</p><p>  圖3-27為8位數(shù)碼顯示管,其各引腳對應與HD7279A各引腳相連接。考慮到采用循環(huán)掃描的方式,普通的數(shù)碼管可能亮度不夠,采用高亮或超高亮的數(shù)碼管就可以解決這個問題。數(shù)碼管的尺寸不宜太大,一般字符高度不宜超過1英寸,如果使用大型的數(shù)碼管,應使用適當?shù)尿寗与娐贰?lt;/p>&

70、lt;p>  圖3-27 數(shù)碼管引腳圖</p><p><b>  4 軟件設計</b></p><p>  軟件部分是整個系統(tǒng)的核心部分,硬件調試成功后,加上軟件部分才能使整個系統(tǒng)得以運行。本系統(tǒng)軟件采用C51語言,主要包括主程序、測量時間差、周期子程序和HD7279讀、寫子程序等。</p><p><b>  4.1 主程序

71、</b></p><p>  主程序流程圖如圖4-1所示,首先進行系統(tǒng)初始化,設置相應標志位狀態(tài)、緩沖區(qū)數(shù)據(jù)初始化、顯示開機畫面、定時器計數(shù)器工作方式、計數(shù)初值和中斷初始化等。</p><p>  圖4-1 主程序流程框圖</p><p>  4.2 測量時間差、周期子程序</p><p>  測量時間差、周期子程序流程圖如圖4-

72、2所示。需要說明的是,由軟件創(chuàng)建一標志位,當輸入引腳P3.6=0時,CPU軟件標志位置1,而當P3.6=1時,CPU在讀取時間差數(shù)據(jù)后,軟件標志位清零。子程序SUB1完成的功能是:測量3次時間差、周期并保存到內存[11]。因為第一次測量的時間差、周期的起始時刻有一定的隨機性(這是由于軟件啟動定時器/計數(shù)器T0、T1的時刻是隨機的),所以由T0、T1第一次分別測得的周期、時間差是不準確的,故舍棄之。</p><p>

73、;  圖4-2 測量時間差、周期子程序流程框圖</p><p>  4.3 HD7279讀、寫子程序子程序</p><p>  HD7279采用串行通信,其指令功能如表4-1所示。</p><p>  表4-1 HD7279A指令功能表</p><p>  HD7279A的指令結構有三種類型:</p><p>  1、

74、不帶數(shù)據(jù)的純指令。指令的寬度為8位,即微處理器需發(fā)送8個CLK脈沖,其時序圖如4-3。</p><p>  2、帶有數(shù)據(jù)的指令,寬度為16位,即微處理器需發(fā)送16個CLK脈沖。其時序圖如圖4-4。</p><p>  3、讀取鍵盤數(shù)據(jù)指令,寬度為16位,前8位微處理器發(fā)送到HD7279A的指令,后8位為HD7279A返回的鍵盤代碼。其時序圖如4-5。</p><p>

75、;  圖4-3 純指令的時序圖</p><p>  圖4-4帶有數(shù)據(jù)的指令時序圖</p><p>  圖4-5 讀取鍵盤數(shù)據(jù)的指令時序圖</p><p>  HD7279發(fā)送一個字節(jié)的程序具體如下:</p><p>  void send_byte(unsigned char out_byte)</p><p><

76、;b>  { </b></p><p>  unsigned char i;</p><p>  cs=0;//選中HD7279芯片</p><p>  long_delay();</p><p>  for (i=0;i<8;i++)//發(fā)送1個字節(jié),即循環(huán)8次</p>&l

77、t;p><b>  {</b></p><p>  if (out_byte&0x80) dat=1;//發(fā)送數(shù)據(jù)的最高位為1,則發(fā)送位為1</p><p>  else dat=0; //發(fā)送數(shù)據(jù)的最高位為0,則發(fā)送位為0</p><p>  clk=1;</p><p&g

78、t;  short_delay();</p><p><b>  clk=0;</b></p><p>  short_delay();</p><p>  out_byte=out_byte*2;//發(fā)送數(shù)據(jù)左移1位</p><p><b>  dat=0;</b></p>&

79、lt;p><b>  }</b></p><p><b>  }</b></p><p>  HD7279接收一個字節(jié)的程序具體如下:</p><p>  unsigned char receive_byte(void)</p><p><b>  { </b></

80、p><p>  unsigned char i,in_byte;</p><p>  dat=1; //設為輸入狀態(tài)</p><p>  long_delay();</p><p>  for (i=0;i<8;i++)//接收1個字節(jié),即循環(huán)8次</p><p><b>  {

81、 </b></p><p><b>  clk=1;</b></p><p>  short_delay();</p><p>  in_byte=in_byte*2;//接收數(shù)據(jù)左移1位</p><p>  if (dat) in_byte=in_byte|0x01; //如果接收位為1,則將接收數(shù)

82、據(jù)最低位置1</p><p><b>  clk=0;</b></p><p>  short_delay();</p><p><b>  }</b></p><p><b>  dat=0;</b></p><p>  return (in_byte

83、);//返回接收數(shù)據(jù)</p><p><b>  }</b></p><p><b>  5 制作和調試</b></p><p>  由于本系統(tǒng)的設計既有硬件部分又有軟件部分,所以在制作和調試方面存在比較多的問題。</p><p>  5.1 硬件部分的制作和調試</p>

84、<p>  1、首先進行移相網絡的硬件制作和調試。在制作硬件之前要先確定各個部分的電路圖及其中元器件的參數(shù),畫出PROTEL原理圖,然后根據(jù)元器件清單去買元器件。在移相網絡模塊中本來確定的放大器是LF356,由于元件采購較難,最后用到了比較常用到但功能一樣的LM324。在焊接電路時,因為芯片及元件插在板子的正面,而接線卻在背面,有時會發(fā)生接線錯誤的情況,這通常要在焊好整塊電路板進行整體電路測試的情況下才能發(fā)現(xiàn)。</p&g

85、t;<p>  在調試的過程中也出現(xiàn)了不少問題。剛開始調試電路能出來正常的波形,一段時間后,移相網絡A輸出端的波形測不出來。檢查了整個電路的連線,一級一級往下檢查的時候發(fā)現(xiàn)是電位器已經損壞。在調試過程中需要經常性地使用電位器,應該是這個原因致使電位器的損壞。后來重新?lián)Q了一個電位器就能出來正常的結果了。</p><p>  2、接下來對信號處理模塊進行調試。用示波器觀察整形電路、異或門鑒相電路、相位超

86、前滯后電路和二分頻電路的輸出是否正確,確保送入單片機的信號無誤。</p><p>  3、接下來檢查單片機最小系統(tǒng)和HD7279的硬件連接,用萬用表測量線路是否連通,當然這點在后面的軟件測試中要重點關注。</p><p>  5.2 軟件部分的制作和調試</p><p>  軟件調試中單片機程序是在KEIL編譯器下進行,源程序編譯及調試應分段或以子程序為單位逐個進行

87、。</p><p>  首先編寫一段測試程序測試單片機最小系統(tǒng)和HD7279顯示部分的硬件是否正常,這是通過單片機對鍵盤顯示驅動芯片HD7279A進行相應的讀寫操作來實現(xiàn)的。接著再對數(shù)據(jù)處理子程序和數(shù)據(jù)顯示子程序進行調試。</p><p><b>  6 結論</b></p><p>  從上學期確定選題開始到現(xiàn)在,整個設計總共歷時五個多月。在

88、這段時間內,由于考研的事,所以沒有足夠的時間花在做畢業(yè)設計上,非常遺憾,但是我還是花了很多時間收集資料。</p><p>  本系統(tǒng)以單片機AT89S51為核心,構成完備的頻率和相位差測量系統(tǒng)。完成由信號發(fā)生器產生對10Hz~10kHz頻率范圍的信號,經過模擬移相網絡,產生一前一后兩個頻率相同,相位不同的正弦,再經過鑒相器和相位超前或滯后判斷,由單片機對數(shù)據(jù)的計數(shù)和運算,最后得到相位差和頻率。硬件結構簡單,軟件采

89、用匯編語言實現(xiàn),程序簡單可讀寫性強、效率高。與傳統(tǒng)的電路系統(tǒng)相比,其有處理速度快、穩(wěn)定性高、性價比高的優(yōu)點。</p><p>  當然,該設計還有很多不足的地方。比方說,RC模擬移相中,R、C計算出的理論值跟最后所選擇的存在一定的誤差,這跟最后的結果有一定的影響。另外,整個硬件系統(tǒng)不太穩(wěn)定,出來的波形有一定程度的失真。還有,我選擇了用單片機加74系列的芯片來實現(xiàn)相位的測量,雖然結構簡單,但是速度并不太高,而且系統(tǒng)

90、可擴展性不強,如果有機會,以后希望能試試看用可編程邏輯器件CPLD或者FPGA來實現(xiàn)對信號的計數(shù)控制。</p><p>  通過這一段時間的學習,我對整個系統(tǒng)以及其間涉及的知識都有了更深入的了解,對之前學習的理論知識又重新理解,把模電,數(shù)電,單片機等知識都串在一起,成為整個系統(tǒng)。將理論知識應用到實際當中這點是我覺得學到最有用的一點。這次沒有充分的時間做硬件是比較遺憾的,以后若是還有機會,希望能花更多的時間完成整個

91、系統(tǒng)的設計。</p><p><b>  參考文獻</b></p><p>  [1]史國清等. 基于單片機的低頻數(shù)字相位測量儀的設計[J].現(xiàn)代電子技術,2005,8:80~81.</p><p>  [2]John Wiley. Analog and digital electronics for scientists[M]. New Yo

92、rk: Vasses Basil,1985.</p><p>  [3]楊寧等. 簡易低頻數(shù)字式相位測量儀的設計[J].武漢化工學院學報,2006(6),28:75~79.</p><p>  [4]全國大學生電子設計競賽組委會編.全國大學生電子設計競賽獲獎作品精選(2003)[M].2003.</p><p>  [5]姚遠等.低頻數(shù)字式相位差測量儀[J].電子世

93、界,2004(5):39~41.</p><p>  [6]譚會生.EDA技術綜合應用實例與分析[M].西安:西安電子科大出版社,2004.</p><p>  [7]張超,劉開培.基于CPLD的相位差測量儀[J].電子技術,2003(5):13~17.</p><p>  [8]王振紅等.基于FPGA 控制的低頻數(shù)字式相位測量儀研究[J].北方工業(yè)大學信息工程學院

94、,2010(1):76~78.</p><p>  [9]田秀豐等.低頻數(shù)字式相位測量儀的設計[J].無線通信技術,2008,2:55~58.</p><p>  [10]俞斌等.基于DSP的低頻數(shù)字式相位測量儀的設計[J].電子產品世界,2006(12):84~87.</p><p>  [11]姜玉宏等.基于MCS-51的高精度數(shù)字測相方法[J].重慶大學學報(

95、自然科學版),2005,8:28~30.</p><p>  [12] V. V. Tereshkov and V. M. Avanesov. LOW-FREQUENCY DIGITAL PHASE METER[J].Izmeritel naya Tekhnika, No. 4, pp. 48~50, April, 1992.</p><p>  附錄1 系統(tǒng)實物圖</p>

96、<p>  附錄2 實驗原理圖</p><p><b>  附錄3 程序清單</b></p><p>  //該程序是測量相位差和頻率的,相位差和頻率顯示精度為小數(shù)點后1位。</p><p>  #include <reg51.h></p><p>  //***函數(shù)定義***</p&g

97、t;<p>  void long_delay(void); // 長延時</p><p>  void short_delay(void); // 短延時</p><p>  void delay10ms(unsigned char); //

98、延時10mS</p><p>  void write7279(unsigned char, unsigned char); //寫入到HD7279</p><p>  unsigned char read7279(unsigned char); // 從HD7279讀出</p><p>  void send_byte(unsigned ch

99、ar); // 發(fā)送一個字節(jié)</p><p>  unsigned char receive_byte(void); // 接收一個字節(jié)</p><p>  //*** 變量及I/O口定義 ***</p><p>  unsigned char pldigit[6],xwdigit[3];</p&g

100、t;<p>  unsigned char key_number,j,t1counter;</p><p>  unsigned int tmr,plcounter,xwcounter,pinlv[4],xiangwei[4];</p><p>  unsigned int plnumber,xwnumber;</p><p>  unsigned c

101、har pldot,xwdot;</p><p>  sbit cs=P1^4; // cs連P1.4</p><p>  sbit clk=P1^5; // clk連P1.5</p><p>  sbit dat=P1^6; // dat連P1.6</p><p>  sbit key=P1^7; // key連P1.7</p>

102、<p>  sbit test=P3^6;</p><p>  unsigned char counter;</p><p><b>  bit flag;</b></p><p>  //****** HD7279A指令 ******</p><p>  #define CMD_RESET 0xa4<

103、;/p><p>  #define CMD_TEST 0xbf</p><p>  #define DECODE0 0x80</p><p>  #define DECODE1 0xc8</p><p>  #define CMD_READ 0x15</p><p>  #define UNDECODE 0x90</

104、p><p>  #define RTL_CYCLE 0xa3</p><p>  #define RTR_CYCLE 0xa2</p><p>  #define RTL_UNCYL 0xa1</p><p>  #define RTR_UNCYL 0xa0</p><p>  #define ACTCTL 0x98<

105、;/p><p>  #define SEGON 0xe0</p><p>  #define SEGOFF 0xc0</p><p>  #define BLINKCTL 0x88</p><p>  void sub1(void)</p><p><b>  {</b></p><

106、;p>  counter=4;</p><p>  while(counter!=0)</p><p><b>  {</b></p><p>  if(!test) flag=1;</p><p>  else if(flag==1)</p><p><b>  {</b&

107、gt;</p><p>  if(counter!=4)</p><p><b>  {</b></p><p>  xiangwei[4-counter]=TH1*256+TL1;</p><p>  pinlv[4-counter]=TH0*256+TL0;</p><p><b>

108、  }</b></p><p>  TH0=0;TL0=0;</p><p>  TH1=0;TL1=0;</p><p><b>  flag=0;</b></p><p>  counter--;</p><p><b>  }</b></p>

109、<p><b>  }</b></p><p><b>  }</b></p><p>  //*** 主程序 ***</p><p><b>  main()</b></p><p>  { for (tmr=0;tmr<0x2000;tmr++);

110、 // 上電延時</p><p>  send_byte(CMD_RESET); // 復位HD7279A</p><p>  do{ ;}while(key);</p><p>  while(!key);</p><p>  for(j=0;j<6;j++)</p><p&

111、gt;  { pldigit[j]=0;</p><p>  write7279(DECODE0+j,pldigit[j]);</p><p><b>  }</b></p><p>  TMOD=0X11;</p><p><b>  while(1)</b></p><p&g

112、t;<b>  { </b></p><p>  TR1=1;TR0=1;</p><p><b>  sub1();</b></p><p>  TR1=0; TR0=0;</p><p>  plcounter=(pinlv[0]+pinlv[1]+pinlv[2]+pinlv[3])/4;&

113、lt;/p><p>  xwcounter=(xiangwei[0]+xiangwei[1]+xiangwei[2]+xiangwei[3])/4;</p><p>  plnumber=1000000/plcounter;</p><p>  pldot=10000000/plcounter-plnumber*10;</p><p>  pld

114、igit[5]=plnumber/10000;</p><p>  pldigit[4]=(plnumber%10000)/1000;</p><p>  pldigit[3]=(plnumber%1000)/100;</p><p>  pldigit[2]=(plnumber%100)/10;</p><p>  pldigit[1]=(

115、plnumber%10)+0x80;</p><p>  pldigit[0]=pldot;</p><p>  write7279(ACTCTL,0x9f);</p><p>  write7279(DECODE1+7,0x0f);</p><p>  for(j=0;j<6;j++) { write7279(DECODE0+j,p

116、ldigit[j]); }</p><p>  delay10ms(200);</p><p>  xwnumber=360*xwcounter/plcounter;</p><p>  xwdot=3600*xwcounter/plcounter-xwnumber*10;</p><p>  xwdigit[2]=(xwnumber%100

117、)/10;</p><p>  xwdigit[1]=(xwnumber%10)+0x80;</p><p>  xwdigit[0]=xwdot;</p><p>  write7279(ACTCTL,0x87);</p><p>  write7279(DECODE0+7,0x0e);</p><p>  for(

118、j=0;j<3;j++) { write7279(DECODE0+j,xwdigit[j]); }</p><p>  delay10ms(200); </p><p>  /* pldigit[5]=t0high/100; //測試用的,用來顯示T0和T1的計數(shù)值</p><p>  pldigit[4]=(t0high%100)/10

溫馨提示

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

評論

0/150

提交評論