電子時鐘課程設計_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機課程設計</b></p><p>  題 目: 電子時鐘 </p><p><b>  班 級: </b></p><p><b>  姓 名: </b></p><p><b>  學 號:

2、</b></p><p><b>  指導教師: </b></p><p><b>  設計時間: </b></p><p> 評語:成績 </p><p><b>  摘 要</b></p><p>  針對數(shù)字時鐘的問

3、題,利用8051單片機,proteus軟件,vw(偉福)等軟件,運用單片機中定時計數(shù)器T0,中斷系統(tǒng)以及按鍵的控制實現(xiàn)了電子時鐘的設計。設計的電子時鐘通過數(shù)碼管顯示,并能通過按鍵的設計實現(xiàn)小時與分鐘的調(diào)整。時間的啟動與暫停等等。</p><p>  關鍵字:數(shù)字時鐘;單片機;定時計數(shù)器</p><p><b>  1 引言</b></p><p&g

4、t;  時鐘,自他發(fā)明的那天起,就成為人類的朋友,但隨著時間的推移,科學技術(shù)不斷的發(fā)展,人們對時間計量的進度要求越來越高,應用越來越廣。怎樣讓時鐘更好地為人類服務,怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設計出新型時鐘。</p><p>  現(xiàn)金,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都使用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電

5、路計時時,譯碼代替機械式傳動,用LED顯示器代替指針顯示器,減小了計時誤差,這種表具有時、分、秒顯示的功能,還可以進行時、分的校對,片選的靈活性好。</p><p>  時鐘電路在計算機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎。在一個單片機應用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準震蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標準定時時

6、鐘,及定時時間,它通常有兩種方法實現(xiàn):一是軟件實現(xiàn),即用單片機內(nèi)部的可編程定時/計數(shù)器來實現(xiàn),但誤差很大,主要用在對時間精度要起不高的場合;二是用專門的時鐘芯片實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法。本文主要介紹用單片機內(nèi)部的定時計數(shù)器來實現(xiàn)電子時鐘的方法,以單片機為核心,輔以必要電路,構(gòu)成了一個單片機電子時鐘。</p><p>  單片機應用系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩部分組成。硬件系統(tǒng)是指單片機以

7、及擴展的存儲器、I\O接口、外圍擴展的功能芯片以及接口電路。軟件系統(tǒng)包括監(jiān)控程序和各種應用程序。</p><p>  在單片機應用系統(tǒng)中,單片機是整個系統(tǒng)的核心,對整個系統(tǒng)的信息輸入、處理、信息輸出進行控制。與單片機配套的有相應的復位電路、時鐘電路以及擴展的存儲器和I\O接口,使單片機應用系統(tǒng)能夠運行。</p><p>  在一個單片機應用系統(tǒng)中,往往都會輸入信息和顯示信息,這就涉及鍵盤和

8、顯示器。在單片機應用系統(tǒng)中,一般都根據(jù)系統(tǒng)的要求配置相應的鍵盤和顯示器。配置鍵盤和顯示器一般都沒有統(tǒng)一的規(guī)定,有的系統(tǒng)功能復雜,需輸入的信息和顯示的信息量大,配置的鍵盤和顯示器功能相對強大,而有些系統(tǒng)輸入/輸出的信息少,這時可能用幾個按鍵和幾個LED指示燈就可以進行處理了。在單片機應用系統(tǒng)在中配置的鍵盤可以是獨立鍵盤,也可能是矩陣鍵盤。顯示器可以是LED指示燈,也可以是LED數(shù)碼管,也可以是LCD顯示器,還可以使用CRT顯示器。單片機應

9、用系統(tǒng)中鍵盤一般用的比較多的是矩陣鍵盤,顯示器用的比較多的是LED數(shù)碼管還有LCD顯示器。</p><p><b>  2 設計方案及原理</b></p><p>  2.1 中斷系統(tǒng)簡介</p><p>  MCS-51單片機提供5個硬件中斷源,2個外部中斷源,2個定時計數(shù)器T0和T1的溢出中斷TF0和TF1,1個串行口發(fā)送TI和接收RI中斷

10、。</p><p>  MCS-51單片機中沒有專門的開中斷和關中斷指令,對各個中斷源的允許和屏蔽是由內(nèi)部的中斷允許寄存器IE的各位來控制的。中斷允許寄存器IE的字節(jié)地址為A8H,可以進行位尋址。系統(tǒng)復位時,中斷允許寄存器IE的內(nèi)容為00H,如果要開放某個中斷源,則必須使IE中的總控置位和對應的中斷允許位置“1”。</p><p>  MCS-51單片機有5個中斷源,為了處理方便,每個中斷

11、源有兩級控制,高優(yōu)先級和低優(yōu)先級。通過由內(nèi)部的中斷優(yōu)先級寄存器IP來設置,中斷優(yōu)先級寄存器IP的字節(jié)地址為B8H,可以進行位尋址。如果某位被置“1”,則對應的中斷源被設為高優(yōu)先級;如果某位被清零,則對應的中斷源被設為低優(yōu)先級。對于同級中斷源,系統(tǒng)有默認的優(yōu)先權(quán)順序,從高到低優(yōu)先權(quán)順序為外部中斷0、定時計數(shù)器T0中斷、外部中斷1、定時計數(shù)器T1中斷、串行口中斷。通過設置中斷優(yōu)先級寄存器IP能夠改變系統(tǒng)默認的優(yōu)先級順序。</p>

12、<p>  2.2 計數(shù)器定時器簡介</p><p>  MCS-51系列中51子系列有兩個16位的可編程定時\計數(shù)器T0和定時\計數(shù)器T1。它由加法計數(shù)器、方式寄存器TMOD、控制寄存器TCON等組成。方式寄存器用于設定定時計數(shù)器T0和T1的工作方式,控制寄存器用于對定時計數(shù)器啟動、停止進行控制。</p><p>  每個定時計數(shù)器既可以對系統(tǒng)時鐘計數(shù)實現(xiàn)定時,也可以外部信

13、號計數(shù)實現(xiàn)計數(shù)功能通過編程設定來實現(xiàn)。</p><p>  定時計數(shù)器有四種工作方式,通過編程可設定工作于某種方式。四種工作方式為:13位定時\計數(shù)器、16位定時\計數(shù)器、8位自動重置定時\計數(shù)器、兩個8位定時\計數(shù)器(只有T0有)。 每一個定時計數(shù)器定時計數(shù)時間到時產(chǎn)生溢出,使相應的溢出位置位,溢出可通過查詢或中斷方式處理。</p><p>  2.3 鍵盤和數(shù)碼管簡介</p>

14、;<p>  鍵盤是單片機應用系統(tǒng)中最常用的輸入設備,在單片機應用系統(tǒng)中,操作人員一般都是通過鍵盤向單片機系統(tǒng)輸入指令、地址和數(shù)據(jù),實現(xiàn)簡單的人機通信。鍵盤實際上是一組按鍵開關的集合,平時按鍵開關總是處于斷開狀態(tài),當按下鍵時它才閉合。鍵盤的結(jié)構(gòu)形式一般有兩種:獨立式鍵盤和矩陣式鍵盤。矩陣式鍵盤的工作方式有3種:查詢工作方式、定時掃描工作方式和中斷工作方式。</p><p>  LED數(shù)碼顯示管在單片

15、機應用系統(tǒng)中,經(jīng)常用到LED數(shù)碼管作為顯示輸出設備,LED數(shù)碼管顯示器雖然顯示信息簡單,但它具有顯示清晰、亮度高、使用電壓低、壽命長、與單片機接口方便等特點,基本上能夠滿足單片機應用系統(tǒng)的需要,所以在單片機應用系統(tǒng)中經(jīng)常用到。LED數(shù)碼管顯示器是由發(fā)光二極管按一定的結(jié)構(gòu)組合起來的顯示器件。在單片機應用系統(tǒng)中通常使用的是8段式LED數(shù)碼管顯示器,它有共陰極和共陽極兩種。所謂譯碼方式是指由顯示字符轉(zhuǎn)換得到對應的字段碼的方式。對于LED數(shù)碼管

16、顯示器,通常的譯碼方式有兩種:硬件譯碼方式和軟件譯碼方式。LED數(shù)碼管在顯示時,通常有兩種顯示方式:靜態(tài)顯示方式和動態(tài)顯示方式。在使用時可以把它們組合起來。在實際應用時,如果數(shù)碼管個數(shù)較少,通常用硬件譯碼靜態(tài)顯示,在數(shù)碼管個數(shù)較多時,則通常用軟件譯碼動態(tài)顯示。</p><p><b>  2.4 設計思想</b></p><p>  電子時鐘是利用單片機內(nèi)部的定時器\

17、計數(shù)器來實現(xiàn)的,它的處理過程如下:首先設定單片機內(nèi)部的一個定時器\計數(shù)器工作于定時方式,對機器周期計數(shù)形成基準時間,然后對基準時間計數(shù)形成秒,秒計60次形成分,分計60次形成小時,小時計24次則計滿一天。然后通過數(shù)碼管把它們的內(nèi)容在相應位置顯示出來即可。</p><p>  數(shù)碼管顯示可以采用靜態(tài)顯示方法或動態(tài)顯示方法。靜態(tài)顯示方法需要數(shù)據(jù)鎖存器等硬件,接口復雜,時鐘顯示一般用6個或8個數(shù)碼管。由于系統(tǒng)沒有其他的

18、復雜的任務處理,而且顯示的時鐘信息隨時都可能變化,一般采用動態(tài)顯示方式。動態(tài)顯示方法線路相對簡單,但需動態(tài)掃描,掃描頻率要大于人眼視覺暫留頻率,信息看起來才穩(wěn)定。</p><p>  在具體處理時,定時器計數(shù)器采用中斷方式工作,對時鐘的形成在中斷服務程序中實現(xiàn)。在主程序中只需對定時器計數(shù)器初始化、調(diào)用顯示子程序和控制子程序。時間調(diào)整的方法,設計了簡單的按鍵,可以通過按鍵實現(xiàn)時、分的調(diào)整,在主程序中加入了鍵盤設置子

19、程序。</p><p>  用定時/計數(shù)器T0,工作于定時,采用方式1,對12MHZ的系統(tǒng)時鐘進行定時計數(shù),形成定時時間為50ms,所以定時初值為15536(3CB0H)。用片內(nèi)RAM的7BH單元對50ms計數(shù),計20次秒計數(shù)器78H單元加1,秒計數(shù)器加到60則分計數(shù)器79H單元加1,分計數(shù)器加到60則時計數(shù)器7AH單元加1,時計數(shù)器加到24則時計數(shù)器清0。然后把秒、分、時計數(shù)器分成十位和個位放到8個數(shù)碼管的顯示

20、緩沖區(qū),通過數(shù)碼管顯示出來。顯示格式為小時十位、小時個位---分十位、分個位---秒十位、秒個位。</p><p><b>  3 硬件設計</b></p><p>  圖2.1 硬件原理圖1</p><p>  圖2.2 硬件原理圖2</p><p><b>  4軟件設計</b></p&g

21、t;<p><b>  4.1 設計模塊</b></p><p>  程序分為4個部分:主程序,中斷服務程序,顯示程序,按鍵處理程序。</p><p><b>  4.1.1 主程序</b></p><p>  主程序設置顯示緩沖區(qū)以及定時計數(shù)器T0初始值,并開始計數(shù),反復調(diào)用鍵盤掃描與顯示子程序。流程如圖3

22、.1。</p><p>  圖3.1 主程序流程圖</p><p>  4.1.2 中斷服務程序</p><p>  定時計數(shù)器T0用于時間計時。選擇方式1,重復定時,定時時間設為50ms,定時時間到則中斷,在中斷服務程序中用7BH對50ms計數(shù),計20次則對秒單元(78H)加1,秒單元加到60則對分單元(79H)加1,同時秒單元清0;分單元加到60則對時單元(80

23、H)加1,同時分單元清0;時單元加到24則對時單元清0,標志一天時間計滿。中斷服務程序流程圖如圖3.2</p><p>  圖3.2 中斷服務程序流程圖</p><p>  4.1.3 顯示程序</p><p>  本系統(tǒng)共采用8個顯示塊,從右向左依次是秒各位、秒十位、橫線、分各位、分十位、橫線、時各位、時十位,分別連接P2.7、P2.6、P2.5、P2.4、P2.

24、3、P2.2、P2.1、P2.0,對應顯示緩沖區(qū)70H、71H、72H、73H、74H、75H、76H、77H。P2口作為位選線,P0口作為段碼線,數(shù)碼塊為共陽極連接,采用動態(tài)顯示的方法。</p><p>  4.1.4 按鍵處理程序</p><p>  按鍵從上到下依次為K0、K1、K2,分別與P1.0、P1.1、P1.2相連接。按下K0鍵后,時鐘停止計時,并進入小時調(diào)整狀態(tài),按K1或K

25、2鍵可進行加1或減1操作,再按一次K0鍵,進入分鐘調(diào)整狀態(tài),同樣按K1或K2鍵可進行加1或減1操作,再按下K0鍵則恢復計時狀態(tài)。</p><p><b>  4.2 程序清單</b></p><p>  ORG 0000H</p><p>  LJMP START</p><p>  ORG

26、000BH ;定時器/計數(shù)器T0中斷程序入口</p><p>  LJMP INTT0</p><p>  START: MOV R0,#70H ;主程序</p><p>  MOV R7,#0CH</p><p>  INIT: MOV @R0,#00H&l

27、t;/p><p>  INC R0</p><p>  DJNZ R7,INIT</p><p>  MOV 72H,#0AH</p><p>  MOV 75H,#0AH</p><p>  MOV TMOD,#01H</p><p>  MOV

28、TL0,#0B0H</p><p>  MOV TH0,#03CH</p><p>  SETB EA</p><p>  SETB ET0</p><p>  SETB TR0</p><p>  START1: LCALL SCAN</p><p>

29、  LCALL KEYSCAN</p><p>  SJMP START1</p><p>  DL1MS: MOV R6,#14H ;延時1MS子程序</p><p>  DL1: MOV R7,#19H</p><p>  DL2: DJNZ R7,

30、DL2</p><p>  DJNZ R6 ,DL1</p><p><b>  RET</b></p><p>  DL20MS: ACALL SCAN ;延時20MS子程序</p><p>  ACALL SCAN</p><p>  

31、ACALL SCAN</p><p><b>  RET</b></p><p>  SCAN: MOV A,78H ; 數(shù)碼管顯示程序</p><p>  MOV B,#0AH</p><p>  DIV AB</p><p>  MOV

32、 71H,A</p><p>  MOV 70H,B</p><p>  MOV A,79H</p><p>  MOV B,#0AH</p><p>  DIV AB</p><p>  MOV 74H,A</p><p>  MOV

33、73H,B</p><p>  MOV A,7AH</p><p>  MOV B,#0AH</p><p>  DIV AB</p><p>  MOV 77H,A</p><p>  MOV 76H,B</p><p>  MOV R1,#7

34、0H ;循環(huán)掃描顯示</p><p>  MOV R5,#80H ;選通最右邊的第一個數(shù)碼塊 </p><p>  MOV R3,#08H</p><p>  SCAN1: MOV A,R5</p><p>  MOV P2,A</p><p>

35、;  MOV A,@R1</p><p>  MOV DPTR,#TAB</p><p>  MOVC A,@A+DPTR</p><p>  MOV P0,A</p><p>  LCALL DL1MS</p><p>  INC R1</p><p&g

36、t;  MOV A,R5</p><p>  RR A</p><p>  MOV R5,A</p><p>  DJNZ R3,SCAN1</p><p>  MOV P2,#00H</p><p>  MOV P0,#0FFH</p><p&g

37、t;<b>  RET</b></p><p>  TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH</p><p>  ;“0~9”,“-”的共陽極字段碼</p><p>  INTT0: PUSH ACC ;定時器/計數(shù)器T0中斷

38、服務程序</p><p>  PUSH PSW</p><p>  CLR ET0</p><p>  CLR TR0</p><p>  MOV TL0,#0B0H</p><p>  MOV TH0,#03CH</p><p>  SET

39、B TR0</p><p>  INC 7BH</p><p>  MOV A,7BH</p><p>  CJNE A,#14H,OUTT0</p><p>  MOV 7BH,#00</p><p>  INC 78H</p><

40、p>  MOV A,78H</p><p>  CJNE A,#3CH,OUTT0</p><p>  MOV 78H,#00</p><p>  INC 79H</p><p>  MOV A,79H</p><p>  CJNE A,#3CH,OU

41、TT0</p><p>  MOV 79H,#00</p><p>  INC 7AH</p><p>  MOV A,7AH</p><p>  CJNE A,#18H,OUTT0</p><p>  MOV 7AH,#00</p><p>

42、  OUTT0: SETB ET0</p><p>  POP PSW</p><p>  POP ACC</p><p><b>  RETI</b></p><p>  KEYSCAN: CLR EA ;按鍵處理程序</p&

43、gt;<p>  JNB P1.0,KEYSCAN0</p><p>  JNB P1.1,KEYSCAN1</p><p>  JNB P1.2,KEYSCAN2</p><p>  KEYOUT: SETB EA</p><p><b>  RET</

44、b></p><p>  KEYSCAN0: LCALL DL20MS</p><p>  JB P1.0,KEYOUT</p><p>  WAIT0: JNB P1.0,WAIT0</p><p>  INC 7CH</p><p>  MOV

45、 A,7CH</p><p>  CLR ET0</p><p>  CLR TR0</p><p>  CJNE A,#03H,KEYOUT</p><p>  MOV 7CH,#00</p><p>  SETB ET0</p><p>

46、  SETB TR0</p><p>  SJMP KEYOUT</p><p>  KEYSCAN1: LCALL DL20MS</p><p>  JB P1.1,KEYOUT</p><p>  WAIT1: JNB P1.1,WAIT1</p><p&

47、gt;  MOV A,7CH</p><p>  CJNE A,#02H,KSCAN11</p><p>  INC 79H</p><p>  MOV A,79H</p><p>  CJNE A,#3CH,KEYOUT</p><p>  MOV 79H

48、,#00</p><p>  SJMP KEYOUT</p><p>  KSCAN11: INC 7AH</p><p>  MOV A,7AH</p><p>  CJNE A,#18H,KEYOUT</p><p>  MOV 7AH,#00</p&

49、gt;<p>  SJMP KEYOUT</p><p>  KEYSCAN2: LCALL DL20MS</p><p>  JB P1.2,KEYOUT</p><p>  WAIT2: JNB P1.2,WAIT2</p><p>  MOV A,7CH<

50、/p><p>  CJNE A,#02H,KSCAN21</p><p>  DEC 79H</p><p>  MOV A,79H</p><p>  CJNE A,#0FFH,KEYOUT</p><p>  MOV 79H,#3BH</p>

51、<p>  SJMP KEYOUT</p><p>  KSCAN21: DEC 7AH</p><p>  MOV A,7AH</p><p>  CJNE A,#0FFH,KEYOUT</p><p>  MOV 7AH,#17H</p>

52、<p>  SJMP KEYOUT</p><p><b>  END</b></p><p><b>  總 結(jié)</b></p><p>  針對電子時鐘的問題,利用單片機內(nèi)部的定時計數(shù)器T0計時的功能以50MS為最小計時單位,進行計時,計20次為一秒,秒單元計60次為一分鐘,分單元計60次為

53、一小時,小時單元計24次為一天,每個單元計滿則自動清0。單片機外部通過P2口與數(shù)碼顯示管連接,顯示秒,分,時,同時還可通過按鍵調(diào)整時間。最后運用proteus軟件仿真,并運行成功。在設計軟件程序,編寫論文過程中還存在部分不足之處,在以后的學習中積極改進,進一步掌握匯編語言的編寫技巧,熟練單片機硬件內(nèi)容,改正缺點。</p><p><b>  參 考 文 獻</b></p>&l

溫馨提示

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

評論

0/150

提交評論