基于51單片機的時鐘調(diào)整系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  題 目:基于51單片機的時鐘調(diào)整系統(tǒng)</p><p><b>  前言</b></p><p>  時鐘是人類生活中必不可少的工具,從掛式的、手機上的、電腦上的以及手表等。學完單片機后,我們基本了解到了單片機時鐘的工作原理以及實現(xiàn)方式。借此研究性教學的機會,我們打算用單片機的知識完成對單片機電子時鐘的設計以及制作。該設計不僅可以鍛煉我們的動

2、手能力,而且可以加深我們對單片機的認識和激發(fā)我們對機電控制的探索。</p><p>  基于單片機的數(shù)字時鐘采用獨立式按鍵來進行時間調(diào)整, MAX7219、AT89C51是其主要芯片,并利用數(shù)碼管LED動態(tài)顯示“時”,“分”,“秒”的現(xiàn)代計時裝置。與傳統(tǒng)機械表相比,它具有走時精確,顯示直觀等特點。它的計時周期為24小時,顯滿刻度為“23時59分59秒”。它不僅僅可以顯示時間,還可以顯示星期??偠灾撓到y(tǒng)同時具有

3、硬件設計簡單,工作穩(wěn)定性高,價格低廉等優(yōu)點。</p><p>  關(guān)鍵詞:時鐘 、LED顯示、MAX7219、AT89C51、點陣LED顯示器</p><p><b>  任務</b></p><p>  設計一個單片機時鐘顯示調(diào)整系統(tǒng),其中擴展連接6個8段LED數(shù)碼管顯示器,利用MAX7219顯示驅(qū)動器驅(qū)動LED用于時鐘顯示和調(diào)整,利用8*8

4、點陣LED顯示器顯示星期。連接3個獨立式按鍵分別控制系統(tǒng)的顯示模式切換和時間值增減調(diào)整。</p><p><b>  方案</b></p><p>  硬件選擇:MAX7219驅(qū)動器、AT89C51單片機、6位LED顯示器、8*8點陣LED、74LS14、74LS245、電阻、CAP電容、PCELECT4U763V電容、晶振、按鍵、電源</p><

5、p><b>  功能要求</b></p><p>  六位數(shù)碼管顯示時、分、秒,以24小時運算</p><p><b>  點陣LED顯示星期</b></p><p>  可實現(xiàn)對秒、分、時、星期的加減調(diào)整</p><p><b>  程序設計</b></p>

6、<p><b>  1、主程序</b></p><p>  設計中計時采用定時器T0中斷完成。主程序循環(huán)調(diào)用顯示子程序和查鍵,當端口有開關(guān)按下時,轉(zhuǎn)入相應的功能程序。流程圖如圖1所示。</p><p><b>  圖1 主程序流程</b></p><p><b>  顯示子程序</b>&

7、lt;/p><p>  顯示由MAX7219驅(qū)動的六位顯示器和點陣LED顯示器共同完成,首先對其進行初始化,然后用單片機控制顯示器顯示。</p><p>  MAX7219驅(qū)動器顯示流程圖</p><p><b>  圖2 顯示子程序</b></p><p>  定時器T0中斷服務程序</p><p&g

8、t;  定時溢出中斷周期設為50MS,中斷進入后先進行定時中斷初值校正,當中斷累加到20次時,對秒計數(shù)單元進行加1操作。時鐘最大計時值為23時59分59秒。在計數(shù)單元中,采用十進制BCD碼計數(shù),滿十進位。流程圖如圖3所示</p><p>  在程序中采用12MHZ晶振頻率,精度為1MS,定時初值為50MS,用循環(huán)程序進行20次循環(huán)可到1S。當1S到時調(diào)用加1程序并判斷秒、分是否為60,當秒為60時,秒清零,分加1

9、;當分為60時,分清零。當時滿24時,星期加1,時清零,星期由1至7循環(huán)。終端結(jié)束時,計時單元數(shù)據(jù)移入對應顯示單元。</p><p><b>  三、按鍵設置</b></p><p>  本時鐘設置P1.0,P1.1,P1.2接3個按鈕開關(guān),用于調(diào)時。其中P1.0用于選擇調(diào)時模式(對星期,小時,分鐘,秒的選擇),P1.1完成對所選的項目進行增一的操作,P1.2完成對所

10、選項目進行減一的操作。</p><p><b>  四、程序</b></p><p>  KEY1BITP1.0</p><p>  KEY2BITP1.1</p><p>  KEY3BITP1.2</p><p>  CLKBITP1.3</p><p&g

11、t;  LOADBITP1.4</p><p>  DINBITP1.5</p><p>  SECONDDATA30H</p><p>  MINUTEDATA31H</p><p>  HOURDATA32H</p><p>  DAY DATA 33H</p>&

12、lt;p>  ORG0000H</p><p><b>  AJMPMAIN</b></p><p>  ORG000BH</p><p>  AJMPTIMER0</p><p>  MAIN:MOVSP,#60H</p><p>  MOVTMOD,#01H<

13、/p><p>  MOVTH0,#0B1H</p><p>  MOVTL0,#0E0H</p><p><b>  SETBET0</b></p><p><b>  SETBEA</b></p><p>  MOVR2,#50</p><p

14、><b>  SETBTR0</b></p><p>  MOVSECOND,#00H</p><p>  MOVMINUTE,#00H</p><p>  MOVHOUR,#00H</p><p>  MOV DAY,#00H</p><p>  MO

15、VA,HOUR</p><p>  ANLA,#0F0H</p><p><b>  SWAPA</b></p><p>  MOV79H,A</p><p>  MOVA,HOUR</p><p>  ANLA,#0FH</p><p>  MOV

16、7AH,A</p><p>  MOVA,MINUTE</p><p>  ANLA,#0F0H</p><p><b>  SWAPA</b></p><p>  MOV7BH,A</p><p>  MOVA, MINUTE</p><p>  AN

17、LA,#0FH</p><p>  MOV7CH,A</p><p>  MOVA,SECOND</p><p>  ANLA,#0F0H</p><p><b>  SWAPA</b></p><p>  MOV7DH,A</p><p>  MOV

18、A,SECOND</p><p>  ANLA,#0FH</p><p>  MOV7EH,A</p><p>  MOVR3,#00H</p><p>  ACALLINT7219</p><p>  LOOP:ACALLKEY</p><p>  ACALLDISPL

19、AY</p><p><b>  AJMPLOOP</b></p><p>  INT7219:MOV50H,#0FH</p><p>  MOV51H,#00H</p><p>  MOVR0,#50H</p><p>  ACALLSEND7219</p><

20、;p>  MOV50H,#0CH</p><p>  MOV51H,#01H</p><p>  MOVR0,#50H</p><p>  ACALLSEND7219</p><p>  MOV50H,#0BH</p><p>  MOV51H,#05H</p><p&g

21、t;  MOVR0,#50H</p><p>  ACALLSEND7219</p><p>  MOV50H,#0AH</p><p>  MOV51H,#09H</p><p>  MOVR0,#50H</p><p>  ACALLSEND7219</p><p>  

22、MOV50H,#09H</p><p>  MOV51H,#0FFH</p><p>  MOVR0,#50H</p><p>  ACALLSEND7219</p><p>  ACALL D1</p><p><b>  RET</b></p><p>

23、;  DISPLAY:MOV50H,#01H</p><p>  MOV51H,79H</p><p>  MOVR0,#50H</p><p>  ACALLSEND7219</p><p>  MOV50H,#02H</p><p>  MOV51H,7AH</p><p> 

24、 MOVR0,#50H</p><p>  ACALLSEND7219</p><p>  MOV50H,#03H</p><p>  MOV51H,7BH</p><p>  MOVR0,#50H</p><p>  ACALLSEND7219</p><p>  MOV50H,

25、#04H</p><p>  MOV51H,7CH</p><p>  MOVR0,#50H</p><p>  ACALLSEND7219</p><p>  MOV50H,#05H</p><p>  MOV51H,7DH</p><p>  MOVR0,#50H</p&g

26、t;<p>  ACALLSEND7219</p><p>  MOV50H,#06H</p><p>  MOV51H,7EH</p><p>  MOVR0,#50H</p><p>  ACALLSEND7219</p><p>  ACALL D1</p><p&

27、gt;<b>  RET</b></p><p>  SEND7219:CLRLOAD</p><p>  MOVR4,#02H</p><p><b>  CLRC</b></p><p>  LOP1:MOVR1,#08H</p><p><b> 

28、 MOVA,@R0</b></p><p>  LOP2:RLCA</p><p><b>  MOVDIN,C</b></p><p><b>  SETBCLK</b></p><p><b>  CLRCLK</b></p>&

29、lt;p>  DJNZR1,LOP2</p><p><b>  INCR0</b></p><p>  DJNZR4,LOP1</p><p>  SETBLOAD</p><p><b>  RET</b></p><p><b>  D1:&

30、lt;/b></p><p>  MOV R6,#0FEH</p><p>  MOV R1,#08H</p><p>  MOV A,33H</p><p><b>  RL A</b></p><p><b>  RL A</b><

31、/p><p><b>  RL A</b></p><p>  MOV R4,A</p><p>  LP: MOV P3,#0FFH</p><p><b>  MOV A,R4</b></p><p><b>  INC R4</b>&

32、lt;/p><p>  MOV DPTR,#DTAB</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV A,R6</p><p>  MOV P3,A</p><p><b>

33、;  RL A</b></p><p><b>  MOV R6,A</b></p><p>  ACALL DEL</p><p>  DJNZ R1,LP</p><p><b>  RET</b></p><p>  DEL: MOV R7,

34、#02H</p><p>  DL0:MOV R0,#0FFH</p><p>  DL6:DJNZ R0,DL6</p><p>  DJNZ R7,DL0</p><p><b>  RET</b></p><p>  KEY:JNBKEY1,KK1</p><p&

35、gt;  JBKEY1,$</p><p><b>  INCR3</b></p><p>  CJNER3,#05H,JMPKK3</p><p>  MOVR3,#00H</p><p>  JMPKK3:AJMPKK3</p><p>  KK1:JNBKEY2,K

36、K2</p><p>  JBKEY2,$</p><p><b>  MOVA,R3</b></p><p><b>  RLA</b></p><p>  MOVDPTR,#KJMP1</p><p>  JMP@A+DPTR</p><

37、;p>  KJMP1:AJMPDISCLK</p><p><b>  AJMPSINC</b></p><p><b>  AJMPMINC</b></p><p><b>  AJMPHINC</b></p><p>  AJMP DINC</p

38、><p>  SINC:MOVA,SECOND</p><p>  ADDA,#01H</p><p><b>  DAA</b></p><p>  MOVSECOND,A</p><p>  CJNEA,#60H,DISS1</p><p>  MOV3

39、0H,#01H</p><p>  DISS1:AJMPDISS</p><p>  MINC:MOVA,MINUTE</p><p>  ADDA,#01H</p><p><b>  DAA</b></p><p>  MOVMINUTE,A</p><p

40、>  CJNEA,#60H,DISM1</p><p>  MOVMINUTE,#00H</p><p>  DISM1:AJMPDISM</p><p>  HINC:MOVA,HOUR</p><p>  ADDA,#01H</p><p><b>  DAA</b>

41、;</p><p>  MOVHOUR,A</p><p>  CJNEA,#24H,DISH1</p><p>  MOVHOUR,#00H</p><p>  DISH1:AJMPDISH</p><p>  DINC: MOV A,DAY</p><p>  ADD A,#

42、01H</p><p>  MOV DAY,A</p><p>  CJNE A,#07H,DISD1</p><p>  MOV DAY,#00H</p><p>  DISD1: AJMP DISD</p><p>  KK2:JNBKEY3,KK3</p><p>  J

43、BKEY3,$</p><p><b>  MOVA,R3</b></p><p><b>  RLA</b></p><p>  MOVDPTR,#KJMP2</p><p>  JMP@A+DPTR</p><p>  KJMP2:AJMPDISCLK

44、</p><p><b>  AJMPSDEC</b></p><p><b>  AJMPMDEC</b></p><p><b>  AJMPHDEC</b></p><p>  AJMP DDEC</p><p>  SDEC:MOV

45、A,#9AH</p><p><b>  CLRC</b></p><p>  SUBBA,#01H</p><p>  ADDA,SECOND</p><p><b>  DAA</b></p><p>  MOVSECOND,A</p>&

46、lt;p>  CJNEA,#00H,DISS2</p><p>  MOVSECOND,#59H</p><p>  DISS2:AJMPDISS</p><p>  MDEC:MOVA,#9AH</p><p><b>  CLRC</b></p><p>  SUBB

47、A,#01H</p><p>  ADDA,MINUTE</p><p><b>  DAA</b></p><p>  MOVMINUTE,A</p><p>  CJNEA,#00H,DISM2</p><p>  MOVMINUTE,#59H</p><p

48、>  DISM2:AJMPDISM</p><p>  HDEC:MOVA,#9AH</p><p><b>  CLRC</b></p><p>  SUBBA,#01H</p><p>  ADDA,HOUR</p><p><b>  DAA</b

49、></p><p>  MOVHOUR,A</p><p>  CJNEA,#99H,DISH2</p><p>  MOVHOUR,#23H</p><p>  DISH2:AJMPDISH</p><p>  DDEC: MOV A,#9AH</p><p><

50、;b>  CLR C</b></p><p>  SUBB A,#01H</p><p>  ADD A,DAY</p><p><b>  DA A</b></p><p>  CJNE A,#99H,DISD2</p><p>  MOV A,#06H</

51、p><p>  DISD2:MOV DAY,A</p><p>  AJMP DISD</p><p>  KK3:MOVA,R3</p><p><b>  RLA</b></p><p>  MOVDPTR,#KJMP3</p><p>  JMP@A+

52、DPTR</p><p>  KJMP3:AJMPDISCLK</p><p><b>  AJMPDISS</b></p><p><b>  AJMPDISM</b></p><p><b>  AJMPDISH</b></p><p> 

53、 AJMP DISD</p><p>  DISCLK:MOVR0,#79H</p><p>  MOVR1,#HOUR</p><p>  MOVR4,#03H</p><p>  CFLOOP:MOVA,@R1</p><p><b>  SWAPA</b></p&g

54、t;<p>  ANLA,#0FH</p><p><b>  MOV@R0,A</b></p><p><b>  INCR0</b></p><p><b>  MOVA,@R1</b></p><p>  ANLA,#0FH</p>

55、;<p><b>  MOV@R0,A</b></p><p><b>  INCR0</b></p><p><b>  DECR1</b></p><p>  DJNZR4,CFLOOP</p><p><b>  SETBTR0&l

56、t;/b></p><p><b>  RET</b></p><p>  DISS:CLRTR0</p><p>  MOVA,SECOND</p><p><b>  SWAPA</b></p><p>  ANLA,#0FH</p>&

57、lt;p><b>  MOV7DH,A</b></p><p>  MOVA,SECOND</p><p>  ANLA,#0FH</p><p><b>  MOV7EH,A</b></p><p>  MOV79H,#0FH</p><p>  MOV

58、7AH,#0FH</p><p>  MOV7BH,#0FH</p><p>  MOV7CH,#0FH</p><p><b>  AJMPKK5</b></p><p>  DISM:CLRTR0</p><p>  MOVA,MINUTE</p><p>

59、;<b>  SWAPA</b></p><p>  ANLA,#0FH</p><p><b>  MOV7BH,A</b></p><p>  MOVA,MINUTE</p><p>  ANL A,#0FH</p><p><b>  MOV

60、7CH,A</b></p><p>  MOV79H,#0FH</p><p>  MOV7AH,#0FH</p><p>  MOV7DH,#0FH</p><p>  MOV7EH,#0FH</p><p><b>  AJMPKK5</b></p>&l

61、t;p>  DISH:CLRTR0</p><p>  MOVA,HOUR</p><p><b>  SWAPA</b></p><p>  ANLA,#0FH</p><p><b>  MOV79H,A</b></p><p>  MOVA,HO

62、UR</p><p>  ANLA,#0FH</p><p><b>  MOV7AH,A</b></p><p>  MOV7BH,#0FH</p><p>  MOV7CH,#0FH</p><p>  MOV7DH,#0FH</p><p>  MOV7

63、EH,#0FH</p><p><b>  AJMP KK5</b></p><p>  DISD: CLR TR0</p><p>  MOV 79H,#0FH</p><p>  MOV 7AH,#0FH</p><p>  MOV7BH,#0FH</p>&

64、lt;p>  MOV7CH,#0FH</p><p>  MOV7DH,#0FH</p><p>  MOV7EH,#0FH</p><p><b>  KK5:RET</b></p><p>  TIMER0:PUSHACC</p><p><b>  PUSHP

65、SW</b></p><p>  MOVTH0,#0B1H</p><p>  MOVTL0,#0E0H</p><p>  DJNZR2,NEXT</p><p>  MOVR2,#50</p><p>  MOVA,SECOND</p><p>  ADDA,#01

66、H</p><p><b>  DAA</b></p><p>  MOVSECOND,A</p><p>  CJNEA,#60H,NEXT</p><p>  S1:MOVSECOND,#00H</p><p>  MOVA,MINUTE</p><p&g

67、t;  ADDA,#01</p><p><b>  DAA</b></p><p>  MOVMINUTE,A</p><p>  CJNEA,#60H,NEXT</p><p>  S2:MOVMINUTE,#00H</p><p>  MOVA,HOUR</p&g

68、t;<p>  ADDA,#01H</p><p><b>  DAA</b></p><p>  MOVHOUR,A</p><p>  CJNEA,#24H,NEXT</p><p>  S3:MOVHOUR,#00H</p><p>  MOV A,DA

69、Y</p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  MOV DAY,A</p><p>  CJNE A,#07H,NEXT</p><p>  MOV DAY,#00H</p><p&

70、gt;  NEXT:POPPSW</p><p><b>  POPACC</b></p><p><b>  RETI</b></p><p>  DTAB:DB 00H,08H,08H,08H,08H,08H,08H,00H</p><p>  DB 00H,04H,24H,24H,2

71、4H,24H,04H,00H</p><p>  DB 00H,02H,52H,52H,52H,52H,02H,00H</p><p>  DB 00H,0FFH,91H,0F1H,81H,0F1H,91H,0FFH</p><p>  DB 91H,91H,91H,0FFH,91H,91H,9FH,01H</p><p>  DB 20H,

72、22H,24H,0A8H,60H,28H,24H,22H</p><p>  DB 00H,00H,0FFH,91H,91H,0FFH,00H,00H</p><p><b>  END</b></p><p>  五、運用Proteus進行仿真</p><p>  1、正常狀態(tài)下的時鐘顯示</p><

73、;p>  按一次KEY1對時進行調(diào)整</p><p>  3、按兩次KEY1對分進行調(diào)整 </p><p>  4、按三次KEY1對秒進行調(diào)整</p><p>  5、按四次KEY1進入關(guān)機</p><p>  6、按五次KEY1返回正常顯示模式</p><p><b>  操作模式</b>

74、</p><p><b>  設計說明及建議:</b></p><p>  本設計特點在于同時采用由MAX7219驅(qū)動六位LED顯示器和點陣LED顯示器,利用前者的設計程序簡便性和后者的顯示的多樣性以達到理想效果。</p><p><b>  參考文獻:</b></p><p>  【1】趙嘉蔚,張

溫馨提示

  • 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

提交評論