等精度頻率計(jì)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
已閱讀1頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目錄</b></p><p><b>  前言3</b></p><p><b>  第一章 概論4</b></p><p>  1.1課題研究的目的和意義4</p><p>  1.2 測(cè)量原理4</p><p>

2、  1.3 等精度頻率計(jì)計(jì)數(shù)測(cè)量誤差5</p><p>  1.4 設(shè)計(jì)思路及技術(shù)指標(biāo)6</p><p>  第2章 STC89C52單片機(jī)系統(tǒng)結(jié)構(gòu)和原理8</p><p>  2.1 STC89C52單片機(jī)的簡(jiǎn)介8</p><p>  2.2單片機(jī)的一般結(jié)構(gòu)9</p><p>  2.3 STC89C52

3、存儲(chǔ)器配置11</p><p>  2.4 引腳功能說(shuō)明12</p><p>  2.5中斷系統(tǒng)15</p><p>  2.5.1中斷源16</p><p>  2.5.2 中斷控制17</p><p>  第三章 硬件設(shè)計(jì)18</p><p>  3.1 硬件電路設(shè)計(jì)18<

4、;/p><p>  3.2 電源電路18</p><p>  3.3 單片機(jī)控制部分19</p><p>  3.4 同步門(mén)控制電路19</p><p>  3.5計(jì)數(shù)電路21</p><p>  3.6 顯示電路23</p><p>  3.6.1 1602的功能簡(jiǎn)介23</p&

5、gt;<p>  3.6.2 1602與STC89C52的連接24</p><p>  第四章 軟件設(shè)計(jì)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 初始化定時(shí)

6、器27</p><p>  4.1.4定時(shí)器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 測(cè)頻精度分析34</p><p>  5.3.2實(shí)驗(yàn)測(cè)試數(shù)據(jù)35</p><p>  附錄一 完整的C語(yǔ)言源程序40</

8、p><p>  附錄二 系統(tǒng)設(shè)計(jì)原理圖47</p><p>  附錄三 系統(tǒng)設(shè)計(jì)PCB圖48</p><p>  附錄四 實(shí)物照片49</p><p>  附錄五 元器件清單表50</p><p><b>  前言</b></p><p>  隨著微電子技術(shù)和計(jì)算機(jī)

9、技術(shù)的迅速發(fā)展,特別是單片微機(jī)的出現(xiàn)和發(fā)展,使傳統(tǒng)的電子測(cè)量?jī)x器在原理、功能、精度及自動(dòng)化水平等方面都發(fā)生了巨大的變化,形成一種完全突破傳統(tǒng)概念的新一代測(cè)量?jī)x器。頻率計(jì)廣泛采用了高速集成電路和大規(guī)模集成電路,使儀器在小型化、耗電、可靠性等方面都發(fā)生了重大的變化。傳統(tǒng)的頻率計(jì)測(cè)量誤差較大,等精度頻率計(jì)以其測(cè)量準(zhǔn)確、精度高、方便等優(yōu)勢(shì)將得到廣泛的應(yīng)用。</p><p>  傳統(tǒng)的測(cè)頻方法有直接測(cè)頻法和測(cè)周法,在一定的

10、閘門(mén)時(shí)間內(nèi)計(jì)數(shù),門(mén)控信號(hào)和被測(cè)信號(hào)不同步,計(jì)數(shù)值會(huì)產(chǎn)生一個(gè)脈沖的誤差。等精度測(cè)頻法采用門(mén)控信號(hào)和被測(cè)信號(hào)同步,消除對(duì)被測(cè)信號(hào)計(jì)數(shù)產(chǎn)生的一個(gè)脈沖的誤差。等精度頻率測(cè)量方法消除了量化誤差,可以在整個(gè)測(cè)試頻段內(nèi)保持高精度不變,其精度不會(huì)因被測(cè)信號(hào)頻率的高低而發(fā)生變化。采用單片機(jī)作為控制核心的等精度頻率計(jì),可以充分利用單片機(jī)軟件編程技術(shù)實(shí)現(xiàn)等精度測(cè)頻。通過(guò)單片機(jī)對(duì)同步門(mén)的控制,使被測(cè)信號(hào)和標(biāo)準(zhǔn)信號(hào)在閘門(mén)時(shí)間內(nèi)同步測(cè)量,為了提高精度,將電子計(jì)數(shù)功

11、能轉(zhuǎn)為測(cè)周期,采用多周期同步測(cè)量技術(shù),實(shí)現(xiàn)等精度測(cè)量。</p><p><b>  第一章 概論</b></p><p>  本次設(shè)計(jì)的等精度頻率計(jì)是一種用液晶顯示被測(cè)信號(hào)頻率的測(cè)量?jī)x器.它的基本功能是測(cè)量方波信號(hào)。本文講述了等精度頻率計(jì)的工作原理以及其各個(gè)組成部分,記述了整個(gè)設(shè)計(jì)過(guò)程中對(duì)各個(gè)部分的設(shè)計(jì)思路、對(duì)各部分電路設(shè)計(jì)方案的選擇、以及對(duì)它們的調(diào)試、對(duì)調(diào)試結(jié)果的分

12、析,最終得到實(shí)驗(yàn)結(jié)果。</p><p>  1.1課題研究的目的和意義</p><p>  測(cè)頻一直以來(lái)都是電子和通訊系統(tǒng)工作的重要手段之一。高精度的測(cè)頻儀有著廣泛的市場(chǎng)前景。以往的測(cè)頻儀都是在低頻段利用測(cè)周期的方法、高頻段用測(cè)頻率的方法,其精度往往會(huì)隨著被測(cè)頻率的下降而下降。</p><p>  基于傳統(tǒng)測(cè)頻原理的頻率計(jì)的測(cè)量精度將隨被測(cè)信號(hào)頻率的下降而降低,在實(shí)

13、用中有較大的局限性,而等精度頻率計(jì)不但具有較高的測(cè)量精度,而且在整個(gè)測(cè)頻區(qū)域內(nèi)保持恒定的測(cè)試精度。所以等精度頻率計(jì)有研究的價(jià)值。</p><p><b>  1.2 測(cè)量原理</b></p><p>  圖1-1 等精度頻率計(jì)測(cè)量原理圖</p><p>  基于傳統(tǒng)測(cè)頻原理的頻率計(jì)的測(cè)量精度將隨被測(cè)信號(hào)頻率的變化而變化。傳統(tǒng)的直接測(cè)頻法其測(cè)量

14、精度將隨被測(cè)信號(hào)頻率的降低而降低,測(cè)周法的測(cè)量精度將隨被測(cè)信號(hào)頻率的升高而降低,在實(shí)用中有較大的局限性,而等精度頻率計(jì)不但具有較高的測(cè)量精度,而且在整個(gè)頻率區(qū)域能保持恒定的測(cè)試精度。</p><p>  等精度頻率的測(cè)量原理圖1-1 所示。頻率為fx 的被測(cè)信號(hào)經(jīng)通道濾波、放大、整形后輸入到同步門(mén)控制電路和主門(mén)1(閘門(mén)),晶體振蕩器的輸出信號(hào)作為標(biāo)準(zhǔn)信號(hào)(時(shí)基信號(hào))輸入到主門(mén)2。被測(cè)信號(hào)在同步控制門(mén)的作用下,產(chǎn)生

15、一個(gè)與被測(cè)信號(hào)同步的閘門(mén)信號(hào),被測(cè)信號(hào)與標(biāo)準(zhǔn)信號(hào)(時(shí)基信號(hào))在同步門(mén)控制信號(hào)的控制下。在同步門(mén)打開(kāi)時(shí)通過(guò)同步門(mén)分別輸入到事件計(jì)數(shù)器和時(shí)間計(jì)數(shù)器的信號(hào)輸入端,計(jì)數(shù)器開(kāi)始計(jì)數(shù)。同步門(mén)關(guān)閉時(shí)信號(hào)不能通過(guò)主門(mén),計(jì)數(shù)器停止計(jì)數(shù),單片機(jī)發(fā)出命令讀入計(jì)數(shù)器的數(shù)值,并進(jìn)行數(shù)據(jù)處理,將處理后的結(jié)果送顯示。</p><p>  等精度頻率測(cè)量方法是采用多周期同步測(cè)量。如圖1的測(cè)量原理圖所示由單片機(jī)發(fā)出預(yù)置門(mén)控信號(hào)GATE,GATE的

16、時(shí)間寬度對(duì)測(cè)頻精度影響較少,可以在較大的范圍內(nèi)選擇,即在高頻段時(shí),閘門(mén)時(shí)間較短;低頻時(shí)閘門(mén)時(shí)間較長(zhǎng)。實(shí)現(xiàn)了全范圍等精度測(cè)量,減少了低頻測(cè)量的誤差。</p><p>  在同步門(mén)的控制下,一方面保證了被測(cè)信號(hào)和時(shí)基信號(hào)的同步測(cè)量;另一方面在同步門(mén)打開(kāi)后計(jì)數(shù)器并不是馬上計(jì)數(shù),而是在被測(cè)信號(hào)的下一個(gè)上升沿開(kāi)始計(jì)數(shù),同步門(mén)關(guān)閉后計(jì)數(shù)器也不是馬上停止計(jì)數(shù),而是在被測(cè)信號(hào)的下一個(gè)上升沿停止計(jì)數(shù)。即在實(shí)際閘門(mén)時(shí)間計(jì)數(shù),從而提高

17、了測(cè)量精度。</p><p>  由于采用D 觸發(fā)器實(shí)現(xiàn)的同步門(mén)的同步作用,事件計(jì)數(shù)器所記錄的Nx 值已不存在誤差的影響,但由于時(shí)鐘信號(hào)與閘門(mén)的開(kāi)和關(guān)無(wú)確定的相位關(guān)系,時(shí)間計(jì)數(shù)器所記錄的N0 的值仍存在±1 誤差的影響,只是由于時(shí)鐘頻率很高,誤差的影響很小。所以在全頻段的測(cè)量精度是均衡的,從而實(shí)現(xiàn)等精度頻率測(cè)量。</p><p>  1.3 等精度頻率計(jì)計(jì)數(shù)測(cè)量誤差</p&

18、gt;<p>  由上述測(cè)量原理可知,公式 fx=f0×Nx/N0 成立。設(shè)所測(cè)頻率的準(zhǔn)確值為f x0。在一次測(cè)量中,由于fx 計(jì)數(shù)的起停時(shí)間是由該信號(hào)的上升沿控制的,因此,在T 時(shí)間內(nèi)對(duì)fx 的計(jì)數(shù)NX無(wú)誤差。在此時(shí)間內(nèi)f0 的計(jì)數(shù)N0 最多相差一個(gè)脈沖,即△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ù)相對(duì)誤差公式有: △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>  因?yàn)?︱△N0︱≤l (7)</p><p>  所以 ︱△N0︱/N0≤1/N0 (8)</p><p>  即相對(duì)誤差: ︱ δ f︱=△f x0/f x0≤1/N0 (9)</p><p>  其中: N0 = T×

21、;f0 (10)</p><p>  由此可知, 增大Tp 或提高fx,可以增大Nx,減少測(cè)量誤差,提高測(cè)量精度;相對(duì)測(cè)量誤差與被測(cè)信號(hào)頻率的大小無(wú)關(guān),僅與取樣時(shí)間及時(shí)基信號(hào)(標(biāo)準(zhǔn)信號(hào))頻率有關(guān),可以實(shí)現(xiàn)被測(cè)頻帶內(nèi)的等精度測(cè)量;取樣時(shí)間越長(zhǎng),時(shí)基信號(hào)頻率越高,分辨率越高。</p><p>  1.4 設(shè)計(jì)思路及技術(shù)指標(biāo)</p><p><b>  一 設(shè)計(jì)

22、方案</b></p><p>  以89C51型單片機(jī)為核心,結(jié)合其它的一些芯片一起設(shè)計(jì)一個(gè)等精度頻率計(jì)。</p><p>  根據(jù)本設(shè)計(jì)的要求和方案的設(shè)想,總結(jié)一下本設(shè)計(jì)要做的具體的工作主要有以下幾個(gè)方面:</p><p>  第一 ,分析與論證本設(shè)計(jì)所采用的方案,包括主控系統(tǒng)、顯示系統(tǒng)等的分析以及這些模塊的功能等。在對(duì)設(shè)計(jì)要求充分分析的基礎(chǔ)上,劃分功

23、能模塊,選擇需要的硬件設(shè)備。</p><p>  第二 ,收集大量等精度頻率計(jì)方面的資料— 包括文字資料和試驗(yàn)數(shù)據(jù),總結(jié)規(guī)律。可以有兩種方法實(shí)現(xiàn)軟件部分。</p><p>  (一)定時(shí)1s測(cè)信號(hào)脈沖次數(shù):用一個(gè)定時(shí)計(jì)數(shù)器做定時(shí)中斷,定時(shí)1s,另一定時(shí)計(jì)數(shù)器僅做計(jì)數(shù)器使用,初始化完畢后同時(shí)開(kāi)啟兩個(gè)定時(shí)計(jì)數(shù)器,直到產(chǎn)生1s中斷,產(chǎn)生1s中斷后立即關(guān)閉T0和T1(起保護(hù)程序和數(shù)據(jù)的作用)取出計(jì)

24、數(shù)器寄存器內(nèi)的值就是1s內(nèi)待測(cè)信號(hào)的下跳沿次數(shù)即待測(cè)信號(hào)的頻率。用相關(guān)函數(shù)顯示完畢后再開(kāi)啟T0和T1這樣即可進(jìn)入下一輪測(cè)量。</p><p> ?。ǘy(cè)信號(hào)正半周期。對(duì)于1:1占空比的方波,僅用一個(gè)定時(shí)計(jì)數(shù)器做計(jì)數(shù)器,外部中斷引腳作待測(cè)信號(hào)輸入口,置計(jì)數(shù)器為外部中斷引腳控制(外部中斷引腳為“1”切TRx=1計(jì)數(shù)器開(kāi)始計(jì)數(shù))。單片機(jī)初始化完畢后程序等待半個(gè)正半周期(以便準(zhǔn)確打開(kāi)TRx)打開(kāi)TRx,這時(shí)只要INTx

25、(外部中斷引腳)為高電平計(jì)數(shù)器即不斷計(jì)數(shù),低電平則不計(jì)數(shù),待信號(hào)從高電平后計(jì)數(shù)器終止計(jì)數(shù),關(guān)閉TRx保護(hù)計(jì)數(shù)器寄存器的值,該值即為待測(cè)信號(hào)一個(gè)正半周期的單片機(jī)機(jī)器周期數(shù),即可求出待測(cè)信號(hào)的周期:待測(cè)信號(hào)周期T=2*cnt/(12/fsoc) cnt為測(cè)得待測(cè)信號(hào)的一個(gè)正半周期機(jī)器周期數(shù);fsoc為單片機(jī)的晶振。所以待測(cè)信號(hào)的頻率f=1/T。</p><p>  第二種方法只適用于1:1占空比的方波信號(hào),要測(cè)

26、非1:1占空比的方波信號(hào)誤差有點(diǎn)大,所以本設(shè)計(jì)優(yōu)先使用第一種方法進(jìn)行設(shè)計(jì)。</p><p>  第三 ,根據(jù)劃分的功能模塊,編寫(xiě)操作程序。這也是本設(shè)計(jì)中很重要的一個(gè)工作,確定編程時(shí)要盡量做到界面美觀,操作簡(jiǎn)便。</p><p>  第四,進(jìn)行程序調(diào)試,繼續(xù)完善各功能模塊的程序。</p><p><b>  二 技術(shù)指標(biāo)</b></p>

27、;<p>  1.設(shè)計(jì)一個(gè)4位的頻率計(jì),其頻率范圍在1~9999Hz;</p><p>  2.送入信號(hào)應(yīng)該符合電路要求的脈沖或正統(tǒng)波;</p><p>  3.完成硬件電路的原理設(shè)計(jì); </p><p>  4.制作印刷電路板,要求電路布局合理,焊點(diǎn)合格。</p><p>  第2章 STC89C52單片機(jī)系統(tǒng)結(jié)構(gòu)和原理&l

28、t;/p><p>  2.1 STC89C52單片機(jī)的簡(jiǎn)介</p><p>  在本設(shè)計(jì)中采用了STC89C52單片機(jī)作為中心處理系統(tǒng)進(jìn)行研究。STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于。在單芯片上

29、,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。它與以前的程序存儲(chǔ)器相比具有以下優(yōu)點(diǎn)[2]:</p><p>  ·用戶可自己寫(xiě)入,并根據(jù)需要靈活修改程序;</p><p>  ·用電擦除而不是用紫外線擦除,不需要特殊的擦除設(shè)備;</p><p>  ·寫(xiě)入與

30、擦除的速度非??臁?lt;/p><p>  所有的MCS-51系列單片機(jī)擁有一個(gè)相同的8位微處理器CPU,它由算術(shù)邏輯運(yùn)算部件ALU、布爾處理器、控制器和工作寄存器組成。</p><p>  算術(shù)邏輯運(yùn)算部件主要功能是實(shí)現(xiàn)數(shù)據(jù)的傳送、數(shù)據(jù)的算術(shù)邏輯運(yùn)算和布爾量處理,它們包括:</p><p>  ·加、減、乘、除算術(shù)運(yùn)算;</p><p&g

31、t;  ·增量(加1)、減量(減1)運(yùn)算;</p><p><b>  ·十進(jìn)制數(shù)調(diào)整;</b></p><p>  ·位置“1”、位置“0”和取反;</p><p>  ·與、或、異或等邏輯操作;</p><p><b>  ·數(shù)據(jù)傳送操作。</b>

32、;</p><p>  控制器是控制整個(gè)單片機(jī)系統(tǒng)各種操作的部件,它包括時(shí)鐘發(fā)生器、定時(shí)控制邏輯、指令寄存器譯碼器、程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的地址/數(shù)據(jù)傳送控制等。</p><p>  從編程的角度看,MCS-51CPU對(duì)用戶開(kāi)放的寄存器主要有以下幾個(gè):累加器ACC、寄存器B、程序計(jì)數(shù)器PC、數(shù)據(jù)指針DPTR(由DPH和DPL兩個(gè)8位寄存器組成),程序狀態(tài)寄存器PSW、堆棧指針SP。<

33、/p><p>  2.2單片機(jī)的一般結(jié)構(gòu)</p><p>  一、STC89C52單片機(jī)內(nèi)部主要性能:</p><p>  (1)與MCS-51單片機(jī)產(chǎn)品兼容</p><p> ?。?)8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器</p><p>  (3)1000次擦寫(xiě)周期</p><p> ?。?)全靜

34、態(tài)操作:0Hz~33Hz</p><p> ?。?)三級(jí)加密程序存儲(chǔ)器</p><p>  (6)32個(gè)可編程I/O口線</p><p> ?。?)個(gè)16位定時(shí)器/計(jì)數(shù)器</p><p><b>  (8)八個(gè)中斷源</b></p><p> ?。?)全雙工UART串行通道</p>

35、<p> ?。?0)低功耗空閑和掉電模式</p><p>  (11)電后中斷可喚醒</p><p> ?。?2)看門(mén)狗定時(shí)器</p><p><b>  (13)雙數(shù)據(jù)指針</b></p><p><b> ?。?4)掉電標(biāo)識(shí)符</b></p><p>  二、S

36、TC89C52單片機(jī)結(jié)構(gòu)框圖</p><p>  STC89C52單片機(jī)采用模塊式的結(jié)構(gòu),有多個(gè)存儲(chǔ)空間,每一個(gè)存儲(chǔ)空間都留有一定的余量,這種結(jié)構(gòu)為單片機(jī)的發(fā)展留有充分的余地,其結(jié)構(gòu)框圖如圖2-1[3]。</p><p>  圖2-1 STC89C52 結(jié)構(gòu)框圖</p><p>  三、引腳圖和邏輯符號(hào)圖</p><p>  STC89C5

37、2一般為DIP40雙列直插封裝形式的器件,其引腳圖和邏輯符號(hào)如圖2-2所示。</p><p>  STC89C52的引腳P00~P07、P10~P17、P20~P27、P30~P37為四個(gè)8位并行輸入/輸出口,其中P3口、P0口和P2口為雙功能口,可以作為普通輸入/輸出口(第一功能),也可以作為特殊輸入/輸出口。RST為復(fù)位輸入線,ALE、、為系統(tǒng)擴(kuò)展控制線,XTAL1和XTAL2為時(shí)鐘電路輸入/輸出線,Vcc、

38、GND為電源輸入線,一般接+5V和地[4]。</p><p>  圖2-2 STC89C52 引腳圖、邏輯符號(hào)圖</p><p>  2.3 STC89C52存儲(chǔ)器配置</p><p>  STC89C52單片機(jī)獨(dú)立的存儲(chǔ)空間[5]:</p><p>  ·64K字節(jié)程序存儲(chǔ)器空間(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ù)存儲(chǔ)器(RAM/IO)空間(0~0FFFFH)。</p><p>&

40、lt;b>  程序存儲(chǔ)器</b></p><p>  MCS-51的程序存儲(chǔ)器空間為64K字節(jié),地址范圍為0000H~FFFFH,其地址指針為16位的程序計(jì)數(shù)器PC。0開(kāi)始的部分程序存儲(chǔ)器(4K,8K,16K,…)可以在單片機(jī)的內(nèi)部也可以在單片機(jī)的外部,這取決于單片機(jī)的類(lèi)型,并由輸入到引腳的電平控制。</p><p>  STC89C52內(nèi)部有4KB的程序存儲(chǔ)器,用于存放

41、程序、原始數(shù)據(jù)或表格。若接Vcc(+5v),則程序計(jì)數(shù)器PC的值在0至0FFFH之間時(shí),CPU取指令時(shí)訪問(wèn)內(nèi)部的程序存儲(chǔ)器;PC 值大于0FFFH時(shí),則訪問(wèn)外部的程序存儲(chǔ)器。如果接Vss(地),則內(nèi)部的程序存儲(chǔ)器被忽略,CPU總是從外部的程序存儲(chǔ)器中取指令。單片機(jī)外部擴(kuò)展的程序存儲(chǔ)器一般為EPROM電路(紫外線可擦除電可編程的只讀存儲(chǔ)器)。MCS-51的引腳輸出外部程序存儲(chǔ)器的讀選通信號(hào),僅當(dāng)CPU訪問(wèn)外部程序存儲(chǔ)器時(shí),才有效(輸出負(fù)脈

42、沖)。</p><p>  MCS-51復(fù)位后,程序計(jì)數(shù)器PC為0,CPU從地址0開(kāi)始執(zhí)行程序,即復(fù)位入口地址為0。另外,MCS-51的中斷入口也是固定的,程序存儲(chǔ)器地址3、0BH、13H、1BH、23H……單元為中斷入口,MCS-51的中斷源數(shù)目是因型號(hào)而異的,中斷入口也有多有少,但總是從地址3開(kāi)始,每隔8個(gè)字節(jié)安排一個(gè)中斷入口。</p><p>  表2-1 程序存儲(chǔ)器中的特殊單元&l

43、t;/p><p><b>  二、數(shù)據(jù)存儲(chǔ)器</b></p><p>  STC89C52芯片共有256個(gè)RAM單元,其中后128單元被專(zhuān)用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫(xiě)的數(shù)據(jù)。因此通常所說(shuō)的內(nèi)部數(shù)據(jù)存儲(chǔ)器就是指前128單元,簡(jiǎn)稱(chēng)內(nèi)部RAM。地址范圍為00H~FFH(256B)。是一個(gè)多用多功能數(shù)據(jù)存儲(chǔ)器,有數(shù)據(jù)存儲(chǔ)、通用工作寄存器、

44、堆棧、位地址等空間。</p><p>  2.4 引腳功能說(shuō)明</p><p>  STC89C52單片機(jī)采用40個(gè)引腳雙列直插式封裝,其中有2個(gè)專(zhuān)用于主電源引腳,2個(gè)外接晶振的引腳,4個(gè)控制或與其它電源復(fù)位的引腳,以及32條輸入輸出I/O引腳。</p><p>  下面按引腳功能分為4個(gè)部分?jǐn)⑹龈鱾€(gè)引腳的功能[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腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)

46、成采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳接地;對(duì)于CHMOS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。</p><p>  2、XTAL2(18腳):接外部晶體的另一端。在單片機(jī)內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。對(duì)于CHMOS芯片,該引腳懸空不接。</p><p>  圖2-3 內(nèi)部振蕩電路 外部振蕩電路

47、</p><p><b>  三、控制信號(hào)引腳</b></p><p>  控制信號(hào)或與其它電源復(fù)位引腳有RST、ALE、和等4種形式。</p><p>  1、RST(9腳):RST即為RESET,為備用電源,所以該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。當(dāng)單片機(jī)振蕩器工作時(shí),該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平,就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)復(fù)位到

48、初始狀態(tài)。</p><p>  當(dāng)VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時(shí),該引腳可接上備用電源VPD(+5V)為內(nèi)部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。</p><p>  2、ALE(30腳):為地址鎖存允許輸出信號(hào)/編程脈沖信號(hào)輸入端;此信號(hào)為外部的擴(kuò)展大陸低位字節(jié)地址提供一個(gè)允許鎖存信號(hào)對(duì)芯片內(nèi)的EPROM/EEPROM空間固化程序時(shí)提供一個(gè)編程脈沖信號(hào)。當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),

49、ALE信號(hào)用來(lái)所存地址的低位字節(jié)。在不訪問(wèn)外部存儲(chǔ)器時(shí),ALE端總是以振蕩頻率的6分頻來(lái)周期性地輸出正脈沖信號(hào),故可作為對(duì)外的時(shí)鐘輸出。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),要跳過(guò)一個(gè)ALE脈沖。</p><p>  在對(duì)內(nèi)部具有EPROM的8751單片機(jī)進(jìn)行編程時(shí),此引腳用于輸入編程脈沖。</p><p>  3、 (29腳):片外程序存儲(chǔ)器讀選通輸出端,低電平有效。在CPU取指令或常數(shù)時(shí),用于選通外

50、部程序存儲(chǔ)器。當(dāng)從外部程序存儲(chǔ)器讀取指令或常數(shù)期間,每個(gè)機(jī)器周期兩次有效,以通過(guò)數(shù)據(jù)總線口讀回指令或常數(shù)。當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器期間,信號(hào)將不出現(xiàn)。</p><p>  4、(31腳):為訪問(wèn)外部程序儲(chǔ)器控制信號(hào)/編程電壓輸入端,低電平有效。當(dāng)端保持高電平時(shí),片內(nèi)存儲(chǔ)器有效,單片機(jī)訪問(wèn)片內(nèi)程序存儲(chǔ)器4KB(MCS—52子系列為8KB)。若超出該范圍時(shí),自動(dòng)轉(zhuǎn)去執(zhí)行外部程序存儲(chǔ)器的程序。當(dāng)端保持低電平時(shí),無(wú)論片內(nèi)有無(wú)

51、程序存儲(chǔ)器,均只訪問(wèn)外部程序存儲(chǔ)器。</p><p>  四、輸入/輸出(I/O)引腳</p><p>  1、P0口(39腳~22腳):P0口是開(kāi)漏雙向口可以寫(xiě)為1使其狀態(tài)為懸浮用作高阻輸入。P0也可以在訪問(wèn)外部程序存儲(chǔ)器時(shí)作地址的低字節(jié),在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)作數(shù)據(jù)總線,此時(shí)通過(guò)內(nèi)部強(qiáng)上拉輸出1。</p><p>  2、P1口(1腳~8腳):P1.0~P1.7

52、統(tǒng)稱(chēng)為P1口,可作為準(zhǔn)雙向I/O接口使用。對(duì)于MCS—52子系列單片機(jī),P1.0和P1.1還有第2功能:P1.0口用作定時(shí)器/計(jì)數(shù)器2的計(jì)數(shù)脈沖輸入端T2;P1.1用作定時(shí)器/計(jì)數(shù)器2的外部控制端T2EX。對(duì)于EPROM編程和進(jìn)行程序校驗(yàn)時(shí),P1口接收輸入的低8位地址。</p><p>  3、P2口(21腳~28腳):P2口是帶內(nèi)部上拉的雙向I/O,口向P2口寫(xiě)入1時(shí),P2口被內(nèi)部上拉為高電平,可用作輸入口當(dāng)作

53、為輸入腳時(shí),被外部拉低的P2 口會(huì)因?yàn)閮?nèi)部上拉而輸出電流(見(jiàn)DC 電氣特性)。在訪問(wèn)外部程序存儲(chǔ)器和外部數(shù)據(jù)時(shí)分別作為地址高位字節(jié)和16 位地址(MOVX @DPTR),此時(shí)通過(guò)內(nèi)部強(qiáng)上拉傳送1。當(dāng)使用8位尋址方式(MOV@Ri)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口發(fā)送P2特殊功能寄存器的內(nèi)容。</p><p>  4、P3口(10腳~17腳):P3口是帶內(nèi)部上拉的雙向I/O口,向P3口寫(xiě)入1時(shí),P3口被內(nèi)部上拉為高電平

54、,可用作輸入口,當(dāng)作為輸入腳時(shí),被外部拉低的P3 口會(huì)因?yàn)閮?nèi)部上拉而輸出電流(見(jiàn)DC 電氣特性)。它為雙功能口,可以作為一般的準(zhǔn)雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨(dú)立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見(jiàn)表2-2:</p><p>  表2-2 單片機(jī)P3口管腳含義</p><p>  綜上所述,STC89C52系列單片機(jī)納為以下兩點(diǎn):&

55、lt;/p><p>  1) 單片機(jī)功能多,引腳數(shù)少,因而許多引腳具有第2功能;</p><p>  2) 單片機(jī)對(duì)外呈3總線形式,由P0、P2口組成16位地址總線;由P0口分時(shí)復(fù)用作為數(shù)據(jù)總線。</p><p><b>  2.5中斷系統(tǒng)</b></p><p>  現(xiàn)代的計(jì)算機(jī)都具有實(shí)時(shí)處理功能,能對(duì)外界異步發(fā)生的事件作

56、出及時(shí)的處理,這是依靠它們的中斷來(lái)實(shí)現(xiàn)的。所謂中斷是指中央處理器CPU在處理某件事情的時(shí)候,外部發(fā)生了某一事件(如定時(shí)器計(jì)數(shù)溢出),請(qǐng)求CPU迅速去處理,CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事件,處理完以后,再回到原來(lái)中斷的地方,繼續(xù)原來(lái)的工作。這樣的過(guò)程就稱(chēng)為中斷。實(shí)現(xiàn)這種功能的部件成為中斷系統(tǒng)。產(chǎn)生中斷的請(qǐng)求源就成為中斷源。最典型的單片機(jī)有五個(gè)中斷源,分別是外部中斷0、定時(shí)器T0、外部中斷1、定時(shí)器T1、和串行口中斷。在這次的

57、編程中就用到了這些中斷。這五個(gè)中斷的入口地址各不相同,列表如表2-3[7]:</p><p>  表2-3 中斷的入口地址</p><p>  典型的單片機(jī)可以實(shí)現(xiàn)二級(jí)中斷服務(wù)程序嵌套,每個(gè)中斷源可以編程為高級(jí)中斷,或低優(yōu)先級(jí)中斷,允許或禁止向CPU請(qǐng)求中斷。與中斷系統(tǒng)有關(guān)的特殊功能寄存器有中斷允許寄存器IE、中斷優(yōu)先級(jí)控制寄存器IP、中斷源寄存器(TCON,SCON中的有關(guān)位)。<

58、/p><p><b>  2.5.1中斷源</b></p><p>  89C52單片機(jī)的八個(gè)中斷源其中的五個(gè)是:2個(gè)INT0、INT1(P3.2,P3.3)上輸入的外部中斷源;3個(gè)內(nèi)部中斷源,它們是定時(shí)器/計(jì)數(shù)器T0、T1的溢出中斷源和串行口的發(fā)送接受中斷。這些中斷源分別鎖在TCON、SCON的相應(yīng)位中[8]。</p><p><b>

59、  一、外部中斷源</b></p><p>  INT0、INT1上輸入的兩個(gè)外部中斷源和它們的觸發(fā)方式控制位所存在特殊寄存器TCON的低四位,TCON的高四位為T(mén)1、T0的運(yùn)行控制位和溢出標(biāo)志位:</p><p>  表2-4 外部中斷源</p><p>  IE1 外部中斷1請(qǐng)求源(INT1,P3.3)標(biāo)志。IE1=1,外部中斷1正向CPU請(qǐng)求中

60、斷,當(dāng)CPU響應(yīng)該中斷時(shí)由硬件“0”IE1(邊沿觸發(fā)方式)。</p><p>  IT1 外部中斷1觸發(fā)方式控制位。IT1=0,外部中斷1位電平觸IT1=1,外</p><p>  部中斷1位邊沿觸發(fā)方式。</p><p>  IE0 外部中斷0請(qǐng)求源(INT0,P3.2)標(biāo)志。IE0=1外部中斷0向CPU請(qǐng)求中斷,當(dāng)CPU響應(yīng)中斷時(shí),由硬件清“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í)器/計(jì)數(shù)器T0的溢出中斷TF0(TCON.5)

62、:T0被允許計(jì)數(shù)以后,從初值開(kāi)始加1計(jì)數(shù),當(dāng)產(chǎn)生溢出時(shí)置“1”IF0,向CPU請(qǐng)求中斷,一直保護(hù)到CPU響應(yīng)該中斷時(shí)才由硬件清零(也可以由查詢(xún)程序清零)。</p><p>  定時(shí)器/計(jì)數(shù)器T1的溢出中斷TF1(TCON.7):其功能與TF0相同。</p><p>  串行口中斷:串行口的接收中斷RI(SCON.0)和發(fā)送中斷TI(SCON.1)邏輯或以后作為內(nèi)部的一個(gè)中斷源。</p

63、><p>  2.5.2 中斷控制</p><p>  單片機(jī)對(duì)中斷源的開(kāi)放或屏蔽,每個(gè)中斷源是否允許中斷,89C51是由內(nèi)部的中斷允許寄存器IE控制的(IE為特殊功能寄存器,它的字節(jié)地址為A8H),其格式如表2-5[9]:</p><p>  表2-5中斷控制格式</p><p>  EA CPU的中斷開(kāi)放標(biāo)志.EA=1,CPU 開(kāi)放中斷;E

64、A=0,CPU屏蔽所有的中斷申請(qǐng)。</p><p>  ES 串行口中斷允許位。ES=1,允許串行口中斷;ES=0,禁止串行口中斷。</p><p>  ET1 定時(shí)器/計(jì)數(shù)器T1的溢出中斷允許位。 ET1=1,允許T1中斷;ET1=0,禁止T1中斷。</p><p>  EX1 外部中斷1中斷允許位。EX1=1允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。

65、</p><p>  ET0 定時(shí)器/計(jì)數(shù)器T0溢出中斷允許位。 ET0=1,允許T0中斷;ET0=0,禁止T0中斷。</p><p>  EX0 外部中斷1中斷允許位。EX0=1,允許外部中斷0中斷;EX1=0,禁止外部中斷0中斷。</p><p><b>  第三章 硬件設(shè)計(jì)</b></p><p>  3.1 硬件

66、電路設(shè)計(jì)</p><p>  硬件電路主要分為電源電路、單片機(jī)控制部分、同步門(mén)控制電路、計(jì)數(shù)和液晶顯示電路。電路采用Protell 99 se 是電路設(shè)計(jì)中功能比較強(qiáng)大軟件,本設(shè)計(jì)用其原理圖和PCB圖。</p><p><b>  3.2 電源電路</b></p><p>  此次設(shè)計(jì)的電源需求,共需要用到+5V,+15V,-15V三種電壓,其

67、中+15V,-15V直接由外部電源直接產(chǎn)生提供,而+5V電源自行設(shè)計(jì),主要提供給AT89C52單片機(jī)使用,直接設(shè)計(jì)在電路當(dāng)中,原理見(jiàn)圖3-1:</p><p>  圖 3-1 +5V電源電路</p><p>  在圖3-1中,首先電源電壓220V經(jīng)過(guò)變壓器變壓產(chǎn)生一個(gè)18V左右的交流電壓,再經(jīng)過(guò)橋式整流電路和2200uF濾波電容C4的濾波產(chǎn)生一個(gè)20V左右的直流電壓,再經(jīng)7805三端穩(wěn)壓塊

68、產(chǎn)生一個(gè)+5V的電壓,再次經(jīng)過(guò)1000uF濾波電容C5再次濾波,+5V電壓就很穩(wěn)定。</p><p>  此外,在圖3-1中使用的LM7805是正電壓穩(wěn)壓集成電路,為固定輸出+5V輸出穩(wěn)壓集成電路(采取特殊方法也可使輸出高于5 V),最大輸出電流為1 A。具有體積小、集成度高、線性調(diào)整率和負(fù)載調(diào)整率高,在線性電源時(shí)代占領(lǐng)了很大市場(chǎng)。</p><p>  3.3 單片機(jī)控制部分</p&

69、gt;<p>  STC89C52單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3, MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨(dú)立地作輸出或輸入。</p><p>  單片機(jī)的最小系統(tǒng)如下圖2-11所示,18引腳和19引腳接時(shí)鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的

70、另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第9引腳為復(fù)位輸入端,接上電容,電阻及開(kāi)關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端。如圖3-2所示:</p><p>  圖3-2 單片機(jī)控制部分</p><p>  3.4 同步門(mén)控制電路</p><p>  同步門(mén)控制電路主要由D 觸發(fā)器74LS74(同步門(mén)控制)、六反相器74LS04 和二輸入或非門(mén)74LS

71、02 組成(主門(mén)1、主門(mén)2)。主門(mén)1 控制被測(cè)信號(hào)fx 的通過(guò),主門(mén)2 控制時(shí)鐘信號(hào)f0 的通過(guò),兩門(mén)的啟閉都由同步門(mén)控制電路控制。</p><p>  被測(cè)信號(hào)在同步控制門(mén)的作用下,產(chǎn)生一個(gè)與被測(cè)信號(hào)同步的閘門(mén)信號(hào),被測(cè)信號(hào)與標(biāo)準(zhǔn)信號(hào)(時(shí)基信號(hào))在同步門(mén)控制信號(hào)的控制下。在同步門(mén)打開(kāi)時(shí)通過(guò)同步門(mén)分別輸入到事件計(jì)數(shù)器和時(shí)間計(jì)數(shù)器的信號(hào)輸入端,計(jì)數(shù)器開(kāi)始計(jì)數(shù)。同步門(mén)關(guān)閉時(shí)信號(hào)不能通過(guò)主門(mén),計(jì)數(shù)器停止計(jì)數(shù),單片機(jī)發(fā)出

72、命令讀入計(jì)數(shù)器的數(shù)值,并進(jìn)行數(shù)據(jù)處理,將處理后的結(jié)果送顯示。</p><p>  在同步門(mén)的控制下,一方面保證了被測(cè)信號(hào)和時(shí)基信號(hào)的同步測(cè)量;另一方面在同步門(mén)打開(kāi)后計(jì)數(shù)器并不是馬上計(jì)數(shù),而是在被測(cè)信號(hào)的下一個(gè)上升沿開(kāi)始計(jì)數(shù),同步門(mén)關(guān)閉后計(jì)數(shù)器也不是馬上停止計(jì)數(shù),而是在被測(cè)信號(hào)的下一個(gè)上升沿停止計(jì)數(shù)。即在實(shí)際閘門(mén)時(shí)間計(jì)數(shù),從而提高了測(cè)量精度。具體電路圖如圖3-3所示:</p><p>  圖

73、3-3(a) 同步門(mén)74ls74電路圖</p><p>  圖3-3(b)同步門(mén)74ls02、74ls04電路圖</p><p>  74LS74 簡(jiǎn)要說(shuō)明</p><p>  74LS74 為帶預(yù)置和清除端的兩組 D 型觸發(fā)器</p><p><b>  引出端符號(hào)</b></p><p>  

74、1CP、2CP 時(shí)鐘輸入端</p><p>  1D、2D 數(shù)據(jù)輸入端</p><p>  、、1Q、2Q 輸出端</p><p>  CLR1、CLR2 直接復(fù)位端(低電頻有效)</p><p>  PR1、PR2 直

75、接置位端(低電平有效)</p><p>  圖3-4(a) 外接管腳圖 圖3-4(b) 邏輯圖</p><p><b>  3.5計(jì)數(shù)電路</b></p><p>  單片機(jī)選用STC89C52,其中P1.0 用于控制同步門(mén)D 觸發(fā)器74LS74 產(chǎn)生同步的閘門(mén)信號(hào),P1.2 用于對(duì)74LS393 組成的計(jì)

76、數(shù)器清零,一次計(jì)數(shù)完成后單片機(jī)通過(guò)控制兩片74LS244 讀取被測(cè)信號(hào)與標(biāo)準(zhǔn)信號(hào)的低8 位計(jì)數(shù)值,高位計(jì)數(shù)值在單片機(jī)的T0、T1 中。然后單片機(jī)對(duì)計(jì)數(shù)值進(jìn)行運(yùn)算處理,并送出顯示。</p><p>  計(jì)數(shù)器包括事件計(jì)數(shù)器和時(shí)間計(jì)數(shù)器兩部分,它們是兩組完全相同的計(jì)數(shù)電路。分別由前后兩級(jí)組成。前級(jí)由雙4 位異步計(jì)數(shù)器74LS393 級(jí)聯(lián)構(gòu)成八位二進(jìn)制計(jì)數(shù)器;后級(jí)由STC89C52 單片機(jī)內(nèi)的定時(shí)/計(jì)數(shù)器構(gòu)成十六位二進(jìn)

77、制計(jì)數(shù)器。標(biāo)準(zhǔn)信號(hào)部分采用10MHz 石英晶體振蕩器來(lái)提供測(cè)量所需要的標(biāo)準(zhǔn)脈沖信號(hào)。</p><p>  由于采用D 觸發(fā)器實(shí)現(xiàn)的同步門(mén)的同步作用,事件計(jì)數(shù)器所記錄的Nx 值已不存在誤差的影響,但由于時(shí)鐘信號(hào)與閘門(mén)的開(kāi)和關(guān)無(wú)確定的相位關(guān)系,時(shí)間計(jì)數(shù)器所記錄的N0 的值仍存在±1 誤差的影響,只是由于時(shí)鐘頻率很高,誤差的影響很小。所以在全頻段的測(cè)量精度是均衡的,從而實(shí)現(xiàn)等精度頻率測(cè)量。具體電路圖如圖3-5

78、所示:</p><p>  圖3-5 計(jì)數(shù)電路</p><p>  74LS393 簡(jiǎn)要說(shuō)明:</p><p>  74LS393為兩個(gè)4位二進(jìn)制計(jì)數(shù)器,異步清零端(1clear,2clear)為高電平。不管時(shí)鐘端1A,2A狀態(tài)如何,即可以完成清除功能。當(dāng)1clear,2clear為低電平時(shí),1A,2A脈沖下降沿作用下進(jìn)行計(jì)數(shù)操作。</p><

79、p><b>  引出端符號(hào):</b></p><p>  1A、2A 時(shí)鐘輸入端(下降沿有效)</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>  顯示器是最常用的輸出設(shè)備,其種類(lèi)繁多,但在單片機(jī)系統(tǒng)設(shè)計(jì)中最常用的是發(fā)光二極管顯示器(LED)和液晶顯示器(LCD)兩種。由于這兩種顯示器結(jié)構(gòu)簡(jiǎn)單,價(jià)格便宜,接口容易實(shí)現(xiàn),因而得到廣

81、泛的應(yīng)用,本次方案采用了1602液晶顯示器。</p><p>  3.6.1 1602的功能簡(jiǎn)介</p><p>  1.40通道點(diǎn)陣LCD 驅(qū)動(dòng);</p><p>  2.可選擇當(dāng)作行驅(qū)動(dòng)或列驅(qū)動(dòng);</p><p>  3.輸入/輸出信號(hào):輸出,能產(chǎn)生20×2個(gè)LCD驅(qū)動(dòng)波形;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號(hào),偏壓(V1-

82、V6);</p><p>  4.通過(guò)單片機(jī)控制將所測(cè)的頻率信號(hào)讀數(shù)顯示出來(lái);</p><p>  具體引腳功能見(jiàn)表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中為單片機(jī)與1602的連接圖。其中,D0-D7為1602數(shù)據(jù)口,分別接單片機(jī)的P0.0-P0.7口;單片機(jī)的P2.0口接1602的復(fù)位腳RS;單片機(jī)的P2.1口接1602的讀/寫(xiě)控制腳RW;單片機(jī)的P2.2口接1602的使能端E;通過(guò)一個(gè)10K的電位器調(diào)整VEE電壓改變液晶對(duì)比度,對(duì)比度調(diào)節(jié)不當(dāng)時(shí)會(huì)產(chǎn)生“鬼影”。通過(guò)這種連接方式,就可以實(shí)現(xiàn)單片機(jī)對(duì)1602控制顯示測(cè)得頻率數(shù)值。<

84、/p><p><b>  第四章 軟件設(shè)計(jì)</b></p><p>  本章節(jié)主要介紹了電路的軟件設(shè)計(jì),整個(gè)系統(tǒng)由主程序,中斷服務(wù)程序模塊、循環(huán)和顯示子程序模塊組成,本文將對(duì)這幾個(gè)子模塊的設(shè)計(jì)做介紹。</p><p><b>  4.1 程序流程</b></p><p>  4.1.1 系統(tǒng)主程序流程圖

85、</p><p>  系統(tǒng)軟件的設(shè)計(jì)主要是和硬件電路相結(jié)合,正確地實(shí)現(xiàn)等精度測(cè)量。整個(gè)系統(tǒng)軟件的設(shè)計(jì)采用了自頂向下的模塊化的結(jié)構(gòu)方式,將各個(gè)功能分成獨(dú)立模塊,由系統(tǒng)的程序統(tǒng)一管理執(zhí)行。它主要完成各種功能,如測(cè)量、 數(shù)據(jù)運(yùn)算、顯示等。如圖4-1所示為頻率測(cè)量主程序流程圖,在計(jì)數(shù)前對(duì)計(jì)數(shù)器清零。然后,發(fā)出命令打開(kāi)閘門(mén)進(jìn)入閘門(mén)時(shí)間,計(jì)數(shù)器在閘門(mén)時(shí)間內(nèi)計(jì)數(shù)。延時(shí)子程序結(jié)束后,發(fā)出命令關(guān)閉閘門(mén)使計(jì)數(shù)器停止計(jì)數(shù);單片機(jī)再依照

86、程序讀取計(jì)數(shù)器的值,并與單片機(jī)內(nèi)部計(jì)數(shù)器所計(jì)的值合并在一起。由公式可知,即被測(cè)頻率fx=f0×Nx/N0 來(lái)進(jìn)行運(yùn)算,由于精度要求,Nx 和N0 都由24 位二進(jìn)制數(shù)來(lái)計(jì)數(shù)。</p><p>  圖4-1 主程序流程圖</p><p>  4.1.2 初始化液晶</p><p>  圖4-2 液晶初始化流程圖</p><p>  4

87、.1.3 初始化定時(shí)器</p><p>  圖4-3初始化定時(shí)器</p><p>  4.1.4定時(shí)器1溢出中斷流程</p><p>  本設(shè)計(jì)中通過(guò)定時(shí)器1來(lái)定時(shí)1s,用于標(biāo)準(zhǔn)信號(hào)和待測(cè)信號(hào)的計(jì)數(shù)。通過(guò)設(shè)定初始值來(lái)使定時(shí)器T1一次溢出中斷為50ms。在此通過(guò)一個(gè)全局變量flag,來(lái)判斷是否達(dá)到1s,每到50msflag加1,當(dāng)flag==20時(shí),所定時(shí)時(shí)間為20*

88、50ms=1s。</p><p>  圖4-2 中斷子程序流程圖</p><p><b>  4.1.5主循環(huán)</b></p><p>  主循環(huán)中,先對(duì)標(biāo)準(zhǔn)信號(hào)計(jì)數(shù),判斷flag是否滿20,如果滿20則代表計(jì)數(shù)滿1s,此時(shí)計(jì)算計(jì)數(shù)器T0中數(shù)值,然后再加上P1口的數(shù)據(jù),則為此次計(jì)數(shù)值。下次計(jì)數(shù)為對(duì)待測(cè)信號(hào)的計(jì)數(shù),與標(biāo)準(zhǔn)信號(hào)計(jì)數(shù)原理相同。最后將兩

89、次信號(hào)比較,得到待測(cè)信號(hào)的頻率值。</p><p>  圖4-3 主循環(huán)流程圖</p><p>  4.1.6 顯示子程序</p><p>  顯示子程序?qū)⒋娣旁陲@示緩沖區(qū)的頻率或周期值送往液晶上顯示出來(lái)。由于1602液晶可以顯示32各個(gè)字符,所以只顯示頻率的話有點(diǎn)浪費(fèi)。在本設(shè)計(jì)中,將液晶的第一行分別顯示了TH0、TL0、P1的值,用于調(diào)試。第二行全部用于顯示頻率

90、,可以最低顯示到個(gè)位,精度較高。</p><p>  在編程應(yīng)用1602液晶驅(qū)動(dòng)時(shí),只需要根據(jù)圖4-4的流程圖調(diào)用相關(guān)函數(shù)既可完成顯示模塊的所有功能,對(duì)于本課題所用的1602驅(qū)動(dòng)函數(shù),其中的液晶初始化函數(shù)已經(jīng)包括了初始化和清屏兩大功能,此外,在指定位置顯示一串字符的函數(shù)也已經(jīng)包括了設(shè)置顯示位置和顯示字符串的兩大功能,因?yàn)樵诒菊n題的實(shí)際編程中對(duì)于液晶顯示模塊的設(shè)計(jì)相對(duì)來(lái)說(shuō)比較簡(jiǎn)單。</p><p

91、>  圖4-4 1602液晶顯示基本流程</p><p>  第5章 系統(tǒng)調(diào)試</p><p><b>  5.1 硬件調(diào)試</b></p><p>  硬件電路主要包括模擬電路部分,單片機(jī)外圍電路及顯示電路,在聯(lián)調(diào)之前必須要驗(yàn)證這幾個(gè)部分能正常工作。</p><p>  把仿真機(jī)的仿真頭插到電路板單片機(jī)的插槽

92、中,接通仿真機(jī)和電路板的電源,然后打開(kāi)界面輸入顯示子程序進(jìn)行編譯、加載調(diào)試。如果能在液晶上顯示正確的數(shù)字,則單片機(jī)與顯示部分能夠正常工作。經(jīng)過(guò)反復(fù)的調(diào)試與修改,單片機(jī)部分驗(yàn)證完畢。</p><p>  模擬電路部分分低頻和高頻兩部分,分別進(jìn)行調(diào)試。低頻部分通過(guò)輸入一個(gè)0到10MHz的信號(hào),幅度為30mV,通過(guò)示波器觀察其輸出,可以看出其輸出幅度為3.7V,實(shí)現(xiàn)了放大功能。高頻部分通過(guò)輸入一個(gè)大于1MHz的高頻信號(hào)

93、,幅度在50mV左右,可以發(fā)現(xiàn)其輸出變?yōu)榉葹?V左右的方波,實(shí)現(xiàn)了放大功能。</p><p>  5.2調(diào)試軟件的介紹</p><p>  5.2.1 Keil uvision3軟件介紹</p><p><b>  一、概述</b></p><p>  Keil uvision3 是美國(guó)Keil Software 公司

94、出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。</p><p>  Keil uvision3 軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼

95、很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。</p><p><b>  二、工作界面</b></p><p>  首先使用keil新建一個(gè)工程,設(shè)置好各個(gè)選項(xiàng)。然后新建一個(gè)c文件,并編寫(xiě)所有源代碼然后編譯,查錯(cuò),直到編譯完全通過(guò)為止,下圖就是編譯通過(guò)后的界面。</p><p>  圖5-1 有關(guān)編譯、連接、項(xiàng)目設(shè)置的工具條<

96、;/p><p>  圖 5-2正確編譯、連接之后的結(jié)果</p><p>  在設(shè)置好工程后,即可進(jìn)行編譯、連接。選擇菜單Project->Build target,對(duì)當(dāng)前工程進(jìn)行連接,如如果當(dāng)前文件已修改,軟件會(huì)先對(duì)該文件進(jìn)行編譯,然后再連接以產(chǎn)生目標(biāo)代碼:如果選擇Rebuild All target files將會(huì)對(duì)當(dāng)前工程中的所有文件重新進(jìn)行編譯然后再連接,確保最終產(chǎn)生的目標(biāo)代碼是最

97、新的,而Translate…項(xiàng)則僅對(duì)該文件進(jìn)行編譯,不進(jìn)行連接。</p><p>  以上操作也可以通過(guò)工具欄按鈕直接進(jìn)行。圖5-1是有關(guān)編譯、設(shè)置的工具欄按鈕,從左到右分別是:編譯、連接、全部重建、停止編譯和對(duì)工程進(jìn)行設(shè)置。</p><p>  編譯過(guò)程中的信息將出現(xiàn)在輸出窗口的Build 頁(yè)中,如果源程序中有語(yǔ)法錯(cuò)誤,會(huì)有錯(cuò)誤報(bào)告出現(xiàn),雙擊該行,可以定位到出錯(cuò)的位置,對(duì)源程序反復(fù)修改之

98、后,最終會(huì)得到如圖5-2所示的結(jié)果,提示獲得了名為exam 1.hex的文件,該文件即可被編程器讀入并寫(xiě)到芯片中,同時(shí)還產(chǎn)生了一些其它相關(guān)的文件,可被用于Keil 的仿真與調(diào)試,這時(shí)可以進(jìn)入下一步調(diào)試的工作。</p><p>  三、 調(diào)試主要方法和技巧</p><p><b>  1.常用調(diào)試命令</b></p><p>  在對(duì)工程成功進(jìn)行

99、匯編、連接以后,按Ctrl+5或者使用菜單Debug->Start/Stop Debug Session即可進(jìn)入調(diào)試狀態(tài),K eil 內(nèi)建立一個(gè)仿真CPU來(lái)模擬執(zhí)行程序,該仿真CPU功能強(qiáng)大,可以在沒(méi)有硬件和仿真機(jī)的情況下進(jìn)行程序的調(diào)試。</p><p>  進(jìn)入調(diào)試狀態(tài)后,界面與編輯狀態(tài)相比有明顯的變化,Debug菜單項(xiàng)中原來(lái)不能用的命令現(xiàn)在可以使用了,工具欄會(huì)多出一個(gè)用于運(yùn)行和調(diào)試的工具條,Debug

100、菜單上的大部分命令可以在此找到對(duì)應(yīng)的快捷按鈕,從左到右依次是復(fù)位、運(yùn)行、暫停、單步、過(guò)程單步、執(zhí)行完當(dāng)前子程序、運(yùn)行到當(dāng)前行、下一狀態(tài)、打開(kāi)跟蹤、觀察跟蹤、反匯編窗口、觀察窗口、代碼作用范圍分析、性能分析、工具按鈕等命令。</p><p>  學(xué)習(xí)程序調(diào)試,必須明確兩個(gè)重要的概念,即單步執(zhí)行與全速運(yùn)行。全速執(zhí)行是指一行程序執(zhí)行完以后緊接著執(zhí)行下一行程序,中間不停止,這樣程序執(zhí)行的速度很快,并可以看到該段程序執(zhí)行的

101、總體效果,即最終結(jié)果正確還是錯(cuò)誤,但如果程序有錯(cuò),則難以確認(rèn)錯(cuò)誤出現(xiàn)在哪些程序行。單步執(zhí)行是每次執(zhí)行一行程序,執(zhí)行完改行程序以后即停止,等待命令執(zhí)行下一行程序,此時(shí)可以觀察該行程序執(zhí)行完以后得到的結(jié)果,是否與我們寫(xiě)該行程序所想得到的結(jié)果相同,借此可以找到程序中的問(wèn)題所在。程序調(diào)試中,這兩種運(yùn)行方式都要用到。</p><p><b>  2. 在線匯編</b></p><p

102、>  在進(jìn)入Keil的調(diào)試環(huán)境以后,如果發(fā)現(xiàn)程序有錯(cuò),可以直接對(duì)源程序進(jìn)行修改,但是要使修改后的代碼起作用,必須先退出調(diào)試環(huán)境,重新進(jìn)行編譯、連接后再次進(jìn)入調(diào)試,如果只是需要對(duì)某些 進(jìn)行測(cè)試,或僅需要對(duì)源程序進(jìn)行臨時(shí)的修改,這樣的過(guò)程未免有些麻煩,為此Keil軟件提供了在線匯編的能力,將光標(biāo)定位于需要修改的程序行上,用菜單Debug->Inline Assambly….即可出現(xiàn)如圖5-3的對(duì)話框,在Enter New后面的編

103、輯框內(nèi)直接輸入需要更改的程序語(yǔ)句,輸入完后鍵入回車(chē)將自動(dòng)指向下一條語(yǔ)句,可以繼續(xù)修改,如果不再需要修改,可以點(diǎn)擊右上角的關(guān)閉按鈕關(guān)閉窗口。</p><p>  圖5-3在線匯編窗口</p><p><b>  3. 斷點(diǎn)設(shè)置</b></p><p>  程序調(diào)試時(shí),一些程序行必須滿足一定的條件才能被執(zhí)行到,這些條件往往是異步發(fā)生或難以預(yù)先設(shè)定的

104、,這類(lèi)問(wèn)題使用單步執(zhí)行的方法是很難調(diào)試的,這時(shí)就要使用到程序調(diào)試中的另一種非常重要的方法-斷點(diǎn)設(shè)置。斷點(diǎn)設(shè)置的方法有多種,常用的是在某一程序行設(shè)置斷點(diǎn),設(shè)置好斷點(diǎn)后可以全速運(yùn)行程序,一旦執(zhí)行到該程序行停止,可在此觀察有關(guān)變量值,以確定問(wèn)題所在。在程序行設(shè)置/移除斷點(diǎn)的方法是將光標(biāo)定位于需要設(shè)置斷點(diǎn)的程序行,使用菜單Debug->Insert/Remove BreakPoint設(shè)置或移除斷點(diǎn):Debug->Enable/Dis

105、able BreakPoint 是開(kāi)啟或暫停光標(biāo)所在行的斷點(diǎn)功能:Debug->Disable All Breakpoint 暫停所有斷點(diǎn):Debug->Kill All BreakPoint 清除所有的斷點(diǎn)設(shè)置。這些功能也可以用工具條上的快捷按鈕進(jìn)行設(shè)置。</p><p><b>  5.3調(diào)試</b></p><p>  5.3.1 測(cè)頻精度分析<

106、;/p><p>  由第一章所述的測(cè)量原理可知,本系統(tǒng)的測(cè)頻公式為:Fx = ( Fs×Nx ) / Ns</p><p><b>  其誤差分析如下:</b></p><p>  設(shè)所測(cè)頻率值為Fx,其真實(shí)值為Fxe,標(biāo)準(zhǔn)頻率為Fs。在一次測(cè)量中,由于Fx計(jì)數(shù)的起停時(shí)間都是由該信號(hào)的上跳沿觸發(fā)的,在Tpr時(shí)間內(nèi)Fx的計(jì)數(shù)Nx無(wú)誤差;此時(shí)

107、內(nèi)的計(jì)數(shù)Ns最多相差一個(gè)脈沖,即|⊿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ù)相對(duì)誤差公式有:</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>  即相對(duì)誤差⊿Fxe/Fxe≤1/Ns</p><p>  又Ns=Tpr×Fs</p><p><b>  由此可知:</b></p><p> ?。?)相對(duì)測(cè)量誤差與頻率無(wú)關(guān);</p><p> ?。?)增大Tpr或提高Fs,可以增大Ns,減少測(cè)量誤差

110、,提高測(cè)量精度;</p><p> ?。?)本測(cè)頻系統(tǒng)的測(cè)量精度與預(yù)置門(mén)寬度和標(biāo)準(zhǔn)頻率有關(guān),與被測(cè)信號(hào)的頻率無(wú)關(guān)。</p><p>  在預(yù)置門(mén)時(shí)間和常規(guī)測(cè)頻閘門(mén)時(shí)間相同而被測(cè)信號(hào)頻率不同的情況下,本測(cè)頻系統(tǒng)所采用的測(cè)量方法的測(cè)量精度不變。為了恒定測(cè)量精度,可采用高頻率穩(wěn)定度和高精度晶體振蕩器作標(biāo)準(zhǔn)頻率發(fā)生器。</p><p>  5.3.2實(shí)驗(yàn)測(cè)試數(shù)據(jù)</p

111、><p>  整個(gè)系統(tǒng)比較復(fù)雜,因此我們采用自底向上的調(diào)試方法,也就是先進(jìn)行各個(gè)單元電路的軟件仿真和硬件調(diào)試,在各個(gè)單元電路調(diào)試好后再進(jìn)行系統(tǒng)調(diào)試,最后進(jìn)行硬件的編程固化及系統(tǒng)的組裝。程序在KEIL3上調(diào)試通過(guò)。并使用目前較為流行的C語(yǔ)言編寫(xiě)。既方便復(fù)雜的數(shù)學(xué)運(yùn)算,判斷語(yǔ)句的使用又靈活,不用考慮推棧情況,所以相對(duì)與匯編漏洞出現(xiàn)較少。</p><p>  經(jīng)軟件的調(diào)試—修改—再調(diào)試,如此反復(fù),排

112、除各種故障最終基本完成了設(shè)計(jì)所要求的任務(wù)。由單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器構(gòu)成基本測(cè)量電路,外加整形和分頻電路,由系統(tǒng)軟件設(shè)計(jì)可以測(cè)出1HZ-9999HZ的量程范圍,使用的動(dòng)態(tài)顯示測(cè)量時(shí)會(huì)出現(xiàn)閃爍現(xiàn)象,但顯示數(shù)值準(zhǔn)確,穩(wěn)定時(shí)顯示不閃爍。測(cè)試由信號(hào)源發(fā)出的頻率時(shí),測(cè)量值如表5-1所示。測(cè)量條件:方波,幅度為Vpp=10V。</p><p>  表5-1:SP1641B型函數(shù)信號(hào)發(fā)生器發(fā)出的信號(hào)測(cè)量結(jié)果</p>

113、<p>  從測(cè)試結(jié)果看,測(cè)量TTL電平的方波時(shí),精度還是很高的。通過(guò)表格中的數(shù)據(jù),可以看出用單片機(jī)STC89C52制作的等精度頻率計(jì)測(cè)量值與實(shí)際值是相吻合的,平均相對(duì)誤差約在0.01%左右。只要存在的誤差是在設(shè)計(jì)允許的范圍內(nèi)(0%~1%),我們就認(rèn)為設(shè)計(jì)的頻率計(jì)在測(cè)量頻率上是準(zhǔn)確的。我們?cè)O(shè)計(jì)制作的頻率計(jì)能夠達(dá)到這個(gè)標(biāo)準(zhǔn),但也存在一定的誤差,可能的原因是低頻段采用的分頻比較小。</p><p>&l

114、t;b>  參考文獻(xiàn)</b></p><p>  [1] 凌玉華等.單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)[M].中南大學(xué)出版社,2006.</p><p>  [2] 閻石. 數(shù)字電子技術(shù)基礎(chǔ)[M].高等教育出版社,2006.</p><p>  [3] 徐志軍,徐光輝.CPLD/FPGA的開(kāi)發(fā)與應(yīng)用 [M].電子工業(yè)出版社, 2002.</p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論