




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、黃河科技學(xué)院單片機設(shè)計(論文)黃河科技學(xué)院課程設(shè)計任務(wù)書工學(xué)院機械系機械設(shè)計制造及其自動化專業(yè) x級工班學(xué)號 xxxx 姓名 xxxx指 導(dǎo)教師 xxxx題目: AT89C51數(shù)字頻率計設(shè)計課程:單片機課程設(shè)計課程設(shè)計時間2013年10 月28 日 至2013年11月10日 共2周課程設(shè)計工作內(nèi)容與基本要求(設(shè)計要求、設(shè)計任務(wù)、工作計劃、所需相關(guān) 資料)(紙張不夠可加頁)基本要求:利用單片機AT89C51設(shè)計數(shù)字頻率計,能將所測量的頻率在 LED顯示器上顯示。 創(chuàng)新設(shè)計:可采用不同方法進行頻率測量;具有鍵盤操作功能等。2 .設(shè)計任務(wù)與要求2.1 系統(tǒng)硬件電路設(shè)計根據(jù)該系統(tǒng)設(shè)計的功能要求選擇所用
2、元器件,設(shè)計硬件電路。要求用 Proteus繪制 整個系統(tǒng)電路原理圖。2.2 軟件設(shè)計根據(jù)該系統(tǒng)要求的功能進行軟件設(shè)計,繪制整個系統(tǒng)的軟件流程圖;根據(jù)流程圖編 寫程序并匯編調(diào)試通過;列出軟件清單,軟件清單要求逐條加以注釋。2.3 Proteus 仿真用Proteus對系統(tǒng)軟硬件進行仿真調(diào)試并通過。2.4 編寫設(shè)計說明書內(nèi)容包括任務(wù)書、設(shè)計方案分析、硬件部分設(shè)計、軟件部分設(shè)計、調(diào)試結(jié)果整理分析、設(shè)計調(diào)試的心得體會等,字數(shù)不少于5000字;硬件部分設(shè)計要繪制整個系統(tǒng)電路原理圖,對各部分電路設(shè)計原理做出說明;軟件設(shè)計部分要(用 visio2002畫圖 軟件)繪制整個系統(tǒng)及各部分的軟件流程圖,列出程序
3、清單,逐條加以注釋,并注 明各程序功能塊的功能。3 .工作計劃序號設(shè)計內(nèi)容所用時間1布置任務(wù)及調(diào)研4天3制作與調(diào)試8天4撰寫設(shè)計報告書2天合計14天4 .主要參考資料單片機課程設(shè)計指導(dǎo)書皮大能北京理工大學(xué)出版社2012.78051單片機實踐與應(yīng)用吳金戎清華大學(xué)出版社2003.8單片機技術(shù)基礎(chǔ)教程與實踐夏路易電子工業(yè)出版社2008.1單片機原理及應(yīng)用張毅剛高等教育出版社2012.11基于Proteus的單片機系統(tǒng)設(shè)計與仿真實例蔣輝平機械工業(yè)出版社2007.7指導(dǎo)老師簽字:日期:-6 -目 錄1 緒論 .11.1 課題背景及目的11.2 國內(nèi)外研究狀況 11.3 課題研究方法 12測量方案的論證與
4、分析 .22.1 測量方法的分析 .22.1.1 直接測頻法 .22.1.2 間接測量法(測周期法) .22.1.3 直接與間接相結(jié)合的方法 .32.2 硬件電路設(shè)計方案分析 .32.2.1 中小規(guī)模數(shù)字集成電路 .32.2.2 單片機 AT89C51 43基于單片機的數(shù)字頻率計的設(shè)計 .53.1 系統(tǒng)硬件的構(gòu)成.73.1.1 AT89C51單片機及其引腳說明 83.1.2 信號輸入放大和整形電路 93.1.3 時基信號產(chǎn)生電路 103.2 數(shù)字頻率計軟件設(shè)計 .113.2.1 主程序設(shè)計 .113.2.2 子程序設(shè)計.124系統(tǒng)調(diào)試 174.1 硬件調(diào)試 .174.2 軟件調(diào)試 .174 .
5、 2.1軟件調(diào)試的步驟.17205 .2.2調(diào)試過程中遇到的問題及解決方法 .20結(jié)論致謝 .20參考文獻 .21附錄 .21附錄A 21附錄B 301緒論頻率計又稱為頻率計數(shù)器,是一種專門對被測信號頻率進行測量的電子測量儀 器。其最基本的工作原理為:當(dāng)被測信號在特定時間段 T內(nèi)的周期個數(shù)為N時,則被測 信號的頻率f=N/T。頻率計主要由四個部分構(gòu)成:時基(T)電路、輸入電路、計數(shù)顯示 電路以及控制電路。在一個測量周期過程中,被測周期信號在輸入電路中經(jīng)過放大、整形、微分操作之后形成特定周期的窄脈沖,送到主門的一個輸入端。主門的另外一個輸 入端為時基電路產(chǎn)生電路產(chǎn)生的閘門脈沖。在閘門脈沖開啟主門
6、的期間,特定周期的窄 脈沖才能通過主門,從而進入計數(shù)器進行計數(shù),計數(shù)器的顯示電路則用來顯示被測信號 的頻率值,內(nèi)部控制電路則用來完成各種測量功能之間的切換并實現(xiàn)測量設(shè)置。1.1 課題背景及目的本次課程設(shè)計的內(nèi)容是使用 AT89C5俾片機最小系統(tǒng)設(shè)計頻率計系統(tǒng),系統(tǒng)以單片 機為主控單元,主要用于對方波頻率的測量,51系列單片機是國內(nèi)目前應(yīng)用最廣泛的一種8位單片機之一,隨著嵌入式系統(tǒng)、片上系統(tǒng)等概念的提出和普遍接受及應(yīng)用。51系列及其衍生單片機還會在繼后很長一段時間占據(jù)嵌入式系統(tǒng)產(chǎn)品的低端市場,因此,作為新世紀的大學(xué)生,在信息產(chǎn)業(yè)高速發(fā)展的今天,掌握單片機的基本結(jié)構(gòu)、原理和使用是非常重要的。本次課
7、程設(shè)計的內(nèi)容是使用AT89C51單片機最小系統(tǒng)設(shè)計頻率 計系統(tǒng),系統(tǒng)以單片機為主控單元,主要用于對方波頻率的測量1.2 國內(nèi)外研究狀況在傳統(tǒng)的電子測量儀器中,示波器在進行頻率測量時測量精度較低,誤差較大。頻 譜儀可以準確的測量頻率并顯示被測信號的頻譜,但測量速度較慢,無法實時快速的跟 蹤捕捉到被測信號頻率的變化。正是由于頻率計能夠快速準確的捕捉到被測信號頻率的變化,因此,頻率計擁有非常廣泛的應(yīng)用范圍。在傳統(tǒng)的生產(chǎn)制造企業(yè)中,頻率計被廣泛的應(yīng)用在產(chǎn)線的生產(chǎn)測試中。頻率計能夠快速的捕捉到晶體振蕩器輸出頻率的變 化,用戶通過使用頻率計能夠迅速的發(fā)現(xiàn)有故障的晶振產(chǎn)品,確保產(chǎn)品質(zhì)量。在計量實 驗室中,頻
8、率計被用來對各種電子測量設(shè)備的本地振蕩器進行校準。在無線通訊測試中,頻率計既可以被用來對無線通訊基站的主時鐘進行校準,還可以被用來對無線電臺的跳頻信號和頻率調(diào)制信號進行分析。1.3 課題研究方法本論文主要闡述了以AT89C5憚片機為核心,利用它內(nèi)部的定時/計數(shù)器完成待測 信號頻率的測量。單片機 AT89C51內(nèi)部具有2個16位定時/計數(shù)器,定時/計數(shù)器的 工作可以由編程來實現(xiàn)定時、計數(shù)和產(chǎn)生計數(shù)溢出時中斷要求的功能。其基本模塊包括 輸入、切換邏輯、計數(shù)、單片機控制及顯示模塊,采用匯編語言。2測量方案的論證與分析2.1 測量方法的分析測量方法通常有三種:直接測量法、間接測量法、直接與間接測量結(jié)合
9、法。2.1.1 直接測頻法這種方法的測量原理是:由于頻率是單位時間內(nèi)信號發(fā)生周期變化的次數(shù),使得我 們可以在給定的單位時間1S內(nèi)(稱為閘門)對被測信號的脈沖數(shù)計數(shù),得到的脈沖個 數(shù)就是被測信號的頻率。1S基準閘門信號.1s 4被測信號JWWWWWWUBI實際檢出信號直接新J頻法時序圖+經(jīng)分析,本測量法在低頻段的相對測量誤差較大,即在低頻段不能滿足本設(shè)計的要 求2.1.2 間接測量法(測周期法)黃河科技學(xué)院單片機設(shè)計(論文)雖然直接測頻法可以測出單位時間內(nèi)脈沖的個數(shù)即頻率,但是對于較低頻率的信號其檢測誤差會大大增大,例如1.8Hz的信號,在通過1秒的閘門時間內(nèi)其0.8會被淹沒, 這是在設(shè)計中所不
10、允許的。解決這種現(xiàn)象的辦法就是改直接測頻法為測周期法。其原理 是用被測信號的周期作為閘門,在該閘門時間內(nèi)允許已知標準的短周期間隔的較高頻率 的信號通過,通過數(shù)字電路或微型計算機的運算,通過閘門的已知信號頻率的個數(shù)越多, 其被測頻率就越低。被測閘門信號.未知高頻基準信號實際檢出已知信號測周期法時序圖誤差分析,可得結(jié)論:用該測量法測量時,被測信號的頻率越高,測量誤差越大。2.1.3 直接與間接相結(jié)合的方法該方法的出發(fā)點是避開土 1量化誤差的影響較大的頻段,尋找有利因素而產(chǎn)生的。 對信號不采用直接測頻法,而是改為測周期,并通過切換求得頻率。該方法可以滿足測 量誤差的要求。由此可見,為了獲得較高的測量
11、精度,在高頻段,宜采用直接測頻法;在低頻段, 宜采用測周期法。把測量工作分為兩種方法:(1)當(dāng)待測信號的頻率100 Hz時,定時/計數(shù)器構(gòu)成為計數(shù)器,以機器周期為 基準,由軟件產(chǎn)生計數(shù)閘門,計數(shù)閘門寬度1 s時,即可滿足頻率測量結(jié)果為 4位有效數(shù)字;(2)當(dāng)待測信號的頻率 100 Hz時,定時/計數(shù)器構(gòu)成為定時器,由頻率計的予 處理電路把待測信號變成方波,方波寬度等于待測信號的周期。2.2 硬件電路設(shè)計方案分析2.2.1 中小規(guī)模數(shù)字集成電路系統(tǒng)測頻部分采用中小規(guī)模數(shù)字集成電路,用機械式功能轉(zhuǎn)換開關(guān)換檔,完成測頻率、測周期及測脈寬等功能。該方案的特點是中小規(guī)模集成電路應(yīng)用技術(shù)成熟,能可靠 的完
12、成頻率計的基本功能,但由于系統(tǒng)功能要求較高,所以電路過于復(fù)雜,而且多量程 換檔開關(guān)使用不便。原理框圖如 2.1所示。2.1原理框圖2.2.2 單片機 AT89C51系統(tǒng)采用51系列單片機AT89C51作為控制核心,實現(xiàn)整個電路的測試信號控制、 數(shù)據(jù)運算處理、鍵盤掃描和控制數(shù)碼管的顯示輸出完成各種時序邏輯控制、計數(shù)功能。系統(tǒng)組成框圖如圖2.2所示,所有信號包括基準頻率信號、被測信號 AT89C51單片 機的控制下進行計數(shù)或定時,單片機將每次測試結(jié)果經(jīng)運算處理后,以十進制的形式送 到4位數(shù)碼管顯示電路顯示。按鍵接口電路,因為按鍵數(shù)量較少,所以采用獨立式按鍵 結(jié)構(gòu),實現(xiàn)測頻、測周功能。-9 -圖2.
13、2 原理框圖顯然,單片機AT89C51的電路簡潔、新穎,數(shù)字集成電路從系統(tǒng)要實現(xiàn)的指標上 看,要實現(xiàn)頻率的測量范圍10Hz10KHz實現(xiàn)比較困難,還要進行周期換算頻率,因 此采用單片機AT89C51系統(tǒng)。3.基于單片機的數(shù)字頻率計的硬件設(shè)計3.1 系統(tǒng)硬件的構(gòu)成本頻率計的數(shù)據(jù)采集系統(tǒng)主要元器件是單片機AT89C51由它完成對待測信號頻率的計數(shù)和結(jié)果顯示等功能,外部還要有以下幾個模塊:放大整形模塊、時鐘脈沖產(chǎn)生模塊、按鍵模塊、單片機系統(tǒng)、LED顯示模塊。各模塊關(guān)系圖如圖2所示:黃河科技學(xué)院單片機設(shè)計(論文)總電9各圖時鐘電路20pF20pFRSTVSSEA/VPP2.0/A8AT89C51u T
14、。一 12MH z9 10DPAA6M1 31-311410< -60 -5-4-3<QH QG QF QEQD QC QB QAGNDCL KCLR74LS164VCC8P2.72P5P2AI/A32PAi1/A9 P1.71CEC5I/II6按鍵電路(中斷掃描方式)6AN113t> 12<1 I"1 l"0<6<小37T0"-6-A403<54r3oTT''3DPA JDPA 丁AA QH QG QF QE QD QC QB QAGNDCL KCLR74LS164VCC電路顯示方式)GND7A QHQG
15、 QF QE QD QC QBQAGNDCL K .TTR74LS164VCC749 10DP1AAA QH QG QF QE QD QC QB QAGNDCL K .CLR74LS164VCC+5v黃河科技學(xué)院單片機設(shè)計(論文)3.1.1 AT89C51單片機及其引腳說明89C51是一種高性能低功耗的采用 CMOS:藝制造的8位微控制器,它提供下列標準 特征:4K字節(jié)的程序存儲器,128字節(jié)的RAM,32條I/O線,2個16位定時器/計數(shù)器,一 個5中斷源兩個優(yōu)先級的中斷結(jié)構(gòu),一個雙工的串行口 ,片上震蕩器和時鐘電路。引腳說明: Vx:電源電壓 GNDM P0 口: P0 口是一組8位漏極開
16、路型雙向I/O 口,作為輸出口用時,每個引腳能 驅(qū)動8個TTL邏輯門電路。當(dāng)對0端口寫入1時,可以作為高阻抗輸入端使用。當(dāng)P0 口訪問外部程序存儲器或數(shù)據(jù)存儲器時,它還可設(shè)定成地址數(shù)據(jù)總線復(fù)用的 形式。在這種模式下,P0 口具有內(nèi)部上拉電阻。在EPROMS?時,P0 接收指令字節(jié),同時輸出指令字節(jié)在程序校驗時。 程序校驗 時需要外接上拉電阻。 P1 口: P1 口是一帶有內(nèi)部上拉電阻的8位雙向I/O 口。P1 口的輸出緩沖能接受 或輸出4個TTL邏輯門電路。當(dāng)對P1 口寫1時,它們被內(nèi)部的上拉電阻拉升為高電平, 此時可以作為輸入端使用。當(dāng)作為輸入端使用時,P1 口因為內(nèi)部存在上拉電阻,所以當(dāng)
17、外部被拉低時會輸出一個低電流(I IL)。 P2 口: P2是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P2 口的輸出緩沖能驅(qū) 動4個TTL邏輯門電路。當(dāng)向P2 口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,止匕 時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時 會輸出電流(I IL)oP2 口在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如 MOVX DPTR 時,P2 送出高8位地址數(shù)據(jù)。在這種情況下,P2 口使用強大的內(nèi)部上拉電阻功能當(dāng) 輸出1時。當(dāng)利用8位地址線訪問外部數(shù)據(jù)存儲器時(例 MOVXR1) ,P2 口輸出特殊 功能寄存器的內(nèi)容。當(dāng)EPRO褊程
18、或校驗時,P2 口同時接收高8位地址和一些控制信號。 P3 口: P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P3 口的輸出緩沖能驅(qū) 動4個TTL邏輯門電路。當(dāng)向P3 口寫1時,通過內(nèi)部上拉電阻把端口拉到高電平,止匕 時可以用作輸入口。作為輸入口,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(I IL )P3 口同時具有AT89C51的多種特殊功能,具體如下表1所示:端口引腳第二功能P3.0RXD (串行輸入口)P3.1TXD (用行輸出口)P3.2INT0 (外部中斷0)P3.3INT1 (外部中斷1)P3.4T0 (定時器0)P3.5T1 (定時器1)P3.6WR (外部數(shù)
19、據(jù)存儲器寫選通)P3.7RD (外部數(shù)據(jù)存儲器都選通)表1 P3 口的第二功能 RST復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期的高電平將使單片 機復(fù)位。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許是一輸出脈沖,用以鎖存地址的低8位字節(jié)。當(dāng)在Flash編程時還可以作為編程脈沖輸出(PROG)。一般情況下,ALE是以晶振頻率的1/6輸出,可以用作外部時鐘或定時目的。但也 要注意,每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。 PSEN:程序存儲允許時外部程序存儲器的讀選通信號。當(dāng)AT89C5縱行外部程序存儲器的指令時,每個機器周期PSEN兩次有效,除了當(dāng)訪問外部數(shù)據(jù)存儲器時,P
20、SEN將跳過兩個信號。 EA/Vpp:外部訪問允許。為了使單片機能夠有效的傳送外部數(shù)據(jù)存儲器從0000H到FFFH元的指令,EA必須同GN目連接。需要主要的是,如果加密位1被編程,復(fù)位時EA端會自動內(nèi)部鎖存。當(dāng)執(zhí)行內(nèi)部編程指令時,EA應(yīng)該接到Vcc端。 XTAL1振蕩器反相放大器以及內(nèi)部時鐘電路的輸入端 XTAL2振蕩器反相放大器的輸出端。O&<1®&VCCP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4,P2.0/A8P0.5/AD5P0.6/AD6EA/VppP0.7/AD7RSTP1.0/T2PSENP1.1/T2EX,al
21、e/PROGP1.2/ECIP1.3/CEX0AT89C51P1.4/CEX1P3.0/RxDP1.5/CEX2P3.1/TxDP1.6/CEX3P3.2/INT0P1.7/CEX4P3.3/INT1P3.4/T0P3.5/T1P2.1/A9P3.6/WRP2.2/A10DQ 7/pnP2.3/A11P2.4/A12P3.7/RDXTAL1P2.5/A13I XTAL2P2.6/A14VSSP2.7/A153.1.2 信號輸入放大和整形電路放大整形系統(tǒng)包括衰減器、放大器、施密特觸發(fā)器。它將正弦輸入信號Vx整形成同頻率方波Vo,幅值過大的被測信號經(jīng)過分壓器分壓送入后級放大器,以避免波形失真。 由
22、運算放大器構(gòu)成的射級跟隨器起阻抗變換作用,使輸入阻抗提高。同相輸入的運算放 大器的放大倍數(shù)為(R1+R2 /R1,改變R1的大小可以改變放大倍數(shù)。系統(tǒng)的整形電路 由施密特觸發(fā)器組成,整形后的方波送到閘門以便計數(shù)。-15 -由于輸入的信號幅度是不確定、可能很大也有可能很小,這樣對于輸入信號的測量就不方便了,過大可能會把器件燒毀,過小可能器件檢測不到,所以在設(shè)計中采用了這 個信號調(diào)理電路對輸入的波形進行阻抗變換、放大限幅和整形,信號調(diào)理部分電路具體 實現(xiàn)電路原理圖和參數(shù)如下圖 4所示:3.1.3 時基信號產(chǎn)生電路時鐘是一切微處理器、微控制器內(nèi)部電路工作的基礎(chǔ)。單片機內(nèi)部有一個自激振蕩 電路,它是定
23、時控制部件中的一部分,可以通過內(nèi)部自激振蕩或外部提供振蕩源這兩種 方式,驅(qū)動內(nèi)部時鐘電路產(chǎn)生系統(tǒng)時鐘信號。內(nèi)部方式:在XTAL1 XTAL2夸接定時元件和兩個電容就構(gòu)成了自激振蕩器。C1、C2取5-30PF,起微調(diào)和穩(wěn)定作用。晶振頻率:f=1.212MHz 常用頻率為 6、12、11.0592 MHz。外部方式:外部振蕩脈沖信號直接由XTAL2端輸入,此時,XTAL1應(yīng)接地,而片內(nèi)振蕩電路不起作用,。常用于單片機同時工作,以便同步,要求信號低于12MHz時鐘周期:振蕩器輸出的時鐘脈沖頻率的倒數(shù)。為單片機中最小、最基本的時間單位。狀態(tài)周期:振蕩信號經(jīng)2分頻后獲得的信號周期,稱 S,顯然,S為時鐘
24、周期的2 倍。機器周期:12個時周鐘期為一個機器周期,對應(yīng)計算機執(zhí)行一個基本操作所需的時 問。指令周期:執(zhí)行一條指令所需的時間,至少包含一個機器周期。指令字節(jié):指令占用存儲空間的字節(jié)數(shù),有單字節(jié)、雙字節(jié)、三字節(jié)三類。當(dāng)時鐘頻率為12MH利6MHzM,時鐘周期分別為1/12共和1/6 s ,機器周期分-16 -黃河科技學(xué)院單片機設(shè)計(論文)這里使用12MH磊振和兩個電容就構(gòu)成的自激振蕩器。3.2 數(shù)字頻率計軟件設(shè)計3.2.1 主程序設(shè)計程序要求:要能實現(xiàn)量程切換,超量程指示,準確定時。mg)按例初始化中斷初始化顯示初始化量程預(yù)設(shè)測量程序主程序流程圖3.2.2 子程序設(shè)計子程序主要包括:按鍵中斷子
25、程序、定時中斷子程序、計數(shù)中斷子程序、周期中斷子程序、超量程判斷子程序、除法子程序、二進制轉(zhuǎn)BCDF程序、顯示程子序。按鍵中斷子程序按鍵中斷子程序流程圖鍵中斷子程序儂聊斷子桂粉V咽下-18 -黃河科技學(xué)院單片機設(shè)計(論文)定時中斷和計數(shù)中斷子程序(定時中斷子程序)停止定時T 口計數(shù)T1存儲計數(shù)器數(shù)值(中斷返回)周期中斷子程序,定時器啟停位取反I存儲定時器裁值甲數(shù)中電子程0 討數(shù)靛加1 -一斷返回)周期中斷子程序流程圖0面中斷手程庠)1-(中斷返回)超量程判斷子程序-19 -黃河科技學(xué)院單片機設(shè)計(論文)-21 -判斷大小,小于量程輸出“
26、0.”,大于量程輸出“ .5除法子程序該子程序用于周期轉(zhuǎn)換頻率,因為周 期為兩到三字節(jié),所以使用移位除法。移位除法模擬手算方法:1)從被除數(shù)高位開始對齊除數(shù),比 較。2)若前者大于或等于后者,商位為1, 并把被除數(shù)減除數(shù),形成部分余數(shù)。若前 者小于后者,商位為0o3)部分余數(shù)左移一位,商也左移一 位。4)整個余數(shù)若小于除數(shù),則退出。5)部分余數(shù)從高位開始與除數(shù)比 較。6)到第2)步。若被除數(shù)大于或等于除數(shù),則溢出。除法0001101110)1001110J 110-22 -初始化;商=6余數(shù)="數(shù)轉(zhuǎn)=除數(shù)位數(shù)C海hi處取也)C= I ;商二令h余數(shù)=全;1Y3.2.2.
27、6二進制轉(zhuǎn)BCDT程序二進制轉(zhuǎn)BC就為小數(shù)部分和整數(shù)部分。二進制轉(zhuǎn)BCDF程序流程圖黃河科技學(xué)院單片機設(shè)計(論文)顯示程子序加上該位的權(quán)值位里加L先進行查碼,然后由用行口發(fā)送到移位寄存器中程序:DISP:JB ALLOW,OU坪示更新是否允許MOV R2,#04H;位數(shù)MOV R1,#40H;顯示數(shù)據(jù)首地址DL0:MOV A,R1MOV DPTR,#TAB2MOVC A,A+DPTRMOV SBUF,A;發(fā)送JNB TI,$CLR TIINC R1DJNZ R2,DL0RETTAB2:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHGND黃河科
28、技學(xué)院單片機設(shè)計(論文)4.系統(tǒng)調(diào)試4.1 硬件調(diào)試硬件調(diào)試,由大到小,從整體到局部,進行調(diào)試。本設(shè)計電路簡單,所以不一一調(diào) 試,就最復(fù)雜的顯示電路進行調(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-Ne
29、w”或者點擊工具欄的新建文件按鈕,即 可在項目窗口的右側(cè)打開一個新的文本編輯窗口,在該窗口中輸入?yún)R編語言源程序(4.2小節(jié)所示)。保存該文件,加上擴展名(.asm或a51),這里將文件保存為examl.asm。(2)建立工程文件:點擊“ Project-New Project ”菜單,出現(xiàn)以個對話框,要求 給工程起一個名字,我們輸入examl,不需要擴展名,點擊保存按鈕,出現(xiàn)第二個對話框。 這個對話框要求選擇目標 CPU即我們所使用的芯片型號80C5D點擊ATME畫面的“+” 號,展開該層,點擊其中的80C51,然后點擊確定按鈕。回到主界面,此時,在工程窗 口的文件頁中,出現(xiàn)了 “ Targ
30、et1 ”,前面有 “+”號,點擊“ +”展開,可以看到下 一層的“Source Group1",這時的工程還是一個空工程,里面什么文件也沒有,需要手 動把剛才編寫好的源程序加入,點擊“ Souce Group”使其反白顯示,然后,點擊鼠標 右鍵,出現(xiàn)一個下拉菜單。選中其中的“ Add file to Group ” Souce Group!",對話 框,要求尋找源文件,注意該對話框下面的“文件類型”默認為 C Souce file (*.c), 也就是以C為擴展名的文件,而我們的文件是以asm為擴展名的,所以在列表框中找不 到examl1.asm,要將文件類型該掉,點擊對
31、話框中“文件類型后的下拉列表,找到并 選中“Asm Souce File(*.asm,*a51) ”,這樣,在列表框中就可以找到 examl1.asm文 文件了。雙examl1.asm文件,將文件加入項目,注意,在文件加入項目后,該對話框 并不消失,等待繼續(xù)加入其他文件,但初學(xué)時常會認為操作沒有成功而再次雙擊同一文件,這時會出現(xiàn)對話框,提示你所選的文件以在列表中,此時點擊確定,返回前一對話 框,然后,點擊" Close”即可返回主界面,返回后,點擊“ Souce Goup 1”前的加號, 會發(fā)現(xiàn)examll.asm文件以在其中。雙擊文件名,即打開源程序。(3)工程的詳細設(shè)置:首先點擊
32、左邊Project窗口的Target 1,然后使用菜單“Proget-Option for target 'target 1 ' ”即出現(xiàn)對工程設(shè)置的對話框,對這個對 話框可謂非常復(fù)雜,共有8個頁面,要全部高清可不容易,好在絕大部分設(shè)置項取默認 值就行了。設(shè)置完成以后安確認返回主界面,工程建立、設(shè)置完畢。(4)編譯、連接:在設(shè)置好工程后,既可以進行編譯、連接。選擇菜單Project-Build target,對當(dāng)前工程進行連接,如果當(dāng)前文件已修改軟件會先對該文件進行比阿尼,然 后在連接以產(chǎn)生目標代碼。編譯過程中的信息將出現(xiàn)在輸出窗口中的Build頁中,如果源程序有語法錯誤,會有
33、錯誤報告出現(xiàn),雙擊該行,可以定到出錯的位置,對源程序反 復(fù)修改后,最終會得到如圖5-1所示的結(jié)果,提示獲得了名為examl.hex的文件,該文 件即可被編程器讀入并寫到芯片中,同時還產(chǎn)生了一些其他相關(guān)文件可被用于KEIL的仿真與調(diào)試。Bui1d target 1 Target 11 assembling examl.asm , 1inking.creating hex file £irom "s靠aiml” . "examl11 - 0 Error (s ) , 0 Warning (sI i 1山皿/75rmnn4 A Find i件 Ji危3 7正確編譯之后的
34、結(jié)果4.2.2 調(diào)試過程中遇到的問題及解決方法在進入環(huán)境以后,遇到了很多問題,總結(jié)如下:(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)直接輸入需要修改的程序語句,輸入完之 后鍵入回車將自動指向下一條語句,可以繼續(xù)修改,如果不在需要修改,可以點擊右上 角的關(guān)
35、閉按鈕關(guān)閉窗口。(3)程序調(diào)試時,一些程序必須滿足一定的條件才能被執(zhí)行到解決方法:這些條件往往是異步發(fā)生或難以預(yù)先設(shè)定的,這類問題使用的單步實行 方法是很難調(diào)試的,這時就要使用發(fā)哦程序調(diào)試中的另一種非常重要是方法-斷點設(shè)置。斷點設(shè)置的方法有多種,常用的是在某一程序行設(shè)置斷點,設(shè)置好斷點后可以全速 運行程序,一旦執(zhí)行到該程序行即停止,可在此觀察有關(guān)變量值,以確定問題所在。在 程序行設(shè)置/移除斷點的方法是將光標定位于需要設(shè)置斷點的程序行,使用菜單 Debug/Insert/RemoveBreakPoint 設(shè)置或移除斷點(也可以用鼠標在該行雙擊實現(xiàn)同樣 的功能);Debug/Enable/Disa
36、ble BreakPoint是開啟或暫停光標所在懂行的斷點功能; Dubug/Disale All BreakPoint暫停所有斷點;Debug/Kill All BreakPoint 清除所有的斷點設(shè)置。這些功能也可以用工具條上的快捷鍵進行設(shè)置。(4)輸入程序時,有中文標點,用 keil編譯時出現(xiàn)錯誤解決方法:程序里有帶中文標點,用英文重輸入一遍(5)匯編出現(xiàn)數(shù)字、字母混淆解決方法:字母" O'和數(shù)字“0”。主要錯在這里。注意細節(jié)!-27 -黃河科技學(xué)院單片機設(shè)計(論文)結(jié)論基于單片機設(shè)計的數(shù)字頻率計具有原理簡單、易于調(diào)試和測量方便等優(yōu)點,主要用來測量低頻信號的頻率。由于其
37、測量范圍會受單片機計數(shù)速率的限制,其測量量程 較小,所以可以從原理上進行改進以提高其測頻范圍,比如通過增加分頻電路,就可實 現(xiàn)對高頻信號的測量。致謝通過這三個月來的忙碌和學(xué)習(xí),本次畢業(yè)論文設(shè)計已接近尾聲,由于經(jīng)驗的匱乏, 難免有許多考慮不周全的地方,在這里衷心感謝指導(dǎo)老師的督促指導(dǎo),以及一起學(xué)習(xí)的 同學(xué)們的支持,讓我按時完成了這次畢論文設(shè)計。在論文設(shè)計過程中,我遇到了許許多 多的困難。在此我要感謝我的指導(dǎo)老師郭曉君老師給我悉心的幫助和對我耐心而細致的 指導(dǎo),我的論文較為復(fù)雜煩瑣,但是郭曉君老師仍然細心地糾正圖中的錯誤。除了敬佩 老師的專業(yè)水平以外,他的治學(xué)嚴謹和科學(xué)研究的精神也是我永遠學(xué)習(xí)的榜
38、樣,并將積 極影響我今后的學(xué)習(xí)和工作,我才得以解決畢業(yè)設(shè)計中遇到的種種問題。 同時感謝我院、 系領(lǐng)導(dǎo)對我們的教導(dǎo)和關(guān)注;感謝大學(xué)三年傳授我們專業(yè)知識的所有老師,謝謝你們嘔 心瀝血的教導(dǎo)。還有謝謝我周圍的同窗朋友,他們給了我無數(shù)的關(guān)心和鼓勵,也讓我的 大學(xué)生活充滿了溫暖和歡樂。如果沒有他們的幫助,此次論文的完成將變得困難。他們 在我設(shè)計中給了我許多寶貴的意見和建議。 同時也要感謝自己遇到困難的時候沒有一蹶 不振,取而代之的是找到了最好的方法來解決問題。-40 -參考文獻1李全利,單片機原理及應(yīng)用技術(shù)。北京:高等教育出版社,20042王曙霞,單片機實驗與實訓(xùn)指導(dǎo)。西安:西安電子科技大學(xué)出版社,20
39、073及力,Protel 2004 原理圖與PC瞅計教程。北京:電子工業(yè)出版社,20074何利民,單片機高級教程。北京:航空航天大學(xué)出版社,20005李朝青,單片機原理與接口技術(shù)。北京:航空航天大學(xué)出版社,19996張毅剛,MCS-51單片機應(yīng)用設(shè)計。哈爾濱:哈爾濱工業(yè)大學(xué)出版社,19977李華,MCS-51系列單片機實用接口技術(shù)。北京:航空航天出版社,20008陳光東,單片微型計算機原理接口技術(shù)。武漢:華中理工大學(xué)出版社,19999王福瑞,單片機測控系統(tǒng)大全,北京:航空航天大學(xué)出版社,1998附錄附錄A程序ORG 0000HAJMP MAIN ;主程序ORG 0003HLJMP KAYBOA
40、R鍵盤中斷入口ORG 000BHLJMP TIME ;定時中斷入口ORG 0013HLJMP ZHOU周期測量入口ORG 002BHLJMP JSH ;計數(shù)中斷入口LC EQU 50H量程存放TO EQU 51H定時溢出次數(shù)存放NEW EQU 52Ht程切換狀態(tài)存放CHAO EQU 53郵量程狀態(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.0MOV SCON,#00
41、H中口工作方式0MOV 40H,#00H;顯示緩存清零MOV 41H,#00HMOV 42H,#00HMOV 43H,#00HHOME:MOV LC,#03H量程初始化ACALL DISPLC;顯示量程DOWN:JNB ENTER DOW叱量程?CLR ENTERCHOSE:CJNE LC,#01H,NEXT1AJMP ZQ ; 周期測量(量程1)NEXT1:CJNE LC,#02H,NEXT2AJMP JS1; 計數(shù)1 (量程2)NEXT2:CJNE LC,#03H,HOMEAJMP JS2; 計數(shù)2 (量程3)ZQ:CLR TR0 ; 定時停止MOV TL0,#00HMOV TH0,#00
42、HCLR 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,#00HMOV 36H,#0A0HMOV 37H,#86HMO
43、V 38H,#01HACALLCHAOPANDJNZ CHAO,ZQACALL DAOSHU;1眼數(shù)DJNZ NEW,CHOSE量程切換返回ACALL BCD1 ;二進制轉(zhuǎn) BCDKDJNZ NEW,CHOSE量程切換返回ACALL DISPAJMP ZQJPINGJUN:MOV R6,#01海以 4LOOP: MOV A.32HRRC AMOV 32H,AMOV A,31HRRC AMOV 31H,AMOV A,30HRRC AMOV 30H,ADJNZ R6,LOOPRETdivdll data 39h;divdlh data 3Ah divdhl data 3Bh div0 data 3
44、0h ; divl data 31h divh data 32h templ data 26h;temph data 27h DAOSH Umov divdll,#40h ;1s mov divdlh,#42h mov divdhl,#0fh divd: push a push b mov a,divh ; orl a,divl orl a,div0 jnz divd0 setb ov ; pop b pop a ret divd0: mov templ,#00h ;mov temph,#00h mov b,#24h;divd1:clr c ;mov a,divdll;rlc a ;mov d
45、ivdll,a定義被除數(shù)單元定義除數(shù)單元定義余數(shù)單元判除數(shù)是否為零除數(shù)為零,置溢出標志除數(shù)不為零,進行運算置循環(huán)次數(shù)進位位、余數(shù)單元和被除數(shù)單元全體逐個向左循環(huán)移位mov a,divdlh rlc amov divdlh,a mov a,divdhl rlc amov divdhl,a mov a,templ rlc amov templ,a xch a,temph rlc a xch a,temph mov 04H,c;clr c subb a,divl ; mov r7,a mov a,temph subb a,divh anl c,/04H;jc divd2 ; mov templ,r7
46、;mov temph,a inc divdll ; divd2: djnz b,divd1 clr ov保存進位位用余數(shù)減去除數(shù)判斷是否夠減不夠減,移下一位夠減,刷新余數(shù)單元商上1pop b pop a retJBCD1:MOV A,3AH ;頻率在 10.0099.99HzMOV B,#0AHDIV AB ; 整數(shù)MOV 43H,AMOV 42H,B尸=MOV R6,#00H ;小數(shù)LP2: MOV R0,#39HCLR CRLC AMOV 03H,C;為0時該所有數(shù)不相加MOV A,R6MOV B,#02HDIV ABMOV R1,A;小數(shù)的位數(shù)MOV DPTR,#TAB1MOV R5,#
47、00H;歹U表相對位置LP1: MOV A,R5MOVC A,A+DPTRJNB 03H,NOADDAD: ADDC A,R0DA AMOV R0,ANOADD:INC R0INC R5DJNZ R1,LP1CLR AJC ADINC R6CJNE R6,#08H,LP2MOV R0,#39H ; 拆開保存到顯示緩存XCHD A,R0MOV 40H,AMOV A,39HSWAP AMOV 41H,ARETTAB1:DB 50H,25H,50H,12H,25H,06HDB 50H,12H,03H,25H,56H,01HDB 50H,12H,78H,00H,25H,06H,39H,00H尸=JS1
48、: SETB ET1 ; 允許 T1 中斷CLR EX1 ; 不允許INT1中斷MOV TCON,#05H停止 TR1 計數(shù),TR0 定時MOV TL0,#0COH;定時初值,1000000=65535*15+16960MOV TH0,#0BDH; 65535-16960=48576=BDC0HMOV TL1,#00H ;計數(shù)期滿零MOV TH1,#00HMOV 30H,#00H ;計數(shù)存儲區(qū)清零MOV 31H,#00HMOV 32H,#00HMOV TO,#0FH ;定時溢出次數(shù)存MOV TCON,#55H啟動 TR1 計數(shù),TR0 定時A2:CJNE TO,#00HA2DJNZ NEW,C
49、HOSEM否有量程切換MOV 33H,#63H;量程 2MOV 34H,#00HMOV 35H,#00HMOV 36H,#0E7HMOV 37H,#03HMOV 38H,#00HACALL CHAOPANDJNZ CHAO,JS1MOV TL0,#0COHt 時初值MOV TH0,#0BDHMOV TL1,#00H ;計數(shù)期滿零MOV TH1,#00HMOV TO,#0FH ;定時溢出次數(shù)存MOV TCON,#55H啟動 TR1 計數(shù),TR0 定時DJNZ NEW,CHOSE否有量程切換ACALL BCD2DJNZ NEW,CHOSE否有量程切換ACALL DISPAJMP A2JJS2: S
50、ETB ET1 ; 允許 T1 中斷CLR EX1 ; 不允許INT1中斷MOV TCON,#05H停止 TR1 計數(shù),TR0 定時MOV TL0,#0COH;定時初值,1000000=65535*15+16960MOV TH0,#0BDH; 65535-16960=48576=BDC0HMOV TL1,#00H ;計數(shù)期滿零MOV TH1,#00HMOV 30H,#00H ;計數(shù)存儲區(qū)清零MOV 31H,#00HMOV 32H,#00HMOV TO,#0FH ;定時溢出次數(shù)存MOV TCON,#55H啟動 TR1 計數(shù),TR0 定時A3:CJNE TO,#00HA3DJNZ NEW,CHOS
51、EM否有量程切換MOV 33H,#0E7H;量程 3MOV 34H,#03HMOV 35H,#00HMOV 36H,#0FHMOV 37H,#27HMOV 38H,#00HACALLCHAOPANDJNZ CHAO,JS2MOV TL0,#0COHt 時初值MOV TH0,#0BDHMOV TL1,#00H ;計數(shù)期滿零MOV TH1,#00HMOV TO,#0FH ;定時溢出次數(shù)存MOV TCON,#55H啟動 TR1 計數(shù),TR0 定時DJNZ NEW,CHOSE否有量程切換ACALL BCD2DJNZ NEW,CHOSE否有量程切換ACALL DISPAJMP A3JBCD2:MOV 33H,#0E8Hf 位低MOV 34H,#64H;百位低MOV 36H,#03H;千位高MOV 37H,#00H;百位高MOV R0,#33HMOV R1,#36H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年下沉市場消費金融風(fēng)險管理策略研究報告
- 2025年體檢行業(yè)服務(wù)質(zhì)量提升與行業(yè)風(fēng)險管理策略報告
- 2025年商業(yè)寫字樓智能化系統(tǒng)初步設(shè)計評估與智能化系統(tǒng)應(yīng)用效果評估報告
- 藥品超市購物管理制度
- 藥學(xué)門診咨詢管理制度
- 藥店店長業(yè)務(wù)管理制度
- 藥店藥品效期管理制度
- 營業(yè)場所庫存管理制度
- 設(shè)備保養(yǎng)檢修管理制度
- 設(shè)備備件倉庫管理制度
- 2025年高考江蘇卷物理真題(解析版)
- 2025年重慶市中考化學(xué)試卷真題(含標準答案)
- 科學(xué)技術(shù)普及法解讀
- 醫(yī)院檢驗科實驗室生物安全程序文件SOP
- 北京市朝陽區(qū)2022-2023四年級下冊數(shù)學(xué)期末試題+答案
- 發(fā)動機裝調(diào)工:高級發(fā)動機裝調(diào)工試題及答案
- 藥物臨床試驗的倫理審查課件
- EHS目標與指標管理一覽表
- L等級考試LTE無線網(wǎng)絡(luò)優(yōu)化L3
- 河北省工傷職工停工留薪期分類目錄
- PROFINET總線技術(shù)在汽車生產(chǎn)線上的應(yīng)用
評論
0/150
提交評論