




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
.PAGE.簡易頻率計的設計中文摘要頻率測量是電子學測量中最為基本的測量之一。頻率計主要是由信號輸入和放大電路、單片機模塊、分頻模塊及顯示電路模塊組成。AT89S52單片機是頻率計的控制核心,來完成它待測信號的計數,譯碼,顯示以及對分頻比的控制。利用它內部的定時/計數器完成待測信號頻率的測量。在整個設計過程中,所制作的頻率計采用外部分頻,實現10Hz~2MHz的頻率測量,而且可以實現量程自動切換流程。以AT89S52單片機為核心,通過單片機內部定時/計數器的門控時間,方便對頻率計的測量。其待測頻率值使用四位共陽極數碼管顯示,并可以自動切換量程,單位分別由紅、黃、綠3個LED指示。本次采用單片機技術設計一種數字顯示的頻率計,具有測量準確度高,響應速度快,體積小等優點。關鍵詞:頻率計;單片機;計數器;量程自動切換ThedesignofsimpleFrequencyMeasurementABSTRACTFrequencymeasurementisthemostbasicmeasurementinElectronicfield.Asimplefrequencymetermainlybythesignalinputandamplifyingcircuit,microcontrollermodule,sub-frequencycircuitmoduleanddisplaymodule.AT89S52MCUisthecontrolcorefrequencyofdollarstocompleteitscountofthesignalundertest,decoding,displayandcontrolofthefrequencydivisionratio.Usingitsinternaltimerorcountertocompletethesignaloftheundertestcycle/frequencyofmeasurement.Throughoutthedesignprocess,periodicmeasurementofthefrequencymeterapplicationandthecorrespondingmathematicaltreatmenttoachieve10Hz~2MHzfrequencymeasurements,andcanautomaticallyswitchtheflowtoachievescale.TothecoreofAT89S52microcontroller,withtheMCUinternaltimer/countergatetime,itcanbeeasierforfrequencymeasurement.Theuseofmicrocomputertechnologytodesignadigitaldisplayoffrequencymeter,haveameasurementofhighaccuracy,fastresponse,smallsizeandsoon.KEYWORD:Frequencymeter;singlechip;counter;rangeautomaticallyswitch目錄第一章前言11.1頻率計概述11.2頻率計發展與應用11.3頻率計設計內容1第二章系統總體方案設計22.1測頻的原理22.2總體思路32.3具體模塊3第三章硬件電路具體設計53.1AT89S52主控制器模塊53.1.1AT89S52的介紹53.1.2復位電路及時鐘電路63.1.3引腳功能73.1.4單片機引腳分配83.2電源模塊93.2.1直流穩壓電源的基本原理93.2.2電源電路設計103.3放大整形模塊113.4分頻設計模塊113.4.1分頻電路分析113.4.274LS161芯片介紹123.4.374LS151芯片介紹133.4.4分頻電路143.5顯示模塊143.5.1數碼管介紹153.5.2頻率值顯示電路153.5.3檔位轉換指示電路16第四章系統的軟件設計174.1軟件模塊設計174.2中斷服務子程序184.3顯示子程序194.4量程檔自動轉換子程序204.5應用軟件簡介204.5.1Keil簡介214.5.2protues簡介22第五章頻率計的系統調試235.1硬件調試235.1.1電源模塊調試23整形模塊調試245.1.3分頻模塊調試255.2軟件調試255.2.1Pouteus軟件調試255.2.2功能調試265.3系統調試275.3.1系統軟件調試275.3.2系統軟硬件調試275.4誤差分析28第六章總結23參考文獻24致謝25附錄1..第一章前言頻率測量是電子學測量中最為基本的測量之一。由于頻率信號抗干擾性強,易于傳輸,因此可以獲得較高的測量精度。隨著數字電子技術的發展,頻率測量成為一項越來越普遍的工作,測頻原理和測頻方法的研究正受到越來越多的關注。1.1頻率計概述數字頻率計是計算機、通訊設備、音頻視頻等科研生產領域不可缺少的測量儀器。它是一種用十進制數字顯示被測信號頻率的數字測量儀器。它的基本功能是測量正弦信號、方波信號及其他各種單位時間內變化的物理量。在進行模擬、數字電路的設計、安裝、調試過程中,由于其使用十進制數顯示,測量迅速,精確度高,顯示直觀,經常要用到頻率計。傳統的頻率計采用測頻法測量頻率,通常由組合電路和時序電路等大量的硬件電路組成,產品不但體積大,運行速度慢而且測量低頻信號不準確。本次采用單片機技術設計一種數字顯示的頻率計,測量準確度高,響應速度快,體積小等優點[1]。1.2頻率計發展與應用在我國,單片機已不是一個陌生的名詞,它的出現是近代計算機技術的里程碑事件。單片機作為最為典型的嵌入式系統,它的成功應用推動了嵌入式系統的發展。單片機已成為電子系統的中最普遍的應用。單片機作為微型計算機的一個重要分支,其應用范圍很廣,發展也很快,它已成為在現代電子技術、計算機應用、網絡、通信、自動控制與計量測試、數據采集與信號處理等技術中日益普及的一項新興技術,應用范圍十分廣泛。其中以AT89S52為內核的單片機系列目前在世界上生產量最大,派生產品最多,基本可以滿足大多數用戶的需要[2]。1.3頻率計設計內容利用電源、單片機、分頻電路及數碼管顯示等模塊,設計一個簡易的頻率計能夠粗略的測量出被測信號的頻率。參數要求如下:1.測量范圍10HZ—2MHZ;2.用四位數碼管顯示測量值;3.能根據輸入信號自動切換量程;4.可以測量方波、三角波及正弦波等多種波形;第二章系統總體方案設計2.1測頻的原理測頻的原理歸結成一句話,就是"在單位時間內對被測信號進行計數"。被測信號,通過輸入通道的放大器放大后,進入整形器加以整形變為矩形波,并送入主門的輸入端[3]。由晶體振蕩器產生的基頻,按十進制分頻得出的分頻脈沖,經過基選通門去觸發主控電路,再通過主控電路以適當的編碼邏輯便得到相應的控制指令,用以控制主門電路選通被測信號所產生的矩形波,至十進制計數電路進行直接計數和顯示。若在一定的時間間隔T內累計周期性的重復變化次數N,則頻率的表達式為式:〔1圖1說明了測頻的原理及誤差產生的原因。時基信號待測信號丟失〔少計一個脈沖計到N個脈沖多余〔比實際多出了0.x個脈沖圖1測頻原理在圖1中,假設時基信號為1KHZ,則用此法測得的待測信號為1KHZ×5=5KHZ。但從圖中可以看出,待測信號應該在5.5KHZ左右,誤差約有0.5/5.5≈9.1%。這個誤差是比較大的,實際上,測量的脈沖個數的誤差會在±1之間。假設所測得的脈沖個數為N,則所測頻率的誤差最大為δ=1/〔N-1*100%。顯然,減小誤差的方法,就是增大N。本頻率計要求測頻誤差在1‰以下,則N應大于1000。通過計算,對1KHZ以下的信號用測頻法,反應的時間長于或等于10S,。由此可以得出一個初步結論:測頻法適合于測高頻信號。頻率計數器嚴格地按照公式進行測頻[4]。由于數字測量的離散性,被測頻率在計數器中所記進的脈沖數可有正一個或負一個脈沖的量化誤差,在不計其他誤差影響的情況下,測量精度將為:應當指出,測量頻率時所產生的誤差是由N和T倆個參數所決定的,一方面是單位時間內計數脈沖個數越多時,精度越高,另一方面T越穩定時,精度越高。為了增加單位時間內計數脈沖的個數,一方面可在輸入端將被測信號倍頻,另一方面可增加T來滿足,為了增加T的穩定度,只需提高晶體振蕩器的穩定度和分頻電路的可靠性就能達到。上述表明,在頻率測量時,被測信號頻率越高,測量精度越高。2.2總體思路頻率計是我們經常會用到的實驗儀器之一,頻率的測量實際上就是在單位時間內對信號進行計數,計數值就是信號頻率。本文介紹了一種基于單片機AT89S52制作的頻率計的設計方法,所制作的頻率計測量比較高的頻率采用外部十分頻,測量較低頻率值時采用單片機直接計數,不進行外部分頻。該頻率計實現10HZ~2MHZ的頻率測量,而且可以實現量程自動切換功能,四位共陽極動態顯示測量結果,可以測量正弦波、三角波及方波等各種波形的頻率值。2.3具體模塊根據上述系統分析,頻率計系統設計共包括五大模塊:單片機控制模塊、電源模塊、放大整形模塊、分頻模塊及顯示模塊。各模塊作用如下:1、單片機控制模塊:以AT89S52單片機為控制核心,來完成它待測信號的計數,譯碼,和顯示以及對分頻比的控制。利用其內部的定時/計數器完成待測信號周期/頻率的測量。單片機AT89S52內部具有2個16位定時/計數器,定時/計數器的工作可以由編程來實現定時、計數和產生計數溢出時中斷要求的功能。<因為AT89C51所需外圍元件少,擴展性強,測試準確度高。>2、電源模塊:為整個系統提供合適又穩定的電源,主要為單片機、信號調理電路以及分頻電路提供電源,電壓要求穩定、噪聲小及性價高的電源。3、放大整形模塊:放大電路是對待測信號的放大,降低對待測信號幅度的要求。整形電路是對一些不是方波的待測信號轉化成方波信號,便于測量。4、分頻模塊:考慮單片機外部計數,使用12MHz時鐘時,最大計數速率為500kHz,因此需要外部分頻。分頻電路用于擴展單片機頻率測量范圍,并實現單片機頻率測量使用統一信號,可使單片機測頻更易于實現,而且也降低了系統的測頻誤差。可用74161進行外部十分頻。5、顯示模塊:顯示電路采用四位共陽極數碼管動態顯示,為了加大數碼管的亮度,使用4個PNP三極管進行驅動,便于觀測。綜合以上頻率計系統設計有單片機控制模塊、電源模塊、放大整形模塊、分頻模塊及顯示模塊等組成,頻率計的總體設計框圖如圖2所示。圖2頻率計總體設計框圖第三章硬件電路具體設計根據系統設計的要求,頻率計實際需要設計的硬件系統主要包括以下幾個部分:AT89S52單片機最小系統模塊、電源模塊、放大整形模塊、分頻模塊及顯示模塊,下面將分別給予介紹。3.1AT89S52主控制器模塊3.1.1AT89S52的介紹8位單片機是MSC-51系列產品升級版[5],有世界著名半導體公司ATMEL在購買MSC-51設計結構后,利用自身優勢技術——〔掉電不丟數據閃存生產技術對舊技術進行改進和擴展,同時使用新的半導體生產工藝,最終得到成型產品。與此同時,世界上其他的著名公司也通過基本的51內核,結合公司自身技術進行改進生產,推廣一批如51F020等高性能單片機。AT89S52片內集成256字節程序運行空間、8K字節Flash存儲空間,支持最大64K外部存儲擴展。根據不同的運行速度和功耗的要求,時鐘頻率可以設置在0-33M之間。片內資源有4組I/O控制端口、3個定時器、8個中斷、軟件設置低能耗模式、看門狗和斷電保護。可以在4V到5.5V寬電壓范圍內正常工作。不斷發展的半導體工藝也讓該單片機的功耗不斷降低。同時,該單片機支持計算機并口下載,簡單的數字芯片就可以制成下載線,僅僅幾塊錢的價格讓該型號單片機暢銷10年不衰。根據不同場合的要求,這款單片機提供了多種封裝,本次設計根據最小系統有時需要更換單片機的具體情況,使用雙列直插DIP-40的封裝。AT89S52引腳如下圖3所示。圖3AT89S52引腳圖3.1.2復位電路及時鐘電路復位電路和時鐘電路是維持單片機最小系統運行的基本模塊。復位電路通常分為兩種:上電復位〔圖4和手動復位〔圖5。圖4上電復位圖5手動復位有時系統在運行過程中出現程序跑飛的情況,在程序開發過程中,經常需要手動復位。所以本次設計選用手動復位。高頻率的時鐘有利于程序更快的運行,也有可以實現更高的信號采樣率,從而實現更多的功能[6]。但是告訴對系統要求較高,而且功耗大,運行環境苛刻。考慮到單片機本身用在控制,并非高速信號采樣處理,所以選取合適的頻率即可。合適頻率的晶振對于選頻信號強度準確度都有好處,本次設計選取12.000M無源晶振接入XTAL1和XTAL2引腳。并聯2個30pF陶瓷電容幫助起振。AT89S52單片機最小系統如圖6所示。圖6單片機最小系統原理圖3.1.3引腳功能VCC:電源電壓;GND:地;P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫"1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有內部上拉電阻。在flash編程時,P0口用來接收指令字節;在程序校驗時,輸出指令字節。程序校驗時,需要外部上拉電阻[7]P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅動4個TTL邏輯電平。對P1端口寫"1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入和定時器/計數器2的觸發輸入,P1口功能表1P1口的第二種功能說明表引腳號第二功能P1.0T2<定時器/計數器T2的外部計數輸入>,時鐘輸出P1.1T2EX<定時器/計數器T2的捕捉/重載觸發信號和方向控制>P1.5MOSI<在系統編程用>P1.6MISO<在系統編程用>P1.7SCK<在系統編程用>P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫"1”P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫"1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。P3口亦作為AT89C51特殊功能〔第二功能使用,P3口功能表2P3口的第二種功能說明表引腳號第二功能P3.0RXD〔串行輸入P3.1TXD<串行輸出>P3.2〔外部中斷0P3.3〔外部中斷1P3.4T0<定時器0外部輸入>P3.5T1<定時器1外部輸入>P3.6<外部數據存儲器寫選通>P3.7<外部數據存儲器寫選通>RST:復位輸入。晶振工作時,RST腳持續2個機器周期高電平將使單片機復位。看門狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR<地址8EH>上的DISRTO位可以使此功能無效。DISRTO默認狀態下,復位高電平有效。XTAL1:振蕩器反相放大器和內部時鐘發生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。3.1.4單片機引腳分配根據系統設計及各模塊的分析得出,單片機的引腳分配如表3所示。表3單片機端口分配表模塊端口功能顯示模塊數碼管頻率值顯示LED單位顯示分頻模塊通道選擇P1.3清零3.2電源模塊3.2.1直流穩壓電源的基本原理直流穩壓電源一般由電源變壓器T、整流、濾波及穩壓電路所組成[8],基本框圖如圖7所示。圖7直流穩壓電源框圖及波形<1>電源變壓器T的作用是將220V的交流電壓變換成整流濾波電路所需要的交流電壓Ui。變壓器副邊與原邊的功率比為P2/P1=n,式中n是變壓器的效率。<2>整流電路:整流電路將交流電壓Ui變換成脈動的直流電壓。再經濾波電路濾除較大的波紋成分,輸出波紋較小的直流電壓U1。常用的整流濾波電路有全波整流濾波、橋式整流濾波等。圖8整流電路〔3濾波電路:各濾波電路C滿足 RL-C=〔3~5T/2,式中T為輸入交流信號周期,RL為整流濾波電路的等效負載電阻。圖9濾波電路<4>穩壓電路:常用的穩壓電路有兩種形式:一是穩壓管穩壓電路,二是串聯型穩壓電路。二者的工作原理有所不同。穩壓管穩壓電路其工作原理是利用穩壓管兩端的電壓稍有變化,會引起其電流有較大變化這一特點,通過調節與穩壓管串聯的限流電阻上的壓降來達到穩定輸出電壓的目的。它一般適用于負載電流變化較小的場合。串聯型穩壓電路是利用電壓串聯負反饋的原理來調節輸出電壓的。集成穩壓電源事實上是串聯穩壓電源的集成化。3.2.2電源電路設計根據上述介紹設計,電源電路包括變壓器、整流電路、濾波電路、穩壓電路等模塊組成,使用LED進行電源工作狀態指示。LM78XX系列三端穩壓IC來組成穩壓電源所需的外圍元件極少[9],電路內部還有過流、過熱及調整管的保護電路,使用起來可靠、方便,而且價格便宜,因此使用LM7805穩壓芯片進行5V的電源電路設計。具體的5V電源電路如下圖10所示。圖105V直流電源電路3.3放大整形模塊由于輸入的信號可以是正弦波,三角波。而后面的閘門或計數電路要求被測信號為矩形波,所以需要設計一個整形電路則在測量的時候,首先通過整形電路將正弦波或者三角波轉化成矩形波。在整形之前由于不清楚被測信號的強弱的情況。所以在通過整形之前通過放大衰減處理。當輸入信號電壓幅度較大時,通過輸入衰減電路將電壓幅度降低。當輸入信號電壓幅度較小時,前級輸入衰減為零時若不能驅動后面的整形電路,則調節輸入放大的增益,時被測信號得以放大[10]。根據上述分析,放大電路放大整形電路采用高頻晶體管3DG100與74LS00等組成。其中3DG100為NPN型高頻小功率三極管,組成放大器將輸入頻率為fx的周期信號如正弦波、三角波及方波等波形進行放大。與非門74LS00構成施密特觸發器,它對放大器的輸出波形信號進行整形,使之成為矩形脈沖[11]。具體放大整形電路如圖11所示。圖11放大整形電路3.4分頻設計模塊分頻電路用于擴展單片機頻率測量范圍,并實現單片機頻率和周期測量使用統一信號,可使單片機測頻更易于實現,而且也降低了系統的測頻誤差。可用74161進行分頻。3.4.1分頻電路分析本頻率計的設計以AT89S51單片機為核心,利用他內部的定時/計數器完成待測信號周期/頻率的測量。單片機AT89S51內部具有2個16位定時/計數器,定時/計數器的工作可以由編程來實現定時、計數和產生計數溢出時中斷要求的功能。在定時器工作方式下,在被測時間間隔內,每來一個機器周期,計數器自動加1〔使用12MHz時鐘時,每1μs加1,這樣以機器周期為基準可以用來測量時間間隔。在計數器工作方式下,加至外部引腳的待測信號發生從1到0的跳變時計數器加1,這樣在計數閘門的控制下可以用來測量待測信號的頻率。外部輸入在每個機器周期被采樣一次,這樣檢測一次從1到0的跳變至少需要2個機器周期〔24個振蕩周期,所以最大計數速率為時鐘頻率的1/24〔使用12MHz時鐘時,最大計數速率為500kHz,因此采用74LS161進行外部十分頻使測頻范圍達到2MHz。為了測量提高精度,當被測信號頻率值較低時,直接使用單片機計數器計數測得頻率值;當被測信號頻率值較高時采用外部十分頻后再計數測得頻率值。這兩種情況使用74LS151進行通道選擇,由單片機先簡單測得被測信號是高頻信號還是低頻信號,然后根據信號頻率值的高低進行通道的相應導通,繼而測得相應頻率值。3.4.274LS161芯片介紹74LS161是常用的四位二進制可預置的同步加法計數器[12],可以靈活的運用在各種數字電路,以及單片機系統種實現分頻器等很多重要的功能。74LS161引腳如圖12所示。圖1274LS161引腳圖時鐘CP和四個數據輸入端P0~P3,清零/MR,使能CEP,CET,置數PE,數據輸出端Q0~Q3,以及進位輸出TC<TC=Q0·Q1·Q2·Q3·CET>。表4為74161的功能表。表474161的功能表清零RD預置LD使能EPET時鐘CP預置數據輸入ABCD輸出Q0Q1Q2Q3L××××××××LLLLHL××上升沿ABCDABCDHHL××××××保持HH×L×××××保持HHHH上升沿××××計數其中RD是異步清零端,LD是預置數控制端,A、B、C、D是預置數據輸入端,EP和ET是計數使能端,RCO<=ET.QA.QB.QC.QD>是進位輸出端,它的設置為多片集成計數器的級聯提供了方便。計數過程中,首先加入一清零信號RD=0,使各觸發器的狀態為0,即計數器清零。RD變為1后,加入一置數信號LD=0,即信號需要維持到下一個時鐘脈沖的正跳變到來后。在這個置數信號和時鐘脈沖上升的共同作用下,各觸發器的輸出狀態與預置的輸入數據相同,這就是預置操作。接著EP=ET=1,在此期間74161一直處于計數狀態。一直到EP=0,ET=1,計數器計數狀態結束。從74LS161功能表功能表中可以知道,當清零端CR="0",計數器輸出Q3、Q2、Q1、Q0立即為全"0",這個時候為異步復位功能。當CR="1"且LD="0"時,在CP信號上升沿作用后,74LS161輸出端Q3、Q2、Q1、Q0的狀態分別與并行數據輸入端D3,D2,D1,D0的狀態一樣,為同步置數功能。而只有當CR=LD=EP=ET="1"、CP脈沖上升沿作用后,計數器加1。74LS161還有一個進位輸出端CO,其邏輯關系是CO=Q0·Q1·Q2·Q3·CET。合理應用計數器的清零功能和置數功能,一片74LS161可以組成16進制以下的任意進制分頻器。3.4.374LS151芯片介紹數據選擇端〔ABC按二進制譯碼,以從8個數據〔D0-D7中選取1個所需的數據。只有在選通端STROBE為低電平時才可選擇數據。74LS151有互補輸出端〔Y、W,Y輸出原碼,W輸出反碼[13]。74LS151引腳如圖13所示。圖1374151管腳圖74LS151的功能如下表所示。其中A、B、C
為選擇輸入端,D0-D7為
數據輸入端,STROBE
為選通輸入端〔低電平有效,W為反碼數據輸出端,Y為數據輸出端。表574151功能表3.4.4分頻電路根據以上分析,采用74LS161和74LS151設計分頻電路如圖14所示。圖15分頻電路原理圖3.5顯示模塊顯示模塊由頻率值顯示電路和量程轉換指示電路組成。頻率值顯示電路采用四位共陽極數碼管動態顯示頻率計被測數值,使用三極管8550進行驅動,使數碼管亮度變亮,便于觀察測量。量程轉換指示電路由紅、黃、綠三個LED分別指示Hz、KHz及MHz檔,使讀數簡單可觀。3.5.1數碼管介紹常見的數碼管由七個條狀和一個點狀發光二極管管芯制成,叫七段數碼管,根據其結構的不同,可分為共陽極數碼管和共陰極數碼管兩種。根據管腳資料,可以判斷使用的是何種接口類型[14].兩種數碼管內部原理如圖16所示。圖16兩種數碼管內部原理圖LED數碼管中各段發光二極管的伏安特性和普通二極管類似,只是正向壓降較大,正向電阻也較大。在一定范圍內,其正向電流與發光亮度成正比。由于常規的數碼管起輝電流只有1~2mA,最大極限電流也只有10~30mA,所以它的輸入端在5V電源或高于TTL高電平<3.5V>的電路信號相接時,一定要串加限流電阻,以免損壞器件。3.5.2頻率值顯示電路數碼管電路設計不加三極管驅動時,數碼管顯示數值看不清,不便于頻率值的測量與調試。因此加入三極管8550進行驅動數碼管。使用4位數碼管進行頻率值顯示,如果選擇共陰極數碼管顯示,則需要8個三極管進行驅動,而采用共陽極數碼管則需要4個三極管驅動,為了節約成本,因此選用共陽極數碼管進行動態顯示,具體數碼管設計電路如圖17所示。圖17數碼管顯示電路3.5.3檔位轉換指示電路根據設計要求,采用紅、黃、綠三個LED分別指示Hz、KHz及MHz檔,根據被測信號的頻率值大小,可以自動切換量程單位,無需手動切換,便于測量和讀數,簡單方便。具體設計的檔位轉換LED指示電路如圖18所示。圖18LED檔位指示電路第四章系統的軟件設計系統軟件設計主要采用模塊化設計,敘述了各個模塊的程序流程圖,并介紹了軟件Keil和Proteus的使用方法和調試仿真。4.1軟件模塊設計系統軟件設計采用模塊化設計方法。整個系統由初始化模塊,信號頻率測量模塊,自動量程轉換和顯示模塊等模塊組成。系統軟件流程如圖19所示。頻率計開始工作或者完成一次頻率測量,系統軟件都進行測量初始化。測量初始化模塊設置堆棧指針〔SP、工作寄存器、中斷控制和定時/計數器的工作方式。定時/計數器的工作首先被設置為計數器方式,即用來測量信號頻率[15]。圖19系統軟件流程總圖首先定時/計數器的計數寄存器清0,運行控制位TR置1,啟動對待測信號的計數。計數閘門由軟件延時程序實現,從計數閘門的最小值〔即測量頻率的高量程開始測量,計數閘門結束時TR清0,停止計數。計數寄存器中的數值經過數制轉換程序從十六進制數轉換為十進制數。判斷該數的最高位,若該位不為0,滿足測量數據有效位數的要求,測量值和量程信息一起送到顯示模塊;若該位為0,將計數閘門的寬度擴大10倍,重新對待測信號的計數,直到滿足測量數據有效位數的要求。定時/計數器的工作被設置為定時器方式,定時/計數器的計數寄存器清0,在判斷待測信號的上跳沿到來后,運行控制位TR置為1,以單片機工作周期為單位進行計數,直至信號的下跳沿到來,運行控制位TR清0,停止計數。16位定時/計數器的最高計數值為65535,當待測信號的頻率較低時,定時/計數器可以對被測信號直接計數,當被測信號的頻率較高時,先由硬件十分頻后再有定時/計數器對被測信號計數,加大測量的精度和范圍。4.2中斷服務子程序T0中斷服務子程序流程如圖20所示。測頻時,定時器T0工作在定時方式,每次定時50mS,則T0中斷20次正好為1秒,即T0用來產生標準秒信號,定時器T0用作計數器,對待測信號計數,每秒鐘的開始啟動T0,每秒鐘的結束關閉T0,則定時器T0之值乘以分頻系數就為待測信號的頻率。圖20T0中斷服務子程序定時/計數器T1工作在計數方式,對信號進行計數,計數器1中斷流程圖如圖21所示。圖21計數器1中斷服務子程序4.3顯示子程序顯示子程序將存放在顯示緩沖區的頻率或周期值送往數碼管上顯示出來,由于所有4位數碼管的8根段選線并聯在一起由單片機的P2口控制,因此,在每一瞬間4位數碼管會顯示相同的字符,要想每位顯示不同的字符就必須采用掃描方法輪流點亮各位數碼管,即在每一瞬間只點亮某一位顯示字符,在此瞬間,段選控制口P2輸出相應字符。逐位輪流點亮各個數碼管,每位保持1mS,在10mS~20mS之內再點亮一次,重復不止,利用人的視角暫留,好像4位數碼管同時點亮。數碼管顯示子程序流程如圖22所示。圖22顯示子程序流程圖4.4量程檔自動轉換子程序使用定時方法實現頻率測量時,外部的待測信號通過頻率計的預處理電路變成寬度等于待測信號周期的方波,該方波同樣加至定時/計數器的輸入腳〔P3.5。工作高電平是否加至定時/計數器的輸入腳;當判定高電平加至定時/計數器的輸入腳,運行控制位TR置1,啟動定時/計數器對單片機的機器周期的計數,同時檢測方波高電平是否結束;當判定高電平結束時TR清0,停止計數,然后從計數寄存器讀出測量數據。由顯示電路顯示測量結果,根據測量結果判斷,進行頻率計比較后,進行檔位的自動切換,具體檔位自動切換流程圖如圖23所示。圖23量程檔自動轉換子程序4.5應用軟件簡介此設計需要在Keil軟件平臺上完成程序的調試,在Proteus軟件平臺上完成仿真顯示。因此介紹如何使用Keil和Proteus進行軟件的仿真。4.5.1Keil簡介Keil軟件是目前最流行開發系列單片機的軟件,Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境〔uVision將這些部份組合在一起。而Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調試時,關心的不再是某些語句執行時單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應用間脫節的矛盾和現象[16]。〔1建立工程文件點擊"Project->Newproject"菜單,出現一個對話框,要求給將要建立的工程起一個名字,你可以在編緝框中輸入一個名字,點擊"保存"按鈕,出現第二個對話框,按要求選擇目標器件片。建立新文件并增加到組。分別設置"target1”中的"T〔2匯編,調試系統程序Keil單片機模擬調試軟件內集成了一個文本編輯器,用該文本編輯器可以編輯源程序。在集成開發環境中選擇菜單"File→New..."、單擊對應的工具按鈕或者快捷鍵Ctrl+N將打開一個新的文本編輯窗口,完成匯編語言源文件的輸入,并且完成源程序向當前工程的添加。然后在集成開發環境中選擇菜單"File→SaveAs..."可以完成文件的第一次存儲。注意,匯編語言源文件的擴展名應該是"ASM",它應該與工程文件存儲在同一文件夾之內。在完成文件的第一次存儲以后,當對匯編語言源文件又進行了修改,再次存儲文件則應該選擇菜單"File→Save"、單擊對應的工具按鈕或者快捷鍵Ctrl+S實現文件的保存。接著的工作需要把匯編語言源文件加入工程之中。選擇工程管理器窗口的子目"SourceGroup1”,再單擊鼠標右鍵打開快捷菜單。在快捷菜單中選擇"AddFiletoGroup‘SourceGroup1’",加入文件對話框被打開。在這個對話框的"查找范圍〔I"下拉列表框中選擇存儲匯編語言源文件的文件夾,在"文件類型〔T"下拉列表框選擇"AsmSourcefile〔*.a*;*.src",這時存儲的匯編語言源文件將顯示出來。雙擊要加入的文件名或者選擇要加入的文件名再單擊"Add"按鈕即可完成把匯編語言源文件加入工程。文件加入以后,加入文件對話框并不消失,更多的文件也可以利用它加入工程。如果不需要加入其它文件,單擊"Close"按鈕可以關閉加入文件對話框。這時工程管理窗口的文件選項卡中子目錄"SourceGroup1”〔3編譯源程序,出現錯誤時,返回上一級對錯誤更改后重新編譯,直到沒有錯誤為止。4.5.2protues簡介protues是Labcenter公司出品的電路分析、實物仿真系統,而KEIL是目前世界上最好的51單片機匯編和C語言的集成開發環境。他支持匯編和C的混合編程,同時具備強大的軟件仿真和硬件仿真功能[17]。Protues能夠很方便的和KEIL、MatlabIDE等編譯模擬軟件結合。Proteus提供了大量的元件庫有RAM,ROM,鍵盤,馬達,LED,LCD,AD/DA,部分SPI器件,部分IIC器件,它可以仿真單片機和周邊設備,可以仿真51系列、AVR,PIC等常用的MCU,與keil和MPLAB不同的是它還提供了周邊設備的仿真,只要給出電路圖就可以仿真。這里我將keil和Protues兩個軟件的快速集成起來使用。〔1首先將keil和Protues兩個軟件安裝好。〔2然后在C:\ProgramFiles\LabcenterEletronics\Protues6Professional\MODELS<我的Protues是安裝C盤里面的>目錄下的VDM51.DLL動態連接庫文件復制到C:KEIL\C51\BIN目錄下面〔我的keil也安裝在C盤這個文件將在keil的debug設置時用到。〔3打開protues軟件,新建一文件將硬件原理圖繪入圖中。〔4將KEIL生成的HEX文件下載入單片機中,點擊"開始"進行仿真。〔5在keil中進行debug,同時在proteus中查看直觀的結果〔如LCD顯示??。這樣就可以像使用仿真器一樣調試程序。利用Proteus與Keil整合進行實驗,具有比較明顯的優勢,當然其存在的缺點也是有的。利用仿真實驗可以做全部的軟件實驗和極大多數的硬件系統,虛擬仿真實驗室,因極少硬件投入、所以經濟優勢明顯,不僅可以彌補實驗儀器和元器件缺乏帶來的不足,而且排除了原材料消耗和儀器損壞等因素。第五章頻率計的系統調試頻率計的系統調試包括系統軟、硬件聯合調試。硬件調試包括電源模塊、整形模塊、分頻模塊等模塊,軟件調試就是通過修改程序,使頻率計功能完善,提高頻率計的測量精度。使用軟件仿真,調試仿真結果,同時使用數字萬用表和示波器測試輸出電壓值和輸出波形,調試出正確的軟硬件電路。5.1硬件調試5.1.1電源模塊調試電源電路包括變壓器、整流電路、濾波電路、穩壓電路等模塊組成,使用LED進行電源工作狀態指示。搭建好硬件電路,檢查線路連接正確,通電,LED燈亮,LM7805芯片不發燙,并用數字萬用表測得電壓為5.01V,證明電路基本正常工作。具體實物圖如圖24所示。圖245V電源實物圖同時,使用數字示波器測量輸出電壓波形,看有無較大的紋波,經測量觀察,基本上不存在紋波,沒有太大的干擾,電壓電路工作正常,示波器測的輸出波形如圖24所示。圖245V輸出波形5.1.2整形模塊調試整形電路采用與非門74LS00構成施密特觸發器,它對正弦波、三角波等各種波形信號進行整形,使之成為矩形脈沖。整形電路在Multisim10中進行電路的仿真與調試,在Multisim10繪制的整形電路如圖25所示。選擇虛擬函數發生器輸入不同的信號,同時使用數字示波器測的輸出波形,經測試施密特觸發器可以把10Hz-2MHz的正弦波等波形整形為方波信號,仿真結果如圖26所示。圖25整形電路仿真圖26整形電路輸出波形仿真搭建整形電路模塊,測試電路基本正確,使用數字示波器測得輸入輸出波形如圖27所示。圖27整形電路實際輸出波形5.1.3分頻模塊調試為了達到10Hz-2MHz的頻率范圍,使用外部分頻,搭建分頻電路,測試電路基本正確,選擇函數發生器輸入2MHz以下不同頻率的的方波信號,同時使用數字示波器測的輸出波形,經觀察分頻電路可以把2MHz以下不同頻率的方波波形進行十分頻,示波器測得輸入輸出波形如圖28所示。圖28分頻電路實際輸出波形5.2軟件調試5.2.1Pouteus軟件調試根據系統設計要求,進行Keil和Proteus系統仿真,不斷調試程序,直到符合功能要求。Proteus總體仿真圖29所示。圖29頻率計整體仿真圖5.2.2功能調試當測量頻率值小于1KHz以下時,數碼管顯示頻率值,并紅色LED燈亮,作為Hz檔單位指示。例如輸入信號123Hz,仿真顯示如圖30所示。圖30HZ檔頻率仿真當測量頻率值大于且等于1KHz并小于1MHz時,數碼管顯示頻率值,并黃色LED燈亮,作為KHz檔單位指示。例如輸入信號456KHz,仿真顯示如圖31所示。圖31KHZ檔頻率仿真當測量頻率值大于1MHz時,數碼管顯示頻率值,并綠色LED燈亮,作為MHz檔單位指示。例如輸入信號1.89MHz,仿真顯示如圖32所示。圖32MHZ檔頻率仿真經上述測試,基本功能都以實現,可以測出波形頻率值,并可以自動切換量程單位,符合要求。5.3系統調試5.3.1系統軟件調試經軟件的調試—修改—再調試,如此反復,排除各種故障最終基本完成了設計所要求的任務。由單片機內部定時器/計數器構成基本測量電路,外加整形和分頻電路,由系統軟件設計可以測出1HZ-5MHZ的量程范圍,可以實現量程檔的自動轉換,使用的動態顯示測量時會出現閃爍現象,但顯示數值準確,穩定時顯示不閃爍。軟件仿真測量數據如下表6-8所示。表6:HZ檔的數據記錄表待測值〔Hz1050300450800888999測量值〔Hz10503004508008881000表7:KHZ檔的數據記錄表待測值〔KHz1500055000125000225000425000825000925000測量值〔KHz1555125225425825925表8:MHZ檔的數據記錄表待測信〔MHz1.1231.5581.7892.2343.3454.4565.567測量值〔MHz1.1221.5581.7882.2343.3464.4585.5685.3.2系統軟硬件調試軟件系統測試只能測試方波信號,外加硬件整形電路,可以測試正弦波、三角波等各種波形的頻率值,把各模塊組合在一起,做成完整的頻率計,實物圖如圖33所示。經過不斷的軟硬件聯合調試,修改程序和硬件,最終符合設計功能要求。圖33頻率計實物圖為了衡量這次設計的頻率計的工作情況和測量精度,我們對系統進行了調試。用這次設計的頻率計對信號進行了測量,使用函數發生器輸出各種波形,由實物頻率計測得頻率,記錄數據。實際測得頻率范圍沒有仿真結果那么高,只能稍微超過2MHz。實際記錄數據如下表9-11所示。表9:HZ檔的數據記錄表待測值〔Hz10.328.9268.7324.8490.6678.3978.8測量值〔Hz1029269325491678979表10:KHZ檔的數據記錄表待測值〔KHz15.2633.2860.12161.75308.8470.7912.1測量值〔KHz15.333.360.2162.0309.0470.9912.4表11:MHZ檔的數據記錄表待測信〔MHz1.1231.3181.7271.8051.9562.0122.889測量值〔MHz1.1231.3181.7281.8061.9572.013測不出5.4誤差分析從記錄的數據可以看出,系統軟件仿真誤差很小,在10Hz-2MHz范圍內測量出來的頻率基本上就是輸入信號的頻率,在超出這個范圍后,才出現很小的誤差。但是在硬件調試中,可能是由于標準元器件本身誤差,如隨著時間的延長,其值相比出廠時產生誤差;造成測量結果沒有軟件仿真精確。同時手工焊接單片機最小系統、分頻整形電路等也會帶來一定的干擾,造成信號的失真,從而導致測量精度下降,測量范圍有所縮小,但是可以看出,誤差在允許范圍內,所設計的電路基本符合要求。..第六章總結畢業設計已經結束,通過這次設計,我受益匪淺。畢業設計是一次綜合性的實踐,它將各種知識結合到一起綜合運用到實踐上來擴展、彌補、串聯所學的知識。通過本次畢業設計我得到了很多收獲。首先,了解了單片機的基本知識和在控制領域的作用和地位。其次掌握了C語言的編寫程序,學會了使用PROTUTES和KEIL的仿真來實現,同時掌握了如何收集、查閱、應用文獻資料,如何根據實際需要有選擇的閱讀書籍和正確確定系統所要使用的元器件的類型。再次,在精神方面鍛煉了思想、磨練了意志。面對存在的困難首先分析問題根據目的要求確定可實現的部分,定出那不準的方面找同學和老師討論研究,再完善、再修改、再發現問題、再解決培養了自己的耐心、恒心及遇事不亂的精神。總之,我明白了理論和實踐之間存在的距離只有靠不斷的思考不斷的動手才能將所學的知識真正運用到實踐上來。在畢業設計中我的很多方面的能力都得到了提高,尤其在單片機軟件編程方面讓我感觸頗深。我個人認為軟件設計是個即靈活又細膩的工作,它要求耐心和細心去不斷完善,同時還需要有良好的邏輯思維能力。通過這次畢業設計,我分析問題和解決問題的能力有所提高,也鞏固了所學的知識,加深了對理論知識的理解,更重要的是鍛煉自己的獨立性,為我今后的工作和學習打下堅實的基礎。..參考文獻[1]鄒大挺.頻率計的設計[J].《電子產品世界》出版社.2006.第193期.4-7.[2]雷玉堂.光電檢測技術[M].中國計量出版社.1995.[3]季建華.智能儀表原理[M].XX教育出版社.2004.[4]王永生.電子測量學[M].西北工業大學出版社.2003.[5]李華.單片機實用接口技術[M].航空航天大學出版社.2006.[6]張鵬.王雪梅.單片機原理與應用實例教程[M].海軍出版社.2007.[7]赫建國等.單片機在電子電路設計中的應用[M].清華大學出版社.2005.[8]康華光.電子技術基礎〔模擬部分[M].高等教育出版社.1998.[9]LM7805.html.LM7805英文參考手冊[Z][10]謝自美.電子線路設計與實驗[M].華中科技大學出版社.2006.[11]74LS00.html.74LS00英文參考手冊[Z].[12]74LS161.html.74LS161英文參考手冊[Z].[13]74LS151.html.74LS151英文參考手冊[Z].[14]康華光.電子技術基礎〔數字部分[M].高等教育出版社.1998.[15]賴麒文.8051單片機C語言軟件設計的藝術[M].科學出版社.2004.[16]徐波.Keil的使用技巧[J].《電子產品世界》出版社.2006.第224期.6-9.[17]吳清平.單片機原理與應用實例教程[M].海軍出版社.2008.致謝在論文完成之際,我的心情萬分激動。從論文的選題、資料的收集到論文的撰寫編排整個過程中,我得到了許多的熱情幫助。我首先要感XX老師,本課題在選題及研究過程中得到老師的悉心指導。XX老師多次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。姚老師花費大量了的時間和心血在我的論文上,才有我今天的定稿。還有在我大學四悉心教導我的老師們,是你們教會我很多有用的知識,特別是教會了我解決問題思考問題的方式和習慣,我在做論文的時候才能有自己的思想和規劃,論文工作才有了目標和方向。在此我代表大家向所有老師表示最誠摯的謝意。最后,感謝各位評審老師在百忙中抽出時間對論文進行審稿、參加答辯,并對加答辯會的老師和同學表示謝意。XX20XX5月于XX學院Z如遇到技術難題,請聯系我!!..附錄附件1:頻率計系統總體原理圖附件2:電源實物圖附件3:頻率計實物圖附件3:頻率計源程序#include<reg52.h>#define Segment P2#defineslP0sbitaddr0=P1^0;//定義數據端口地址,000時16分頻,100不分頻sbitaddr1=P1^1;sbitaddr2=P1^2;sbitclear=P1^3;//計數器清零sbitledM=P1^4;//檔位led顯示sbitledK=P1^5;sbitledB=P1^6;unsignedcharcnt;//定時1s計數unsignedchard[4];//對應數碼管的各位unsignedcharlevel;//檔位unsignedinttN;//不同檔位計時值unsignedintfCnt;//脈沖下降沿次數unsignedintregCnt;//脈沖次數暫存unsignedintpCnt;//頻率顯示unsignedcharNum[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voidDelay<unsigned int DelayTime>{ while<DelayTime-->;}voiddisp<>{ if<level==0>//B位檔 { d[3]=0; d[2]=pCnt/100; d[1]=<pCnt%100>/10; d[0]=pCnt%10; sl=0xfe;Delay<1>;Segment=Num[d[3]];Delay<300>; sl=0xfd;Delay<1>;Segment=Num[d[2]];Delay<300>; sl=0xfb;Delay<1>;Segment=Num[d[1]];Delay<300>; sl=0xf7;Delay<1>;Segment=Num[d[0]];Delay<300>; } elseif<level==1> { d[3]=pCnt/1000; d[2]=<pCnt%1000>/100; d[1]=<pCnt%100>/10; d[0]=pCnt%10; sl=0xfe;Delay<1>;Segment=Num[d[3]];Delay<300>; sl=0xfd;Delay<1>;Segment=Num[d[2]];Delay<300>; sl=0xfb;Delay<1>;Segment=Num[d[1]]+0x80;Delay<300>;//帶小數點 sl=0xf7;Delay<1>;Segment=Num[d[0]];Delay<300>; } elseif<level==2> { d[3]=pCnt/1000; d[2]=<pCnt%1000>/100; d[1]=<pCnt%100>/10; d[0]=pCnt%10; sl=0xfe;Delay<1>;Segment=Num[d[3]]+0x80;Delay<300>; sl=0xfd;Delay<1>;Segment=Num[d[2]];Delay<300>;//帶小數點 sl=0xfb;Delay<1>;Segment=Num[d[1]];Delay<300>; sl=0xf7;Delay<1>;Segment=Num[d[0]];Delay<300>; } else { d[3]=0; d[2]=0; d[1]=0; d[0]=0; }}voidintial<>{ clear=1;//分頻器初始化 addr0=0; addr1=0; addr2=1; tN=20;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CAR 15-2023裝配式暖通機房通用技術要求
- 2024年度江蘇省二級注冊建筑師之法律法規經濟與施工模考模擬試題(全優)
- T/CAFFCI 74-2024化妝品用原料N-乙酰神經氨酸
- 婚檢科考試題及答案
- 公益崗位面試題及答案
- 刁鉆古怪的面試題及答案
- 《自然地理學》-“巖漿巖”教學設計
- T/CADBM 56-2021建筑室內窗飾產品香格里拉簾
- 公司購買個人房產協議書
- 叉車卸貨轉讓合同范本
- 無菌藥品(附檢查指南)
- 眾辰變頻器說明書3400
- 山東大學《概率論與數理統計》期末試題及答案
- GB∕T 33917-2017 精油 手性毛細管柱氣相色譜分析 通用法
- 高壓氧治療操作規程以及護理常規
- 新能源汽車的研究論文
- 材料科學基礎基礎知識點總結
- 數控銑工圖紙(60份)(共60頁)
- 惠州市出租車駕駛員從業資格區域科目考試題庫(含答案)
- 加工設備工時單價表
- 高脂血癥藥物治療ppt課件
評論
0/150
提交評論