版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 前言3</b></p><p><b> 第一章 概論4</b></p><p> 1.1課題研究的目的和意義4</p><p> 1.2 測量原理4</p><p>
2、 1.3 等精度頻率計計數(shù)測量誤差5</p><p> 1.4 設計思路及技術(shù)指標6</p><p> 第2章 STC89C52單片機系統(tǒng)結(jié)構(gòu)和原理8</p><p> 2.1 STC89C52單片機的簡介8</p><p> 2.2單片機的一般結(jié)構(gòu)9</p><p> 2.3 STC89C52
3、存儲器配置11</p><p> 2.4 引腳功能說明12</p><p> 2.5中斷系統(tǒng)15</p><p> 2.5.1中斷源16</p><p> 2.5.2 中斷控制17</p><p> 第三章 硬件設計18</p><p> 3.1 硬件電路設計18<
4、;/p><p> 3.2 電源電路18</p><p> 3.3 單片機控制部分19</p><p> 3.4 同步門控制電路19</p><p> 3.5計數(shù)電路21</p><p> 3.6 顯示電路23</p><p> 3.6.1 1602的功能簡介23</p&
5、gt;<p> 3.6.2 1602與STC89C52的連接24</p><p> 第四章 軟件設計25</p><p> 4.1 程序流程25</p><p> 4.1.1 系統(tǒng)主程序流程圖25</p><p> 4.1.2 初始化液晶27</p><p> 4.1.3 初始化定時
6、器27</p><p> 4.1.4定時器1溢出中斷流程27</p><p> 4.1.5主循環(huán)28</p><p> 4.1.6 顯示子程序29</p><p> 第5章 系統(tǒng)調(diào)試31</p><p> 5.1 硬件調(diào)試31</p><p> 5.2調(diào)試軟件的介紹
7、31</p><p> 5.2.1 Keil uvision3軟件介紹31</p><p><b> 5.3調(diào)試34</b></p><p> 5.3.1 測頻精度分析34</p><p> 5.3.2實驗測試數(shù)據(jù)35</p><p> 附錄一 完整的C語言源程序40</
8、p><p> 附錄二 系統(tǒng)設計原理圖47</p><p> 附錄三 系統(tǒng)設計PCB圖48</p><p> 附錄四 實物照片49</p><p> 附錄五 元器件清單表50</p><p><b> 前言</b></p><p> 隨著微電子技術(shù)和計算機
9、技術(shù)的迅速發(fā)展,特別是單片微機的出現(xiàn)和發(fā)展,使傳統(tǒng)的電子測量儀器在原理、功能、精度及自動化水平等方面都發(fā)生了巨大的變化,形成一種完全突破傳統(tǒng)概念的新一代測量儀器。頻率計廣泛采用了高速集成電路和大規(guī)模集成電路,使儀器在小型化、耗電、可靠性等方面都發(fā)生了重大的變化。傳統(tǒng)的頻率計測量誤差較大,等精度頻率計以其測量準確、精度高、方便等優(yōu)勢將得到廣泛的應用。</p><p> 傳統(tǒng)的測頻方法有直接測頻法和測周法,在一定的
10、閘門時間內(nèi)計數(shù),門控信號和被測信號不同步,計數(shù)值會產(chǎn)生一個脈沖的誤差。等精度測頻法采用門控信號和被測信號同步,消除對被測信號計數(shù)產(chǎn)生的一個脈沖的誤差。等精度頻率測量方法消除了量化誤差,可以在整個測試頻段內(nèi)保持高精度不變,其精度不會因被測信號頻率的高低而發(fā)生變化。采用單片機作為控制核心的等精度頻率計,可以充分利用單片機軟件編程技術(shù)實現(xiàn)等精度測頻。通過單片機對同步門的控制,使被測信號和標準信號在閘門時間內(nèi)同步測量,為了提高精度,將電子計數(shù)功
11、能轉(zhuǎn)為測周期,采用多周期同步測量技術(shù),實現(xiàn)等精度測量。</p><p><b> 第一章 概論</b></p><p> 本次設計的等精度頻率計是一種用液晶顯示被測信號頻率的測量儀器.它的基本功能是測量方波信號。本文講述了等精度頻率計的工作原理以及其各個組成部分,記述了整個設計過程中對各個部分的設計思路、對各部分電路設計方案的選擇、以及對它們的調(diào)試、對調(diào)試結(jié)果的分
12、析,最終得到實驗結(jié)果。</p><p> 1.1課題研究的目的和意義</p><p> 測頻一直以來都是電子和通訊系統(tǒng)工作的重要手段之一。高精度的測頻儀有著廣泛的市場前景。以往的測頻儀都是在低頻段利用測周期的方法、高頻段用測頻率的方法,其精度往往會隨著被測頻率的下降而下降。</p><p> 基于傳統(tǒng)測頻原理的頻率計的測量精度將隨被測信號頻率的下降而降低,在實
13、用中有較大的局限性,而等精度頻率計不但具有較高的測量精度,而且在整個測頻區(qū)域內(nèi)保持恒定的測試精度。所以等精度頻率計有研究的價值。</p><p><b> 1.2 測量原理</b></p><p> 圖1-1 等精度頻率計測量原理圖</p><p> 基于傳統(tǒng)測頻原理的頻率計的測量精度將隨被測信號頻率的變化而變化。傳統(tǒng)的直接測頻法其測量
14、精度將隨被測信號頻率的降低而降低,測周法的測量精度將隨被測信號頻率的升高而降低,在實用中有較大的局限性,而等精度頻率計不但具有較高的測量精度,而且在整個頻率區(qū)域能保持恒定的測試精度。</p><p> 等精度頻率的測量原理圖1-1 所示。頻率為fx 的被測信號經(jīng)通道濾波、放大、整形后輸入到同步門控制電路和主門1(閘門),晶體振蕩器的輸出信號作為標準信號(時基信號)輸入到主門2。被測信號在同步控制門的作用下,產(chǎn)生
15、一個與被測信號同步的閘門信號,被測信號與標準信號(時基信號)在同步門控制信號的控制下。在同步門打開時通過同步門分別輸入到事件計數(shù)器和時間計數(shù)器的信號輸入端,計數(shù)器開始計數(shù)。同步門關(guān)閉時信號不能通過主門,計數(shù)器停止計數(shù),單片機發(fā)出命令讀入計數(shù)器的數(shù)值,并進行數(shù)據(jù)處理,將處理后的結(jié)果送顯示。</p><p> 等精度頻率測量方法是采用多周期同步測量。如圖1的測量原理圖所示由單片機發(fā)出預置門控信號GATE,GATE的
16、時間寬度對測頻精度影響較少,可以在較大的范圍內(nèi)選擇,即在高頻段時,閘門時間較短;低頻時閘門時間較長。實現(xiàn)了全范圍等精度測量,減少了低頻測量的誤差。</p><p> 在同步門的控制下,一方面保證了被測信號和時基信號的同步測量;另一方面在同步門打開后計數(shù)器并不是馬上計數(shù),而是在被測信號的下一個上升沿開始計數(shù),同步門關(guān)閉后計數(shù)器也不是馬上停止計數(shù),而是在被測信號的下一個上升沿停止計數(shù)。即在實際閘門時間計數(shù),從而提高
17、了測量精度。</p><p> 由于采用D 觸發(fā)器實現(xiàn)的同步門的同步作用,事件計數(shù)器所記錄的Nx 值已不存在誤差的影響,但由于時鐘信號與閘門的開和關(guān)無確定的相位關(guān)系,時間計數(shù)器所記錄的N0 的值仍存在±1 誤差的影響,只是由于時鐘頻率很高,誤差的影響很小。所以在全頻段的測量精度是均衡的,從而實現(xiàn)等精度頻率測量。</p><p> 1.3 等精度頻率計計數(shù)測量誤差</p&
18、gt;<p> 由上述測量原理可知,公式 fx=f0×Nx/N0 成立。設所測頻率的準確值為f x0。在一次測量中,由于fx 計數(shù)的起停時間是由該信號的上升沿控制的,因此,在T 時間內(nèi)對fx 的計數(shù)NX無誤差。在此時間內(nèi)f0 的計數(shù)N0 最多相差一個脈沖,即△N0 ≤±l,則下式成立:</p><p> fx/Nx = f0/N0 (1)</p><p&g
19、t; fx0/NX = f0/(N0+△N0) (2)</p><p> 由此可分別推得: fx= (f0/N0)×Nx (3)</p><p> fx0=[f0/(N0+△N0)]×Nx (4)</p><p> 根據(jù)相對誤差公式有: △f x0/f x0=︱f x0-fx︱/f x0 (5)</p><p>
20、 將式(3)和式(4)代人式(5)整理后可得:△f x0/f x0=︱△N0︱/N0 (6)</p><p> 因為 ︱△N0︱≤l (7)</p><p> 所以 ︱△N0︱/N0≤1/N0 (8)</p><p> 即相對誤差: ︱ δ f︱=△f x0/f x0≤1/N0 (9)</p><p> 其中: N0 = T×
21、;f0 (10)</p><p> 由此可知, 增大Tp 或提高fx,可以增大Nx,減少測量誤差,提高測量精度;相對測量誤差與被測信號頻率的大小無關(guān),僅與取樣時間及時基信號(標準信號)頻率有關(guān),可以實現(xiàn)被測頻帶內(nèi)的等精度測量;取樣時間越長,時基信號頻率越高,分辨率越高。</p><p> 1.4 設計思路及技術(shù)指標</p><p><b> 一 設計
22、方案</b></p><p> 以89C51型單片機為核心,結(jié)合其它的一些芯片一起設計一個等精度頻率計。</p><p> 根據(jù)本設計的要求和方案的設想,總結(jié)一下本設計要做的具體的工作主要有以下幾個方面:</p><p> 第一 ,分析與論證本設計所采用的方案,包括主控系統(tǒng)、顯示系統(tǒng)等的分析以及這些模塊的功能等。在對設計要求充分分析的基礎(chǔ)上,劃分功
23、能模塊,選擇需要的硬件設備。</p><p> 第二 ,收集大量等精度頻率計方面的資料— 包括文字資料和試驗數(shù)據(jù),總結(jié)規(guī)律??梢杂袃煞N方法實現(xiàn)軟件部分。</p><p> ?。ㄒ唬┒〞r1s測信號脈沖次數(shù):用一個定時計數(shù)器做定時中斷,定時1s,另一定時計數(shù)器僅做計數(shù)器使用,初始化完畢后同時開啟兩個定時計數(shù)器,直到產(chǎn)生1s中斷,產(chǎn)生1s中斷后立即關(guān)閉T0和T1(起保護程序和數(shù)據(jù)的作用)取出計
24、數(shù)器寄存器內(nèi)的值就是1s內(nèi)待測信號的下跳沿次數(shù)即待測信號的頻率。用相關(guān)函數(shù)顯示完畢后再開啟T0和T1這樣即可進入下一輪測量。</p><p> (二)測信號正半周期。對于1:1占空比的方波,僅用一個定時計數(shù)器做計數(shù)器,外部中斷引腳作待測信號輸入口,置計數(shù)器為外部中斷引腳控制(外部中斷引腳為“1”切TRx=1計數(shù)器開始計數(shù))。單片機初始化完畢后程序等待半個正半周期(以便準確打開TRx)打開TRx,這時只要INTx
25、(外部中斷引腳)為高電平計數(shù)器即不斷計數(shù),低電平則不計數(shù),待信號從高電平后計數(shù)器終止計數(shù),關(guān)閉TRx保護計數(shù)器寄存器的值,該值即為待測信號一個正半周期的單片機機器周期數(shù),即可求出待測信號的周期:待測信號周期T=2*cnt/(12/fsoc) cnt為測得待測信號的一個正半周期機器周期數(shù);fsoc為單片機的晶振。所以待測信號的頻率f=1/T。</p><p> 第二種方法只適用于1:1占空比的方波信號,要測
26、非1:1占空比的方波信號誤差有點大,所以本設計優(yōu)先使用第一種方法進行設計。</p><p> 第三 ,根據(jù)劃分的功能模塊,編寫操作程序。這也是本設計中很重要的一個工作,確定編程時要盡量做到界面美觀,操作簡便。</p><p> 第四,進行程序調(diào)試,繼續(xù)完善各功能模塊的程序。</p><p><b> 二 技術(shù)指標</b></p>
27、;<p> 1.設計一個4位的頻率計,其頻率范圍在1~9999Hz;</p><p> 2.送入信號應該符合電路要求的脈沖或正統(tǒng)波;</p><p> 3.完成硬件電路的原理設計; </p><p> 4.制作印刷電路板,要求電路布局合理,焊點合格。</p><p> 第2章 STC89C52單片機系統(tǒng)結(jié)構(gòu)和原理&l
28、t;/p><p> 2.1 STC89C52單片機的簡介</p><p> 在本設計中采用了STC89C52單片機作為中心處理系統(tǒng)進行研究。STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于。在單芯片上
29、,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。它與以前的程序存儲器相比具有以下優(yōu)點[2]:</p><p> ·用戶可自己寫入,并根據(jù)需要靈活修改程序;</p><p> ·用電擦除而不是用紫外線擦除,不需要特殊的擦除設備;</p><p> ·寫入與
30、擦除的速度非???。</p><p> 所有的MCS-51系列單片機擁有一個相同的8位微處理器CPU,它由算術(shù)邏輯運算部件ALU、布爾處理器、控制器和工作寄存器組成。</p><p> 算術(shù)邏輯運算部件主要功能是實現(xiàn)數(shù)據(jù)的傳送、數(shù)據(jù)的算術(shù)邏輯運算和布爾量處理,它們包括:</p><p> ·加、減、乘、除算術(shù)運算;</p><p&g
31、t; ·增量(加1)、減量(減1)運算;</p><p><b> ·十進制數(shù)調(diào)整;</b></p><p> ·位置“1”、位置“0”和取反;</p><p> ·與、或、異或等邏輯操作;</p><p><b> ·數(shù)據(jù)傳送操作。</b>
32、;</p><p> 控制器是控制整個單片機系統(tǒng)各種操作的部件,它包括時鐘發(fā)生器、定時控制邏輯、指令寄存器譯碼器、程序存儲器和數(shù)據(jù)存儲器的地址/數(shù)據(jù)傳送控制等。</p><p> 從編程的角度看,MCS-51CPU對用戶開放的寄存器主要有以下幾個:累加器ACC、寄存器B、程序計數(shù)器PC、數(shù)據(jù)指針DPTR(由DPH和DPL兩個8位寄存器組成),程序狀態(tài)寄存器PSW、堆棧指針SP。<
33、/p><p> 2.2單片機的一般結(jié)構(gòu)</p><p> 一、STC89C52單片機內(nèi)部主要性能:</p><p> ?。?)與MCS-51單片機產(chǎn)品兼容</p><p> ?。?)8K字節(jié)在系統(tǒng)可編程Flash存儲器</p><p> ?。?)1000次擦寫周期</p><p> ?。?)全靜
34、態(tài)操作:0Hz~33Hz</p><p> ?。?)三級加密程序存儲器</p><p> ?。?)32個可編程I/O口線</p><p> ?。?)個16位定時器/計數(shù)器</p><p><b> ?。?)八個中斷源</b></p><p> ?。?)全雙工UART串行通道</p>
35、<p> ?。?0)低功耗空閑和掉電模式</p><p> ?。?1)電后中斷可喚醒</p><p> ?。?2)看門狗定時器</p><p><b> ?。?3)雙數(shù)據(jù)指針</b></p><p><b> ?。?4)掉電標識符</b></p><p> 二、S
36、TC89C52單片機結(jié)構(gòu)框圖</p><p> STC89C52單片機采用模塊式的結(jié)構(gòu),有多個存儲空間,每一個存儲空間都留有一定的余量,這種結(jié)構(gòu)為單片機的發(fā)展留有充分的余地,其結(jié)構(gòu)框圖如圖2-1[3]。</p><p> 圖2-1 STC89C52 結(jié)構(gòu)框圖</p><p> 三、引腳圖和邏輯符號圖</p><p> STC89C5
37、2一般為DIP40雙列直插封裝形式的器件,其引腳圖和邏輯符號如圖2-2所示。</p><p> STC89C52的引腳P00~P07、P10~P17、P20~P27、P30~P37為四個8位并行輸入/輸出口,其中P3口、P0口和P2口為雙功能口,可以作為普通輸入/輸出口(第一功能),也可以作為特殊輸入/輸出口。RST為復位輸入線,ALE、、為系統(tǒng)擴展控制線,XTAL1和XTAL2為時鐘電路輸入/輸出線,Vcc、
38、GND為電源輸入線,一般接+5V和地[4]。</p><p> 圖2-2 STC89C52 引腳圖、邏輯符號圖</p><p> 2.3 STC89C52存儲器配置</p><p> STC89C52單片機獨立的存儲空間[5]:</p><p> ·64K字節(jié)程序存儲器空間(0~0FFFFH);</p>&
39、lt;p> ·256字節(jié)內(nèi)部RAM空間(0~0FFH);</p><p> ·128字節(jié)內(nèi)部特殊功能寄存器空間(80H~0FFH);</p><p> ·位尋址空間(0~0FFH);</p><p> ·64K字節(jié)外部數(shù)據(jù)存儲器(RAM/IO)空間(0~0FFFFH)。</p><p>&
40、lt;b> 程序存儲器</b></p><p> MCS-51的程序存儲器空間為64K字節(jié),地址范圍為0000H~FFFFH,其地址指針為16位的程序計數(shù)器PC。0開始的部分程序存儲器(4K,8K,16K,…)可以在單片機的內(nèi)部也可以在單片機的外部,這取決于單片機的類型,并由輸入到引腳的電平控制。</p><p> STC89C52內(nèi)部有4KB的程序存儲器,用于存放
41、程序、原始數(shù)據(jù)或表格。若接Vcc(+5v),則程序計數(shù)器PC的值在0至0FFFH之間時,CPU取指令時訪問內(nèi)部的程序存儲器;PC 值大于0FFFH時,則訪問外部的程序存儲器。如果接Vss(地),則內(nèi)部的程序存儲器被忽略,CPU總是從外部的程序存儲器中取指令。單片機外部擴展的程序存儲器一般為EPROM電路(紫外線可擦除電可編程的只讀存儲器)。MCS-51的引腳輸出外部程序存儲器的讀選通信號,僅當CPU訪問外部程序存儲器時,才有效(輸出負脈
42、沖)。</p><p> MCS-51復位后,程序計數(shù)器PC為0,CPU從地址0開始執(zhí)行程序,即復位入口地址為0。另外,MCS-51的中斷入口也是固定的,程序存儲器地址3、0BH、13H、1BH、23H……單元為中斷入口,MCS-51的中斷源數(shù)目是因型號而異的,中斷入口也有多有少,但總是從地址3開始,每隔8個字節(jié)安排一個中斷入口。</p><p> 表2-1 程序存儲器中的特殊單元&l
43、t;/p><p><b> 二、數(shù)據(jù)存儲器</b></p><p> STC89C52芯片共有256個RAM單元,其中后128單元被專用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫的數(shù)據(jù)。因此通常所說的內(nèi)部數(shù)據(jù)存儲器就是指前128單元,簡稱內(nèi)部RAM。地址范圍為00H~FFH(256B)。是一個多用多功能數(shù)據(jù)存儲器,有數(shù)據(jù)存儲、通用工作寄存器、
44、堆棧、位地址等空間。</p><p> 2.4 引腳功能說明</p><p> STC89C52單片機采用40個引腳雙列直插式封裝,其中有2個專用于主電源引腳,2個外接晶振的引腳,4個控制或與其它電源復位的引腳,以及32條輸入輸出I/O引腳。</p><p> 下面按引腳功能分為4個部分敘述各個引腳的功能[6]。</p><p> 一
45、、電源引腳Vcc和Vss</p><p> 1、Vcc(40腳):芯片工作電源輸入端接+5V電源;</p><p> 2、Vss(20腳):芯片工作接地端。</p><p> 二、外接晶振引腳XTAL1和XTAL2</p><p> 1、XTAL1(19腳):接外部石英晶體的一端。在單片機內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)
46、成采用外部時鐘時,對于HMOS單片機,該引腳接地;對于CHMOS單片機,該引腳作為外部振蕩信號的輸入端。</p><p> 2、XTAL2(18腳):接外部晶體的另一端。在單片機內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。當采用外部時鐘時,對于HMOS單片機,該引腳作為外部振蕩信號的輸入端。對于CHMOS芯片,該引腳懸空不接。</p><p> 圖2-3 內(nèi)部振蕩電路 外部振蕩電路
47、</p><p><b> 三、控制信號引腳</b></p><p> 控制信號或與其它電源復位引腳有RST、ALE、和等4種形式。</p><p> 1、RST(9腳):RST即為RESET,為備用電源,所以該引腳為單片機的上電復位或掉電保護端。當單片機振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機器周期的高電平,就可實現(xiàn)復位操作,使單片機復位到
48、初始狀態(tài)。</p><p> 當VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時,該引腳可接上備用電源VPD(+5V)為內(nèi)部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。</p><p> 2、ALE(30腳):為地址鎖存允許輸出信號/編程脈沖信號輸入端;此信號為外部的擴展大陸低位字節(jié)地址提供一個允許鎖存信號對芯片內(nèi)的EPROM/EEPROM空間固化程序時提供一個編程脈沖信號。當訪問外部存儲器時,
49、ALE信號用來所存地址的低位字節(jié)。在不訪問外部存儲器時,ALE端總是以振蕩頻率的6分頻來周期性地輸出正脈沖信號,故可作為對外的時鐘輸出。在訪問外部數(shù)據(jù)存儲器時,要跳過一個ALE脈沖。</p><p> 在對內(nèi)部具有EPROM的8751單片機進行編程時,此引腳用于輸入編程脈沖。</p><p> 3、 (29腳):片外程序存儲器讀選通輸出端,低電平有效。在CPU取指令或常數(shù)時,用于選通外
50、部程序存儲器。當從外部程序存儲器讀取指令或常數(shù)期間,每個機器周期兩次有效,以通過數(shù)據(jù)總線口讀回指令或常數(shù)。當訪問外部數(shù)據(jù)存儲器期間,信號將不出現(xiàn)。</p><p> 4、(31腳):為訪問外部程序儲器控制信號/編程電壓輸入端,低電平有效。當端保持高電平時,片內(nèi)存儲器有效,單片機訪問片內(nèi)程序存儲器4KB(MCS—52子系列為8KB)。若超出該范圍時,自動轉(zhuǎn)去執(zhí)行外部程序存儲器的程序。當端保持低電平時,無論片內(nèi)有無
51、程序存儲器,均只訪問外部程序存儲器。</p><p> 四、輸入/輸出(I/O)引腳</p><p> 1、P0口(39腳~22腳):P0口是開漏雙向口可以寫為1使其狀態(tài)為懸浮用作高阻輸入。P0也可以在訪問外部程序存儲器時作地址的低字節(jié),在訪問外部數(shù)據(jù)存儲器時作數(shù)據(jù)總線,此時通過內(nèi)部強上拉輸出1。</p><p> 2、P1口(1腳~8腳):P1.0~P1.7
52、統(tǒng)稱為P1口,可作為準雙向I/O接口使用。對于MCS—52子系列單片機,P1.0和P1.1還有第2功能:P1.0口用作定時器/計數(shù)器2的計數(shù)脈沖輸入端T2;P1.1用作定時器/計數(shù)器2的外部控制端T2EX。對于EPROM編程和進行程序校驗時,P1口接收輸入的低8位地址。</p><p> 3、P2口(21腳~28腳):P2口是帶內(nèi)部上拉的雙向I/O,口向P2口寫入1時,P2口被內(nèi)部上拉為高電平,可用作輸入口當作
53、為輸入腳時,被外部拉低的P2 口會因為內(nèi)部上拉而輸出電流(見DC 電氣特性)。在訪問外部程序存儲器和外部數(shù)據(jù)時分別作為地址高位字節(jié)和16 位地址(MOVX @DPTR),此時通過內(nèi)部強上拉傳送1。當使用8位尋址方式(MOV@Ri)訪問外部數(shù)據(jù)存儲器時,P2口發(fā)送P2特殊功能寄存器的內(nèi)容。</p><p> 4、P3口(10腳~17腳):P3口是帶內(nèi)部上拉的雙向I/O口,向P3口寫入1時,P3口被內(nèi)部上拉為高電平
54、,可用作輸入口,當作為輸入腳時,被外部拉低的P3 口會因為內(nèi)部上拉而輸出電流(見DC 電氣特性)。它為雙功能口,可以作為一般的準雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見表2-2:</p><p> 表2-2 單片機P3口管腳含義</p><p> 綜上所述,STC89C52系列單片機納為以下兩點:&
55、lt;/p><p> 1) 單片機功能多,引腳數(shù)少,因而許多引腳具有第2功能;</p><p> 2) 單片機對外呈3總線形式,由P0、P2口組成16位地址總線;由P0口分時復用作為數(shù)據(jù)總線。</p><p><b> 2.5中斷系統(tǒng)</b></p><p> 現(xiàn)代的計算機都具有實時處理功能,能對外界異步發(fā)生的事件作
56、出及時的處理,這是依靠它們的中斷來實現(xiàn)的。所謂中斷是指中央處理器CPU在處理某件事情的時候,外部發(fā)生了某一事件(如定時器計數(shù)溢出),請求CPU迅速去處理,CPU暫時中斷當前的工作,轉(zhuǎn)入處理所發(fā)生的事件,處理完以后,再回到原來中斷的地方,繼續(xù)原來的工作。這樣的過程就稱為中斷。實現(xiàn)這種功能的部件成為中斷系統(tǒng)。產(chǎn)生中斷的請求源就成為中斷源。最典型的單片機有五個中斷源,分別是外部中斷0、定時器T0、外部中斷1、定時器T1、和串行口中斷。在這次的
57、編程中就用到了這些中斷。這五個中斷的入口地址各不相同,列表如表2-3[7]:</p><p> 表2-3 中斷的入口地址</p><p> 典型的單片機可以實現(xiàn)二級中斷服務程序嵌套,每個中斷源可以編程為高級中斷,或低優(yōu)先級中斷,允許或禁止向CPU請求中斷。與中斷系統(tǒng)有關(guān)的特殊功能寄存器有中斷允許寄存器IE、中斷優(yōu)先級控制寄存器IP、中斷源寄存器(TCON,SCON中的有關(guān)位)。<
58、/p><p><b> 2.5.1中斷源</b></p><p> 89C52單片機的八個中斷源其中的五個是:2個INT0、INT1(P3.2,P3.3)上輸入的外部中斷源;3個內(nèi)部中斷源,它們是定時器/計數(shù)器T0、T1的溢出中斷源和串行口的發(fā)送接受中斷。這些中斷源分別鎖在TCON、SCON的相應位中[8]。</p><p><b>
59、 一、外部中斷源</b></p><p> INT0、INT1上輸入的兩個外部中斷源和它們的觸發(fā)方式控制位所存在特殊寄存器TCON的低四位,TCON的高四位為T1、T0的運行控制位和溢出標志位:</p><p> 表2-4 外部中斷源</p><p> IE1 外部中斷1請求源(INT1,P3.3)標志。IE1=1,外部中斷1正向CPU請求中
60、斷,當CPU響應該中斷時由硬件“0”IE1(邊沿觸發(fā)方式)。</p><p> IT1 外部中斷1觸發(fā)方式控制位。IT1=0,外部中斷1位電平觸IT1=1,外</p><p> 部中斷1位邊沿觸發(fā)方式。</p><p> IE0 外部中斷0請求源(INT0,P3.2)標志。IE0=1外部中斷0向CPU請求中斷,當CPU響應中斷時,由硬件清“0”IE0(
61、邊沿觸發(fā)方式)。</p><p> IT0 外部中斷0觸發(fā)方式控制位。IT0=0,外部中斷0為電平觸發(fā)方式,IT0=1,外部中斷0為邊沿觸發(fā)方式。其功能和IT1相同。 </p><p><b> 二、內(nèi)部中斷源</b></p><p> 定時器/計數(shù)器T0的溢出中斷TF0(TCON.5)
62、:T0被允許計數(shù)以后,從初值開始加1計數(shù),當產(chǎn)生溢出時置“1”IF0,向CPU請求中斷,一直保護到CPU響應該中斷時才由硬件清零(也可以由查詢程序清零)。</p><p> 定時器/計數(shù)器T1的溢出中斷TF1(TCON.7):其功能與TF0相同。</p><p> 串行口中斷:串行口的接收中斷RI(SCON.0)和發(fā)送中斷TI(SCON.1)邏輯或以后作為內(nèi)部的一個中斷源。</p
63、><p> 2.5.2 中斷控制</p><p> 單片機對中斷源的開放或屏蔽,每個中斷源是否允許中斷,89C51是由內(nèi)部的中斷允許寄存器IE控制的(IE為特殊功能寄存器,它的字節(jié)地址為A8H),其格式如表2-5[9]:</p><p> 表2-5中斷控制格式</p><p> EA CPU的中斷開放標志.EA=1,CPU 開放中斷;E
64、A=0,CPU屏蔽所有的中斷申請。</p><p> ES 串行口中斷允許位。ES=1,允許串行口中斷;ES=0,禁止串行口中斷。</p><p> ET1 定時器/計數(shù)器T1的溢出中斷允許位。 ET1=1,允許T1中斷;ET1=0,禁止T1中斷。</p><p> EX1 外部中斷1中斷允許位。EX1=1允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。
65、</p><p> ET0 定時器/計數(shù)器T0溢出中斷允許位。 ET0=1,允許T0中斷;ET0=0,禁止T0中斷。</p><p> EX0 外部中斷1中斷允許位。EX0=1,允許外部中斷0中斷;EX1=0,禁止外部中斷0中斷。</p><p><b> 第三章 硬件設計</b></p><p> 3.1 硬件
66、電路設計</p><p> 硬件電路主要分為電源電路、單片機控制部分、同步門控制電路、計數(shù)和液晶顯示電路。電路采用Protell 99 se 是電路設計中功能比較強大軟件,本設計用其原理圖和PCB圖。</p><p><b> 3.2 電源電路</b></p><p> 此次設計的電源需求,共需要用到+5V,+15V,-15V三種電壓,其
67、中+15V,-15V直接由外部電源直接產(chǎn)生提供,而+5V電源自行設計,主要提供給AT89C52單片機使用,直接設計在電路當中,原理見圖3-1:</p><p> 圖 3-1 +5V電源電路</p><p> 在圖3-1中,首先電源電壓220V經(jīng)過變壓器變壓產(chǎn)生一個18V左右的交流電壓,再經(jīng)過橋式整流電路和2200uF濾波電容C4的濾波產(chǎn)生一個20V左右的直流電壓,再經(jīng)7805三端穩(wěn)壓塊
68、產(chǎn)生一個+5V的電壓,再次經(jīng)過1000uF濾波電容C5再次濾波,+5V電壓就很穩(wěn)定。</p><p> 此外,在圖3-1中使用的LM7805是正電壓穩(wěn)壓集成電路,為固定輸出+5V輸出穩(wěn)壓集成電路(采取特殊方法也可使輸出高于5 V),最大輸出電流為1 A。具有體積小、集成度高、線性調(diào)整率和負載調(diào)整率高,在線性電源時代占領(lǐng)了很大市場。</p><p> 3.3 單片機控制部分</p&
69、gt;<p> STC89C52單片機為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3, MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。</p><p> 單片機的最小系統(tǒng)如下圖2-11所示,18引腳和19引腳接時鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的
70、另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第9引腳為復位輸入端,接上電容,電阻及開關(guān)后夠上電復位電路,20引腳為接地端,40引腳為電源端。如圖3-2所示:</p><p> 圖3-2 單片機控制部分</p><p> 3.4 同步門控制電路</p><p> 同步門控制電路主要由D 觸發(fā)器74LS74(同步門控制)、六反相器74LS04 和二輸入或非門74LS
71、02 組成(主門1、主門2)。主門1 控制被測信號fx 的通過,主門2 控制時鐘信號f0 的通過,兩門的啟閉都由同步門控制電路控制。</p><p> 被測信號在同步控制門的作用下,產(chǎn)生一個與被測信號同步的閘門信號,被測信號與標準信號(時基信號)在同步門控制信號的控制下。在同步門打開時通過同步門分別輸入到事件計數(shù)器和時間計數(shù)器的信號輸入端,計數(shù)器開始計數(shù)。同步門關(guān)閉時信號不能通過主門,計數(shù)器停止計數(shù),單片機發(fā)出
72、命令讀入計數(shù)器的數(shù)值,并進行數(shù)據(jù)處理,將處理后的結(jié)果送顯示。</p><p> 在同步門的控制下,一方面保證了被測信號和時基信號的同步測量;另一方面在同步門打開后計數(shù)器并不是馬上計數(shù),而是在被測信號的下一個上升沿開始計數(shù),同步門關(guān)閉后計數(shù)器也不是馬上停止計數(shù),而是在被測信號的下一個上升沿停止計數(shù)。即在實際閘門時間計數(shù),從而提高了測量精度。具體電路圖如圖3-3所示:</p><p> 圖
73、3-3(a) 同步門74ls74電路圖</p><p> 圖3-3(b)同步門74ls02、74ls04電路圖</p><p> 74LS74 簡要說明</p><p> 74LS74 為帶預置和清除端的兩組 D 型觸發(fā)器</p><p><b> 引出端符號</b></p><p>
74、1CP、2CP 時鐘輸入端</p><p> 1D、2D 數(shù)據(jù)輸入端</p><p> 、、1Q、2Q 輸出端</p><p> CLR1、CLR2 直接復位端(低電頻有效)</p><p> PR1、PR2 直
75、接置位端(低電平有效)</p><p> 圖3-4(a) 外接管腳圖 圖3-4(b) 邏輯圖</p><p><b> 3.5計數(shù)電路</b></p><p> 單片機選用STC89C52,其中P1.0 用于控制同步門D 觸發(fā)器74LS74 產(chǎn)生同步的閘門信號,P1.2 用于對74LS393 組成的計
76、數(shù)器清零,一次計數(shù)完成后單片機通過控制兩片74LS244 讀取被測信號與標準信號的低8 位計數(shù)值,高位計數(shù)值在單片機的T0、T1 中。然后單片機對計數(shù)值進行運算處理,并送出顯示。</p><p> 計數(shù)器包括事件計數(shù)器和時間計數(shù)器兩部分,它們是兩組完全相同的計數(shù)電路。分別由前后兩級組成。前級由雙4 位異步計數(shù)器74LS393 級聯(lián)構(gòu)成八位二進制計數(shù)器;后級由STC89C52 單片機內(nèi)的定時/計數(shù)器構(gòu)成十六位二進
77、制計數(shù)器。標準信號部分采用10MHz 石英晶體振蕩器來提供測量所需要的標準脈沖信號。</p><p> 由于采用D 觸發(fā)器實現(xiàn)的同步門的同步作用,事件計數(shù)器所記錄的Nx 值已不存在誤差的影響,但由于時鐘信號與閘門的開和關(guān)無確定的相位關(guān)系,時間計數(shù)器所記錄的N0 的值仍存在±1 誤差的影響,只是由于時鐘頻率很高,誤差的影響很小。所以在全頻段的測量精度是均衡的,從而實現(xiàn)等精度頻率測量。具體電路圖如圖3-5
78、所示:</p><p> 圖3-5 計數(shù)電路</p><p> 74LS393 簡要說明:</p><p> 74LS393為兩個4位二進制計數(shù)器,異步清零端(1clear,2clear)為高電平。不管時鐘端1A,2A狀態(tài)如何,即可以完成清除功能。當1clear,2clear為低電平時,1A,2A脈沖下降沿作用下進行計數(shù)操作。</p><
79、p><b> 引出端符號:</b></p><p> 1A、2A 時鐘輸入端(下降沿有效)</p><p> 1clear,2clear 異步清零端</p><p> 1Qa~1Qd、2Qa~2Qb 輸出端</p><p> 圖3-6(
80、a)74LS393外接管腿圖 圖3-6(b)74LS393邏輯圖</p><p><b> 3.6 顯示電路</b></p><p> 顯示器是最常用的輸出設備,其種類繁多,但在單片機系統(tǒng)設計中最常用的是發(fā)光二極管顯示器(LED)和液晶顯示器(LCD)兩種。由于這兩種顯示器結(jié)構(gòu)簡單,價格便宜,接口容易實現(xiàn),因而得到廣
81、泛的應用,本次方案采用了1602液晶顯示器。</p><p> 3.6.1 1602的功能簡介</p><p> 1.40通道點陣LCD 驅(qū)動;</p><p> 2.可選擇當作行驅(qū)動或列驅(qū)動;</p><p> 3.輸入/輸出信號:輸出,能產(chǎn)生20×2個LCD驅(qū)動波形;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號,偏壓(V1-
82、V6);</p><p> 4.通過單片機控制將所測的頻率信號讀數(shù)顯示出來;</p><p> 具體引腳功能見表3-1</p><p> 3-1 1602引腳和指令功能</p><p> 3.6.2 1602與STC89C52的連接</p><p><b> 圖3-7 顯示電路</b>&
83、lt;/p><p> 圖3-7中為單片機與1602的連接圖。其中,D0-D7為1602數(shù)據(jù)口,分別接單片機的P0.0-P0.7口;單片機的P2.0口接1602的復位腳RS;單片機的P2.1口接1602的讀/寫控制腳RW;單片機的P2.2口接1602的使能端E;通過一個10K的電位器調(diào)整VEE電壓改變液晶對比度,對比度調(diào)節(jié)不當時會產(chǎn)生“鬼影”。通過這種連接方式,就可以實現(xiàn)單片機對1602控制顯示測得頻率數(shù)值。<
84、/p><p><b> 第四章 軟件設計</b></p><p> 本章節(jié)主要介紹了電路的軟件設計,整個系統(tǒng)由主程序,中斷服務程序模塊、循環(huán)和顯示子程序模塊組成,本文將對這幾個子模塊的設計做介紹。</p><p><b> 4.1 程序流程</b></p><p> 4.1.1 系統(tǒng)主程序流程圖
85、</p><p> 系統(tǒng)軟件的設計主要是和硬件電路相結(jié)合,正確地實現(xiàn)等精度測量。整個系統(tǒng)軟件的設計采用了自頂向下的模塊化的結(jié)構(gòu)方式,將各個功能分成獨立模塊,由系統(tǒng)的程序統(tǒng)一管理執(zhí)行。它主要完成各種功能,如測量、 數(shù)據(jù)運算、顯示等。如圖4-1所示為頻率測量主程序流程圖,在計數(shù)前對計數(shù)器清零。然后,發(fā)出命令打開閘門進入閘門時間,計數(shù)器在閘門時間內(nèi)計數(shù)。延時子程序結(jié)束后,發(fā)出命令關(guān)閉閘門使計數(shù)器停止計數(shù);單片機再依照
86、程序讀取計數(shù)器的值,并與單片機內(nèi)部計數(shù)器所計的值合并在一起。由公式可知,即被測頻率fx=f0×Nx/N0 來進行運算,由于精度要求,Nx 和N0 都由24 位二進制數(shù)來計數(shù)。</p><p> 圖4-1 主程序流程圖</p><p> 4.1.2 初始化液晶</p><p> 圖4-2 液晶初始化流程圖</p><p> 4
87、.1.3 初始化定時器</p><p> 圖4-3初始化定時器</p><p> 4.1.4定時器1溢出中斷流程</p><p> 本設計中通過定時器1來定時1s,用于標準信號和待測信號的計數(shù)。通過設定初始值來使定時器T1一次溢出中斷為50ms。在此通過一個全局變量flag,來判斷是否達到1s,每到50msflag加1,當flag==20時,所定時時間為20*
88、50ms=1s。</p><p> 圖4-2 中斷子程序流程圖</p><p><b> 4.1.5主循環(huán)</b></p><p> 主循環(huán)中,先對標準信號計數(shù),判斷flag是否滿20,如果滿20則代表計數(shù)滿1s,此時計算計數(shù)器T0中數(shù)值,然后再加上P1口的數(shù)據(jù),則為此次計數(shù)值。下次計數(shù)為對待測信號的計數(shù),與標準信號計數(shù)原理相同。最后將兩
89、次信號比較,得到待測信號的頻率值。</p><p> 圖4-3 主循環(huán)流程圖</p><p> 4.1.6 顯示子程序</p><p> 顯示子程序?qū)⒋娣旁陲@示緩沖區(qū)的頻率或周期值送往液晶上顯示出來。由于1602液晶可以顯示32各個字符,所以只顯示頻率的話有點浪費。在本設計中,將液晶的第一行分別顯示了TH0、TL0、P1的值,用于調(diào)試。第二行全部用于顯示頻率
90、,可以最低顯示到個位,精度較高。</p><p> 在編程應用1602液晶驅(qū)動時,只需要根據(jù)圖4-4的流程圖調(diào)用相關(guān)函數(shù)既可完成顯示模塊的所有功能,對于本課題所用的1602驅(qū)動函數(shù),其中的液晶初始化函數(shù)已經(jīng)包括了初始化和清屏兩大功能,此外,在指定位置顯示一串字符的函數(shù)也已經(jīng)包括了設置顯示位置和顯示字符串的兩大功能,因為在本課題的實際編程中對于液晶顯示模塊的設計相對來說比較簡單。</p><p
91、> 圖4-4 1602液晶顯示基本流程</p><p> 第5章 系統(tǒng)調(diào)試</p><p><b> 5.1 硬件調(diào)試</b></p><p> 硬件電路主要包括模擬電路部分,單片機外圍電路及顯示電路,在聯(lián)調(diào)之前必須要驗證這幾個部分能正常工作。</p><p> 把仿真機的仿真頭插到電路板單片機的插槽
92、中,接通仿真機和電路板的電源,然后打開界面輸入顯示子程序進行編譯、加載調(diào)試。如果能在液晶上顯示正確的數(shù)字,則單片機與顯示部分能夠正常工作。經(jīng)過反復的調(diào)試與修改,單片機部分驗證完畢。</p><p> 模擬電路部分分低頻和高頻兩部分,分別進行調(diào)試。低頻部分通過輸入一個0到10MHz的信號,幅度為30mV,通過示波器觀察其輸出,可以看出其輸出幅度為3.7V,實現(xiàn)了放大功能。高頻部分通過輸入一個大于1MHz的高頻信號
93、,幅度在50mV左右,可以發(fā)現(xiàn)其輸出變?yōu)榉葹?V左右的方波,實現(xiàn)了放大功能。</p><p> 5.2調(diào)試軟件的介紹</p><p> 5.2.1 Keil uvision3軟件介紹</p><p><b> 一、概述</b></p><p> Keil uvision3 是美國Keil Software 公司
94、出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。</p><p> Keil uvision3 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼
95、很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。</p><p><b> 二、工作界面</b></p><p> 首先使用keil新建一個工程,設置好各個選項。然后新建一個c文件,并編寫所有源代碼然后編譯,查錯,直到編譯完全通過為止,下圖就是編譯通過后的界面。</p><p> 圖5-1 有關(guān)編譯、連接、項目設置的工具條<
96、;/p><p> 圖 5-2正確編譯、連接之后的結(jié)果</p><p> 在設置好工程后,即可進行編譯、連接。選擇菜單Project->Build target,對當前工程進行連接,如如果當前文件已修改,軟件會先對該文件進行編譯,然后再連接以產(chǎn)生目標代碼:如果選擇Rebuild All target files將會對當前工程中的所有文件重新進行編譯然后再連接,確保最終產(chǎn)生的目標代碼是最
97、新的,而Translate…項則僅對該文件進行編譯,不進行連接。</p><p> 以上操作也可以通過工具欄按鈕直接進行。圖5-1是有關(guān)編譯、設置的工具欄按鈕,從左到右分別是:編譯、連接、全部重建、停止編譯和對工程進行設置。</p><p> 編譯過程中的信息將出現(xiàn)在輸出窗口的Build 頁中,如果源程序中有語法錯誤,會有錯誤報告出現(xiàn),雙擊該行,可以定位到出錯的位置,對源程序反復修改之
98、后,最終會得到如圖5-2所示的結(jié)果,提示獲得了名為exam 1.hex的文件,該文件即可被編程器讀入并寫到芯片中,同時還產(chǎn)生了一些其它相關(guān)的文件,可被用于Keil 的仿真與調(diào)試,這時可以進入下一步調(diào)試的工作。</p><p> 三、 調(diào)試主要方法和技巧</p><p><b> 1.常用調(diào)試命令</b></p><p> 在對工程成功進行
99、匯編、連接以后,按Ctrl+5或者使用菜單Debug->Start/Stop Debug Session即可進入調(diào)試狀態(tài),K eil 內(nèi)建立一個仿真CPU來模擬執(zhí)行程序,該仿真CPU功能強大,可以在沒有硬件和仿真機的情況下進行程序的調(diào)試。</p><p> 進入調(diào)試狀態(tài)后,界面與編輯狀態(tài)相比有明顯的變化,Debug菜單項中原來不能用的命令現(xiàn)在可以使用了,工具欄會多出一個用于運行和調(diào)試的工具條,Debug
100、菜單上的大部分命令可以在此找到對應的快捷按鈕,從左到右依次是復位、運行、暫停、單步、過程單步、執(zhí)行完當前子程序、運行到當前行、下一狀態(tài)、打開跟蹤、觀察跟蹤、反匯編窗口、觀察窗口、代碼作用范圍分析、性能分析、工具按鈕等命令。</p><p> 學習程序調(diào)試,必須明確兩個重要的概念,即單步執(zhí)行與全速運行。全速執(zhí)行是指一行程序執(zhí)行完以后緊接著執(zhí)行下一行程序,中間不停止,這樣程序執(zhí)行的速度很快,并可以看到該段程序執(zhí)行的
101、總體效果,即最終結(jié)果正確還是錯誤,但如果程序有錯,則難以確認錯誤出現(xiàn)在哪些程序行。單步執(zhí)行是每次執(zhí)行一行程序,執(zhí)行完改行程序以后即停止,等待命令執(zhí)行下一行程序,此時可以觀察該行程序執(zhí)行完以后得到的結(jié)果,是否與我們寫該行程序所想得到的結(jié)果相同,借此可以找到程序中的問題所在。程序調(diào)試中,這兩種運行方式都要用到。</p><p><b> 2. 在線匯編</b></p><p
102、> 在進入Keil的調(diào)試環(huán)境以后,如果發(fā)現(xiàn)程序有錯,可以直接對源程序進行修改,但是要使修改后的代碼起作用,必須先退出調(diào)試環(huán)境,重新進行編譯、連接后再次進入調(diào)試,如果只是需要對某些 進行測試,或僅需要對源程序進行臨時的修改,這樣的過程未免有些麻煩,為此Keil軟件提供了在線匯編的能力,將光標定位于需要修改的程序行上,用菜單Debug->Inline Assambly….即可出現(xiàn)如圖5-3的對話框,在Enter New后面的編
103、輯框內(nèi)直接輸入需要更改的程序語句,輸入完后鍵入回車將自動指向下一條語句,可以繼續(xù)修改,如果不再需要修改,可以點擊右上角的關(guān)閉按鈕關(guān)閉窗口。</p><p> 圖5-3在線匯編窗口</p><p><b> 3. 斷點設置</b></p><p> 程序調(diào)試時,一些程序行必須滿足一定的條件才能被執(zhí)行到,這些條件往往是異步發(fā)生或難以預先設定的
104、,這類問題使用單步執(zhí)行的方法是很難調(diào)試的,這時就要使用到程序調(diào)試中的另一種非常重要的方法-斷點設置。斷點設置的方法有多種,常用的是在某一程序行設置斷點,設置好斷點后可以全速運行程序,一旦執(zhí)行到該程序行停止,可在此觀察有關(guān)變量值,以確定問題所在。在程序行設置/移除斷點的方法是將光標定位于需要設置斷點的程序行,使用菜單Debug->Insert/Remove BreakPoint設置或移除斷點:Debug->Enable/Dis
105、able BreakPoint 是開啟或暫停光標所在行的斷點功能:Debug->Disable All Breakpoint 暫停所有斷點:Debug->Kill All BreakPoint 清除所有的斷點設置。這些功能也可以用工具條上的快捷按鈕進行設置。</p><p><b> 5.3調(diào)試</b></p><p> 5.3.1 測頻精度分析<
106、;/p><p> 由第一章所述的測量原理可知,本系統(tǒng)的測頻公式為:Fx = ( Fs×Nx ) / Ns</p><p><b> 其誤差分析如下:</b></p><p> 設所測頻率值為Fx,其真實值為Fxe,標準頻率為Fs。在一次測量中,由于Fx計數(shù)的起停時間都是由該信號的上跳沿觸發(fā)的,在Tpr時間內(nèi)Fx的計數(shù)Nx無誤差;此時
107、內(nèi)的計數(shù)Ns最多相差一個脈沖,即|⊿Ns|≤1則:</p><p> Fx/Nx=Fs/Ns</p><p> Fxe/Nx=Fs/(Ns+⊿Ns)</p><p><b> 由此推得:</b></p><p> Fx=(Fs/Ns)×Nx</p><p> Fxe=[Fs/(
108、Ns+⊿Ns)] ×Nx</p><p> 根據(jù)相對誤差公式有:</p><p> ⊿Fxe/Fxe=|Fxe-Fx|/Fxe</p><p><b> 可以得:</b></p><p> ⊿Fxe/Fxe=|⊿Ns|/Ns</p><p> ∵|⊿Ns|≤1 ∴|⊿Ns|/N
109、s≤1/Ns</p><p> 即相對誤差⊿Fxe/Fxe≤1/Ns</p><p> 又Ns=Tpr×Fs</p><p><b> 由此可知:</b></p><p> ?。?)相對測量誤差與頻率無關(guān);</p><p> ?。?)增大Tpr或提高Fs,可以增大Ns,減少測量誤差
110、,提高測量精度;</p><p> (3)本測頻系統(tǒng)的測量精度與預置門寬度和標準頻率有關(guān),與被測信號的頻率無關(guān)。</p><p> 在預置門時間和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,本測頻系統(tǒng)所采用的測量方法的測量精度不變。為了恒定測量精度,可采用高頻率穩(wěn)定度和高精度晶體振蕩器作標準頻率發(fā)生器。</p><p> 5.3.2實驗測試數(shù)據(jù)</p
111、><p> 整個系統(tǒng)比較復雜,因此我們采用自底向上的調(diào)試方法,也就是先進行各個單元電路的軟件仿真和硬件調(diào)試,在各個單元電路調(diào)試好后再進行系統(tǒng)調(diào)試,最后進行硬件的編程固化及系統(tǒng)的組裝。程序在KEIL3上調(diào)試通過。并使用目前較為流行的C語言編寫。既方便復雜的數(shù)學運算,判斷語句的使用又靈活,不用考慮推棧情況,所以相對與匯編漏洞出現(xiàn)較少。</p><p> 經(jīng)軟件的調(diào)試—修改—再調(diào)試,如此反復,排
112、除各種故障最終基本完成了設計所要求的任務。由單片機內(nèi)部定時器/計數(shù)器構(gòu)成基本測量電路,外加整形和分頻電路,由系統(tǒng)軟件設計可以測出1HZ-9999HZ的量程范圍,使用的動態(tài)顯示測量時會出現(xiàn)閃爍現(xiàn)象,但顯示數(shù)值準確,穩(wěn)定時顯示不閃爍。測試由信號源發(fā)出的頻率時,測量值如表5-1所示。測量條件:方波,幅度為Vpp=10V。</p><p> 表5-1:SP1641B型函數(shù)信號發(fā)生器發(fā)出的信號測量結(jié)果</p>
113、<p> 從測試結(jié)果看,測量TTL電平的方波時,精度還是很高的。通過表格中的數(shù)據(jù),可以看出用單片機STC89C52制作的等精度頻率計測量值與實際值是相吻合的,平均相對誤差約在0.01%左右。只要存在的誤差是在設計允許的范圍內(nèi)(0%~1%),我們就認為設計的頻率計在測量頻率上是準確的。我們設計制作的頻率計能夠達到這個標準,但也存在一定的誤差,可能的原因是低頻段采用的分頻比較小。</p><p>&l
114、t;b> 參考文獻</b></p><p> [1] 凌玉華等.單片機原理與應用系統(tǒng)設計[M].中南大學出版社,2006.</p><p> [2] 閻石. 數(shù)字電子技術(shù)基礎(chǔ)[M].高等教育出版社,2006.</p><p> [3] 徐志軍,徐光輝.CPLD/FPGA的開發(fā)與應用 [M].電子工業(yè)出版社, 2002.</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 等精度頻率計
- 畢業(yè)設計--基于fpga的等精度頻率計的設計
- 基于fpga等精度頻率計設計
- 外文翻譯----等精度頻率計
- 基于fpga的等精度頻率計設計
- 基于fpga的等精度頻率計設計
- 頻率計畢業(yè)設計
- 基于fpga的等精度頻率計的設計
- 基于fpga的等精度頻率計的設計
- 畢業(yè)論文--基于fpga的等精度頻率計的設計
- 畢業(yè)論文--基于fpga的等精度頻率計的設計
- 數(shù)字頻率計課程設計說明書
- 基于fpga的等精度頻率計設計與實現(xiàn)
- 畢業(yè)設計---采用單片計設計頻率計
- 數(shù)字頻率計畢業(yè)設計-- 數(shù)字頻率計設計
- 數(shù)字頻率計畢業(yè)設計-- 數(shù)字頻率計設計
- eda數(shù)字頻率計課程設計說明書
- 基于單片機的等精度頻率計設計 (1)
- 基于at89c51的頻率計設計說明書
- 等精度數(shù)字測量數(shù)字頻率計的設計
評論
0/150
提交評論