畢業(yè)設計(論文)-基于AT89S51單片機的電子鐘的設計_第1頁
畢業(yè)設計(論文)-基于AT89S51單片機的電子鐘的設計_第2頁
畢業(yè)設計(論文)-基于AT89S51單片機的電子鐘的設計_第3頁
畢業(yè)設計(論文)-基于AT89S51單片機的電子鐘的設計_第4頁
畢業(yè)設計(論文)-基于AT89S51單片機的電子鐘的設計_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)設計(論文) 題 目: 基于 AT89S51 單片機的電子鐘的設計 系 部: 信息技術系 專 業(yè): 電子信息工程技術 學 號: 學生姓名: 指導教師姓名: 指導教師職稱: 二一年五月八日 I II 摘要 隨著人類科技文明的發(fā)展,人們對于時鐘的要求在不斷地提高。時鐘已不僅僅被看成一種用來顯示時間的工具,在很多實際應用中它還需要能夠實現更多其它的功能。高精度、多功能、小體積、低功耗,是現代時鐘發(fā)展的趨勢。在這種趨勢下,時鐘的數字化、多功能化已經成為現代時鐘生產研究的主導設計方向 9。本文正是基于這種設計方向,以單片機為控制核心,設計制作一個符合指標要求的多功能數字時鐘。 本設計基于單片機技術原理,以單片機芯片 AT89S51 作為核心控制器,通過硬件電路的制作以及軟件程序的編制 ,設計制作出一個電子時鐘系統(tǒng)。該時鐘系統(tǒng)主要由時鐘電路模塊、復位電路模塊、 LED 數碼管顯示模塊、以及鍵盤控制模塊組成。系統(tǒng)具有簡單清晰的操作界面,能在 4V 7V 直流電源下正常工作。能夠準確顯示時間(顯示格式為時時: 00.00.00,剛上電時為 12.00.00,當顯示到 23.59.59,即有重新從 00.00.00 開始顯示),可隨時進行時間調整。設計以硬件軟件化為指導思想,充分發(fā)揮單片機功能,大部分功能通過軟件編程來實現,電路簡單明了,系統(tǒng)穩(wěn)定性高。同時,該時鐘系統(tǒng)還具有功耗小、成本低的特點,具有很強的實用性。 關鍵詞 AT89S51 單片機 電子鐘 I III 目錄 第一章 緒論 1 1.1 單片機的特點 . 1 1.2 單片機應用簡述 . 1 1.3 電子時鐘簡介 . 2 1.4 電子時鐘的基本特點 . 2 第二章 控制系統(tǒng)的硬件設計 . 3 2.1 芯片的選擇 . 3 2.1.1 AT89S51 的功能概述 . 3 2.1.2 AT89S51 引腳功能說明(附引腳圖) . 3 2.1.3 AT89S51 與 AT89C51 的比較 . 6 2.2 電子時鐘電路設計框圖 . 7 2.2.1 按鍵電路 . 7 2.2.2 LED 數碼管顯示電路 . 8 第三章 控制系統(tǒng)的軟件設計 . 12 3.1 主程序部分 . 12 3.2 顯示子程序 . 15 3.3 中斷服務子程序 . 19 第四章 電路測試 . 22 4.1 硬件測試 . 22 4.2 軟件測試 . 23 4.3 測試結果分析與結論 . 23 4.3.1 測試結果分析 . 23 4.3.2 測試結論 . 23 第五章 作品總結與感想 . 24 第六章 致謝 . 25 第七 章 參考文獻 . 26 第八章 附錄 . 27 I IV 附錄一 程序清單 . 27 附錄二 電路原理圖 . 35 附錄三 PCB 圖 . 36 附錄四 3D 圖 . 36 附錄五 元件清單 . 37 附錄六 硬件實物圖 . 38 1 第一章 緒論 1.1 單片機的特點 20 世紀末,單片機技術獲得了飛速的發(fā)展,在其在推動下,現代電子產品幾乎滲透了社會的各個領域,有力地推動了社會生產力的發(fā)展和社會信息化程度的提高,同時也使得現代電子產品性能進一步提高 1。單片機有以下特點: 1. 單片機的存儲器 ROM 和 RAM 是嚴格區(qū)分的。 ROM 稱為程序存儲器,只存放程序、固定常數及數據表格。 RAM 則為數據存儲器,用作工作區(qū)及存放用戶數據 1 2. 采用 面向控制的指令系統(tǒng)。為滿足控制需要,單片機有更強的邏輯控制能力,特別是單片機具有很強的位處理能力 1; 3. 單片機的 I/O 口通常是多功能的。由于單片機芯片上引腳數目有限,為了解決實際引腳數和需要的信號線的矛盾,采用了引腳功能復用的方法,引腳處于何種功能,可由指令來設置或機器狀態(tài)來區(qū)分 1; 4. 單片機的外部擴展能力很強。在內部的各種功能部件不能滿足應用的需求時,均可在外部進行擴展,與許多通用的微機接口芯片兼容,給應用系統(tǒng)設計帶來了很大的方便 1。 1.2 單片機應用簡述 目前,單片機正朝著高性能和多品種方向發(fā) 展趨勢是進一步向著 CMOS 化、低功耗、小體積,大容量、高性能、低價格和外圍電路內裝化等幾個方面發(fā)展。 單片機應用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設計思想和設計方法。在以前,是必須由模擬或是數字電路實現的大部分功能的,而現在已經能用單片機通過軟件的方法來實現了。這種軟件代替硬件的控制技術也稱為微控制技術,是傳統(tǒng)控制技術的一次革命 2。 2 1.3 電子時鐘簡介 時間對于人們來說總是那么寶貴,工作的忙碌性和繁雜性容易是人忘記當前時間。忘記了要做的事情,當事情不是很重要的時候這種遺忘無傷大雅。但是, 一旦是重要的事情,一時的耽誤可能釀成大禍 3。 1957 年, Ventura 發(fā)明了世界上第一只電子表,從而奠定了電子時鐘的基礎,電子時鐘也飛速的發(fā)展起來 4。現代的電子時鐘的基于單片機的一種計時工具采用延時程序產生一定的時間中斷,用于一秒定義,通過計數方式進行六十秒分鐘進一,滿六十分小時進一,滿二十四小時清零,從而達到計時的功能,是人們日常生活不可缺少的工具。 1.4 電子時鐘的基本特點 現在高精度的計時工具大多數采用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術,因此,走時精度高,穩(wěn)定性好, 使用方便,不需要經常調試,數字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用 LCD 顯示器或數碼管代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時、分、秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好 3。 3 第二章 控制系統(tǒng)的硬件設計 2.1芯片的選擇 經過多種單片機性能的分析及現有實驗設備的限制,在本設計中單片機芯片采用了AT89S51 單片機芯片。 AT89S51 是美國 ATMEL 公司生產的低功耗,高性能 CMOS8 位單片機片內含 4k bytes 的可系統(tǒng)編程的 Flash 只讀程序存儲器,器件采用 ATMEL 公司的高密度、非易失性存儲技術生產,兼容標準 8051 指令系統(tǒng)及引腳。它集 Flash 程序存儲器既可在線編程( ISP)也可用傳統(tǒng)方法進行編程既通用 8 位微處理器于單片機芯片中, ATMEL 公司的功能強大,低價位 AT89S51 單片機可為您提供許多高性價比的應用場合,可靈活應用于各種控制領域 5。 2.1.1 AT89S51 的功能概述 AT89S51 提供以下標準功能: 4K 字節(jié) Flash 閃速存儲器, 128 字節(jié)內部 RAM, 32個 I/O 口線,看門狗( WDT),兩個數據指針,兩個 16 位定時、計數器,一個 5 向量兩級中 斷結構,一個全雙工通信口,片內振蕩器及時鐘電路。同時, AT89S51 可降至 0Hz的靜態(tài)邏輯操作,并支持兩種可選的節(jié)電工作模式。空閑方式停止 CPU 的工作,但允許 RAM,定時、計數器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式 RAM 中的內容,但振蕩器停止工作并禁止其他所有部件工作直到下一個硬件復位 5。 2.1.2 AT89S51 引腳功能說明(附引腳圖) Vcc: 電源電壓 GND: 接地 P0 口 : P0 口是一組 8 位漏極開路型雙向 I/O 口,即地址 /數據總線復用口。作為輸出口用時,每位能驅動 8 個 TTL 邏輯門電路,對端 口寫 “1”可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低 8 位)和數據總線復用,在訪問期間激活內部上拉電阻。在 Flash 編程時, P0 口接收指令字節(jié),而在程序校 4 驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。 5 圖 2- 1 AT89S51 引腳圖 P1 口 : P1 口是一個帶有內部上拉電阻的 8 位雙向 I/O 口, P1 的輸出緩沖級可驅動(吸收或輸出電流) 4 個 TTL 邏輯門電路。對端口寫 “1”,通過內部的上拉電阻把端 口拉到高電平,此時可作為輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。 Flash 編程和程序校驗期間, P1 接收低 8 地址 5。 P2 口 : P2 口是一個帶有內部上拉電阻的 8 位雙向 I/O 口, P2 的輸出緩沖級可驅動(吸收或輸出電流) 4 個 TTL 邏輯門電路。對端口寫 “1”,通過內部的上拉電阻把端口拉到高電平,此時可作為輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或 16 位地址的外部數據存儲器(例如執(zhí)行 MOVX DPTR 指令)時, P2 口送出高 8 位地址數據。在訪問 8 位地址的外部數據存儲器(例如執(zhí)行 MOVX Ri 指令)時, P2 口線上的內容(即特殊功能寄存器( SFR)區(qū)中 P2 寄存器的內容),在整個訪問期間不改變。 Flash 編程和程序校驗期間, P2 亦接收高位地址和其他控制信號 5。 P3 口 : P3 口是一個帶有內部上拉電阻的 8 位雙向 I/O 口, P2 的輸出緩沖級可驅動(吸收或輸出電流) 4 個 TTL 邏輯門電路。對 P3 口寫入 “1”,它們被內部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的 P3 口將用上拉電阻輸出電流。 P3 口除了作為一 般的 I/O 口線外,更重要的用途是它的第二功能 5。 P3 口還接收一些用于 Flash 閃速存儲器編程和程序校驗的控制信號。 5 表 2- 1 P3 口第二功能 端口引腳 第二功能 信號名稱 P3.0 RXD 串行數據接收 P3.1 TXD 串行數據發(fā)送 P3.2 /INT0 外部中斷 0 請求 P3.3 /INT1 外部中斷 1 請求 P3.4 T0 定時 /計數器 0 的外部輸入 P3.5 T1 定時 /計數器 1 的外部輸入 P3.6 /WR 外部 RAM 寫選 通 P3.7 /RD 外部 RAM 讀選通 RST:復位輸入。當振蕩器工作時, RST 引腳出現兩個機器周期以上高電平將使單片機復位。 WDT 溢出將使該引腳輸出高電平,設置 SFR AUXR 的 DISRT0 位(地址 8EH)可打開或關閉該功能。 DIRT0 位缺省為 RESET 輸出高電平打開狀態(tài) 5。 ALE/PROG:當訪問外部程序存儲器或數據存儲器時, ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低 8 位字節(jié)。即使不訪問外部存儲器, ALE 仍以時鐘振蕩頻率的1/6 輸出固定的正脈沖信號,因此可對外輸出時鐘或用以定時目的。要注 意的是:每當訪問外部數據存儲器時將跳過一個 ALE 脈沖。對 Flash 存儲器編程期間,該引腳還用于出入編程脈沖( PROG)。如有必要,可通過對特殊功能寄存器( SFR)區(qū)中的 8EH 單元的 D0 位置位,單片機執(zhí)行外部程序時,應設置 ALE 無效 5。 /PSEN:程序儲存允許( /PSEN)輸出是外部程序存儲器的讀選通信號,當 AT89S51由外部程序存儲器取指令(或數據)使,每個機器周期兩次 /PSEN 有效,即輸出兩個脈沖。當訪問外部數據存儲器。沒有兩次有效的 /PSEN 信號 5。 EA/VPP :外部 訪問允 許。欲 使 CPU 僅 訪問 外部程 序存儲 器( 地址為0000HFFFFH), EA 端必須保持低電平(接地)。需注意的是:如果加密位 LB1 被編程,復位時內部會鎖存 EA 端狀態(tài)。如 EA 端為高電平(接 VCC 端), CPU 則執(zhí)行內部程序存儲器中的指令。 Flash 存儲器編程時,該引腳加上 +12V 的編程電壓 VPP5。 6 XTAL1:振蕩器反相放大器及內部時鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 2.1.3 AT89S51 與 AT89C51 的比較 AT89S51 相對于 AT89C51 新增加了很多功能,性能有了較大的提升,價格基本上不 變,甚至比 89C51 更低! 3 AT89S51 具有 ISP 在線編程 功 能,這個功能的優(yōu)勢在于改寫單片機存儲器內的程序不需要 芯片從工作環(huán)境上拔出,可以在線燒寫。 AT89S51 的最高工作頻率為 33MHz, 89C51 的極限工作頻率是 24M,就是說 89S51具有更改的工作頻率,從而有了更快的計算速度。 AT89S51 具有雙工 UART 串行通道。 AT89S51 內部集成看門狗計時器,不再需要像 89C51 那樣外接看門狗計時器單元電路。 AT89S51 具有雙數據指示器。 AT89S51 具有電源關閉標識。 AT89S51 具有 全新的加密算法,這使得對于 89S51 的解密變?yōu)椴豢赡埽绦虻谋C苄源蟠蠹訌姡@樣就可以有效保護知識產權不被侵犯 10。 在兼容性方面, AT89S51 向下完全兼容 51 全部字系列產品。比如 8051、 89C51 等產品。也就是說不論教科書上采用的單片機是 8051 還是 89C51 還是 MCS-51 的等等,在 89S51 上一樣可以照常運行,這就是所謂的向下兼容。 3 總之,無論是比其他品牌同類產品相比,還是與同品牌產品相比都顯示了 AT89S51優(yōu)良的性能,更高的性價比。所以 AT89S51 芯片成為了本系統(tǒng)的首選。 7 2.2 電子時鐘電路設計框圖 電路設計框圖 圖 2-2 2.2.1 按鍵電路 設計用了 4 個按鍵 K1/K2/K3/S1,分別用于調時、調分、調秒及用作復位按鈕,達到了時間調節(jié)的目的 。 C3C4Y1P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .3 /IN T 113P 3 .2 IN T 012P 3 .4 /T 014P 3 .5 /T 115E A /V P31X218X119R E S E T9P 3 .7 /R D17P 3 .6 /W R16P 0 .732P 0 .633P 0 .534P 0 .435P 0 .336P 0 .237P 0 .138P 0 .039P 2 .021P 2 .122P 2 .223P 2 .324P 2 .425P 2 .526P 2 .627P 2 .728P 3 .0 /R X D10P 3 .1 /T X D1180 51V C C40V S S20u1S1C5R 12+ 5 V+ 5 VR91KR 101KR 111KK1 S W -P BK2S W -P BK3S W -P B+ 5 V按鍵電路 圖 2-3 晶振電路模塊 復位電路模塊 LED 顯示電路 AT89S51 主控制模塊 按鍵電路 8 2.2.2 LED 數碼管顯示電路 數碼管是一種把多個 LED 顯示段集成在一起的顯示設備。有兩種類型,一種是共陽極,一種是共陰極。共陽極就是把多個 LED 顯示段的陽極接在一起,又稱為公共端。共陰型就是把多個 LED 顯示段的陰極連接在一起,即為公共商。陽極即 為二極管的正極,又稱為正極,陰極即為二極管的負極,又稱為負極。多位數碼管,除某一位的公共端會連接在一起,不同位的數碼管的相同端也會連接在一起。數碼管的顯示方法可分為靜態(tài)顯示和動態(tài)顯示,在本設計中采用的是動態(tài)顯示,其原理:各個數碼管的相同端連接在一起,共同占用 8 位段引管線:每位數碼管的陽極連接在一起組成公共端。利用人眼的視覺暫留性,依次給出各個數碼管公共端加有效信號,在此同時給出該數碼管加有效的數據信號,當全段掃描速度大于視覺暫留速度時,顯示就會清晰顯示出來 6。 本設計由兩個 LED 四位一體陰極數碼管、 8 個 9012( PNP)三極管、 8 個 510 歐上拉電阻等組成,由于 LED 數碼管的位電流較大,故采用三極管來驅動。 8 個電阻一端接到單片機的 P1 口,另一端分別接到三極管的基極,發(fā)射極接地,集電極與所述數碼管芯片的位控制端相連。此驅動電路采用主芯片的通用口并配合三極管來實現四位數碼管的動態(tài)掃描和顯示驅動,具有電路結構簡單、占用電路板空間小、驅動能力強、成本低等優(yōu)點,其缺點是共陰極的數碼管采用 PNP 三極管驅動,這樣三極管的損耗比較大。位碼由 P1 口輸出,段碼由 P3 口輸出, P1 口線與 LED 之間 5.1K 的限流電阻和 PNP三極 管,顯示的方式為動態(tài)顯示方式。 表 2-2 字型與字段關系 顯示字符 g f e d c b a 字型碼 共陰極 共陽極 0 0 1 1 1 1 1 1 3FH C0H 1 0 0 0 0 1 1 0 06H F9H 2 1 0 1 1 0 1 1 5BH A4H 3 1 0 0 1 1 1 1 4FH B0H 4 1 1 0 0 1 1 0 66H 99H 5 1 1 0 1 1 0 1 6DH 92H 9 6 1 1 1 1 1 0 1 7DH 82H 7 0 0 0 0 1 1 1 07H F8H 8 1 1 1 1 1 1 1 7FH 80H 9 1 1 0 1 1 1 1 6FH 90H A 1 1 1 0 1 1 1 77H 88H B 1 1 1 1 1 0 0 7CH 83H C 0 1 1 1 0 0 1 39H C6H D 1 0 1 1 1 1 0 5EH A1H E 1 1 1 1 0 0 1 79H 86H F 1 1 1 0 0 0 1 71H 8EH 數碼管驅動的意義: 第一:假如不驅動的話,單片機的高低電平仍然可以控制數碼管的亮度 ,形在動態(tài)顯示,但這時細心的你會發(fā)現這時的數碼的亮度會比較暗,并且掃描頻率很高,仍然有微小的閃動現象,因為單片機的輸出的電流本身就很弱; 第二:三極管的作用是: 1、起到開關的作用,即某一時刻打開或關閉數碼管,形成動態(tài)顯示; 2、驅動數碼管,靜態(tài)顯示可以不明顯,動態(tài)顯示的時候,效果就出來了。 10 具體電路圖如下: P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .3 /IN T 113P 3 .2 IN T 012P 3 .4 /T 014P 3 .5 /T 115E A /V P31X218X119R E S E T9P 3 .7 /R D17P 3 .6 /W R16P 0 .732P 0 .633P 0 .534P 0 .435P 0 .336P 0 .237P 0 .138P 0 .039P 2 .021P 2 .122P 2 .223P 2 .324P 2 .425P 2 .526P 2 .627P 2 .728P 3 .0 /R X D10P 3 .1 /T X D1180 51V C C40V S S20u1R 145. 1KR 155. 1KR 165. 1KR 175. 1KR 135. 1KR 185. 1KQ290 12Q390 12Q490 12Q590 12Q690 12Q790 12R1R2R3R4R5R6R7R8dp8a1b2c3d4e5f6g7abfcgdedpabfcgdedpabfcgdedpabfcgdedpbit19bit210bit311bit412A1S M Gdp8a1b2c3d4e5f6g7abfcgdedpabfcgdedpabfcgdedpabfcgdedpbit19bit210bit311bit412A2S M GV C CR 195. 1KR 205. 1KQ890 12Q990 12圖 2-4 數碼管顯示電路 11 整體電路圖如下: C3C4Y1P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .3 /IN T 113P 3 .2 IN T 012P 3 .4 /T 014P 3 .5 /T 115E A /V P31X218X119R E S E T9P 3 .7 /R D17P 3 .6 /W R16P 0 .732P 0 .633P 0 .534P 0 .435P 0 .336P 0 .237P 0 .138P 0 .039P 2 .021P 2 .122P 2 .223P 2 .324P 2 .425P 2 .526P 2 .627P 2 .728P 3 .0 /R X D10P 3 .1 /T X D1180 51V C C40V S S20u1S1C5R 12+ 5 V+ 5 VR 145. 1KR 155. 1KR 165. 1KR 175. 1KR 135. 1KR 185. 1KQ290 12Q390 12Q490 12Q590 12Q690 12Q790 12R1R2R3R4R5R6R7R8dp8a1b2c3d4e5f6g7abfcgdedpabfcgdedpabfcgdedpabfcgdedpbit19bit210bit311bit412A1S M Gdp8a1b2c3d4e5f6g7abfcgdedpabfcgdedpabfcgdedpabfcgdedpbit19bit210bit311bit412A2S M GV C CR 195. 1KR 205. 1KQ890 12Q990 12R91KR 101KR 111KK1 S W - P BK2S W - P BK3S W - P B+ 5 V圖 2-5 電子鐘硬件電路圖 12 第三章 控制系統(tǒng)的軟件設計 軟件系統(tǒng)主要分為以下幾個部分:主程序、顯示子程序及中斷服務子程序。 以動態(tài)顯示作為主程序,主要是初始化部分和不斷調用動態(tài)顯示子程序。動態(tài)顯示子程序,它被主程序不斷調用,以保證穩(wěn)定可靠的顯示;按鍵查詢采用中斷方式;秒定時采用定時器 T0 中斷方式進行,定時時間為 50MS,每 50MS 溢出一次,中斷兩次達 100MS。然后通過顯示子程序將單元里面的十六進制數拆開為 BCD 碼,送到顯示緩沖區(qū)。 3.1 主程序部分 a)程序的起始地址: MCS-51 單片機復位后,( PC) =0000H,而 0003H-002BH 分別是各中斷源的入口地址。所以,編程時應在 0000H 處寫一條跳轉指令。 b)主程序的初 始化:將要用到的 MCS-51 系列單片機內部部件或擴展芯片進行初始工作設定。流程圖如下: 13 圖 3-1 主程序流程圖 程序如下: SECOND EQU 30H ;秒單元 MINITE EQU 31H ;分單元 HOUR EQU 32H ;時單元 HOURK BIT P2.0 ;時按鍵 MINITEK BIT P2.1 ;分按鍵 SECONDK BIT P2.2 ;秒按鍵 DISPBUF EQU 40H ;顯示緩沖區(qū) DISPBIT EQU 48H T2SCNTA EQU 49H T2SCNTB EQU 4AH 開始 單元初始化 顯示緩沖區(qū)初始化 置定時器模式及工作方式 設置初始常數 啟動定時器 14 TEMP EQU 4BH ORG 0000H LJMP START ORG 000BH ;定時器 T0 中斷入口地址 LJMP INT_T0 ;主程序 START: MOV SECOND,#00H ;秒單元清 0 MOV MINITE,#00H ;分單元清 0 MOV HOUR,#12 ;上電時單元顯示 12 MOV DISPBIT,#00H MOV T2SCNTA,#00H MOV T2SCNTB,#00H MOV TEMP,#0FEH LCALL DISP ;調用顯示子程序 MOV TMOD,#01H ;設定時器 T0 工作方式為方式 1 MOV TH0,#3CH ;T0 置初值 MOV TL0,#0B0H SETB TR0 ;啟動定時器 T0 15 SETB ET0 ;啟動定時器 T0 中斷允許 SETB EA ;總中斷允許 3.2 顯示子程序 功能:掃描 8 個數碼管,數值。 流 程圖如下 調用延時程序 秒單元加 1 60S 到? N 秒單元清 0 分單元加 1 60M 到? N Y Y 分單元清 0 小時單元加 1 24H 到? N Y 小時單元清 0 返回 16 圖 3-2 顯示程序流程圖 顯示程序如下: ;顯示子程序 WT:JB SECONDK,NK1 ;位轉移 LCALL DELY10MS ;延時 1s JB SECONDK,NK1 INC SECOND ;s+1 MOV A,SECOND CJNE A,#60,NS60 ;判斷是否到 60m?判斷是否到 60s?若未到,則返回;到了則跳轉 NM60 MOV SECOND,#00H NS60: LCALL DISP JNB SECONDK,$ NK1: JB MINITEK,NK2 LCALL DELY10MS JB MINITEK,NK2 INC MINITE ;m+1 MOV A,MINITE CJNE A,#60,NM60 ;判斷是否到 60m?判斷是否到 60s?若未 17 到,則返回;到了則跳轉 NM60 MOV MINITE,#00H ;60 分到,則分單元清 0 NM60: LCALL DISP JNB MINITEK,$ NK2: JB HOURK,NK3 LCALL DELY10MS JB HOURK,NK3 INC HOUR ;h+1 MOV A,HOUR CJNE A,#24,NH24 ;判斷是否到 60m?判斷是否到 60s?若未到,則返回;到了則跳轉 NM60 MOV HOUR,#00H NH24: LCALL DISP JNB HOURK,$ NK3: LJMP WT DISP: MOV A,#DISPBUF ;顯示小時十位值 ADD A,#8 18 DEC A MOV R1,A MOV A,HOUR MOV B,#10 DIV AB ;除以 10.,得到時間值的各位和十位 MOV R1,A ;十位送相應的顯示緩沖區(qū) DEC R1 ;指向顯示緩沖區(qū)的個位 MOV A,B ;各位給 ACC MOV R1,A ;個位置送緩沖區(qū)的相應位置 DEC R1 MOV A,#10 MOVR1,A DEC R1 MOV A,MINITE ;顯示分鐘十位值 MOV B,#10 DIV AB MOV R1,A DEC R1 MOV A,B ;顯示分鐘個位值 19 MOV R1,A DEC R1 MOV A,#10 MOVR1,A DEC R1 MOV A,SECOND MOV B,#10 ;顯示秒十位值 DIV AB MOV R1,A DEC R1 MOV A,B MOV R1,A DEC R1 RET 3.3 中斷服務子程序 每個機器周期的長度是 12 個振蕩器周期。因為實驗系統(tǒng)的晶振是 11.0592MHz,所以定時常數的設 置可按以下方法計算: 機器周期 =1211.0592MHz 1.0857S 程序中,定時器 T0 采用方式 1=65536,因要求每 50MS 溢出一次,計數值 =( 501000) 1=5000 ,所以計數器的初值為 X=65536-50000=15536=3CB0H 20 初值寄存器的初值 TH0=3CH, TL0=B0H 置 T0 方式 1 定時,所以 TMOD=01H 功能: 50MS 執(zhí)行一次完成顯示數據的刷新并拆開放到顯示緩沖區(qū) .程序如下: ;中斷服務子程序 INT_T0: MOV TH0,#3CH MOV TL0,#0B0H MOV A,#DISPBUF ADD A,DISPBIT MOV R0,A MOV A,R0 MOV DPTR,#TABLE ;查表 MOVC A,A+DPTR MOV P3,A ;段碼送 P3 口 MOV A,DISPBIT MOV DPTR,#TAB MOVC A,A+DPTR MOV P1,A ;位碼送 P1 口 INC DISPBIT 21 MOV A,DISPBIT CJNE A,#08H,KNA MOV DISPBIT,#00H 22 第四章 電路測試 4.1 硬件測試 由于在硬件電路是用通用板做的,所以在電路焊接方面是不可忽視的,只要有一處的錯誤,則會對檢測造成很大的不便,而且電路的交線很多,對于各種鋒利的引腳要注意處理,否則刺破帶有封皮的導線,使得電路造成短路現象。另外還要對元器件先進行檢測,如果有壞的器件要進行更換,還有就是要注意元器件的正確放置與安裝以及布線的合理,便于成品電路的檢測和維護 7。 在本設計中的調試過程遇到了很多的問題,回想這些問題,其實只要認真點、仔細點、思考多一點大部分是可以避免的,以下 為主要問題:電路做成后,數碼管的正常顯示應為 12-00-00,卻顯示成了 00-00-12,就是前四位和后四位調換了。解決:查出 P1口的 8 個電阻低 4 位和高 4 位接反了,拆了重新接之后,顯示卻變?yōu)檎o@示數值12-00-00 的反面,就像一張紙的正面和反面反了下,后來想到從硬件中修改的話,改動的比較大也比較麻煩,后來決定從軟件中修改,把共陰極后面代碼改了,問題就得到了解決。 23 4.2 軟件測試 該電子鐘的功能雖少,但是程序也比較為復雜,所以在編寫程序和調試程序時出現了相對較多的問題。最后,鑒于以前學過的單片機知識 ,一步一步的完成各個子程序,終于得到了最后的程序。解決了軟件問題。在寫中斷程序和顯示程序時遇到了很多的問題,如調試時顯示亂碼等等。但是經過努力,程序還是成功了。 4.3 測試結果分析與結論 4.3.1 測試結果分析 1.在測試中遇到 LED 數碼管為不顯示時,首先要仔細觀察電路板是否存在漏焊、虛焊、或者元件損壞。 2.LED 數碼管顯示不正常,還有亮度不夠,要注意觀察電路是否存在短路現象。若硬件無誤后,再查看燒寫的程序是否正確,并對程序進行認真修改。 4.3.2 測試結論 經過了多次的反復測試與分析,可以對電路原 理及功能更加熟悉,同時提高了設計能力以及對電路的分析能力,同時在軟件的編程方面得到更高的提高,對編程能 力 也得到了加強,同時對所學的只是得到了很到的提高與鞏固 7。 對于初學者來說,更是有更大的益處,能理論聯系實際運用,學到更多的知識,真正將這門課程所包含的知識用于實際生活中的具體創(chuàng)造和設計中。 24 第五章 作品總結與感想 通過這次單片機課程設計,發(fā)現了自身所學知識存在許多的不足和問題,同時也學到了不少東西,提高了動手能力。 在整個設計過程中,從設計方案的確定,到具體電路的設計,最后到總體電路的聯接構建以及程 序的編寫燒寫,整個設計工程量的比較大的,單靠個人能力,很多方面考慮不周,有的地方甚至毫無頭緒,想不出具體方案,因此,絕對不能心急,不明白的地方和其他的同學討教,畢竟群策力辦法要多些,讓自己也多個機會,碰上是在不能解決的問題,就去找輔導老師,用過老師的指點,把問題徹底搞清楚并加以掌握。另外,在這次的設計過程中,我還查閱了很多相關設計的資料,通過參考和研究別人的一些設計,使得自己的設計思路更加清晰和周密,從而使設計出來的產品也更加完善和高質量。 盡管這次設計中遇到了很多問題,但是也都一一得以 解決 ,比如軟件設計時 ,遇到了很多問題,但是經過向同學討教及想老師詢

溫馨提示

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

評論

0/150

提交評論