單片機課程設(shè)計--數(shù)字鐘電子鐘_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  一 概述1</b></p><p>  1.1 數(shù)字鐘簡介1</p><p>  1.2 數(shù)字鐘的發(fā)展前景2</p><p>  1.3 51 單片機3</p><p>  

2、1.4 匯編語言3</p><p>  二 課題設(shè)計功能要求及總體方案4</p><p>  2.1 功能要求4</p><p>  2.2 設(shè)計總體方案介紹4</p><p>  三 數(shù)字電子鐘硬件系統(tǒng)的設(shè)計6</p><p><b>  3.1芯片介紹6</b>&

3、lt;/p><p>  3.2 硬件系統(tǒng)各模塊功能簡要介紹10</p><p>  3.3 數(shù)字鐘原理圖11</p><p>  四 數(shù)字電子鐘軟件系統(tǒng)的設(shè)計12</p><p>  4.1 數(shù)字電子鐘使用單片機資源情況12</p><p>  4.2 數(shù)字電子鐘軟件系統(tǒng)各模塊功能簡要介紹12<

4、/p><p>  4.3 數(shù)字鐘軟件系統(tǒng)程序流程框圖13</p><p>  4.3.1 主程序流程框圖13</p><p>  4.3.2 鍵掃描子程序流程框圖14</p><p>  4.3.3 顯示子程序流程框圖15</p><p>  4.3.4 加1子程序流程圖16</p>&l

5、t;p>  4.3.5 中斷服務(wù)子程序流程圖16</p><p>  五 仿真與誤差分析18</p><p>  5.1 數(shù)字電子鐘的設(shè)計結(jié)論及使用說明18</p><p>  5.2 設(shè)計課題的仿真結(jié)果18</p><p>  5.3 設(shè)計課題的誤差分析20</p><p><b&g

6、t;  心得21</b></p><p><b>  參考文獻(xiàn)22</b></p><p><b>  致 謝23</b></p><p><b>  附 錄24</b></p><p><b>  1硬件原理圖24</b><

7、;/p><p><b>  2仿真電路圖25</b></p><p>  3數(shù)字電子鐘程序清單26</p><p>  摘要:數(shù)字鐘廣泛應(yīng)用于生活生產(chǎn)中,對其深入了解很有必要,在此用單片機設(shè)計了一個簡單的數(shù)字電子鐘。</p><p>  本設(shè)計為基于AT89S52單片機,輔以必要的外圍電路,用自制單片機實驗板設(shè)計了一個簡

8、單的數(shù)字電子時鐘。在硬件方面,除了單片機外,用數(shù)碼管來進(jìn)行顯示,LED采用動態(tài)掃描顯示。通過LED能夠比較準(zhǔn)確顯示時、分、秒,三個簡單的按鍵實現(xiàn)對時間的調(diào)整。軟件方面采用A51匯編語言編程。整個電子鐘系統(tǒng)能完成時間的顯示,調(diào)時,調(diào)分,調(diào)秒,復(fù)位功能。本次設(shè)計的電子鐘帶采用獨立式鍵盤,用共陽數(shù)碼管顯示,因為LED亮度較高,顯示醒目所以此電子鐘在部分場所推廣很大。</p><p>  關(guān)鍵詞 數(shù)字電子鐘;AT89S

9、52;匯編語言</p><p>  ABSTRACT: Widely used in digital electronic clock production life, its understanding is necessary, in this single chip design with a simple digital electronic clock.</p><p>  A

10、T89S52 microcontroller based on the design, combined with the necessary peripheral circuits, a simple digital electronic clock. On the hardware side, in addition to SCM, the use of digital control for display, LED displ

11、ay using dynamic scanning. Can accurately through the LED display hours, minutes, seconds, three simple buttons to adjust the time to achieve. Software exchange with A51。The completion time clock system can display, tran

12、sfer, the transfer points, transfer seconds, reset. The des</p><p>  Key words digital electronic clock; AT89S52; assembly language</p><p><b>  一 概述</b></p><p>  1.1

13、 數(shù)字鐘簡介</p><p>  1350年6月6日意大利人喬萬尼·德·黨笛制造了世界上第一臺結(jié)構(gòu)簡單的機械打點多功能數(shù)字鐘,由于數(shù)字鐘報價便宜,功能齊全,因此很快受到眾多用戶的喜愛。1657年,荷蘭人惠更斯率先把重力擺引入機械鐘,進(jìn)而才創(chuàng)立了擺鐘?! 〉搅?0世紀(jì)以后,隨著電子工業(yè)的快速發(fā)展,電池驅(qū)動鐘、交流電鐘、電機械表、指針式石英電子鐘表以及數(shù)字顯示式石英鐘表相繼問世,數(shù)字鐘報價非常

14、合理,再加上產(chǎn)品的不斷改良,多功能數(shù)字鐘的日差已經(jīng)小于0.5秒,因此受到廣大用戶的青睞。尤其是原子鐘的出現(xiàn),它是使用原子的振動來控制計時的,是目前世界上最精準(zhǔn)的時鐘,即使經(jīng)過將近100萬年,其偏差也不可能超過1秒鐘?! 《喙δ軘?shù)字鐘最早是在歐洲中世紀(jì)的教堂,屬于完全機械式結(jié)構(gòu),動力使用重錘,打點鐘聲完全使用人工進(jìn)行撞擊鑄鐘,所以當(dāng)時一個多功能數(shù)字鐘工程在建筑與機械結(jié)構(gòu)方面是非常復(fù)雜的,進(jìn)而影響了數(shù)字鐘報價。進(jìn)入電子時代以后,電子多功能

15、數(shù)字鐘也相繼問世。我國電子多功能數(shù)字鐘行業(yè)從80年代開始漸漸成長壯大,目前不僅數(shù)字鐘報價合理,在技術(shù)和應(yīng)用水平上也已經(jīng)達(dá)到世界同類水平。</p><p>  電子數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的鐘表。與機械鐘相比具有更高的準(zhǔn)確性和直觀性,具有更長的使用壽命,已得到廣泛的使用。數(shù)字鐘的設(shè)計方法有許多種,例如可用中小規(guī)模集成電路組成電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電

16、子鐘,還可以利用單片機來實現(xiàn)電子鐘等等。這些方法都各有其特點,其中利用單片機實現(xiàn)的電子鐘具有編程靈活,以便于功能的擴(kuò)展。數(shù)字鐘已成為人們?nèi)粘I钪胁豢苫蛉钡纳畋仨毱?,廣泛地應(yīng)用于人家庭以及車站、碼頭、劇場、辦公室等家庭和公共場所,給人們的生活,學(xué)習(xí),工作,娛樂帶來極大的方便。</p><p>  數(shù)字鐘一般由振蕩器,譯碼器,單片機,顯示器等部分組成,當(dāng)前市場上已有現(xiàn)成數(shù)字鐘集成芯片出售,價格較便宜。由于數(shù)字集成

17、電路的發(fā)展,采用了先進(jìn)穩(wěn)定的石英震蕩技術(shù),使數(shù)字鐘具有走時準(zhǔn)確,性能穩(wěn)定,攜帶方便等特點,是目前人們生活和工作不可或缺的報時用品。</p><p>  1.2 數(shù)字鐘的發(fā)展前景</p><p>  現(xiàn)在是一個知識爆炸的新時代。新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異。可以毫不夸張的說,電子技術(shù)的應(yīng)用無處不在,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展

18、的年代,時間對于人們來說越來越寶貴,在快節(jié)奏的生活時,人們往往忘記了時間,一旦遇到重要的事情而忘記了時間,這將會帶來很大的損失。一次我們需要一個定時系統(tǒng)來提醒這些忙碌的人。數(shù)字化的鐘表給人們帶來了極大的方便。</p><p>  近年來,隨著科技的發(fā)展和社會的進(jìn)步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能上還是樣式上都發(fā)生改變,有電子鬧鐘,數(shù)字鬧鐘等等。單片機在多功能數(shù)

19、字鐘中的應(yīng)用已是非常普遍的,人們對數(shù)字鐘的功能及工作順序都非常熟悉。但是去很少知道它的內(nèi)部結(jié)構(gòu)以及工作原理。由單片機作為數(shù)字鐘的核心控制器,可以通過它的時鐘信號進(jìn)行計時實現(xiàn)計時功能,將其時間數(shù)據(jù)經(jīng)單片機輸出,利用顯示器顯示出來。通過鍵盤可以進(jìn)行定時,校時功能。輸出設(shè)備可以用液晶顯示技術(shù)和數(shù)碼管顯示技術(shù)。</p><p>  單片機芯片作為控制系統(tǒng)的核心部件,它除了具備微機CPU的數(shù)值計算功能外,還具有靈活強大的控

20、制功能,以便實時檢測系統(tǒng)的輸入量、系統(tǒng)的輸出量,實現(xiàn)自動控制。在本次設(shè)計中采用單片機技術(shù)來實現(xiàn)數(shù)字鐘的功能。方案的設(shè)計可以從以下幾個方面來確定。微處理器的選擇,AT89S51、52是2003年ATMEL推出的新型品種,除了完全兼容8051外,還多了ISP編程和看門狗功能。但是AT89S52的存儲器容量比AT89S51的大。在本次設(shè)計中采用AT89S52單片機;顯示電路的設(shè)計,隨著科技的發(fā)展,液晶顯示的使用越來越方便,已被普遍的使用。由于

21、液晶顯示與驅(qū)動都集成在一個芯片上,因此使用起來很方便。在這里采用液晶顯示;校時和定時電路的設(shè)計;實時控制電路是時鐘電路的一個重要組成部分,采用的是一個時鐘芯片,單片機從中讀取數(shù)據(jù)送到顯示器上顯示,從而實現(xiàn)數(shù)字鐘的功能;還有一些其他控制電路如復(fù)位電路、時鐘電路等。</p><p>  1.3 51 單片機</p><p>  單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是

22、把一個計算機系統(tǒng)集成到一個芯片上。作為嵌入式系統(tǒng)控制核心的單片機具有其體積小、功能全、性價比高等諸多優(yōu)點。51 系列單片機是國內(nèi)目前應(yīng)用最廣泛的單片機之一,隨著嵌入式系統(tǒng)、片上系統(tǒng)等概念的提出和普遍接受及應(yīng)用,51 系列單片機的發(fā)展又進(jìn)入了一個新的階段。在今后很長一段時間內(nèi)51 系列單片機仍將占據(jù)嵌入式系統(tǒng)產(chǎn)品的中低端市場。</p><p>  1.4 匯編語言</p><p>  

23、匯編語言是一種面向機器的計算機低級編程語言,通常是為特定的計算機或系列計算機專門設(shè)計的。匯編語言保持了機器語言的優(yōu)點,具有直接和簡捷的特點,其代碼具有效率高實時性強等優(yōu)點。但是對于復(fù)雜的運算或大型程序,用匯編語言編寫將非常耗時。匯編語言可以與高級語言配合使用,應(yīng)用十分廣泛。</p><p>  二 課題設(shè)計功能要求及總體方案</p><p>  2.1 功能要求</p>

24、<p>  設(shè)計的數(shù)字電子鐘上電或按鍵復(fù)位后能無顯示, 進(jìn)入時鐘準(zhǔn)備狀態(tài);第一次按數(shù)字電子鐘啟動/調(diào)整鍵,數(shù)字電子鐘從0時0分0秒開始運行,進(jìn)入時鐘運行狀態(tài);再次按數(shù)字電子鐘啟動/調(diào)整鍵,則數(shù)字電子鐘進(jìn)入時鐘調(diào)整狀態(tài),并且時間停止不動,此時可分別利用各調(diào)整鍵調(diào)整時、分、秒,調(diào)整結(jié)束后可按啟動/調(diào)整鍵再次進(jìn)入時鐘運行狀態(tài)。</p><p>  2.2 設(shè)計總體方案介紹</p><p

25、>  本課程設(shè)計采用AT89S52單片機實驗板設(shè)計一個數(shù)字電子鐘,通過8位LED數(shù)碼管顯示時、分、秒,并設(shè)有5個按鍵。其中一個用于單片機的復(fù)位;一個為啟動/調(diào)整鍵;另外三個為時、分、秒調(diào)整鍵。</p><p>  電路分別為復(fù)位電路、鍵盤電路、晶振電路、驅(qū)動電路和控制電路。復(fù)位電路采用按鍵復(fù)位方式。鍵盤電路采用獨立式鍵盤。時鐘電路用12MHz的晶振產(chǎn)生時鐘信號。顯示電路采用74ls245三極管驅(qū)動8位LED

26、顯示??刂齐娐?lt;/p><p>  采用8位AT89S52單片機進(jìn)行控制。其設(shè)計框圖如圖1.1所示:</p><p><b>  計時方案</b></p><p>  設(shè)定定時器1負(fù)責(zé)計時初值TH0=ODCH,TL0=00H.設(shè)定中斷時間為</p><p>  根據(jù)公式: </p><

27、;p>  T=(216-X)*1us……………………………… 2.2</p><p>  代入初值得T為50ms循環(huán)20次。當(dāng)計滿20次時說明一秒時間到。此時秒位加1,判斷秒位是否達(dá)60秒不滿60秒則返回。滿60秒則秒位清0并分為加1,判斷分位是否滿60分,不滿60分則返回。滿60則分位清0,并時位加1,判斷時位是否為24小時,不滿則返回。滿24小時則時位清0 。</p><p>&

28、lt;b>  鍵盤/顯示方案</b></p><p>  AT89S52的P2口外接由8個LED數(shù)碼管構(gòu)成的顯示器,用P0口作LED的段碼輸入口,P2口作8個LED數(shù)碼管的位控輸出線,在內(nèi)部RAM鐘設(shè)置顯示緩沖區(qū)共8個單元,如表2.1所示。P1口外接4個按鍵。</p><p>  表2.1 單元格地址及顯示</p><p>  三 數(shù)字電子

29、鐘硬件系統(tǒng)的設(shè)計</p><p><b>  3.1芯片介紹</b></p><p>  1.AT89S52:</p><p>  AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上F

30、lash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至

31、0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。</p><p><b>  圖3.1</b></p><p>  P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)

32、動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0不具有內(nèi)部上拉電阻。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗 時,需要外部上拉電阻。</p><p>  P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。

33、對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。</p><p>  此外,P1.0和P1.1分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和定時器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX)。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。</p><p><b>

34、  引腳號第二功能:</b></p><p>  P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出</p><p>  P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)</p><p>  P1.5 MOSI(在系統(tǒng)編程用)</p><p>  P1.6 MISO(在系統(tǒng)編程用)</p>

35、;<p>  P1.7 SCK(在系統(tǒng)編程用)</p><p>  P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX

36、@DPTR) 時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。</p><p>  P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電

37、阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗時,P3口也接收一些控制信號。</p><p>  端口引腳 第二功能:</p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(

38、串行輸出口)</p><p>  P3.2 INTO(外中斷0)</p><p>  P3.3 INT1(外中斷1)</p><p>  P3.4 TO(定時/計數(shù)器0)</p><p>  P3.5 T1(定時/計數(shù)器1)</p><p>  P3.6 WR(外部數(shù)據(jù)存儲器寫選通)</p><p&

39、gt;  P3.7 RD(外部數(shù)據(jù)存儲器讀選通)</p><p>  此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復(fù)位。</p><p>  ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8

40、位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE

41、禁止位無效。</p><p>  PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。</p><p>  EA/VPP:外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(

42、接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。</p><p>  XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。</p><p>  XTAL2:振蕩器反相放大器的輸出端。<

43、;/p><p><b>  2.74LS245</b></p><p>  74LS245是我們常用的芯片,用來驅(qū)動led或者其他的設(shè)備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。</p><p>  74LS245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。</p><p>  當(dāng)8051單片機的P0口總線負(fù)載達(dá)

44、到或超過P0最大負(fù)載能力時,必須接入74LS245等總線驅(qū)動器。</p><p>  當(dāng)片選端/CE低電平有效時,DIR=“0”,信號由 B 向 A 傳輸;(接收)</p><p>  DIR=“1”,信號由 A 向 B 傳輸;(發(fā)送)當(dāng)CE為高電平時,A、B均為高阻態(tài)。</p><p>  由于P2口始終輸出地址的高8位,接口時74LS245的三態(tài)控制端1G和2G

45、接地,P2口與驅(qū)動器輸入線對應(yīng)相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線暢通。8051的/RD和/PSEN相與后接DIR,使得RD且PSEN有效時,74LS245輸入(P0.1←D1),其它時間處于輸出(P0.1→D1)。</p><p><b>  圖3.2</b></p><p>  3.2 硬件系統(tǒng)各模塊功能簡要介紹</p>&

46、lt;p><b>  1) 復(fù)位電路</b></p><p>  復(fù)位是單片機的硬件初始化操作。經(jīng)復(fù)位操作后,單片機系統(tǒng)才能開始正常工作。</p><p>  單片機上有復(fù)位引腳RST,用于外接復(fù)位電路,這里復(fù)位電路采用按鍵電平復(fù)位。</p><p><b>  2) 時鐘電路</b></p>&l

47、t;p>  單片機工作所需的同步時鐘信號由以下兩種方法獲得:由單片機片內(nèi)時鐘電路結(jié)合外部晶振、電容產(chǎn)生和直接從單片機外部引入脈沖信號。這里用第一種方法產(chǎn)生時鐘信號。</p><p>  電路用12MHz的石英晶體和二個微調(diào)電容(為33pF左右)連接起來接到單片機的XTAL1和XTAL2引腳上。</p><p><b>  3) 鍵盤電路</b></p&g

48、t;<p>  由于按鍵較少,所以此處使用獨立式鍵盤,鍵盤接到單片機的P1.0~P1.3上當(dāng)鍵按下時,在其相應(yīng)的口線上產(chǎn)生低電平信號,鍵松開時仍為高電平信號。 </p><p><b>  4) 顯示電路</b></p><p>  本顯示電路采用74LS245驅(qū)動8位數(shù)碼管段和位控端。顯示電路用單片機的P0口線作段控口,線上串入100Ω的限流電阻,用

49、P2口線作位控口。 </p><p>  3.3 數(shù)字鐘原理圖</p><p>  圖3.1 設(shè)計原理圖</p><p>  四 數(shù)字電子鐘軟件系統(tǒng)的設(shè)計</p><p>  4.1 數(shù)字電子鐘使用單片機資源情況</p><p>  在電子鐘的編程過程中,單片機資源使用情況如下:</p><

50、;p>  寄存器:通用寄存器0組的R0~R7;</p><p>  IO口線:P0口(作數(shù)碼管的段控口),P2口(作數(shù)碼管的位控口)</p><p>  P1口(作鍵盤接口);</p><p><b>  堆棧地址:60H;</b></p><p>  顯示緩沖單元:30H~37H;</p><

51、p>  鍵掃子程序出口:20H</p><p>  秒,分,時緩存單元:為41H,43H,45H</p><p>  定時器1 50ms計數(shù)值存放單元:40H</p><p>  4.2 數(shù)字電子鐘軟件系統(tǒng)各模塊功能簡要介紹</p><p><b>  1) 顯示模塊</b></p><p&

52、gt;  顯示子程序主要是對段(位)控碼的操作。要注意的是寄存器的使用,指針的初始化,延時控制,以及LED顯示的判斷。顯示程序中顯示的是緩沖區(qū)中的內(nèi)容再調(diào)數(shù)據(jù)表格中顯示代碼,程序中只要將要顯示的內(nèi)容在數(shù)據(jù)表中的位置送往顯示緩沖區(qū)即可,就可以顯示你所需要顯示的內(nèi)容。</p><p>  2) 中斷服務(wù)程序模塊</p><p>  中斷服務(wù)程序主要由4次判斷構(gòu)成,當(dāng)程序開始,寄存器裝入初值后

53、,順序開始4次判斷,否則返回繼續(xù)判斷,是則相應(yīng)單元請0,且下一位判斷位置加一。最后進(jìn)行出棧操作,并結(jié)束程序。</p><p><b>  3) 鍵盤模塊</b></p><p>  鍵盤掃描子程序同樣包括3次判斷,第一次但程序開始時,判斷是否有鍵閉合,是則程序繼續(xù),否則直接結(jié)束;第二次在調(diào)用顯示子程序時,判斷是否有鍵閉合,是則程序繼續(xù),否則直接結(jié)束;第三次緊跟第二次

54、判斷之后,當(dāng)有鍵按下,判斷其是否釋放,是則程序繼續(xù),否則返回繼續(xù)判斷是否釋放。</p><p>  4.3 數(shù)字鐘軟件系統(tǒng)程序流程框圖</p><p>  4.3.1 主程序流程框圖</p><p>  主程序流程框圖如圖4.1所示:</p><p>  圖4.1 主程序流程圖</p><p>  4.3.2

55、鍵掃描子程序流程框圖</p><p>  鍵掃描子程序流程圖如圖4.2所示:</p><p>  圖4.2 鍵掃描子程序流程圖</p><p>  4.3.3 顯示子程序流程框圖</p><p>  顯示子程序流程框圖如圖4.3所示:</p><p>  圖4.3 顯示子程序流程圖</p><

56、p>  4.3.4 加1子程序流程圖</p><p>  加1子程序流程框圖如圖4.4所示:</p><p>  圖4.4 加1子程序流程圖</p><p>  4.3.5 中斷服務(wù)子程序流程圖</p><p>  中斷服務(wù)子程序流程框圖如圖4.5所示:</p><p>  圖4.5 中斷服務(wù)子程序流程

57、圖 </p><p>  五 仿真與誤差分析</p><p>  5.1 數(shù)字電子鐘的設(shè)計結(jié)論及使用說明</p><p>  本課程設(shè)計的目的是設(shè)計一個電子鐘,通過原理圖的繪制和仿真,最終做出的實物是成功的,能夠達(dá)到預(yù)期的目的,以下本次所作電子鐘的具體的使用說明:電子鐘上電后,什么都不顯示,按下啟動/調(diào)整鍵,電子鐘從0時0分0秒開始自動運行,再次按下啟動/調(diào)整

58、鍵,電子鐘運行停止,處于調(diào)整狀態(tài),調(diào)整位閃爍。按下調(diào)加鍵,加1,以實現(xiàn)時、分、秒的調(diào)整,再次按下啟動/調(diào)整鍵,電子鐘自動運行起來,處于運行狀態(tài),調(diào)整結(jié)束。</p><p>  5.2 設(shè)計課題的仿真結(jié)果</p><p>  設(shè)計課題的仿真結(jié)果如圖5.1所示</p><p>  圖5.1 仿真結(jié)果</p><p>  5.3 設(shè)計課題的誤

59、差分析</p><p>  本課程設(shè)計存在一定誤差,引起誤差原因主要是程序中定時后很多指令引起的時間積累誤差。但誤差在允許范圍內(nèi),所以,時間基本準(zhǔn)確。減小誤差的辦法:經(jīng)過運行監(jiān)測發(fā)現(xiàn)電子鐘行走24小時快大約五分鐘所以可通過軟件方法自動24小時校正5分鐘。</p><p><b>  心得</b></p><p>  本次做課程設(shè)計,是我進(jìn)這個大

60、學(xué)來的第一次做的課程設(shè)計。以前在??频臅r候?qū)W了單片機這門課程但是從來都沒有實踐過。</p><p>  這次是我第一次做真正的單片機課程設(shè)計,從實物到軟件編程都是自己親自動手實踐的。俗話說的好:紙上學(xué)來終覺淺,須知此事要躬行。我們的這門課程本來就是繁瑣的,只有在真正的實踐之中才能知道我們到底學(xué)了多少,以及理論與實踐中的區(qū)別。制版本次采用的是純手工制作,從繪制原理圖開始。的確,這次的設(shè)計是完全從頭開始,繪制原理圖、

61、PCB、轉(zhuǎn)印、腐蝕、焊接、調(diào)試,以及最后的實踐程序編寫。當(dāng)然,難度最大的還是程序的編寫,本次的電子鐘設(shè)計,我個人認(rèn)為難度最大的就是鍵盤與顯示,由于本次的電路板是全手工制作,工藝比較粗糙,焊接中也有問題,導(dǎo)致最終程序編寫也要相應(yīng)改變。</p><p>  在課程設(shè)計的第一次調(diào)試過程中,出現(xiàn)了許多我無法解釋的問題,使我有些灰心,但是在認(rèn)真重新讀完自己的程序以后,我發(fā)現(xiàn)原來出現(xiàn)問題的原因都是自己的粗心,在修改完這些問題

62、以后,接下來的調(diào)試就比較順暢了,歸結(jié)原因主要還是我對流程圖的設(shè)計下了很多功夫,為調(diào)試打下了良好的基礎(chǔ)。在本次設(shè)計當(dāng)中,深深感悟到即使是一個小的板子也有很多的學(xué)問,我們必須真正的掌握它才能順利解決遇到的各種問題。雖然這只是一個比較小的實驗系統(tǒng),但卻是一切的基礎(chǔ),只有懂了基礎(chǔ)才能學(xué)的更深。</p><p><b>  參考文獻(xiàn)</b></p><p>  張友德.單片微型

63、機原理、應(yīng)用與實驗[M].上海:復(fù)旦大學(xué)出版社,2006.5. 17~28</p><p>  Zhang Youde. Single-chip microcomputer principles, applications and experimental[M]. Shanghai: Fudan University Press, 2006.5. 17~28</p><p>  夏寬理.程

64、序設(shè)計[M].上海:復(fù)旦大學(xué)出版社,2000.7. 26~44</p><p>  Xia Kuangli. Programming[M]. Shanghai: Fudan University Press, 2000.7. 26~44 </p><p>  譚浩強.C程序設(shè)計[M].北京:清華大學(xué)出版社,1999.12. 48~56</p><p>  Tan H

65、aoqiang. C Programming[M]. Beijing: Tsinghua University Press,1999.12.48~56</p><p> ?。?]李廣弟.單片機基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2010.5</p><p>  Li Guangdi. Microcontroller based[M]. Beijing: Beijing Aerospa

66、ce University Press, 2010.5</p><p>  [6] 李景宏,馬學(xué)文。電子技術(shù)實驗教程[M]。沈陽:東北大學(xué)出版社,2004</p><p>  [7] 賈正松。單片機系統(tǒng)復(fù)位電路設(shè)計[J]??萍假Y訊,2007,(36)</p><p>  [8] 袁新燕。淺談單片機應(yīng)用系統(tǒng)的調(diào)試[J]。自動化與儀器儀表,2000,(03)</p

67、><p>  [9] 王暉,薛永存?;贛CS-51單片機的復(fù)位電路抗干擾分析與設(shè)計[J]。現(xiàn)代電子技術(shù),2006,(08)</p><p>  [10] 丁元杰主編.單片微型計算機.北京:機械工業(yè)出版社.2003</p><p>  [11] 李廣第主編.單片機基礎(chǔ).北京:北京航天工業(yè)出版社.2002</p><p>  [12] 江志紅編著.

68、51單片機技術(shù)與應(yīng)用系統(tǒng)研發(fā).清華大學(xué)出版社.2008</p><p><b>  致 謝</b></p><p>  這次課程設(shè)計終于完成了,完成這次課程設(shè)計離不開老師和同學(xué)的幫助沒有他們的指導(dǎo)我想我是很難完成這次課程設(shè)計的。在這次課程設(shè)計的撰寫過程中,我得到了許多人的幫助。</p><p>  首先我要感謝我的老師在課程設(shè)計上給予我的指導(dǎo)

69、、提供給我的支持和幫助,這是我能順利完成這次報告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識,而且也開闊了視野,提高了自己的設(shè)計能力。</p><p>  其次,我要感謝幫助過我的同學(xué),他們也為我解決了不少我不太明白的設(shè)計商的難題。同時也感謝學(xué)院為我提供良好的做畢業(yè)設(shè)計的環(huán)境。</p><p>  最后再一次感謝所有在設(shè)

70、計中曾經(jīng)幫助過我的良師益友和同學(xué)。</p><p><b>  附 錄</b></p><p><b>  1硬件原理圖</b></p><p><b>  2仿真電路圖</b></p><p>  3數(shù)字電子鐘程序清單</p><p><b&g

71、t;  ;主程序</b></p><p>  ORG 0000H</p><p>  AJMP MAIN</p><p>  ORG 000BH</p><p>  LJMP INTT0</p><p>  ORG 0030H</p

72、><p>  MAIN: MOV SP, #60H; 確立堆棧區(qū)</p><p>  MOV PSW, #00H;</p><p>  MOV R0, #20H; RAM區(qū)首地址</p><p>  MOV

73、 R7, #5FH; RAM區(qū)單元個數(shù)</p><p>  QL: MOV @R0, #00H; RAM清零</p><p>  INC R0</p><p>  DJNZ R7, QL</p><p>  MO

74、V IP, #02H; IP初始化,優(yōu)先定時器0</p><p>  MOV IE, #82H; E初始化,</p><p>  MOV TMOD, #01H; 定時器0方式1工作 </p><p> 

75、 NEXT: LCALL KEY; 按鍵檢測子程序</p><p>  JB ACC.0 , RUNF; A鍵按下運行</p><p>  SJMP NEXT</p><p>  RUNF: LCALL OUTT;

76、 調(diào)傳送子程序</p><p>  LCALL TIME; 開電子鐘</p><p>  JK: LCALL DISP; 調(diào)用顯示子程序</p><p>  LCALL KEY; 按鍵檢測子程序&

77、lt;/p><p>  JZ JK</p><p>  LCALL ANKEY</p><p>  LCALL DISP; 調(diào)用顯示子程序</p><p>  SJMP JK</p><p><b>  ;鍵掃

78、描子程序</b></p><p>  KEY: LCALL KEYS; 調(diào)用鍵值處理子程序</p><p>  JZ EXIT; 沒有鍵按下轉(zhuǎn)到返回</p><p>  LCALL DISP</p><p> 

79、 LCALL DISP; 調(diào)用顯示去抖動</p><p>  LCALL KEYS</p><p>  JZ EXIT</p><p>  MOV B, 20H; 保存鍵值</p><p>  KEYSF:

80、 LCALL KEYS; 調(diào)鍵值處理子程序</p><p>  JZ KEYY; 鍵釋放,轉(zhuǎn)到恢復(fù)鍵值</p><p>  LCALL DISP; 調(diào)顯示子程序延時</p><p>  AJMP KEYSF;

81、 等到鍵釋放</p><p>  KEYY: MOV A, B; 鍵值送20H單元保存</p><p>  EXIT: RET; 返回</p><p>  KEYS: MOV P

82、1, #0FFH; 先向P1口寫1</p><p>  MOV A, P1; P1口值送累加器A</p><p>  CPL A; A值取反</p><p>  ANL A, #0FH; 保存

83、P1口低4位</p><p>  MOV 20H, A; A值送20H保存</p><p><b>  RET</b></p><p><b>  ;鍵功能子程序</b></p><p>  ANKEY: CLR EA;

84、 關(guān)中斷</p><p>  CHECK: JB TR0, YXZ; 判斷是否運行</p><p>  K0: CJNE A, #01H, K1</p><p>  AJMP RUN;

85、 轉(zhuǎn)運行</p><p>  K1: CJNE A, #02, K2</p><p>  AJMP KEY1; 轉(zhuǎn)時調(diào)整</p><p>  K2: CJNE A, #04H, K3</p&g

86、t;<p>  AJMP KEY2; 轉(zhuǎn)分調(diào)整</p><p>  K3: CJNE A, #08H, OUT</p><p>  AJMP KEY3; 轉(zhuǎn)秒調(diào)整</p><p>  YXZ:

87、 JB ACC.0, STOP</p><p>  AJMP OUT</p><p>  KEY1: MOV R0, #45H; 時調(diào)整</p><p>  LCALL ADD1</p><p>  CLR

88、 C</p><p>  CJNE A, #24H, OUTT</p><p>  ACALL CLR0</p><p>  AJMP OUTT</p><p>  KEY2: MOV R0, #43H;

89、分調(diào)整</p><p>  LCALL ADD1</p><p>  CLR C</p><p>  CJNE A, #60H, OUTT</p><p>  ACALL CLR0</p><p>  AJMP

90、 OUTT</p><p>  KEY3: MOV R0, #41H; 秒調(diào)整</p><p>  ACALL ADD1</p><p>  CLR C</p><p>  CJNE A, #60H,

91、OUTT</p><p>  ACALL CLR0</p><p><b>  ;傳送顯示數(shù)據(jù)程序</b></p><p>  OUTT: MOV 30H, 40H; 秒顯示單元41H-42H</p><p>  MOV 31H,

92、41H </p><p>  MOV 32H, #11H; “-”</p><p>  MOV 33H, 42H; 分顯示單元43H-44H</p><p>  MOV 34H, 43H</p><p>  MOV 35H,

93、#11; “-”</p><p>  MOV 36H, 44H; 時顯示單元43H-45H</p><p>  MOV 37H, 45H</p><p><b>  RET</b></p><p>  STOP: CLR

94、 TR0; 關(guān)電子鐘跳出</p><p><b>  RET</b></p><p>  RUN: LCALL TIME; 運行電子鐘</p><p>  OUT: SETB EA;

95、無鍵按下或完成功能跳出</p><p><b>  RET</b></p><p><b>  ;運行電子鐘</b></p><p>  TIME: SETB EA</p><p>  MOV TL0, #0B0H</p>

96、<p>  MOV TH0, #3CH; 3CB0H</p><p>  MOV R4, #20; 50ms,20次循環(huán)</p><p>  SETB TR0; 啟動定時器0</p><p><b>  RET

97、</b></p><p><b>  ;定時中斷</b></p><p>  INTT0: PUSH ACC</p><p>  PUSH PSW</p><p>  CLR ET0</p><p>  CLR

98、TR0</p><p>  MOV TL0, #0B0H; 重新設(shè)置定時初值</p><p>  MOV TH0, #3CH</p><p>  SETB TR0; 啟動定時器0</p><p>  DJNZ R4,

99、 OUTT0; 1秒到</p><p>  ADDSS: MOV R4, #14H; 20次計數(shù)</p><p>  MOV R0, #41H; 秒十位</p><p>  ACALL ADD1; 加

100、1程序</p><p>  CLR C</p><p>  CJNE A, #60H, ADDMM; 1分到</p><p>  ADDMM: JC OUTT0</p><p>  ACALL CLR0</p><p>

101、  MOV R0, #43H</p><p>  ACALL ADD1; 加1程序</p><p>  CLR C</p><p>  CJNE A, #60H, ADDHH; 1小時到</p><p>  ADDHH: JC O

102、UTT0</p><p>  ACALL CLR0</p><p>  MOV R0, #45H</p><p>  ACALL ADD1; 加1程序</p><p>  CLR C</p><p>  CJNE A,

103、 #24H, HOUR; 1天到</p><p>  HOUR: JC OUTT0</p><p>  ACALL CLR0</p><p>  OUTT0: MOV 30H, 40H; 秒顯示單元41H-42H</p><p>  MOV

104、 31H, 41H</p><p>  MOV 32H, #11; ”-”</p><p>  MOV 33H, 42H; 分顯示單元43H-44H</p><p>  MOV 34H, 43H</p><p>  MOV

105、 35H, #11; ”-”</p><p>  MOV 36H, 44H; 時顯示單元44H-45H</p><p>  MOV 37H, 45H</p><p>  POP PSW</p><p>  POP AC

106、C</p><p>  SETB ET0</p><p><b>  RETI</b></p><p><b>  ;時間清零子程序</b></p><p>  CLR0: CLR A</p><p>  MOV @R0,

107、 A</p><p>  DEC R0</p><p>  MOV @R0, A</p><p><b>  RET</b></p><p><b>  ;加一子程序</b></p><p>  ADD1: MOV

108、 A, @R0; 取十位</p><p>  DEC R0</p><p>  SWAP A</p><p>  ORL A, @R0; 組合十位與個位</p><p>  ADD A, #

109、01H; 加1</p><p>  DA A; 十進(jìn)制調(diào)整</p><p>  MOV R3, A; 暫存</p><p>  ANL A, #0FH; 屏蔽十位</p>&l

110、t;p>  MOV @R0, A; 放入個位單元</p><p>  MOV A, R3; 取值</p><p>  INC R0</p><p>  SWAP A</p><p>  ANL

111、 A, #0FH; 屏蔽個位</p><p>  MOV @R0, A; 放入十位單元</p><p>  MOV A, R3; 數(shù)值放入A中等待判斷</p><p><b>  RET</b></p>

112、<p>  ;顯示子程序 30H </p><p>  DISP: MOV R1, #30H; 顯示緩沖存儲單元首地址</p><p>  MOV R2, #80H; 從右至左顯示</p><p>  DISP1: MOV P2,

113、R2; 送位控</p><p>  MOV A, @R1</p><p>  MOV DPTR, #TAB</p><p>  MOVC A, @A+DPTR</p><p>  MOV P0, A; 送

114、段控</p><p>  ACALL DL; 延時</p><p>  MOV A, R2</p><p>  JB ACC.0, DISP2</p><p>  RR A</p><p&g

115、t;  INC R1</p><p>  MOV R2, A</p><p>  AJMP DISP1</p><p>  DISP2: RET</p><p>  TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,

116、90H,0FFH,0BFH,0CH</p><p>  DL: MOV R6, #14H; 顯示延時子程序</p><p>  DL1: MOV R7, #19H</p><p>  DL2: DJNZ R7,

溫馨提示

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

評論

0/150

提交評論