AT89C51數(shù)字頻率計的設計_第1頁
AT89C51數(shù)字頻率計的設計_第2頁
AT89C51數(shù)字頻率計的設計_第3頁
AT89C51數(shù)字頻率計的設計_第4頁
AT89C51數(shù)字頻率計的設計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、黃河科技學院單片機設計(論文) 黃河科技學院課程設計任務書 工 學院 機械 系 機械設計制造及其自動化 專業(yè) x 級x 班學號 xxxx 姓名 xxxx 指導教師 xxxx 題目: AT89C51數(shù)字頻率計設計 課程: 單片機課程設計 課程設計時間 2013年 10月28 日 至2013年11 月 10 日 共 2 周課程設計工作內(nèi)容與基本要求(設計要求、設計任務、工作計劃、所需相關資料)(紙張不夠可加頁)基本要求:利用單片機AT89C51設計數(shù)字頻率計,能將所測量的頻率在LED顯示器上顯示。創(chuàng)新設計:可采用不同方法進行頻率測量;具有鍵盤操作功能等。2. 設計任務與要求2.1系統(tǒng)硬件電路設計根

2、據(jù)該系統(tǒng)設計的功能要求選擇所用元器件,設計硬件電路。要求用Proteus繪制整個系統(tǒng)電路原理圖。2.2軟件設計根據(jù)該系統(tǒng)要求的功能進行軟件設計,繪制整個系統(tǒng)的軟件流程圖;根據(jù)流程圖編寫程序并匯編調(diào)試通過;列出軟件清單,軟件清單要求逐條加以注釋。2.3 Proteus仿真用Proteus對系統(tǒng)軟硬件進行仿真調(diào)試并通過。2.4 編寫設計說明書內(nèi)容包括任務書、設計方案分析、硬件部分設計、軟件部分設計、調(diào)試結果整理分析、設計調(diào)試的心得體會等,字數(shù)不少于5000字;硬件部分設計要繪制整個系統(tǒng)電路原理圖,對各部分電路設計原理做出說明;軟件設計部分要(用visio2002畫圖軟件)繪制整個系統(tǒng)及各部分的軟件

3、流程圖,列出程序清單,逐條加以注釋,并注明各程序功能塊的功能。3工作計劃 序號設計內(nèi)容所用時間1布置任務及調(diào)研天3制作與調(diào)試天4撰寫設計報告書2天合 計14天4主要參考資料單片機課程設計指導書 皮大能 北京理工大學出版社2012.78051單片機實踐與應用 吳金戎 清華大學出版社2003.8單片機技術基礎教程與實踐 夏路易 電子工業(yè)出版社2008.1單片機原理及應用張毅剛 高等教育出版社 2012.11基于Proteus的單片機系統(tǒng)設計與仿真實例 蔣輝平 機械工業(yè)出版社 2007.7 指導老師簽字: 日 期: 目 錄1 緒論.1 1.1 課題背景及目的11.2 國內(nèi)外研究狀況11.3 課題研究

4、方法12測量方案的論證與分析.22.1 測量方法的分析.22.1.1 直接測頻法.22.1.2 間接測量法(測周期法).22.1.3 直接與間接相結合的方法.32.2 硬件電路設計方案分析.32.2.1 中小規(guī)模數(shù)字集成電路.32.2.2 單片機AT89C5143基于單片機的數(shù)字頻率計的設計.53.1 系統(tǒng)硬件的構成.73.1.1 AT89C51單片機及其引腳說明83.1.2信號輸入放大和整形電路93.1.3時基信號產(chǎn)生電路103.2 數(shù)字頻率計軟件設計.113.2.1 主程序設計.113.2.2 子程序設計.124系統(tǒng)調(diào)試174.1 硬件調(diào)試.174.2 軟件調(diào)試.174. 2.1 軟件調(diào)試

5、的步驟.174.2.2調(diào)試過程中遇到的問題及解決方法.20結論20致謝.20參考文獻.21附錄.21附錄A21附錄B301緒論頻率計又稱為頻率計數(shù)器,是一種專門對被測信號頻率進行測量的電子測量儀器。其最基本的工作原理為:當被測信號在特定時間段T內(nèi)的周期個數(shù)為N時,則被測信號的頻率f=N/T。頻率計主要由四個部分構成:時基(T)電路、輸入電路、計數(shù)顯示電路以及控制電路。在一個測量周期過程中,被測周期信號在輸入電路中經(jīng)過放大、 整形、微分操作之后形成特定周期的窄脈沖,送到主門的一個輸入端。主門的另外一個輸入端為時基電路產(chǎn)生電路產(chǎn)生的閘門脈沖。在閘門脈沖開啟主門的期間,特定周期的窄脈沖才能通過主門,

6、從而進入計數(shù)器進行計數(shù),計數(shù)器的顯示電路則用來顯示被測信號的頻率值,內(nèi)部控制電路則用來完成各種測量功能之間的切換并實現(xiàn)測量設置。1.1 課題背景及目的本次課程設計的內(nèi)容是使用AT89C51單片機最小系統(tǒng)設計頻率計系統(tǒng),系統(tǒng)以單片機為主控單元,主要用于對方波頻率的測量,51系列單片機是國內(nèi)目前應用最廣泛的一種 8 位單片機之一,隨著嵌入式系統(tǒng)、片上系統(tǒng)等概念的提出和普遍接受及應用。51 系列及其衍生單片機還會在繼后很長一段時間 占據(jù)嵌入式系統(tǒng)產(chǎn)品的低端市場,因此,作為新世紀的大學生,在信息產(chǎn)業(yè)高速發(fā)展的今天,掌握單片機的基本結構、原理和使用是非常重要的。 本次課程設計的內(nèi)容是使用AT89C51

7、單片機最小系統(tǒng)設計頻率計系統(tǒng),系統(tǒng)以單片機為主控單元,主要用于對方波頻率的測量1.2國內(nèi)外研究狀況在傳統(tǒng)的電子測量儀器中,示波器在進行頻率測量時測量精度較低,誤差較大。頻譜儀可以準確的測量頻率并顯示被測信號的頻譜,但測量速度較慢,無法實時快速的跟蹤捕捉到被測信號頻率的變化。正是由于頻率計能夠快速準 確的捕捉到被測信號頻率的變化,因此,頻率計擁有非常廣泛的應用范圍。在傳統(tǒng)的生產(chǎn)制造企業(yè)中,頻率計被廣泛的應用在產(chǎn)線的生產(chǎn)測試中。頻率計能夠快速的捕捉到晶體振蕩器輸出頻率的變化,用戶通過使用頻率計能夠迅速的發(fā)現(xiàn)有故障的晶振產(chǎn)品,確保產(chǎn)品質量。在計量實驗室中,頻率計被用來對各種電子測量設備的本地振蕩器進

8、行校準。在無線通訊測試中,頻率計既可以被用來對無線通訊基站的主時鐘進行校準,還可以被用來對無線電臺的跳頻信號和頻率調(diào)制信號進行分析。1.3課題研究方法本論文主要闡述了以AT89C51單片機為核心,利用它內(nèi)部的定時計數(shù)器完成待測信號頻率的測量。單片機AT89C51內(nèi)部具有2個16位定時計數(shù)器,定時計數(shù)器的工作可以由編程來實現(xiàn)定時、計數(shù)和產(chǎn)生計數(shù)溢出時中斷要求的功能。其基本模塊包括輸入、切換邏輯、計數(shù)、單片機控制及顯示模塊,采用匯編語言。2測量方案的論證與分析2.1測量方法的分析測量方法通常有三種:直接測量法、間接測量法、直接與間接測量結合法。2.1.1直接測頻法這種方法的測量原理是:由于頻率是單

9、位時間內(nèi)信號發(fā)生周期變化的次數(shù),使得我們可以在給定的單位時間1S內(nèi)(稱為閘門)對被測信號的脈沖數(shù)計數(shù),得到的脈沖個數(shù)就是被測信號的頻率。1S基準閘門信號被測信號實際檢出信號1S經(jīng)分析,本測量法在低頻段的相對測量誤差較大,即在低頻段不能滿足本設計的要求2.1.2間接測量法(測周期法)雖然直接測頻法可以測出單位時間內(nèi)脈沖的個數(shù)即頻率,但是對于較低頻率的信號其檢測誤差會大大增大,例如1.8Hz的信號,在通過1秒的閘門時間內(nèi)其0.8會被淹沒,這是在設計中所不允許的。解決這種現(xiàn)象的辦法就是改直接測頻法為測周期法。其原理是用被測信號的周期作為閘門,在該閘門時間內(nèi)允許已知標準的短周期間隔的較高頻率的信號通過

10、,通過數(shù)字電路或微型計算機的運算,通過閘門的已知信號頻率的個數(shù)越多,其被測頻率就越低。被測閘門信號高頻基準信號實際檢出已知信號未知測周期法時序圖經(jīng)誤差分析,可得結論:用該測量法測量時,被測信號的頻率越高,測量誤差越大。2.1.3直接與間接相結合的方法該方法的出發(fā)點是避開±1量化誤差的影響較大的頻段,尋找有利因素而產(chǎn)生的。對信號不采用直接測頻法,而是改為測周期,并通過切換求得頻率。該方法可以滿足測量誤差的要求。由此可見,為了獲得較高的測量精度,在高頻段,宜采用直接測頻法;在低頻段,宜采用測周期法。把測量工作分為兩種方法:(1)當待測信號的頻率100 Hz時,定時計數(shù)器構成為計數(shù)器,以機

11、器周期為基準,由軟件產(chǎn)生計數(shù)閘門,計數(shù)閘門寬度1 s時,即可滿足頻率測量結果為4位有效數(shù)字;(2)當待測信號的頻率100 Hz時,定時計數(shù)器構成為定時器,由頻率計的予處理電路把待測信號變成方波,方波寬度等于待測信號的周期。2.2硬件電路設計方案分析2.2.1中小規(guī)模數(shù)字集成電路系統(tǒng)測頻部分采用中小規(guī)模數(shù)字集成電路,用機械式功能轉換開關換檔,完成測頻率、測周期及測脈寬等功能。該方案的特點是中小規(guī)模集成電路應用技術成熟,能可靠的完成頻率計的基本功能,但由于系統(tǒng)功能要求較高,所以電路過于復雜,而且多量程換檔開關使用不便。原理框圖如2.1所示。2.1原理框圖2.2.2單片機AT89C51系統(tǒng)采用51系

12、列單片機AT89C51作為控制核心,實現(xiàn)整個電路的測試信號控制、數(shù)據(jù)運算處理、鍵盤掃描和控制數(shù)碼管的顯示輸出完成各種時序邏輯控制、計數(shù)功能。系統(tǒng)組成框圖如圖2.2所示,所有信號包括基準頻率信號、被測信號AT89C51單片機的控制下進行計數(shù)或定時,單片機將每次測試結果經(jīng)運算處理后,以十進制的形式送到4位數(shù)碼管顯示電路顯示。按鍵接口電路,因為按鍵數(shù)量較少,所以采用獨立式按鍵結構,實現(xiàn)測頻、測周功能。圖2.2 原理框圖 顯然,單片機AT89C51的電路簡潔、新穎,數(shù)字集成電路從系統(tǒng)要實現(xiàn)的指標上看,要實現(xiàn)頻率的測量范圍10Hz10KHz,實現(xiàn)比較困難,還要進行周期換算頻率,因此采用單片機AT89C5

13、1系統(tǒng)。3.基于單片機的數(shù)字頻率計的硬件設計3.1系統(tǒng)硬件的構成本頻率計的數(shù)據(jù)采集系統(tǒng)主要元器件是單片機AT89C51,由它完成對待測信號頻率的計數(shù)和結果顯示等功能,外部還要有以下幾個模塊:放大整形模塊、時鐘脈沖產(chǎn)生模塊、按鍵模塊、單片機系統(tǒng)、LED顯示模塊。各模塊關系圖如圖2所示:顯示電路(靜態(tài)串行顯示方式)按鍵電路(中斷掃描方式)時鐘電路復位電路總電路圖3.1.1AT89C51單片機及其引腳說明89C51是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標準特征:4K字節(jié)的程序存儲器,128字節(jié)的RAM,32條I/O線,2個16位定時器/計數(shù)器, 一個5中斷源兩個優(yōu)先級的中

14、斷結構,一個雙工的串行口, 片上震蕩器和時鐘電路。引腳說明:·VCC:電源電壓·GND:地·P0口:P0口是一組8位漏極開路型雙向I/O口,作為輸出口用時,每個引腳能驅動8個TTL邏輯門電路。當對0端口寫入1時,可以作為高阻抗輸入端使用。當P0口訪問外部程序存儲器或數(shù)據(jù)存儲器時,它還可設定成地址數(shù)據(jù)總線復用的形式。在這種模式下,P0口具有內(nèi)部上拉電阻。在EPROM編程時,P0口接收指令字節(jié),同時輸出指令字節(jié)在程序校驗時。程序校驗時需要外接上拉電阻。·P1口:P1口是一帶有內(nèi)部上拉電阻的8位雙向I/O口。P1口的輸出緩沖能接受或輸出4個TTL邏輯門電路。當

15、對P1口寫1時,它們被內(nèi)部的上拉電阻拉升為高電平,此時可以作為輸入端使用。當作為輸入端使用時,P1口因為內(nèi)部存在上拉電阻,所以當外部被拉低時會輸出一個低電流(IIL)。·P2口:P2是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P2口的輸出緩沖能驅動4個TTL邏輯門電路。當向P2口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。P2口在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如MOVX DPTR)時,P2口送出高8位地址數(shù)據(jù)。在這種情況下,P2口使用強大的內(nèi)部上拉電阻功能當輸出1時。

16、當利用8位地址線訪問外部數(shù)據(jù)存儲器時(例MOVX R1),P2口輸出特殊功能寄存器的內(nèi)容。當EPROM編程或校驗時,P2口同時接收高8位地址和一些控制信號。·P3口:P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P3口的輸出緩沖能驅動4個TTL邏輯門電路。當向P3口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。P3口同時具有AT89C51的多種特殊功能,具體如下表1所示:端口引腳第二功能P3.0RXD (串行輸入口)P3.1TXD(串行輸出口)P3.2 (外部中斷0)P3.3(外部中斷1

17、)P3.4T0(定時器0)P3.5T1(定時器1)P3.6(外部數(shù)據(jù)存儲器寫選通)P3.7(外部數(shù)據(jù)存儲器都選通)表1 P3口的第二功能·RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期的高電平將使單片機復位。·ALE/:當訪問外部存儲器時,地址鎖存允許是一輸出脈沖,用以鎖存地址的低8位字節(jié)。當在Flash編程時還可以作為編程脈沖輸出()。一般情況下,ALE是以晶振頻率的1/6輸出,可以用作外部時鐘或定時目的。但也要注意,每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。·:程序存儲允許時外部程序存儲器的讀選通信號。當AT89C52執(zhí)行外部程序存儲器的指令

18、時,每個機器周期兩次有效,除了當訪問外部數(shù)據(jù)存儲器時,將跳過兩個信號。·/VPP:外部訪問允許。為了使單片機能夠有效的傳送外部數(shù)據(jù)存儲器從0000H到FFFH單元的指令,必須同GND相連接。需要主要的是,如果加密位1被編程,復位時EA端會自動內(nèi)部鎖存。當執(zhí)行內(nèi)部編程指令時,應該接到VCC端。·XTAL1:振蕩器反相放大器以及內(nèi)部時鐘電路的輸入端。·XTAL2:振蕩器反相放大器的輸出端。3.1.2信號輸入放大和整形電路放大整形系統(tǒng)包括衰減器、放大器、施密特觸發(fā)器。它將正弦輸入信號Vx整形成同頻率方波Vo,幅值過大的被測信號經(jīng)過分壓器分壓送入后級放大器,以避免波形失真

19、。由運算放大器構成的射級跟隨器起阻抗變換作用,使輸入阻抗提高。同相輸入的運算放大器的放大倍數(shù)為(R1+R2)/R1,改變R1的大小可以改變放大倍數(shù)。系統(tǒng)的整形電路由施密特觸發(fā)器組成,整形后的方波送到閘門以便計數(shù)。由于輸入的信號幅度是不確定、可能很大也有可能很小,這樣對于輸入信號的測量就不方便了,過大可能會把器件燒毀,過小可能器件檢測不到,所以在設計中采用了這個信號調(diào)理電路對輸入的波形進行阻抗變換、放大限幅和整形,信號調(diào)理部分電路具體實現(xiàn)電路原理圖和參數(shù)如下圖4所示:3.1.3時基信號產(chǎn)生電路時鐘是一切微處理器、微控制器內(nèi)部電路工作的基礎。單片機內(nèi)部有一個自激振蕩電路,它是定時控制部件中的一部分

20、,可以通過內(nèi)部自激振蕩或外部提供振蕩源這兩種方式,驅動內(nèi)部時鐘電路產(chǎn)生系統(tǒng)時鐘信號。內(nèi)部方式 :在XTAL1、XTAL2跨接定時元件和兩個電容就構成了自激振蕩器。C1、C2取5-30PF,起微調(diào)和穩(wěn)定作用。晶振頻率:f=1.212MHZ,常用頻率為6、12、11.0592 MHz。外部方式:外部振蕩脈沖信號直接由XTAL2端輸入,此時,XTAL1應接地,而片內(nèi)振蕩電路不起作用,。常用于單片機同時工作,以便同步,要求信號低于12MHz。時鐘周期:振蕩器輸出的時鐘脈沖頻率的倒數(shù)。為單片機中最小、最基本的時間單位。狀態(tài)周期:振蕩信號經(jīng)2分頻后獲得的信號周期,稱S,顯然,S為時鐘周期的2倍。機器周期:

21、12個時周鐘期為一個機器周期,對應計算機執(zhí)行一個基本操作所需的時間。指令周期:執(zhí)行一條指令所需的時間,至少包含一個機器周期。指令字節(jié):指令占用存儲空間的字節(jié)數(shù),有單字節(jié)、雙字節(jié)、三字節(jié)三類。當時鐘頻率為12MHz和6MHz時,時鐘周期分別為1/12s和1/6s ,機器周期分別為1s和2s。這里使用12MHz晶振和兩個電容就構成的自激振蕩器。3.2數(shù)字頻率計軟件設計3.2.1主程序設計程序要求:要能實現(xiàn)量程切換,超量程指示,準確定時。3.2.2子程序設計子程序主要包括:按鍵中斷子程序、定時中斷子程序、計數(shù)中斷子程序、周期中斷子程序、超量程判斷子程序、除法子程序、二進制轉BCD子程序、顯示程子序。

22、3.2.2.1按鍵中斷子程序按鍵中斷子程序流程圖3.2.2.2定時中斷和計數(shù)中斷子程序3.2.2.3周期中斷子程序周期中斷子程序流程圖3.2.2.4超量程判斷子程序判斷大小,小于量程輸出“0.”,大于量程輸出“1.”。3.2.2.5除法子程序該子程序用于周期轉換頻率,因為周期為兩到三字節(jié),所以使用移位除法。移位除法模擬手算方法: 1)從被除數(shù)高位開始對齊除數(shù),比較。 2)若前者大于或等于后者,商位為1,并把被除數(shù)減除數(shù),形成部分余數(shù)。若前者小于后者,商位為0。 3)部分余數(shù)左移一位,商也左移一位。 4)整個余數(shù)若小于除數(shù),則退出。 5)部分余數(shù)從高位開始與除數(shù)比較 。6)到第2)步。 若被除數(shù)

23、大于或等于除數(shù),則溢出。3.2.2.6二進制轉BCD子程序二進制轉BCD分為小數(shù)部分和整數(shù)部分。二進制轉BCD子程序流程圖3.2.2.7顯示程子序先進行查碼,然后由串行口發(fā)送到移位寄存器中。程序:DISP:JB ALLOW,OUT;顯示更新是否允許 MOV R2,#04H;位數(shù) MOV R1,#40H;顯示數(shù)據(jù)首地址 DL0:MOV A,R1 MOV DPTR,#TAB2 MOVC A,A+DPTR MOV SBUF,A;發(fā)送 JNB TI,$ CLR TI INC R1 DJNZ R2,DL0 RETTAB2:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6F

24、H4.系統(tǒng)調(diào)試4.1硬件調(diào)試硬件調(diào)試,由大到小,從整體到局部,進行調(diào)試。本設計電路簡單,所以不一一調(diào)試,就最復雜的顯示電路進行調(diào)試。先由仿真器連接顯示電路,循環(huán)發(fā)送四位(1-9)顯示編碼,如果四位都不能顯示,檢查信號傳輸電路,時鐘電路,電源。如果四位都能顯示,但有的位顯示不正確,檢查LED與移位寄存器的連線順序是否正確。如果還顯示不正確,與正常的位調(diào)換LED數(shù)碼管。調(diào)換后,正常的位顯示不正常,則數(shù)碼管壞了,換數(shù)碼管。調(diào)換后,不正常的位顯示不正常,則移位寄存器壞了,換移位寄存器。4.2軟件調(diào)試4.2.1軟件調(diào)試的步驟(1) 源文件的建立:使用菜單 “File-New”或者點擊工具欄的新建文件按鈕

25、,即可在項目窗口的右側打開一個新的文本編輯窗口,在該窗口中輸入?yún)R編語言源程序(4.2小節(jié)所示)。保存該文件,加上擴展名(.asm或a51),這里將文件保存為examl.asm。(2)建立工程文件:點擊“Project-New Project”菜單,出現(xiàn)以個對話框,要求給工程起一個名字,我們輸入examl,不需要擴展名,點擊保存按鈕,出現(xiàn)第二個對話框。這個對話框要求選擇目標CPU(即我們所使用的芯片型號80C51)點擊ATMEL前面的“+”號,展開該層,點擊其中的80C51,然后點擊確定按鈕?;氐街鹘缑?,此時,在工程窗口的文件頁中,出現(xiàn)了“Targ et1”,前面有 “+”號,點擊“+”展開,可

26、以看到下一層的“Source Group1”,這時的工程還是一個空工程,里面什么文件也沒有,需要手動把剛才編寫好的源程序加入,點擊“Souce Group”使其反白顯示,然后,點擊鼠標右鍵,出現(xiàn)一個下拉菜單。選中其中的“Add file to Group”Souce Group1”,對話框,要求尋找源文件,注意該對話框下面的“文件類型“默認為C Souce file (*.c),也就是以C為擴展名的文件,而我們的文件是以asm 為擴展名的,所以在列表框中找不到examl1.asm,要將文件類型該掉,點擊對話框中”文件類型后的下拉列表,找到并選中“Asm Souce File(*.asm,*.a

27、51)”,這樣,在列表框中就可以找到examl1.asm文文件了。雙examl1.asm文件,將文件加入項目,注意,在文件加入項目后,該對話框并不消失,等待繼續(xù)加入其他文件,但初學時常會認為操作沒有成功而再次雙擊同一文件,這時會出現(xiàn)對話框,提示你所選的文件以在列表中,此時點擊確定,返回前一對話框,然后,點擊”Close”即可返回主界面,返回后,點擊“Souce Goup 1”前的加號,會發(fā)現(xiàn)examl1.asm 文件以在其中。雙擊文件名,即打開源程序。(3)工程的詳細設置:首先點擊左邊Project窗口的Target 1,然后使用菜單“Proget-Option for target targ

28、et 1”即出現(xiàn)對工程設置的對話框,對這個對話框可謂非常復雜,共有8個頁面,要全部高清可不容易,好在絕大部分設置項取默認值就行了。設置完成以后安確認返回主界面,工程建立、設置完畢。(4)編譯、連接:在設置好工程后,既可以進行編譯、連接。選擇菜單Project-Build target,對當前工程進行連接,如果當前文件已修改軟件會先對該文件進行比阿尼,然后在連接以產(chǎn)生目標代碼。編譯過程中的信息將出現(xiàn)在輸出窗口中的Build頁中,如果源程序有語法錯誤,會有錯誤報告出現(xiàn),雙擊該行,可以定到出錯的位置,對源程序反復修改后,最終會得到如圖5-1所示的結果,提示獲得了名為examl.hex的文件,該文件即

29、可被編程器讀入并寫到芯片中,同時還產(chǎn)生了一些其他相關文件可被用于KEIL的仿真與調(diào)試。正確編譯之后的結果4.2.2調(diào)試過程中遇到的問題及解決方法在進入環(huán)境以后,遇到了很多問題,總結如下:(1)提示無asm文件編譯時候提示:F:.XX.asmFile has been changed outside the editor, reload ?解決方法:重新生成項目,產(chǎn)生examl.asm即可。(2)在進入Keil的調(diào)試環(huán)境以后,發(fā)現(xiàn)程序有錯解決方法:將光標定位于需要修改的程序上,用菜單,DebugInline Assambly即可出現(xiàn)對話框,Enter New 后面的編輯框內(nèi)直接輸入需要修改的程序

30、語句,輸入完之后鍵入回車將自動指向下一條語句,可以繼續(xù)修改,如果不在需要修改,可以點擊右上角的關閉按鈕關閉窗口。(3)程序調(diào)試時,一些程序必須滿足一定的條件才能被執(zhí)行到解決方法:這些條件往往是異步發(fā)生或難以預先設定的,這類問題使用的單步實行方法是很難調(diào)試的,這時就要使用發(fā)哦程序調(diào)試中的另一種非常重要是方法-斷點設置。斷點設置的方法有多種,常用的是在某一程序行設置斷點,設置好斷點后可以全速運行程序,一旦執(zhí)行到該程序行即停止,可在此觀察有關變量值,以確定問題所在。在程序行設置/移除斷點的方法是將光標定位于需要設置斷點的程序行,使用菜單Debug/Insert/RemoveBreakPoint設置或

31、移除斷點(也可以用鼠標在該行雙擊實現(xiàn)同樣的功能);Debug/Enable/Disable BreakPoint是開啟或暫停光標所在懂行的斷點功能;Dubug/Disale All BreakPoint暫停所有斷點;Debug/Kill All BreakPoint清除所有的斷點設置。這些功能也可以用工具條上的快捷鍵進行設置。(4)輸入程序時,有中文標點,用keil編譯時出現(xiàn)錯誤解決方法:程序里有帶中文標點,用英文重輸入一遍(5)匯編出現(xiàn)數(shù)字、字母混淆解決方法:字母“O” 和 數(shù)字 “0”。主要錯在這里。注意細節(jié)!結論 基于單片機設計的數(shù)字頻率計具有原理簡單、易于調(diào)試和測量方便等優(yōu)點

32、,主要用來測量低頻信號的頻率。由于其測量范圍會受單片機計數(shù)速率的限制,其測量量程較小,所以可以從原理上進行改進以提高其測頻范圍,比如通過增加分頻電路,就可實現(xiàn)對高頻信號的測量。致謝通過這三個月來的忙碌和學習,本次畢業(yè)論文設計已接近尾聲,由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方,在這里衷心感謝指導老師的督促指導,以及一起學習的同學們的支持,讓我按時完成了這次畢論文設計。在論文設計過程中,我遇到了許許多多的困難。在此我要感謝我的指導老師郭曉君老師給我悉心的幫助和對我耐心而細致的指導,我的論文較為復雜煩瑣,但是郭曉君老師仍然細心地糾正圖中的錯誤。除了敬佩老師的專業(yè)水平以外,他的治學嚴謹和科學研究的

33、精神也是我永遠學習的榜樣,并將積極影響我今后的學習和工作,我才得以解決畢業(yè)設計中遇到的種種問題。同時感謝我院、系領導對我們的教導和關注;感謝大學三年傳授我們專業(yè)知識的所有老師,謝謝你們嘔心瀝血的教導。還有謝謝我周圍的同窗朋友,他們給了我無數(shù)的關心和鼓勵,也讓我的大學生活充滿了溫暖和歡樂。如果沒有他們的幫助,此次論文的完成將變得困難。他們在我設計中給了我許多寶貴的意見和建議。同時也要感謝自己遇到困難的時候沒有一蹶不振,取而代之的是找到了最好的方法來解決問題。參考文獻1李全利,單片機原理及應用技術。北京:高等教育出版社,20042王曙霞,單片機實驗與實訓指導。西安:西安電子科技大學出版社,2007

34、3及力,Protel 2004原理圖與PCB設計教程。北京:電子工業(yè)出版社,20074何利民,單片機高級教程。北京:航空航天大學出版社,20005李朝青,單片機原理與接口技術。北京:航空航天大學出版社,19996張毅剛,MCS-51單片機應用設計。哈爾濱:哈爾濱工業(yè)大學出版社,19977李華,MCS-51系列單片機實用接口技術。北京:航空航天出版社,20008陳光東,單片微型計算機原理接口技術。武漢:華中理工大學出版社,19999王福瑞,單片機測控系統(tǒng)大全,北京:航空航天大學出版社,1998附錄附錄A 程序ORG 0000HAJMP MAIN ;主程序ORG 0003HLJMP KAYBOAR

35、D;鍵盤中斷入口ORG 000BHLJMP TIME ;定時中斷入口ORG 0013HLJMP ZHOU ;周期測量入口ORG 002BHLJMP JSH ;計數(shù)中斷入口LC EQU 50H;量程存放TO EQU 51H;定時溢出次數(shù)存放 NEW EQU 52H;量程切換狀態(tài)存放CHAO EQU 53H;超量程狀態(tài)存放ENTER BIT 00H;確定按鍵位ALLOW BIT 01H;顯示更新允許位MAIN:MOV P1,#FFH;按鍵初始化 MOV IE,#83H;允許定時T0,按鍵INT0中斷 SETB IT0 ;按鍵中斷出發(fā)方式為下降沿觸發(fā) CLR P2.0 ;顯示初始化 SETB P2.

36、0 MOV SCON,#00H;串口工作方式0 MOV 40H,#00H;顯示緩存清零 MOV 41H,#00H MOV 42H,#00H MOV 43H,#00HHOME:MOV LC,#03H ;量程初始化 ACALL DISPLC;顯示量程DOWN:JNB ENTER DOWN;確定量程? CLR ENTERCHOSE:CJNE LC,#01H,NEXT1 AJMP ZQ ;周期測量(量程1)NEXT1:CJNE LC,#02H,NEXT2 AJMP JS1;計數(shù)1(量程2)NEXT2:CJNE LC,#03H,HOME AJMP JS2;計數(shù)2(量程3)ZQ:CLR TR0 ;定時停止

37、 MOV TL0,#00H MOV TH0,#00HCLR ET1 ;不允許T1中斷SETB IT1 ;INT1下降沿觸發(fā)MOV TO,#00H ;定時溢出次數(shù)清零 MOV R6,#00H ;計時中斷 數(shù)清零 MOV 30H,#00H ;計時存儲清零MOV 31H,#00HMOV 32H,#00HSETB EX1 ;允許INT1中斷A1:CJNE R6,#08H,A1 ;等待計時完成 CLR EX1 ;停止INT1中斷ACALL PINGJUNDJNZ NEW,CHOSE;有量程切換返回MOV 33H,#10H ;0.01S0.1S計時最大最小值MOV 34H,#27HMOV 35H,#00H

38、MOV 36H,#0A0HMOV 37H,#86HMOV 38H,#01HACALL CHAOPANDJNZ CHAO,ZQACALL DAOSHU;1/T倒數(shù)DJNZ NEW,CHOSE;有量程切換返回ACALL BCD1 ;二進制轉BCD碼DJNZ NEW,CHOSE;有量程切換返回ACALL DISPAJMP ZQ;=PINGJUN:MOV R6,#01H;除以4 LOOP: MOV A.32H RRC AMOV 32H,AMOV A,31HRRC AMOV 31H,AMOV A,30HRRC AMOV 30H,ADJNZ R6,LOOPRET;=divdll data 39h ;定義被

39、除數(shù)單元divdlh data 3Ahdivdhl data 3Bhdiv0 data 30h ;定義除數(shù)單元divl data 31h divh data 32htempl data 26h ;定義余數(shù)單元temph data 27hDAOSHU:mov divdll,#40h ;1s mov divdlh,#42h mov divdhl,#0fh divd: push a push b mov a,divh ;判除數(shù)是否為零 orl a,divl orl a,div0 jnz divd0 setb ov ;除數(shù)為零,置溢出標志 pop b pop a retdivd0: mov templ

40、,#00h ;除數(shù)不為零,進行運算 mov temph,#00h mov b,#24h ;置循環(huán)次數(shù)divd1:clr c ;進位位、余數(shù)單元和 mov a,divdll ;被除數(shù)單元全體逐個 rlc a ;向左循環(huán)移位 mov divdll,a mov a,divdlh rlc a mov divdlh,a mov a,divdhl rlc a mov divdhl,amov a,templrlc amov templ,axch a,temphrlc axch a,temphmov 04H,c ;保存進位位clr csubb a,divl ;用余數(shù)減去除數(shù)mov r7,amov a,temp

41、hsubb a,divhanl c,/04H ;判斷是否夠減jc divd2 ;不夠減,移下一位mov templ,r7 ;夠減,刷新余數(shù)單元mov temph,ainc divdll ;商上1divd2: djnz b,divd1 clr ov pop b pop a ret;=BCD1:MOV A,3AH ;頻率在10.0099.99Hz MOV B,#0AH DIV AB ;整數(shù) MOV 43H,A MOV 42H,B;= MOV R6,#00H ;小數(shù)LP2: MOV R0,#39H CLR C RLC A MOV 03H,C;為0時該所有數(shù)不相加 MOV A,R6 MOV B,#02

42、H DIV AB MOV R1,A;小數(shù)的位數(shù) MOV DPTR,#TAB1 MOV R5,#00H;列表相對位置LP1: MOV A,R5 MOVC A,A+DPTR JNB 03H,NOADDAD: ADDC A,R0 DA A MOV R0,ANOADD:INC R0 INC R5 DJNZ R1,LP1 CLR A JC AD INC R6 CJNE R6,#08H,LP2 MOV R0,#39H ;拆開保存到顯示緩存 XCHD A,R0 MOV 40H,A MOV A,39H SWAP A MOV 41H,A RETTAB1:DB 50H,25H,50H,12H,25H,06H DB

43、 50H,12H,03H,25H,56H,01H DB 50H,12H,78H,00H,25H,06H,39H,00H;=JS1: SETB ET1 ;允許T1中斷 CLR EX1 ;不允許INT1中斷 MOV TCON,#05H ;停止TR1計數(shù) ,TR0定時 MOV TL0,#0COH;定時初值,1000000=65535*15+16960 MOV TH0,#0BDH; 65535-16960=48576=BDC0HMOV TL1,#00H ;計數(shù)期清零 MOV TH1,#00H MOV 30H,#00H ;計數(shù)存儲區(qū)清零 MOV 31H,#00HMOV 32H,#00HMOV TO,#0

44、FH ;定時溢出次數(shù)存MOV TCON,#55H ;啟動TR1計數(shù) ,TR0定時 A2:CJNE TO,#00H,A2 DJNZ NEW,CHOSE;是否有量程切換 MOV 33H,#63H;量程2 MOV 34H,#00HMOV 35H,#00HMOV 36H,#0E7HMOV 37H,#03HMOV 38H,#00H ACALL CHAOPANDJNZ CHAO,JS1 MOV TL0,#0COH;定時初值 MOV TH0,#0BDHMOV TL1,#00H ;計數(shù)期清零 MOV TH1,#00H MOV TO,#0FH ;定時溢出次數(shù)存MOV TCON,#55H ;啟動TR1計數(shù) ,TR

45、0定時 DJNZ NEW,CHOSE;是否有量程切換 ACALL BCD2DJNZ NEW,CHOSE;是否有量程切換 ACALL DISPAJMP A2;=JS2: SETB ET1 ;允許T1中斷 CLR EX1 ;不允許INT1中斷 MOV TCON,#05H ;停止TR1計數(shù) ,TR0定時 MOV TL0,#0COH;定時初值,1000000=65535*15+16960 MOV TH0,#0BDH; 65535-16960=48576=BDC0HMOV TL1,#00H ;計數(shù)期清零 MOV TH1,#00H MOV 30H,#00H ;計數(shù)存儲區(qū)清零 MOV 31H,#00HMOV

46、 32H,#00HMOV TO,#0FH ;定時溢出次數(shù)存MOV TCON,#55H ;啟動TR1計數(shù) ,TR0定時 A3:CJNE TO,#00H,A3 DJNZ NEW,CHOSE;是否有量程切換 MOV 33H,#0E7H;量程3 MOV 34H,#03HMOV 35H,#00HMOV 36H,#0FHMOV 37H,#27HMOV 38H,#00H ACALL CHAOPANDJNZ CHAO,JS2 MOV TL0,#0COH;定時初值 MOV TH0,#0BDHMOV TL1,#00H ;計數(shù)期清零 MOV TH1,#00H MOV TO,#0FH ;定時溢出次數(shù)存MOV TCON,#55H ;啟動TR1計數(shù) ,TR0定時 DJNZ NEW,CHOSE;是否有量程切換 ACALL BCD2DJNZ NEW,CHOSE;是否有量程切換 ACALL DISPAJMP A3;=BCD2:MOV 33H,#0E8H;千位低 MOV 34H,#64H;百位低 MOV 36H,#03H;千位高 MOV 37H,#00H;百位高 MOV R0,#33H MOV R1,#36H QW:MOV A,3

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論