基于at89c51的頻率設計畢業(yè)設計_第1頁
已閱讀1頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢業(yè)設計說明書(論文)</p><p>  設計題目: 基于AT89C51單片機的頻率計 </p><p>  專 業(yè): 應用電子技術 </p><p>  班 級: 應電07-2班 </p><p>  學 號:

2、 </p><p>  姓 名: </p><p>  指導教師: </p><p>  二00九年十二月五日</p><p>  信息職業(yè)技術學院畢業(yè)設計任務書</p><p>  備注:任務書由指導教師填寫,一式二份。

3、其中學生一份,指導教師一份。</p><p><b>  目 錄</b></p><p><b>  摘 要1</b></p><p>  第1章 緒 論2</p><p>  第2章 設計方案論證與比較3</p><p>  2.1 基于集成電路的簡易數(shù)字頻率計

4、設計3</p><p>  2.2 基于AT89C51的頻率計設計3</p><p>  2.3 方案的可行性和優(yōu)點4</p><p>  第3章 頻率計電路的工作原理6</p><p>  3.1 單元電路工作原理6</p><p>  3.1.1 信號轉(zhuǎn)換電路6</p><p>

5、  3.1.2 分頻電路7</p><p>  3.1.3 數(shù)據(jù)選擇電路8</p><p>  3.1.4 單片機硬件系統(tǒng)設計9</p><p>  3.1.5 顯示電路12</p><p>  3.2 基于AT89C51的頻率計總體硬件電路圖12</p><p>  第4章 基于AT89C51頻率計的軟件設

6、計15</p><p>  第5章 電路的仿真20</p><p><b>  總 結21</b></p><p><b>  參考文獻22</b></p><p><b>  摘 要</b></p><p>  隨著電子信息產(chǎn)業(yè)的不斷發(fā)展,

7、信號頻率的測量在科技研究和實際應用中的作用日益重要。傳統(tǒng)的頻率計通常是使用很多的邏輯電路和時序電路來實現(xiàn)的,這種電路一般運行緩慢,而且測量頻率的范圍比較小。考慮到上述問題,本電路設計一個基于單片機技術的數(shù)字頻率計,可使測量頻率范圍大、運行速度快。在線路實現(xiàn)上更加可靠。</p><p>  本文從頻率計的原理出發(fā),首先把待測正弦信號經(jīng)過整形;然后把信號送入單片機的定時計數(shù)器里進行計數(shù),獲得頻率值;最后把測得的頻率數(shù)

8、值送入顯示電路里進行顯示。利用單片機設計的數(shù)字頻率計,選擇了實現(xiàn)系統(tǒng)的各種電路元器件,并對硬件電路進行了仿真。</p><p>  關鍵詞 單片機;數(shù)字頻率計;測量</p><p><b>  第1章 緒 論</b></p><p>  在電子技術中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、測量結果都有十分密切的關系,因此頻率的

9、測量就顯得更為重要。測量頻率的方法有多種,其中電子計數(shù)器測量頻率具有精度高、使用方便、測量迅速,以及便于測量過程自動化等優(yōu)點,是頻率測量的重要手段之一。電子計數(shù)器測頻有兩種方式:一是直接測頻法,即在一定閘門時間內(nèi)測量被測信號的脈沖個數(shù);二是間接測頻法如周期測頻法,直接測頻法適用于高頻信號的頻率測量,間接測頻法適用于低頻信號的頻率測量。本設計采用的測頻方法是直接測頻。</p><p>  隨著電子信息產(chǎn)業(yè)的發(fā)展,信

10、號作為其最基礎的元素,其頻率的測量在科技研究和實際應用中的作用日益重要,而且需要測頻的范圍也越來越寬。傳統(tǒng)的頻率計通常采用組合電路和時序電路等大量的硬件電路構成,產(chǎn)品不但體積較大,運行速度慢,而且測量范圍低,精度低。因此,隨著對頻率測量的要求的提高,傳統(tǒng)的測頻的方法在實際應用中已不能滿足要求。因此,我們需要尋找一種新的測頻的方法。隨著單片機技術的發(fā)展和成熟,用單片機來做為一個電路系統(tǒng)的控制電路逐漸顯示出其無與倫比的優(yōu)越性。因此本論文采用

11、單片機來做為電路的控制系統(tǒng),設計一個能測量高頻率的數(shù)字頻率計。用單片機來做控制電路的數(shù)字頻率計測量頻率精度高,測量頻率的范圍得到很大的提高。</p><p>  本論文的任務是設計一個基于單片機技術的數(shù)字頻率計。主要介紹了信號轉(zhuǎn)換電路、分頻處理電路、數(shù)據(jù)選擇電路、單片機控制電路、顯示電路的構成原理,以及其測頻的基本方法。進行了相應的軟、硬件設計。</p><p>  第2章 設計方案論證與

12、比較</p><p>  根據(jù)設計任務書要求,本課題是設計一個基于AT89C51單片機的頻率計。設計指標為,可測量輸入信號為峰值+5v的正弦信號;頻率測量范圍10Hz~10KHz正弦信號;頻率測量精度為0.1%;采用1602液晶顯示器顯示測量結果。</p><p>  2.1 基于集成電路的簡易數(shù)字頻率計設計</p><p>  基于集成電路的簡易數(shù)字頻率計由信號衰

13、減放大電路、信號整形電路、閘門電路、計數(shù)電路、譯碼顯示電路、時基電路、控制電路等部分組成。其整體結構框圖如圖2-1所示。</p><p>  圖2-1 簡易數(shù)字頻率計結構框圖</p><p>  簡易數(shù)字頻率計的整體結構如圖所示,測量頻率共有三個檔,當被測信號經(jīng)整形后變成脈沖信號(矩形波或方波),送入閘門,等待時基信號的到來,時基信號由555定時器構成一個較穩(wěn)定的多諧振蕩器,經(jīng)整形分頻后,

14、產(chǎn)生一個標準的時基信號作為閘門開通的基準時間。當被測信號通過閘門,作為計數(shù)器的時鐘信號,計數(shù)器即開始記錄時鐘的個數(shù),從而達到了測量頻率的要求。</p><p>  2.2 基于AT89C51的頻率計設計</p><p>  基于AT89C51的頻率計由信號轉(zhuǎn)換電路、分頻處理電路、數(shù)據(jù)選擇電路、單片機控制電路、顯示電路組成,其整體結構框圖如圖2-2所示。</p><p&g

15、t;  圖2-2 基于AT89C51的頻率計系統(tǒng)設計框圖</p><p>  測量一個信號的頻率有兩種方法:第一種是計數(shù)法,用基準信號去測量被測信號的高電平持續(xù)的時間,然后轉(zhuǎn)換成被測信號的頻率。第二種是計時法,計算在基準信號高電平期間通過的被測信號個數(shù)。</p><p>  根據(jù)設計要求測量10Hz~10KHz的正弦信號,因為在單片機計數(shù)中只能對脈沖波進行計數(shù),首先要將正弦信號通過過零比較

16、轉(zhuǎn)換成方波信號,然后變成測量方波信號的頻率。在本設計中采用的是計數(shù)法,當信號頻率超過1KHz的時候測量精度將超出測量極度要求,所以當被測信號的頻率高于1KHz的時候需要將被測信號進行分頻處理直到達到設計的精度要求。</p><p>  根據(jù)設計要求用單片機的內(nèi)部定時器產(chǎn)生基準信號,由外部中斷輸入被測信號,通過定時方式計算被測信號的高電平持續(xù)時間。通過單片機計算得出結果,最后由1602液晶顯示器顯示測量結果。<

17、;/p><p>  2.3 方案的可行性和優(yōu)點</p><p>  基于集成電路的簡易數(shù)字頻率計,由555定時器、RC阻容件構成多諧振蕩器作為時基電路,由于被測信號范圍為10Hz~10KHz,所以將頻率分為幾檔:多諧振蕩器經(jīng)二級10分頻后,可提取應檔位變化所需的時間1s、0.1s、0.01s。在電路中引進電位器來調(diào)節(jié)震蕩器產(chǎn)生的頻率。在閘門導通情況下,開始計數(shù)被測信號中有多少個上升沿,使用數(shù)碼

18、管顯示輸出。</p><p>  基于AT89C51的頻率計,基準頻率由單片機內(nèi)部的定時器產(chǎn)生,被測正弦信號經(jīng)過過零比較器變?yōu)榉讲ㄐ盘?,?jīng)過分頻處理后,通過數(shù)據(jù)選擇電路將被測信號輸入到單片機的P3.2口,通過定時方式計算被測信號的高電平持續(xù)時間,由單片機分析是否分頻以及分頻次數(shù),并由P2.0口輸出到液晶顯示1602顯示。</p><p>  對比以上兩種方案,前一方案由555構成的振蕩器輸

19、出方波信號時,由于電路里使用的電容元件,隨著溫度的變化,輸出信號的頻率也會發(fā)生變化,而基于單片機的頻率計中的基準頻率由單片機內(nèi)部T0產(chǎn)生基準信號,因此基準頻率穩(wěn)定。前一方案采用數(shù)碼管顯示輸出,基于單片機的頻率計采用液晶顯示輸出,相比兩種輸出方式,液晶顯示相對于數(shù)碼管顯示值更加清晰明確;同時基于單片機的頻率計的整體硬件電路相對于基于集成電路的頻率計的硬件電路簡單。綜合對比之下確定基于單片機的頻率計的作為本次設計的最終方案。</p&g

20、t;<p>  第3章 頻率計電路的工作原理</p><p>  3.1 單元電路工作原理</p><p>  硬件電路主要由信號轉(zhuǎn)換電路、分頻電路、數(shù)據(jù)選擇電路、單片機硬件電路和顯示電路五部分組成,現(xiàn)在對硬件電路各組成部分進行電路設計。</p><p>  3.1.1 信號轉(zhuǎn)換電路</p><p>  電路要求測量為峰值+5v

21、的正弦信號,因為在單片機計數(shù)中只能對脈沖波進行計數(shù),因此需要將正弦信號轉(zhuǎn)換成方波信號,需要一信號轉(zhuǎn)換電路,該電路主要由LM833N器件組成,具體電路如圖3-1所示。</p><p>  圖3-1 信號轉(zhuǎn)換電路</p><p>  當反相端參考電壓為零,則輸入信號每次過零時,輸出電壓產(chǎn)生一次跳變,從一個電平變到另一個電平,這種比較器稱為過零比較器,將正弦信號轉(zhuǎn)換成方波信號用過零比較電路實現(xiàn)。

22、在圖3-1的同相輸入端輸入正弦信號,由于在U1的正半周,U1>0,則UO=UOH;在U1的負半周,U1<0,則UO=UOL;因此輸出波形為方波(這種高、低電平各占周期時間一半的矩形波稱為方波),其輸出幅度與電源電壓和運放的最大輸出電壓有關,因此在正弦信號通過LM833N與零電平比較,電壓大于零的時候輸出LM833N的正電源+5v,電壓小于零的時候輸出負電源0v。</p><p>  3.1.2 分頻電

23、路</p><p>  為了滿足設計精度要求,當外部被測信號頻率高于1KHz時,由于受單片機基準頻率1MHz的限制,會使計數(shù)器的計數(shù)個數(shù)不精確,從而使得輸出頻率不精確。為了避免這種情況的發(fā)生,通過外部電路進行分頻處理,分頻電路采用十進制的計數(shù)器74HC4017來分頻。74HC4017引腳圖如圖3-2所示。</p><p>  圖3-2 74HC4017引腳圖</p><

24、p>  74HC4017的12腳CO,作為進位輸出端,每輸入10個時鐘脈沖,就可得一個進位輸出脈沖,因此進位輸出信號可作為下一級計數(shù)器的時鐘信號。13腳E為控制端,低電平有效;14腳CLK為時鐘輸入端,脈沖上升沿有效;15腳MR為清零輸入端,在“MR”端加高電平或正脈沖時,74HC4017計數(shù)器中各計數(shù)單元輸出低電平“0”,74HC4017有10個譯碼輸出端Q0~Q9,它隨時鐘脈沖的輸入而依次出現(xiàn)高電平。</p>&

25、lt;p>  由74HC4017構成的分頻電路圖如圖3-3所示。</p><p><b>  圖3-3 分頻電路</b></p><p>  由圖知,74HC4017工作的時鐘信號來自信號轉(zhuǎn)換電路中過零比較器的輸出,當被測正弦信號經(jīng)信號轉(zhuǎn)換電路脈沖個數(shù)達到10個時,74HC4017產(chǎn)生溢出,CO端輸出頻率為輸入頻率的1/10,達到十分頻的作用。當輸入信號的頻率高

26、于1KHz時,就需要將分頻處理后的輸入信號輸入到數(shù)據(jù)選擇電路,由于題目要求測量的輸入頻率最高為10KHz,用一個74HC4017即可以實現(xiàn)設計要求。</p><p>  3.1.3 數(shù)據(jù)選擇電路</p><p>  被測信號經(jīng)過轉(zhuǎn)換電路,一路輸入到數(shù)據(jù)選擇電器的數(shù)據(jù)輸入端X0,另一路經(jīng)過分頻電路輸入到數(shù)據(jù)選擇器的數(shù)據(jù)輸入端X1,由數(shù)據(jù)選擇電路來選擇由不同的輸入信號輸出到單片機的P3.2口,

27、這里選用8選1數(shù)據(jù)選擇器74LS151來實現(xiàn)數(shù)據(jù)選擇,它的真值表如表3-1所示。</p><p>  表3-1 74LS151真值表</p><p>  74LS151作為數(shù)據(jù)選擇器,它有3個地址輸入端A、B、C,8個數(shù)據(jù)輸入端X0~X7,兩個互補的數(shù)據(jù)輸出端Y和,還有一個控制輸入端。從功能表可以看出,低電平有效。當=1時,電路處于禁止狀態(tài),Y始終為0;當=0時,電路處于工作狀態(tài),由地址輸

28、入端A、B、C的狀態(tài)決定哪一路信號送到Y和輸出。根據(jù)設計要求可以用74LS151來選擇分頻次數(shù)。其具體電路如圖3-4所示。</p><p>  圖3-4 數(shù)據(jù)選擇電路</p><p>  將74LS151的端接地,單片機P2.0、P2.1、P2.2口輸入到74LS151的A、B、C三個地址輸入端,在本設計中選擇X0或X1中某一路被測信號輸入,并由Y輸入到單片機的外部中斷P3.2口。通過程序

29、將數(shù)據(jù)選擇器的控制端A、B、C的初始值設為0、0、0,即選擇信號由數(shù)據(jù)輸入端X0輸入,當頻率小于或等于1KHz時,單片機計得的基準頻率大于等于500次,信號由數(shù)據(jù)輸入端X0輸入;當頻率大于1KHz時,單片機計得的基準頻率小于500次,此時A、B、C的值為1、0、0,即選擇由數(shù)據(jù)輸入端X1輸入。</p><p>  3.1.4 單片機硬件系統(tǒng)設計</p><p>  單片機作為控制系統(tǒng)和計數(shù)

30、器,是本次設計的最重要的部分,AT89C51是美國ATMEL公司生產(chǎn)的低電壓,器件采用ATMEL公司的高密度、非易失性存儲技術產(chǎn)生,兼容標準MCS-51指令系統(tǒng),片內(nèi)置用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可提供許多高性價比的應用場合,可靈活應用于各種控制領域,它的引腳功能如下。</p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收TTL門電流。當P1

31、口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這

32、是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。</p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻 拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存 儲器進行存取時,P2口輸出地址的高八

33、位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器 的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p>  P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故

34、。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下所示</p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 (外部中斷0)</p><p>  P3.3 (外部中斷1)</p><p>  

35、P3.4 T0(記時器0外部輸入)</p><p>  P3.5 T1(記時器1外部輸入)</p><p>  P3.6 (外部數(shù)據(jù)存儲器寫選通)</p><p>  P3.7 (外部數(shù)據(jù)存儲器讀選通)</p><p>  P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p>  RST:復位輸入。當振蕩器

36、復位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>  ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SF

37、R8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p> ?。和獠砍绦虼鎯ζ鞯倪x通信號。在由外部程序存儲器取指期間,每個機器周期兩次有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn)。</p><p>  /VPP:當保持低電平時,則在此期間外部程序存儲器(00

38、00H~FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,將內(nèi)部鎖定為RESET;當端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出。</p><p>  單片機構成的硬件電

39、路如圖3-5所示。</p><p>  圖3-5 單片機硬件系統(tǒng)</p><p>  在AT89C51單片機中,有一個用于構成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端,這個放大器與作為反饋元件的片外石英晶體一起構成自激振蕩器。12MHz石英晶體振蕩器及電容C1、C2接在放大器的反饋回路中構成并聯(lián)振蕩電路。對外接電容C1、C2的大小沒有十分嚴格的

40、要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難以程序及溫度穩(wěn)定性,通常C1、C2使用電容使用20PF~40PF,本設計中使用的是30PF的電容器。</p><p>  單片機的P3.2口接收來自數(shù)據(jù)選擇器Y的被測信號;P0口接液晶顯示器的數(shù)據(jù)輸入端,ALE,,,P0.0,P0.1通過外接控制電路連接到液晶顯示器的控制端;單片機的RST信號輸入由復位電路控制,該復位電路由一個按鍵開關和

41、一個4.7K電阻組成,當復位電路開關按下時,單片機RST端變?yōu)楦唠娖?,單片機開始工作。當開關斷開時單片機RST端變?yōu)榈碗娖?,單片機停止工作。</p><p>  3.1.5 顯示電路</p><p>  由單片機的P0口輸出數(shù)據(jù)到液晶顯示器的數(shù)據(jù)輸入端,顯示電路由液晶顯示器1602、八D鎖存器74LS373和一個與非門組成,它的具體電路如圖3-6所示。</p><p&g

42、t;<b>  圖3-6 顯示電路</b></p><p>  在八D鎖存器74LS373中,當為高電平時,Q0~Q7呈高阻態(tài),既不驅(qū)動總線,也不是總線的負載,但鎖存器內(nèi)部的邏輯操作不受影響。當鎖存允許端LE為高電平時,Q隨數(shù)據(jù)D而變。當LE為低電平時,Q被鎖存在已建立的數(shù)據(jù)電平中。</p><p>  由單片機的P0口輸出數(shù)據(jù)到液晶顯示器的數(shù)據(jù)輸入端D0~D7,液晶

43、顯示器的工作方式由RS、RW、E控制,當液晶顯示器1602的D0、D1端有信號輸入時,液晶顯示器的D0、D1信號輸入到八D鎖存器74LS373輸入端,通過由Q0、Q1端分別輸出到液晶顯示器的RS、RW端,單片機的P3.6、P3.7口輸入到與非門74LS00,由74LS00的輸出端輸入到液晶顯示器的E端。LCD控制器的信號功能如表3-2所示。</p><p>  表3-2 LCD控制器的信號功能表</p>

44、;<p>  3.2 基于AT89C51的頻率計總體硬件電路圖</p><p>  根據(jù)以上單元電路所得到的總體電路,如圖3-7所示。</p><p>  圖3-7 基于AT89C51的頻率計總體電路圖</p><p>  根據(jù)設計要求頻率范圍是10Hz~10KHz,當頻率為10Hz時,T=100000us,高電平為50000us,0.1%的誤差為10

45、0us,由單片機產(chǎn)生的基準頻率為1MHz,T0=1us,最大誤差為1us,計數(shù)個數(shù)為50000(方式1),滿足設計要求。當頻率增加到1KHz時,產(chǎn)生的誤差剛剛能達到設計要求,這時計數(shù)個數(shù)為500。當頻率大于1KHz時(即計數(shù)個數(shù)小于500)就需要將被測頻率分頻后再測量,如當頻率為10KHz時,先計算計得的脈沖數(shù)等于50,小于了500,所以將10KHz的信號10分頻得到1KHz,這時就滿足要求了。最后得到的頻率f=,其中n為計得的脈沖個數(shù)

46、,i為分頻的次數(shù)。</p><p>  被測正弦信號經(jīng)過過零比較器,轉(zhuǎn)換成方波信號,一路直接輸入到數(shù)據(jù)選擇電器的數(shù)據(jù)輸入端X0,另一路經(jīng)過分頻電路輸入到數(shù)據(jù)選擇器的數(shù)據(jù)輸入端X1,由程序?qū)?shù)據(jù)選擇器的控制端A、B、C的初始值設置為0、0、0,即選擇信號由數(shù)據(jù)輸入端X0輸入,當頻率小于或等于1KHz時,單片機計得的基準頻率大于等于500次,信號由數(shù)據(jù)輸入端X0輸入;當頻率大于1KHz時,單片機計得的基準頻率小于50

47、0次,此時A、B、C的值為0、0、1,即選擇由數(shù)據(jù)輸入端X1輸入,經(jīng)過單片機內(nèi)部計算后,由1602液晶顯示器顯示信號頻率。</p><p>  第4章 基于AT89C51頻率計的軟件設計</p><p>  主程序首先對系統(tǒng)環(huán)境初始化,設置分頻選通信號P2=0x00,選通0通道。設置T0工作方式,采用硬件啟動方式,GATE=1,當INT0和TR0同時為1時啟動計時,計數(shù)方式為方式1(16位

48、),TH0和TL0都置零。當外部中斷INT0=1時等待,當外部中斷為0時啟動T0即TR0=1,當INT0一直為0時就等待,一旦INT0=1就啟動計數(shù)同時等待,當INT0為0時跳出并關閉T0即TR0=0。這樣就計得高電平期間基準脈沖個數(shù),當脈沖個數(shù)小于500時就選擇10分頻信號,即P2自加1,同時記錄分頻一次;如果分頻后脈沖個數(shù)還小于500則再次分頻,直到計數(shù)個數(shù)大于500。</p><p>  其示意圖如圖4-1

49、所示,</p><p>  圖4-1 計數(shù)工作示意圖</p><p>  主程序流程圖如圖4-2所示。</p><p>  圖4-2 主程序流程圖</p><p><b>  程序清單:</b></p><p><b>  主程序:</b></p><p&

50、gt;  #include<reg51.h></p><p>  #include<stdio.h></p><p>  #include<lcd.c>;</p><p>  #include<math.h></p><p>  sbit p32=P3^2;</p><p&g

51、t;<b>  main()</b></p><p>  { unsigned int period,k,j,i=0;</p><p>  float f,m;</p><p>  char buff[30];</p><p>  init_LCD();</p><p><b>  P2

52、=0x00;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  TMOD=0X09;</p><p><b>  TH0=0;</b></p><p><b>

53、  TL0=0;</b></p><p>  while(p32==1);</p><p><b>  TR0=1;</b></p><p>  while(p32==0);</p><p>  while(p32==1);</p><p><b>  TR0=0;</

54、b></p><p>  period=TH0*256+TL0;</p><p>  while(period<=500) /*判斷是否分頻及計算分頻次數(shù)*/</p><p><b>  { P2++;</b></p><p><b>  i++;</b></p>

55、<p>  period=period*10;</p><p><b>  if(i==6)</b></p><p><b>  {P2=0x00;</b></p><p><b>  break;</b></p><p><b>  }</b&g

56、t;</p><p><b>  }</b></p><p>  k=pow(10,i); /* 10的i次方*/</p><p>  f=(1000000.0/(2*period))*k;</p><p>  if(f<1000)</p><p>  sprintf

57、(buff,"f=%5.2fHZ",f);</p><p><b>  else</b></p><p>  {m=f/1000.0;</p><p>  sprintf(buff,"f=%5.2fKHZ",m);</p><p><b>  }</b><

58、;/p><p>  lcdprintf(0,0,buff);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  顯示子程序:</b></p><p>  #include <lcd.h>&

59、lt;/p><p>  char code CGRAM_TABLE[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02,//;年</p><p>  0x0F,0x09,0x0F,0x09,0x0F,0x09,0x11,0x00,//;月</p><p>  0x0F,0x09,0x09,0x0F,0x0,0x09,0x0F,0x0

60、0}; //;日</p><p>  void delay()</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i=0;i<250;i++);</p><p><b>  }</b><

61、/p><p>  void init_LCD()</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  WR_COM=0x38; //設置為8位數(shù)據(jù)總線,16*2,5*7點陣</p><p>  for(i=0;i<100;i+

62、+)</p><p><b>  delay();</b></p><p>  WR_COM=0x01; //清屏幕</p><p>  for(i=0;i<50;i++)</p><p><b>  delay();</b></p><p>  WR_C

63、OM=0x06; //光標移動,顯示區(qū)不移動,讀寫操作后,地址計數(shù)器AC加1</p><p>  for(i=0;i<50;i++)</p><p><b>  delay();</b></p><p>  WR_COM=0x0c;</p><p>  for(i=0;i<50;i++)</

64、p><p><b>  delay();</b></p><p><b>  }</b></p><p>  void init_cgram()</p><p><b>  {</b></p><p>  unsigned char i;

65、 //;設置自定義字符</p><p>  WR_COM=0x40;</p><p>  for(i=0;i<24;i++)</p><p><b>  {</b></p><p>  WR_DAT=CGRAM_TABLE[i];</p><p><b>  }</b>

66、</p><p>  for(i=0;i<40;i++)</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  void PutChar(char t)</p><p><b>  {</b&g

67、t;</p><p><b>  WR_DAT=t;</b></p><p><b>  delay();</b></p><p><b>  delay(); </b></p><p><b>  }</b></p><p>  

68、void clr_lcd()</p><p><b>  {</b></p><p>  WR_COM=0x01;</p><p><b>  delay();</b></p><p><b>  delay();</b></p><p><b&g

69、t;  }</b></p><p>  void lcdprintf(char x,char y,char *s)</p><p><b>  {</b></p><p>  //clr_lcd();</p><p>  if(y>1)y=1;</p><p>  WR_COM=

70、(y*0x40+x)|0x80;</p><p><b>  delay();</b></p><p><b>  delay();</b></p><p>  while(*s!=0)</p><p><b>  {</b></p><p>  WR_

71、DAT=*s;</p><p><b>  s++;</b></p><p><b>  delay();</b></p><p><b>  delay();</b></p><p><b>  }</b></p><p><

72、;b>  }</b></p><p><b>  第5章 電路的仿真</b></p><p>  本次基于AT89C51單片機頻率計的電路仿真整體圖如圖5-1所示:</p><p>  圖5-1電路仿真整體圖</p><p><b>  總 結</b></p>&l

73、t;p>  隨著畢業(yè)日子的到來,我的畢業(yè)設計也接近了尾聲。我所設計的是基于AT89C51單片機的頻率計,這是一種用于測量信號頻率的電路?;贏T89C51單片機頻率計的設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。下面我對整個設計的過程做一下簡單的總結。</p><p>  頻率計在我們信號測量方面幾乎都可以看到它的身影。拿到設計課題,通過一個星期的時間收集資料后,我已經(jīng)對我所要設計的基

74、于AT89C51的單片機有了一定了的認識,也開始研究設計方向和方法。測量一個信號的頻率有兩種方法:第一種是計數(shù)法,用基準信號去測量被測信號的高電平持續(xù)的時間,然后轉(zhuǎn)換成被測信號的頻率。第二種是計時法,計算在基準信號高電平期間通過的被測信號個數(shù)。最終確定用第一種方式實現(xiàn)我的設計。</p><p>  在此次設計即將完成之際,我很明確自己的設計在分頻計算過程中反應速度慢的缺點,在現(xiàn)在科技發(fā)展水平的基礎上采用復雜可編程

75、邏輯器件CPLD和單片機AT89C51共同來設計成的等精度頻率計,實現(xiàn)等精度、精度高、寬頻帶的頻率計的設計。其中,CPLD/FPGA模塊具有定時精確及時和速度快的特點,同時,單片機AT89C51在數(shù)值的運算上非常簡單方便。所以,兩者相結合、取長補短,可以使設計達到最簡化。這樣就最大限度地縮短了開發(fā)的周期,精簡了系統(tǒng)的體積,還保證了頻率計的高精度和良好的可靠性,使本設計具備了開發(fā)周期短、結構簡單、成本低廉等特點。</p>&

76、lt;p>  但是由于個人水平有限,以及條件的限制。該設計存在著一定的缺陷,以及并沒在實際生活中進行使用,測試,而只是進行了簡單的部分檢測。該設計往后還可在輸出功率加大,和減小失真等幾個方向給予改進。</p><p>  通過為期十周的畢業(yè)設計,我深刻體會到了自己知識的匱乏。設計一個很簡單的電路,所要考慮的問題,要比考試的時候考慮的多的多。這樣,在很大程度上提高了我考慮問題的全面性。設計一個電路,要考慮到它

77、的前因后果。什么功能需要什么電路來實現(xiàn)。另外,還要考慮它的可行性,實用性等等。以前,我們學習的電路只是一個理論知識,通過這次實踐,使我的理論知識上升到了一個實踐的過程。同時在實踐中也加深了我們對理論知識的理解。</p><p><b>  參考文獻</b></p><p>  [1]李群芳編著 單片機原理、接口及應用-嵌入式系統(tǒng)技術基礎.北京.清華大學出版社,2005

78、</p><p> ?。?]康華光主編 電子技術基礎-數(shù)字部分(第四版).北京.高等教育出版社,2000</p><p>  [3]康華光主編 電子技術基礎-模擬部分(第五版).北京.高等教育出版社,2006</p><p> ?。?]李雷等編 集成電路應用實驗.國防工業(yè)出版社,2003</p><p> ?。?]李雷等編 電子技術應用實驗教

79、程.電子科技大學出版社,2006</p><p> ?。?]朱紅等編 電子技術綜合實驗.電子科技大學出版社,2005</p><p> ?。?]馮熙昌編 電子電話機集成電路手冊.人民郵電出版社,1996</p><p> ?。?]李華等編 MCS-51系列單片機實用接口技術.北京航空航天大學出版社,1993</p><p>  [9]徐惠民等

溫馨提示

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

評論

0/150

提交評論