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

下載本文檔

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

文檔簡介

1、<p>  《單片機技術(shù)》課程設(shè)計說明書</p><p><b>  數(shù)字電子鐘</b></p><p>  院 、 部: </p><p>  學(xué)生姓名: </p><p>  指導(dǎo)教師: 職稱 <

2、/p><p>  專 業(yè): </p><p>  班 級: </p><p>  完成時間: </p><p><b>  摘 要</b></p><p>  20世紀(jì)末,電

3、子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 現(xiàn)代生活的人們越來越重視起了時間觀念,可以說是時間和金錢劃上了等號。對于那些對時間把握非常嚴(yán)格和準(zhǔn)確的人或事來說,時間的不準(zhǔn)確會帶來非常大的麻煩,所以以數(shù)碼管為顯示器的時鐘比指針式的時鐘表現(xiàn)出了很大的優(yōu)勢。數(shù)碼管顯示的時間簡單明了而且讀數(shù)快、時間

4、準(zhǔn)確顯示到秒。而機械式的依賴于晶體震蕩器,可能會導(dǎo)致誤差。 數(shù)字鐘是采用數(shù)字電路實現(xiàn)對“時”、“分”、“秒”數(shù)字顯示的計時裝置。數(shù)字鐘的精度、穩(wěn)定度遠遠超過老式機械鐘。在這次設(shè)計中,我們采用LED數(shù)碼管顯示時、分、秒,以24小時計時方式,根據(jù)數(shù)碼管動態(tài)顯示原理來進行顯示,用12MHz的晶振產(chǎn)生振蕩脈沖,定時器計數(shù)。在此次設(shè)計中,電路具有顯示時間的其本功能,還可以實現(xiàn)對時間的調(diào)整。數(shù)字鐘是其小巧,價格低廉,走時精度高,使用方便,功能多,便

5、于集成化而受廣大消費的喜愛,因此得到了廣泛的使用。 </p><p>  關(guān)鍵字:數(shù)字電子鐘;單片機</p><p><b>  ABSTRACT</b></p><p>  At the end of the 20th century, electronic technology has experienced rapid growth, t

6、he modern electronic products, almost permeated the various sectors of society, and promoted the development of social productive forces and the social informatization level, but also improve the modern electronic produc

7、ts to further improve the performance, product update rhythm also more and more quickly. Modern life of people pay more and more attention to the concept of time, money and time on the hospital. </p><p>  Ke

8、y words: digital electric clock ; MCU </p><p><b>  目 錄</b></p><p><b>  1 引言1</b></p><p>  1.1 課題研究的任務(wù)1</p><p>  1.2 功能要求說明1</p>&l

9、t;p>  1.3 總體方案的確定1</p><p>  2 硬件系統(tǒng)的設(shè)計3</p><p>  2.1 單片機最小系統(tǒng)3</p><p>  2.2 鍵盤輸入模塊3</p><p>  2.3 LED顯示器模塊4</p><p>  3 軟件系統(tǒng)設(shè)計5</p><p

10、>  3.1 使用單片機資源的情況5</p><p>  3.2 各功能模塊及流程框圖6</p><p>  3.3 軟件調(diào)試10</p><p>  4 系統(tǒng)設(shè)計結(jié)果分析及結(jié)論11</p><p>  4.1 系統(tǒng)使用說明11</p><p>  4.2 系統(tǒng)實物調(diào)試結(jié)果11</p

11、><p>  4.3 系統(tǒng)設(shè)計誤差分析12</p><p>  4.4 設(shè)計體會12</p><p><b>  結(jié)束語13</b></p><p><b>  致 謝14</b></p><p><b>  參考文獻15</b></p

12、><p><b>  附 錄16</b></p><p>  附錄A:數(shù)字電子鐘原理圖16</p><p>  附錄B:數(shù)字電子鐘的PCB圖17</p><p>  附錄C:元器件清單19</p><p>  附錄D:程序清單20</p><p><b>

13、  1 引言</b></p><p>  1.1 課題研究的任務(wù)</p><p>  通過理論設(shè)計和實物制作解決相應(yīng)的實際問題,鞏固和運用在《單片機技術(shù)》中所學(xué)的理論知識和實驗技能,設(shè)計一個具有特定功能的數(shù)字電子鐘。從而掌握單片機應(yīng)用系統(tǒng)的一般設(shè)計方法,提高設(shè)計能力和實踐動手能力,為以后從事電子電路設(shè)計、研發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。</p><p>

14、  1.2 功能要求說明</p><p>  該數(shù)字電子鐘上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”, 進入時鐘準(zhǔn)備狀態(tài);第一次按電子鐘啟動/調(diào)整鍵,電子鐘從0時0分0秒開始運行,進入時鐘運行狀態(tài);再次按電子鐘啟動/調(diào)整鍵,則電子鐘進入時鐘調(diào)整狀態(tài),此時可利用各調(diào)整鍵調(diào)整時間,調(diào)整結(jié)束后可按啟動/調(diào)整鍵再次進入時鐘運行狀態(tài)。</p><p>  1.3 總體方案的確定</p&g

15、t;<p>  本課程設(shè)計是利用AT89S52單片機內(nèi)部的定時/計數(shù)器、中斷系統(tǒng)、以及獨立式鍵盤和LED顯示器等部件,設(shè)計的一個數(shù)字電子時鐘。系統(tǒng)的總體結(jié)構(gòu)框圖如圖1所示。設(shè)計的電子時鐘通過數(shù)碼管顯示,并能通過按鍵實現(xiàn)設(shè)置時間和暫停、啟動控制等,用定時/計數(shù)器T0,工作于定時模式,采用方式1,對12MHZ的系統(tǒng)時鐘進行定時計數(shù),初值設(shè)為10000,形成定時時間為10ms,計數(shù)達到100次即為1s。計時周期為24小時,顯示滿

16、刻度為23時59分59秒,格式為“00-00-00”,另外還有校時功能。因此,,電子鐘電路主要由時鐘顯示電路,還有校時電路組成。時鐘顯示電路將“時”、“分”、“秒”及提示符“P.”通過八位LED顯示器顯示出來。校時電路時用來對“時”、“分”、“秒”顯示數(shù)字進行校對調(diào)整,按一下HUO(S3)鍵,時單位就加1 ,按一下MIN(S4)鍵,分單位就加1,按一下SEC(S5)鍵,秒單位就加1。</p><p>  圖 1

17、系統(tǒng)的總體結(jié)構(gòu)框圖</p><p>  2 硬件系統(tǒng)的設(shè)計</p><p>  2.1 單片機最小系統(tǒng)</p><p>  此次設(shè)計中電路的控制部分選擇以單片機AT89S52為核心的最小系統(tǒng)板,該系統(tǒng)由單片機、時鐘電路、復(fù)位電路等組成。這三部分是單片機正常工作的前提。AT89S52采用電源供電。時鐘電路采用外部時鐘源,由外部提供晶振。復(fù)位電路的基本功能是為系統(tǒng)上

18、電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。</p><p>  單片機工作的時間基準(zhǔn)是由時鐘電路提供的。外接晶振和電容組成單片機內(nèi)部的振蕩器。在單片機的XTAL1和XTAL2兩個引腳間,接一個晶振及兩只電容就構(gòu)成了單片機的時鐘電路。晶振選取12MHZ,電容取33Pf。</p><p>  單片機的復(fù)位通常分為自動復(fù)位,手動復(fù)位等幾種。復(fù)位是單片機的初始化操作,只要給引腳RESET

19、加上2個機器周期以上的高電平信號,就可使單片機AT89S52復(fù)位。復(fù)位的主要功能是初始化為0000H,使單片機從0000H單元開始執(zhí)行程序,除了進入系統(tǒng)的正常初始化之外,當(dāng)由于程序運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài),為擺脫死鎖狀態(tài),也需按復(fù)位鍵重新啟動。在本設(shè)計中采用手動復(fù)位。 </p><p>  對于單片機下載口電路,采用 P1.5、P1.6、P1.7和RESET與VCC、GND連接到程序下載接口,構(gòu)成其下

20、載口電路,供程序下載使用。</p><p>  2.2 鍵盤輸入模塊</p><p>  鍵盤是單片機應(yīng)用系統(tǒng)中最常用的輸入設(shè)備,在單片機應(yīng)用系統(tǒng)中,操作人員一般都是通過鍵盤向單片機系統(tǒng)輸入指令、地址和數(shù)據(jù),實現(xiàn)簡單的人機通信。鍵盤實際上是一組按鍵開關(guān)的集合,平時按鍵開關(guān)總是處于斷開狀態(tài),當(dāng)按下鍵時它才閉合。鍵盤分獨立式鍵盤和行列式鍵盤。</p><p>  本次

21、設(shè)計所用的是獨立式鍵盤。獨立式8個按鍵S2至S9分別依次接在P1.0至P1.7口線。通過編程,將其中4個鍵具有特定功能。如:S2鍵為啟動/調(diào)整鍵;S3鍵為對小時單元加1操作;S4鍵為對分鐘單元加1操作;S5鍵為對秒鐘單元加1操作。</p><p>  2.3 LED顯示器模塊</p><p>  在單片機應(yīng)用系統(tǒng)中,經(jīng)常用到LED數(shù)碼管作為顯示輸出設(shè)備,LED數(shù)碼管顯示器雖然顯示信息簡單

22、,但它具有顯示清晰、亮度高、使用電壓低、壽命長、與單片機接口方便等特點,基本上能夠滿足單片機應(yīng)用系統(tǒng)的需要,所以在單片機應(yīng)用系統(tǒng)中經(jīng)常用到。LED數(shù)碼管顯示器是由發(fā)光二極管按一定的結(jié)構(gòu)組合起來的顯示器件。在單片機應(yīng)用系統(tǒng)中通常使用的是8段式LED數(shù)碼管顯示器,它有共陰極和共陽極兩種。</p><p>  本次設(shè)計采用了八位8段共陽極數(shù)碼管,</p><p>  P0.7---P0.0段控線

23、,接LED的顯示段dp,g,f,e,d,c,b,a。</p><p>  P2.0---P2.7位控線,從左至右 (LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)</p><p><b>  3 軟件系統(tǒng)設(shè)計</b></p><p>  3.1 使用單片機資源的情況</p><p>

24、<b>  堆棧棧底80H;</b></p><p>  LED數(shù)碼管顯示器設(shè)定:</p><p>  (LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)</p><p>  顯示緩沖區(qū)設(shè)定從右至左依次為78H,79H,7AH,7BH,7CH,7DH,7EH,7FH </p><p>  

25、數(shù)據(jù)存儲器變量及常量單元定義:</p><p>  30H字節(jié)單元:十進制數(shù)秒,壓縮BCD碼</p><p>  31H字節(jié)單元:十進制數(shù)分,壓縮BCD碼</p><p>  32H字節(jié)單元:十進制數(shù)時,壓縮BCD碼</p><p>  33H字節(jié)單元:十進制數(shù)定時次數(shù),壓縮BCD碼</p><p>  78H字節(jié)單元

26、:十進制數(shù)秒個位,非壓縮BCD碼</p><p>  79H字節(jié)單元:十進制數(shù)秒十位,非壓縮BCD碼</p><p>  7BH字節(jié)單元:十進制數(shù)分個位,非壓縮BCD碼</p><p>  7CH字節(jié)單元:十進制數(shù)分十位,非壓縮BCD碼</p><p>  7EH字節(jié)單元:十進制數(shù)時個位,非壓縮BCD碼</p><p>

27、;  7FH字節(jié)單元:十進制數(shù)時十位,非壓縮BCD碼</p><p>  2FH.0位單元:布爾量,S2鍵標(biāo)志位</p><p>  2FH.1位單元:布爾量,S3鍵標(biāo)志位</p><p>  2FH.2位單元:布爾量,S4鍵標(biāo)志位</p><p>  2FH.3位單元:布爾量,S5鍵標(biāo)志位</p><p>  2FH

28、.4位單元:布爾量,S6鍵標(biāo)志位</p><p>  2FH.5位單元:布爾量,S7鍵標(biāo)志位</p><p>  2FH.6位單元:布爾量,S8鍵標(biāo)志位</p><p>  2FH.7位單元:布爾量,S9鍵標(biāo)志位</p><p>  20H.0位單元:布爾量,S2鍵鍵值,S2鍵按下為1,S2鍵未按下為0</p><p>

29、;  20H.1位單元:布爾量,S3鍵鍵值,S3鍵按下為1,S3鍵未按下為0</p><p>  20H.2位單元:布爾量,S4鍵鍵值,S4鍵按下為1,S4鍵未按下為0</p><p>  20H.3位單元:布爾量,S5鍵鍵值,S5鍵按下為1,S5鍵未按下為0</p><p>  20H.4位單元:布爾量,S6鍵鍵值,S6鍵按下為1,S6鍵未按下為0</p&g

30、t;<p>  20H.5位單元:布爾量,S7鍵鍵值,S7鍵按下為1,S7鍵未按下為0</p><p>  20H.6位單元:布爾量,S8鍵鍵值,S8鍵按下為1,S8鍵未按下為0</p><p>  20H.7位單元:布爾量,S9鍵鍵值,S9鍵按下為1,S9鍵未按下為0</p><p>  20H字節(jié)單元:十六進制,S2鍵鍵值01H,S3鍵鍵值02H,

31、S4鍵鍵值04H,S5鍵鍵值08H,S6鍵鍵值10H,S7鍵鍵值20H, S8鍵鍵值40H,S9鍵鍵值80H</p><p>  定時器/計數(shù)器資源:</p><p>  T/C0:工作模式1;功能:定時時間;方式:中斷 提供50ms定時時間</p><p>  中斷系統(tǒng)資源:T/C0 計數(shù)滿100次即得到1秒計時單位</p><p>

32、  3.2 各功能模塊及流程框圖</p><p><b>  顯示提示符“P.”</b></p><p>  通過編程可將提示符“P.”穩(wěn)定顯示在最左端數(shù)碼管(LED7)上,其它數(shù)碼管(LED6~LED0)均滅。流程圖如圖2所示。</p><p>  圖 2 顯示“P.”主程序流程框圖</p><p>  電子鐘自動運

33、行與調(diào)整運行:</p><p>  按一次啟動/調(diào)整按鍵(S2)電子鐘啟動運行,進入自動時鐘運行狀態(tài),流程圖如圖3所示。</p><p>  圖 3 電子鐘自動時鐘運行主程序流程框圖</p><p>  再按一次啟動/調(diào)整按鍵(S2)進入調(diào)整狀態(tài)。流程圖如圖4所示。 </p><

34、p>  圖 4 電子鐘調(diào)整運行主程序流程框圖</p><p>  電子鐘中斷服務(wù)程序:</p><p>  當(dāng)時間到達1秒時,對時、分、秒進行設(shè)置。流程圖如圖5所示。</p><p>  圖 5 電子鐘中斷服務(wù)程序</p><p><b>  電子鐘加一子程序:</b></p><p>  

35、在電子鐘進入調(diào)整狀態(tài)時,通過相應(yīng)的按鍵對時、分、秒加一操作。流程圖如圖6所示</p><p>  圖 6 電子鐘加一子程序</p><p>  電子鐘鍵掃描子程序與顯示子程序:</p><p>  通過掃描子程序與顯示子程序,可對鍵盤進行監(jiān)控,當(dāng)按下按鍵時進入相應(yīng)的功能狀態(tài)與將時間顯示在數(shù)碼管中。流程圖如圖7、圖8.</p><p>  圖

36、7 電子鐘鍵掃描子程序 圖 8 電子鐘顯示子程序</p><p><b>  3.3 軟件調(diào)試</b></p><p>  基本上排除了應(yīng)用系統(tǒng)的硬件故障后,就可以進入軟件的綜合調(diào)試階段,這個階段的主要任務(wù)是排除軟件錯誤,也解決硬件遺留的問題。本系統(tǒng)程序是用匯編語言編寫的,軟件調(diào)試可以一個模塊一個模塊地進行。在進行軟件調(diào)試時要充

37、分利用調(diào)試軟件中單步、斷點、設(shè)置觀察項等調(diào)試手段,主要針對程序跳轉(zhuǎn)錯誤、程序錯誤、動態(tài)錯誤和輸入輸出錯誤等方面著重調(diào)試。</p><p>  在軟件調(diào)試過程中時,需要注意以下幾個問題:</p><p>  、電子鐘自動時鐘運行時,單片機是否響應(yīng)中斷、秒鐘是否自動加一、到達60s時,分鐘到達加一等等。</p><p>  、在電子鐘自動時鐘運行過程中,未按下啟動/調(diào)整

38、鍵(S2)時,按其它按鍵(S3~S5),時間是否會發(fā)生變化。若發(fā)生變化,則程序在設(shè)計過程中未檢測S2鍵狀態(tài)。</p><p>  、在進行調(diào)時、調(diào)分和調(diào)秒的功能時,按鍵是否靈敏,能否退出調(diào)整狀態(tài),若出現(xiàn)問題可以查看鍵值是否被保護,經(jīng)邏輯判斷發(fā)現(xiàn)錯誤,再經(jīng)修整調(diào)試,實現(xiàn)調(diào)時、調(diào)分和調(diào)秒的功能。</p><p>  4 系統(tǒng)設(shè)計結(jié)果分析及結(jié)論</p><p>  4.

39、1 系統(tǒng)使用說明</p><p>  基于單片機的數(shù)字電子鐘的使用規(guī)則如下:上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”,顯示在最左端數(shù)碼管(LED7)上,進入時鐘準(zhǔn)備狀態(tài);第一次按電子鐘啟動/調(diào)整鍵(S2鍵),電子鐘從0時0分0秒開始運行,進入時鐘運行狀態(tài);再次按電子鐘啟動/調(diào)整鍵(S2鍵),則電子鐘進入時鐘調(diào)整狀態(tài),此時可利用各調(diào)整鍵調(diào)整時間,S3鍵調(diào)時鐘,按一次加一;S4鍵調(diào)分鐘,按一次加一;S5鍵調(diào)秒鐘

40、,按一下加一;調(diào)整結(jié)束后可按啟動/調(diào)整鍵(S2鍵)再次進入時鐘運行狀態(tài)。</p><p>  4.2 系統(tǒng)實物調(diào)試結(jié)果</p><p>  基本排除了應(yīng)用系統(tǒng)的硬件故障后,進入軟件的綜合調(diào)試階段。通過不斷地修改程序與調(diào)試,基于單片機的數(shù)字電子鐘實物顯示的效果如圖9,圖10所示。</p><p>  圖 9數(shù)字電子鐘實物顯示的效果1 圖 10 數(shù)字電

41、子鐘實物顯示的效果2</p><p>  根據(jù)以上的測試結(jié)果分析可知:時間可以清晰穩(wěn)定地顯示在LED的顯示屏上,此電子鐘還具有調(diào)時、調(diào)分和調(diào)秒的功能。即我們的作品已基本完成了老師的設(shè)計要求。</p><p>  4.3 系統(tǒng)設(shè)計誤差分析</p><p>  基于單片機的數(shù)字電子鐘設(shè)計完成,進行實物調(diào)試,其電子鐘計時與實際的鐘表計時存在較小誤差,分析可能造成的誤差原

42、因如下:</p><p> ?。?)、硬件設(shè)計電路不夠完善;</p><p>  (2)、元器件的參數(shù)精確度不高,特別是單片機最小系統(tǒng)的時鐘電路中的晶振的參數(shù)可能存在誤差;</p><p>  (3)、在程序設(shè)計時,程序的結(jié)構(gòu)不夠優(yōu)化;</p><p> ?。?)、在程序設(shè)計時,電子鐘計時采用定時器以方式1計時,因要重新賦初值時,占用時間。&

43、lt;/p><p><b>  4.4 設(shè)計體會</b></p><p>  對于這次課程設(shè)計,我積極參與,獲得了許多實踐經(jīng)驗,還總結(jié)了一些解決問題的辦法。</p><p>  在這次課程設(shè)計中,我遇到了硬件及軟件的多方面問題。如硬件電路一些線路已斷開,但是無法清楚地看見,這時需要借助萬用表進行測試;一些地方還需要進行“飛線”處理;某些元器件應(yīng)未

44、焊接好,導(dǎo)致無法正常運行;編程過程中出現(xiàn)了多處錯誤久久沒有被找出,使得課題進度被延后等。但經(jīng)過這些困難與問題,我們收獲的不僅是一次單片機課程設(shè)計制作經(jīng)歷,還有面對問題敢于迎難而上的處事經(jīng)驗。</p><p>  當(dāng)然我的作品有很多不足的地方,比如結(jié)構(gòu)比較簡陋,外形不精美,顯示界面比較單調(diào),功能并不是很強大等。希望將來的同學(xué)能增加更多的功能到這個項目中,并講究工藝水平,使這個系統(tǒng)變得更酷、更富有藝術(shù)感。</p

45、><p><b>  4.5 教學(xué)建議</b></p><p>  記得這個學(xué)期上單片機第一堂課時,課堂上王老師的那句話“這個學(xué)期我會讓大家過得充實”讓我記憶特別深刻。確實,這句話得到了驗證,這個學(xué)期我們過得很充實。雖然有時我們感覺很累,但就是在老師這種嚴(yán)格的要求下我們學(xué)到很多東西。</p><p>  在此次課程設(shè)計,也正是由于老師淵博的知識、

46、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和敏銳的分析能力,使我們的課程設(shè)計順利完成。以下是我對老師的幾點教學(xué)建議:</p><p> ?。?)、希望老師進一步加強與學(xué)生的交流;</p><p> ?。?)、希望老師在日后的教學(xué)中,多加強對我們動手能力的鍛煉。</p><p><b>  結(jié)束語</b></p><p>  通過這次課程設(shè)計,加強了

47、我們動手、思考和解決問題的能力。同時我覺得做課程設(shè)計也是對課本知識的鞏固和加強,由于課本上的知識太多,平時課間的學(xué)習(xí)并不能很好的理解和運用各個元件的功能,而且考試內(nèi)容有限,所以在這次課程設(shè)計過程中,我們了解了很多元件的功能,并且對其在電路中的使用有了更多的認(rèn)識。</p><p>  通過這段時間的設(shè)計,終于完成了基于單片機的數(shù)字電子鐘的設(shè)計。雖然在做的時候遇到一些困難。但還是挺高興的,畢竟這次設(shè)計所要求的東西都做

48、了出來。 在本次設(shè)計的過程中,我們發(fā)現(xiàn)了很多的問題,雖然以前還做過這樣的設(shè)計,但這次設(shè)計真的讓我們長進了很多,單片機的設(shè)計重點就在于軟件程序的設(shè)計,需要有很巧妙的編程方法。在編程時,由于粗心大意,有些語句看似沒問題,可就是不出效果,經(jīng)仔細(xì)揣摩修改后,程序才正常運行。學(xué)習(xí)單片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高。 從這次的設(shè)計中,我們真正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到

49、實際當(dāng)中;理論指導(dǎo)實踐,在實踐中對理論知識加以理解。還要有獨立思考能力和不恥下問的精神,個人能力固然重要,集體的力量更是偉大的。 </p><p>  總之對我們而言,知識上的收獲固然重要,但精神上的豐收更加可喜。挫折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計的過程必將成為我人生旅途上一個非常美好的回憶!</p><p><b>  致 謝</b></p>

50、<p>  首先,我們要感謝我們的指導(dǎo)老師**對我們的指導(dǎo)和關(guān)懷。他淵博的知識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和敏銳的分析能力,使我們受益匪淺。</p><p>  同時,還要感謝電氣與信息工程學(xué)院的實驗組,為我們提供場地,設(shè)計制作作品,并在調(diào)試過程中提供了實驗設(shè)備,讓我們此次課程設(shè)計能夠順利完成。正是由于他們給我們的幫助,讓我們很快的進入了實際的工作。</p><p>  最后,我們要感謝

51、我們的家人﹑朋友和同學(xué),他(她)們對我們的支持和付出是我們此次課程設(shè)計得以順利進行的保障。</p><p><b>  謝謝大家!</b></p><p><b>  參考文獻</b></p><p>  [1] 李廣第,朱月秀,冷祖祁.單片機基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2007.6</p>&

52、lt;p>  LiGuang first, ZhuYueXiu, LengZuQi. Single chip microcomputer based [M]. Beijing: Beijing university of aeronautics &astronautics press, 2007.6</p><p>  [2] 康華光.電子技術(shù)基礎(chǔ) 模擬部分(第五版) [M].北京:高等教育出版社,

53、2006</p><p>  kang uh guano. Electronic technology foundation simulation part (fifth edition) [M]. Beijing: higher education press, 2006</p><p>  [3] 閻石,數(shù)字電子技術(shù)基礎(chǔ)(第五版) [M].北京:高等教育出版社,2006</p&g

54、t;<p>  YanShi, digital electronic technology foundation (fifth edition) [M]. Beijing: higher education press, 2006</p><p>  [4] 邱光源.電路(第五版) [M].北京:高等教育出版社,2006</p><p>  QiuGuangYuan. Cir

55、cuit (fifth edition) [M]. Beijing: higher education press, 2006</p><p><b>  附 錄</b></p><p>  附錄A:數(shù)字電子鐘原理圖</p><p>  附錄B:數(shù)字電子鐘的PCB圖</p><p><b>  底層PCB圖&

56、lt;/b></p><p><b>  頂層PCB圖</b></p><p><b>  絲印層PCB圖</b></p><p><b>  附錄C:元器件清單</b></p><p><b>  附錄D:程序清單</b></p>&

57、lt;p>  ;*******************************************************************</p><p>  ;項目名稱:數(shù)字式電子鐘的設(shè)計</p><p><b>  ;設(shè)計者:</b></p><p><b>  ;設(shè)計日期:</b></p>

58、;<p>  ;******************************************************************</p><p><b>  ;堆棧棧底80H;</b></p><p>  ;****************************************************************

59、**</p><p>  ;LED數(shù)碼管顯示器設(shè)定;</p><p>  ;P0.7---P0.0段控線,接LED的顯示段dp,g,f,e,d,c,b,a</p><p>  ;P2.0---P2.7位控線,從左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)</p><p>  ;顯示緩沖區(qū)設(shè)定從右至左

60、依次為78H,79H,7AH,7BH,7CH,7DH,7EH,7FH </p><p>  ;********************************************************************</p><p>  ;數(shù)據(jù)存儲器變量及常量單元定義;</p><p>  ;30H字節(jié)單元:十進制數(shù)秒,壓縮BCD碼</p>

61、<p>  ;31H字節(jié)單元:十進制數(shù)分,壓縮BCD碼</p><p>  ;32H字節(jié)單元:十進制數(shù)時,壓縮BCD碼</p><p>  ;33H字節(jié)單元:十進制數(shù)定時次數(shù),壓縮BCD碼</p><p>  ;78H字節(jié)單元:十進制數(shù)秒個位,非壓縮BCD碼</p><p>  ;79H字節(jié)單元:十進制數(shù)秒十位,非壓縮BCD碼&

62、lt;/p><p>  ;7BH字節(jié)單元:十進制數(shù)分個位,非壓縮BCD碼</p><p>  ;7CH字節(jié)單元:十進制數(shù)分十位,非壓縮BCD碼</p><p>  ;7EH字節(jié)單元:十進制數(shù)時個位,非壓縮BCD碼</p><p>  ;7FH字節(jié)單元:十進制數(shù)時十位,非壓縮BCD碼</p><p>  ;2FH.0位單元:

63、布爾量,S2鍵標(biāo)志位</p><p>  ;2FH.1位單元:布爾量,S3鍵標(biāo)志位</p><p>  ;2FH.2位單元:布爾量,S4鍵標(biāo)志位</p><p>  ;2FH.3位單元:布爾量,S5鍵標(biāo)志位</p><p>  ;2FH.4位單元:布爾量,S6鍵標(biāo)志位</p><p>  ;2FH.5位單元:布爾量,S

64、7鍵標(biāo)志位</p><p>  ;2FH.6位單元:布爾量,S8鍵標(biāo)志位</p><p>  ;2FH.7位單元:布爾量,S9鍵標(biāo)志位</p><p>  ;20H.0位單元:布爾量,S2鍵鍵值,S2鍵按下為1,S2鍵未按下為0</p><p>  ;20H.1位單元:布爾量,S3鍵鍵值,S3鍵按下為1,S3鍵未按下為0</p>

65、<p>  ;20H.2位單元:布爾量,S4鍵鍵值,S4鍵按下為1,S4鍵未按下為0</p><p>  ;20H.3位單元:布爾量,S5鍵鍵值,S5鍵按下為1,S5鍵未按下為0</p><p>  ;20H.4位單元:布爾量,S6鍵鍵值,S6鍵按下為1,S6鍵未按下為0</p><p>  ;20H.5位單元:布爾量,S7鍵鍵值,S7鍵按下為1,S7鍵

66、未按下為0</p><p>  ;20H.6位單元:布爾量,S8鍵鍵值,S8鍵按下為1,S8鍵未按下為0</p><p>  ;20H.7位單元:布爾量,S9鍵鍵值,S9鍵按下為1,S9鍵未按下為0</p><p>  ;20H字節(jié)單元:十六進制,S2鍵鍵值01H,S3鍵鍵值02H,S4鍵鍵值04H,S5鍵鍵值08H,S6鍵鍵值10H,S7鍵鍵值20H, S8鍵鍵值

67、40H,S9鍵鍵值80H</p><p>  ;********************************************************************</p><p><b>  ;鍵功能程序;</b></p><p>  ;KEYA (S2鍵鍵功能程序)</p><p>  ;KEY

68、B (S3鍵鍵功能程序)</p><p>  ;KEYC (S4鍵鍵功能程序)</p><p>  ;KEYD (S5鍵鍵功能程序)</p><p>  ;********************************************************************</p><p><b>  ;常數(shù)

69、表格;</b></p><p>  ;DISBH(系統(tǒng)提示符P.字型代碼序號表)</p><p>  ;DISBI(00-00-00字符的代碼序號)</p><p>  ;TAB(共陽數(shù)碼管字型代碼表)</p><p>  ;*****************************************************

70、*************** </p><p><b>  ;子程序;</b></p><p>  ;DL(2毫秒延時子程序)</p><p>  ;DISP(數(shù)碼管顯示子程序)</p><p>  ;KEY(鍵掃描子程序);</p><p>  ;KEYCHULI(P1口數(shù)據(jù)處理子程序)<

71、;/p><p><b>  ;加1子程序</b></p><p>  ;********************************************************************</p><p><b>  ;偽指令定義 </b></p><p>  SEC EQ

72、U 30H</p><p>  MINEQU 31H</p><p>  HOUREQU 32H</p><p>  CISHUEQU 33H</p><p>  SECGEEQU 78H</p><p> 

73、 SECSHIEQU79H</p><p>  MINGEEQU7BH</p><p>  MINSHIEQU7CH</p><p>  HOURGEEQU7EH</p><p>  HOURSHIEQU7FH</p><p>  S2BZBIT2FH.0</p><

74、p>  S3BZBIT2FH.1</p><p>  S4BZBIT2FH.2</p><p>  S5BZBIT2FH.3</p><p>  S6BZBIT2FH.4</p><p>  S7BZBIT2FH.5</p><p>  S8BZBIT2FH.6&l

75、t;/p><p>  S9BZBIT2FH.7</p><p>  ;********************************************************************</p><p>  ;系統(tǒng)起始程序區(qū) </p><p>  ORG 0000H</p><

76、;p>  START: LJMP MAIN</p><p><b>  ORG000BH</b></p><p><b>  LJMPTC0</b></p><p>  ;********************************************************************

77、</p><p><b>  ;系統(tǒng)監(jiān)控程序區(qū)</b></p><p><b>  ORG0030H</b></p><p>  MAIN:MOVSP, #80H</p><p>  MOVPSW,#00H</p><p>  MOVTMOD,#01H

78、</p><p>  MOVTH0,#0D8H</p><p>  MOVTL0,#0F0H</p><p><b>  SETBEA</b></p><p><b>  SETBET0</b></p><p>  MOV R0, #20H

79、 ;RAM區(qū)首地址</p><p>  MOV R7, #5FH ;RAM區(qū)單元個數(shù)</p><p>  ML: MOV @R0, #00H</p><p><b>  INC R0</b></p><p>  DJNZ R7, ML</p>

80、<p>  TSF: MOV DPTR, #DISBH ;系統(tǒng)初始化后提示符“P.”字符代碼表首地址</p><p>  MOV R5, #08H</p><p>  MOV R0, #78H</p><p>  DISPTSF:CLR A</p><p>  MOVC

81、 A, @A+DPTR</p><p>  MOV @R0, A</p><p>  INC R0</p><p>  INC DPTR</p><p>  DJNZ R5, DISPTSF</p><p>  D: LCALL DISP

82、 ;調(diào)顯示子程序顯示提示符“P.”</p><p>  LCALL KEY</p><p>  JB 20H.0,KEYA</p><p>  LJMP D</p><p>  ;***************************************************************

83、*****</p><p><b>  ;鍵功能程序區(qū)</b></p><p><b>  ;S2鍵功能程序</b></p><p>  KEYA:MOVSEC, #0 ;寄存器初始化,秒寄存器</p><p>  MOVMIN, #0 ;分寄存器</p>

84、<p>  MOVHOUR, #0 ;時寄存器</p><p>  MOV DPTR, #DISBI ;“00-00-00”字符代碼表首地址</p><p>  MOV R5, #08H</p><p>  MOV R0, #78H</p><p>  D

85、ISPTSG:CLR A</p><p>  MOVC A, @A+DPTR</p><p>  MOV @R0, A</p><p>  INC R0</p><p>  INC DPTR</p><p>  DJNZ R5, DISPT

86、SG</p><p>  KEYAS: SETB TR0 ;開定時器</p><p>  DI: LCALL DISP</p><p>  LCALL KEY</p><p>  JB 20H.0, CP </p><p>  LJMP DI</p

87、><p>  CP:CLRTR0 ;S2鍵按下,進入調(diào)整狀態(tài)</p><p>  DD:LCALLDISP</p><p><b>  LCALLKEY</b></p><p>  JB20H.0,KEYAS</p><p>  JB20H.1,KEYB</

88、p><p>  JB20H.2,KEYC</p><p>  JB20H.3,KEYD</p><p><b>  LJMPDD</b></p><p><b>  ;S3鍵功能程序</b></p><p>  KEYB:LCALLHOUR_ ;調(diào)時&

89、lt;/p><p>  LC:LCALLDISP</p><p><b>  LCALLKEY</b></p><p>  JB20H.0,KEYAS</p><p>  JB20H.1,KEYB</p><p>  JB20H.2,KEYC</p><p

90、>  JB20H.3,KEYD</p><p><b>  LJMPLC</b></p><p><b>  ;S4鍵功能程序</b></p><p>  KEYC:LCALLMIN_ ;調(diào)分</p><p>  DIIS:LCALLDISP</p>

91、<p><b>  LCALLKEY</b></p><p>  JB20H.0,KEYAS</p><p>  JB20H.1,KEYB</p><p>  JB20H.2,KEYC</p><p>  JB20H.3,KEYD</p><p><b&g

92、t;  LJMPDIIS</b></p><p><b>  ;S5鍵功能程序</b></p><p>  KEYD:LCALLSEC_ ;調(diào)秒</p><p>  DISS:LCALLDISP</p><p><b>  LCALLKEY</b></p>

93、;<p>  JB20H.0,KEYAS</p><p>  JB20H.1,KEYB</p><p>  JB20H.2,KEYC</p><p>  JB20H.3,KEYD</p><p><b>  LJMPDISS</b></p><p>  ;中

94、斷服務(wù)程序</p><p>  TC0:PUSH ACC</p><p>  PUSH B</p><p>  PUSH PSW</p><p>  SETB RS1</p><p><b>  CLRRS0</b></p><p&

95、gt;  MOVTH0,#0D8H</p><p>  MOVTL0,#0F0H</p><p>  INC 33H</p><p>  MOVA,CISHU</p><p>  CJNE A,#100,RE</p><p>  MOVCISHU,#0</p&g

96、t;<p>  INC SEC</p><p>  MOVA,SEC</p><p>  MOVB,#10</p><p><b>  DIVAB</b></p><p>  MOVSECSHI,A</p><p>  MOVSECGE,B&

97、lt;/p><p>  MOVA,SEC</p><p>  CJNE A,#60,RE</p><p>  INC MIN</p><p>  MOVSEC,#00H</p><p>  MOVSECGE,#0</p><p>  MOVSECSH

98、I,#0</p><p>  MOVA,MIN</p><p>  MOVB,#10</p><p><b>  DIVAB</b></p><p>  MOVMINSHI,A</p><p>  MOVMINGE,B</p><p>  M

99、OVA,MIN</p><p>  CJNE A,#60,RE</p><p>  INC HOUR</p><p>  MOVMIN, #00H</p><p>  MOVMINGE,#0</p><p>  MOVMINSHI,#0</p>&l

100、t;p>  MOVA, HOUR</p><p>  MOVB, #10</p><p><b>  DIVAB</b></p><p>  MOVHOURSHI, A</p><p>  MOVHOURGE,B</p><p>  MOVA,

101、 HOUR</p><p>  CJNE A, #24,RE</p><p>  MOVHOUR, #0</p><p>  MOVHOURGE, #0</p><p>  MOVHOURSHI, #0</p><p>  RE:POPPSW</p>&l

102、t;p><b>  POPB</b></p><p><b>  POPACC</b></p><p><b>  RETI</b></p><p>  ;常數(shù)表格區(qū)-------------------------------------------------------------

103、------------------</p><p>  ;系統(tǒng)初始化后提示符“P.”字符代碼表</p><p>  DISBH: DB 10H,10H,10H,10H,10H,10H,10H,11H </p><p>  DISBI: DB 00H,00H,12H,00H,00H,12H,00H,00H</p

104、><p>  ;顯示字符段選碼表(共陽極代碼)</p><p>  TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8</p><p>  DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0BFH ;9,A,B,C,D,E,F,滅,p.,-<

105、;/p><p>  ;********************************************************************</p><p><b>  ;子程序區(qū)</b></p><p><b>  ;延時1毫秒子程序</b></p><p>  DL: PUS

106、H PSW</p><p>  SETB RS1</p><p>  SETB RS0</p><p>  MOVR7, #02H</p><p>  DL1: MOVR6, #0FFH</p><p>  DL2:DJNZR6, DL2</p>&

107、lt;p>  DJNZR7, DL1</p><p>  POP PSW</p><p><b>  RET</b></p><p><b>  ;顯示子程序</b></p><p>  ;入口:77H,78H,79H,7AH,7BH,7CH,7DH,7EH,7FH,<

108、;/p><p>  DISP: PUSH DPH</p><p>  PUSH DPL</p><p>  PUSH ACC</p><p>  PUSH PSW</p><p>  CLR RS1 ;改變當(dāng)前寄存器組為組1</p>&

109、lt;p>  SETB RS0</p><p>  MOV R1, #78H ;顯示緩沖存儲單元首地址</p><p>  MOV R2, #0FEH ;從右至左顯示</p><p>  DISP1: MOVA, @R1</p><p>  

110、MOVDPTR, #TAB</p><p>  MOVCA, @A+DPTR</p><p>  MOVP0, A ;送段控</p><p>  MOVP2, R2 ;送位控</p><p>  LCALLDL ;

111、延時2毫秒</p><p>  MOVA, R2</p><p>  JNBACC.7, DISP2</p><p><b>  RLA</b></p><p><b>  INCR1</b></p><p>  MOVR2, A<

112、;/p><p>  LJMP DISP1</p><p>  DISP2: POPPSW ;恢復(fù)當(dāng)前寄存器組的組號</p><p><b>  POPACC</b></p><p><b>  POPDPL</b></p>&l

113、t;p><b>  POPDPH</b></p><p><b>  RET</b></p><p><b>  ;鍵掃描子程序</b></p><p>  KEY: LCALL KEYCHULI ;調(diào)P1口數(shù)據(jù)處理子程序</p><p>  JZ

114、 EXIT ;沒有鍵按下,轉(zhuǎn)返回</p><p>  LCALL DISP ;調(diào)顯示子程序去抖動</p><p>  LCALL DISP</p><p>  LCALL KEYCHULI;調(diào)P1口數(shù)據(jù)處理子程序</p><p>  JZ EXIT;沒有鍵

115、按下,轉(zhuǎn)返回</p><p>  MOV B, 20H;保存取反后的鍵值</p><p>  KEYSF:LCALL KEYCHULI;調(diào)P1口數(shù)據(jù)處理子程序</p><p>  JZ KEY1;鍵釋放,轉(zhuǎn)恢復(fù)鍵值</p><p>  LCALL DISP;調(diào)顯示子程序延時

116、</p><p>  LJMP KEYSF;等待釋放</p><p>  KEY1:MOV 20H,B ;鍵值送20H保存</p><p>  EXIT:RET;子程序返回</p><p>  ;P1口數(shù)據(jù)處理子程序</p><p>  KEYCHULI:P

117、USH PSW;保護現(xiàn)場</p><p>  CLRRS1;改變當(dāng)前寄存器組為組1</p><p>  SETB RS0</p><p>  MOVP1, #0FFH;先向P1口寫1</p><p>  MOVA, P1;讀P1口數(shù)據(jù)</p><

118、p>  CPLA;P1口數(shù)據(jù)取反</p><p>  MOV20H, A;保存取反后的鍵值</p><p>  CLRRS1;恢復(fù)當(dāng)前寄存器組為組0</p><p>  CLR RS0</p><p>  POPPSW;恢復(fù)現(xiàn)場</p><p>

119、;  RET ;子程序返回</p><p><b>  ;加1子程序</b></p><p>  SEC_:INC SEC</p><p>  MOVA, SEC</p><p>  MOVB, #10</p><p><b&g

120、t;  DIVAB</b></p><p>  MOVSECSHI,A</p><p>  MOVSECGE, B</p><p>  MOVA, SEC</p><p>  CJNE A, #60,EXI</p><p>  MOVSEC,

121、 #0</p><p>  MOVSECGE, #0</p><p>  MOVSECSHI, #0</p><p>  LJMP EXI</p><p>  MIN_:INC MIN</p><p>  MOVA, MIN</p><p>

122、  MOVB, #10</p><p><b>  DIVAB</b></p><p>  MOVMINSHI, A</p><p>  MOVMINGE, B</p><p>  MOVA, MIN</p><p>  CJNE A,

123、 #60,EXI</p><p>  MOVMIN, #0</p><p>  MOVMINGE, #0</p><p>  MOVMINSHI, #0</p><p>  LJMP EXI</p><p>  HOUR_:INCHOUR</p&g

124、t;<p>  MOVA, HOUR</p><p>  MOVB, #10</p><p><b>  DIVAB</b></p><p>  MOVHOURSHI, A</p><p>  MOVHOURGE, B</p><

溫馨提示

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

評論

0/150

提交評論