單片機(jī)課程設(shè)計(jì)數(shù)字時(shí)鐘_第1頁(yè)
已閱讀1頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  單片機(jī)課程設(shè)計(jì)報(bào)告</b></p><p>  題 目:數(shù)字時(shí)鐘</p><p>  專(zhuān)業(yè)班級(jí):電子信息工程2班</p><p><b>  姓 名: </b></p><p><b>  一、功能</b></p><

2、;p>  能實(shí)現(xiàn)定時(shí)、時(shí)間的調(diào)整(只能加不能減)、鬧鐘的設(shè)定(只能加不能減),當(dāng)鬧鐘按鍵按下就進(jìn)入鬧鐘設(shè)定,再按下那個(gè)鍵就進(jìn)入時(shí)間顯示,并且鬧鐘響鈴時(shí)間是10秒鐘。</p><p>  其整個(gè)設(shè)計(jì)的電路圖如下:</p><p>  其中顯示的是8個(gè)8段LED顯示,單片機(jī)是80C51,外部晶振是12MHZ,其中和晶振連接的是兩個(gè)47pF的電容。單片機(jī)的p3.2~p3.5作為地址總線起到

3、控制作用,p3.7在電路中我用一個(gè)電阻代替,在實(shí)際中接喇叭,起到鬧鐘的作用。 P0.0~p0.7作為數(shù)據(jù)總線,把單片機(jī)的信號(hào)輸入到顯示器上,p2.0~p2.7作為單片機(jī)的額數(shù)據(jù)總線,其作用在顯示總起到位選的作用,決定8段LED的亮滅。最下面的那個(gè)是RESPACK-8排阻,在電路中防止輸入到顯示的電壓很小,是為輸出提供電源的裝置,配合顯示器的顯示。</p><p>  在整個(gè)程序中時(shí)間的秒、分、時(shí)

4、的計(jì)數(shù)分別存放在20H、21H、22H,鬧鐘的秒、分、時(shí)的計(jì)數(shù)分別存放在40H、41H、42H。我的電路圖開(kāi)始的時(shí)候是用靜態(tài)顯示的,現(xiàn)在用動(dòng)態(tài)顯示程序還是用的是靜態(tài)的,所以在一些程序不一樣。</p><p>  實(shí)現(xiàn)定時(shí)鬧鐘的程序有以下幾個(gè)部分組成:</p><p><b>  二、流程圖</b></p><p>  定時(shí)程序(時(shí)間的設(shè)定)&l

5、t;/p><p><b>  其程序流程圖如下:</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  調(diào)時(shí)間的流程圖</b></p><p><b>  Y<

6、;/b></p><p>  NN </p><p><b>  Y</b></p><p><b>  N </b></p><p><b>  N</b></p><p><b>  

7、Y</b></p><p><b>  Y</b></p><p>  N N </p><p><b>  Y</b></p><p><b>  N</b></p><p><b>

8、;  N</b></p><p><b>  Y</b></p><p><b>  Y</b></p><p>  N N</p><p><b>  Y</b></p><p><b>  N<

9、;/b></p><p><b>  N</b></p><p><b>  Y</b></p><p>  顯示的流程圖(因?yàn)轱@示的剛好是8個(gè),所以不要去考慮左移的個(gè)數(shù),直接跳轉(zhuǎn)到初始值。</p><p><b>  鬧鐘設(shè)定</b></p><p&

10、gt;<b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  Y</b></p><p>&l

11、t;b>  N</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  三、總程序</b></p><p><b>  ORG 0000H</b></p><

12、p>  MOV P0,#00H</p><p>  MOV P2,#00H</p><p>  MOV SP,#60H</p><p><b>  CLR 20H</b></p><p><b>  CLR 21H</b></p><p><b>  CLR

13、22H</b></p><p><b>  CLR 40H</b></p><p><b>  CLR 41H</b></p><p><b>  CLR 42H</b></p><p>  MOV DPTR,#TAB</p><p>  V

14、V: MOV R6,#1</p><p>  MM: MOV R5,#4</p><p>  NN: MOV R4,#100</p><p>  BB: JNB P3.5,LPP</p><p><b>  SJMP LL</b></p><p>  LPP: JNB P3.5,LPP0&

15、lt;/p><p><b>  SETB 30H</b></p><p>  AAC: MOV R3,#1</p><p>  AAB: MOV R2,#4</p><p>  AAA: MOV R1,#100</p><p>  CC0: JNB P3.2,CC1 ;判斷p3.2是否為按下&

16、lt;/p><p><b>  SJMP DD0</b></p><p>  CC1: JNB P3.2,LPP1 ;判斷p3.2是否松開(kāi),松開(kāi)秒鐘加1</p><p><b>  MOV A,40H</b></p><p>  ADD A,#01H</p><p><

17、b>  DA A</b></p><p>  CJNE A,#60H,CC2</p><p><b>  CLR A</b></p><p>  CC2: MOV 40H,A</p><p>  DD0: JNB P3.3,DD1 ;判斷p3.3是否按下</p><p>

18、;<b>  SJMP EE0</b></p><p>  DD1: JNB P3.3,LPP2 ;判斷p3.3是否松開(kāi),松開(kāi)分鐘加1</p><p><b>  MOV A,41H</b></p><p>  ADD A,#01H</p><p><b>  DA A</b&g

19、t;</p><p>  CJNE A,#60H,DD2</p><p><b>  CLR A</b></p><p>  DD2: MOV 41H,A</p><p>  EE0: JNB P3.4,EE1 ;判斷p3.4是否按下</p><p><b>  SJMP HH

20、1</b></p><p>  EE1: JNB P3.4,LPP3 ;判斷p3.4是否松開(kāi),松開(kāi)時(shí)鐘加1</p><p><b>  MOV A,42H</b></p><p>  ADD A,#01H</p><p><b>  DA A</b></p><

21、p>  CJNE A,#24H,EE2</p><p><b>  CLR A</b></p><p>  EE2: MOV 42H,A</p><p>  HH1:LCALL LP</p><p>  JNB P3.5,LP1</p><p>  DJNZ R1,CC0</p>

22、<p>  DJNZ R2,AAA</p><p>  DJNZ R3,AAB</p><p><b>  LCALL B2</b></p><p><b>  SJMP AAC</b></p><p>  LP1:JNB P3.5,LPP4</p><p> 

23、 LL: CLR 30H</p><p><b>  LCALL C0</b></p><p>  DJNZ R4,BB</p><p>  DJNZ R5,NN</p><p>  DJNZ R6,MM</p><p><b>  LCALL B2</b></p>

24、;<p><b>  SJMP VV</b></p><p>  LPP0:LCALL LP</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p>

25、;<p><b>  SJMP LPP</b></p><p>  LPP1:LCALL LP</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p&g

26、t;<p><b>  SJMP CC1</b></p><p>  LPP2:LCALL LP</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p&

27、gt;<p><b>  SJMP DD1</b></p><p>  LPP3:LCALL LP</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p

28、><p><b>  SJMP EE1</b></p><p>  LPP4:LCALL LP</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></

29、p><p><b>  SJMP LP1</b></p><p>  C0: JNB P3.2,C1 ;判斷p3.2是否為按下</p><p><b>  SJMP D0</b></p><p>  C1: JNB P3.2,LLP ;判斷p3.2是否松開(kāi),松開(kāi)秒鐘加1</p&g

30、t;<p><b>  MOV A,20H</b></p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  CJNE A,#60H,C2</p><p><b>  CLR A</b></p>&l

31、t;p>  C2: MOV 20H,A</p><p>  D0: JNB P3.3,D1 ;判斷p3.3是否按下</p><p><b>  SJMP E0</b></p><p>  D1: JNB P3.3,LLP1 ;判斷p3.3是否松開(kāi),松開(kāi)分鐘加1</p><p><b>

32、;  MOV A,21H</b></p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  CJNE A,#60H,D2</p><p><b>  CLR A</b></p><p>  D2: MOV 21H

33、,A</p><p>  E0: JNB P3.4,E1 ;判斷p3.4是否按下</p><p><b>  AJMP H0</b></p><p>  E1: JNB P3.4,LLP2 ;判斷p3.4是否松開(kāi),松開(kāi)時(shí)鐘加1</p><p><b>  MOV A,22H</b>

34、;</p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  CJNE A,#24H,E2</p><p><b>  CLR A</b></p><p>  E2: MOV 22H,A</p><p&g

35、t;  H0: LCALL LP</p><p><b>  RET</b></p><p>  LLP: LCALL LP</p><p>  NOP ;3個(gè)空指令是消除松開(kāi)時(shí)執(zhí)行指令的時(shí)間差</p><p><b>  NOP</b></p><

36、p><b>  NOP</b></p><p><b>  SJMP C1</b></p><p>  LLP1:LCALL LP</p><p><b>  NOP</b></p><p><b>  NOP</b></p><

37、p><b>  NOP</b></p><p><b>  SJMP D1</b></p><p>  LLP2:LCALL LP</p><p><b>  NOP</b></p><p><b>  NOP</b></p><

38、p><b>  NOP</b></p><p><b>  SJMP E1</b></p><p>  B2: MOV A,20H ;設(shè)置秒鐘</p><p>  ADD A,#01H</p><p><b>  DA A</b></p>

39、<p><b>  DEC A</b></p><p>  CJNE A,#5FH,A1</p><p><b>  CLR A</b></p><p><b>  MOV 20H,A</b></p><p>  MOV A,21H ;設(shè)置分鐘</p

40、><p>  ADD A,#01H</p><p><b>  DA A</b></p><p><b>  DEC A</b></p><p>  CJNE A,#5FH,A2</p><p><b>  CLR A</b></p><

41、p><b>  MOV 21H,A</b></p><p>  MOV A,22H ;設(shè)置時(shí)鐘</p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p><b>  MOV 22H,A</b></p>

42、;<p>  CJNE A,#24H,LOOP</p><p><b>  CLR A</b></p><p><b>  MOV 22H,A</b></p><p><b>  SJMP LOOP</b></p><p>  A1: INC A</p&

43、gt;<p><b>  MOV 20H,A</b></p><p><b>  SJMP LOOP</b></p><p>  A2: INC A</p><p><b>  MOV 21H,A</b></p><p>  LOOP:DJNZ R0,RR1&

44、lt;/p><p><b>  SETB P3.7</b></p><p>  RR1: MOV A,42H ;比較時(shí)鐘和鬧鐘的時(shí)間是否相等,相等把 XRL A,22H ; p3.7置高電平啟動(dòng)鬧鐘</p><p>  CJNE A,#00H,QQ</p><p>&

45、lt;b>  MOV A,41H</b></p><p><b>  XRL A,21H</b></p><p>  CJNE A,#00H,QQ</p><p><b>  MOV A,40H</b></p><p><b>  XRL A,20H</b>&

46、lt;/p><p>  CJNE A,#00H,QQ</p><p><b>  CLR P3.7</b></p><p>  MOV R0,#10</p><p><b>  QQ: RET</b></p><p>  LP: MOV P2,#01111111B</

47、p><p>  JNB 30H,WW</p><p><b>  MOV A,40H</b></p><p><b>  SJMP WW0</b></p><p>  WW: MOV A,20H ;顯示秒鐘的個(gè)位</p><p>  WW0: MOV B,#1

48、0H</p><p><b>  DIV AB</b></p><p><b>  MOV 50H,A</b></p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p><b>  M

49、OV P0,A</b></p><p><b>  LCALL DEL</b></p><p>  MOV A,P2 ;顯示秒鐘的十位</p><p><b>  RR A</b></p><p><b>  MOV P2,A</b></p&

50、gt;<p><b>  MOV A,50H</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  LCALL DEL</b></p><p>  MOV A,P2

51、 ;顯示'-'</p><p><b>  RR A</b></p><p><b>  MOV P2,A</b></p><p>  MOV P0,#01000000B</p><p><b>  LCALL DEL</b></p>

52、<p>  MOV A,P2 ;顯示分鐘的個(gè)位</p><p><b>  RR A</b></p><p><b>  MOV P2,A</b></p><p>  JNB 30H,WW1</p><p><b>  MOV A,41H</b>

53、</p><p><b>  SJMP WW2</b></p><p>  WW1: MOV A,21H</p><p>  WW2: MOV B,#10H</p><p><b>  DIV AB</b></p><p><b>  MOV 51H,A<

54、/b></p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  LCALL DEL</b></p><p>  MOV

55、A,P2 ;顯示分鐘的十位</p><p><b>  RR A</b></p><p><b>  MOV P2,A</b></p><p><b>  MOV A,51H</b></p><p>  MOVC A,@A+DPTR</p>

56、<p><b>  MOV P0,A</b></p><p><b>  LCALL DEL</b></p><p>  MOV A,P2 ;顯示'-'</p><p><b>  RR A</b></p><p><

57、b>  MOV P2,A</b></p><p>  MOV P0,#01000000B</p><p><b>  LCALL DEL</b></p><p>  MOV A,P2 ;顯示時(shí)鐘的個(gè)位</p><p><b>  RR A</b></p

58、><p><b>  MOV P2,A</b></p><p>  JNB 30H,WW4</p><p><b>  MOV A,42H</b></p><p><b>  SJMP WW5</b></p><p>  WW4: MOV A,22H<

59、;/p><p>  WW5: MOV B,#10H</p><p><b>  DIV AB</b></p><p><b>  MOV 52H,A</b></p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPT

60、R</p><p><b>  MOV P0,A</b></p><p><b>  LCALL DEL</b></p><p>  MOV A,P2 ;顯示時(shí)鐘的十位</p><p><b>  RR A</b></p><p&g

61、t;<b>  MOV P2,A</b></p><p><b>  MOV A,52H</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  LCALL DEL</b>

62、</p><p><b>  RET</b></p><p>  DEL: MOV R7,#150 ;顯示延遲150us</p><p><b>  DJNZ R7,$</b></p><p><b>  RET</b></p><p>  T

63、AB: DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH</p><p><b>  END</b></p><p><b>  總結(jié)</b></p><p>  在整個(gè)設(shè)計(jì)中我學(xué)到了在顯示程序中的一些方法,比如說(shuō)怎么實(shí)現(xiàn)動(dòng)態(tài)顯示,開(kāi)始的時(shí)候總是顯示不了,在經(jīng)過(guò)把位選放慢就可以知道自己在

64、設(shè)計(jì)程序中先顯示后左移,所以沒(méi)有顯示的余光,使得顯示出現(xiàn)異常。在經(jīng)過(guò)先左移后顯示的情況下動(dòng)態(tài)能夠正常顯示。還有在設(shè)定鬧鐘的時(shí)候經(jīng)常出現(xiàn)到了鬧鐘的設(shè)定時(shí)間不跳轉(zhuǎn),在經(jīng)過(guò)在鬧鐘的設(shè)定的同時(shí)還要進(jìn)行時(shí)間的調(diào)用,使得這次程序使用的都是程序的調(diào)用,把鬧鐘的設(shè)定看作一個(gè)主程序,就相當(dāng)于p3.5按下之后進(jìn)入鬧鐘的設(shè)定和顯示,之后一直在查詢(xún)p3.5再一次的按下,如果沒(méi)有按下就一直查詢(xún)是否有在調(diào)整鬧鐘。若再一次按下p3.5就進(jìn)入時(shí)間的設(shè)置和顯示。在顯示中

65、要設(shè)定一個(gè)參考量來(lái)決定是顯示時(shí)間還是鬧鐘,我在程序中用(30H)的數(shù)來(lái)作為參考量,如果是“1”則顯示鬧鐘((40H)、(41H)、(42H))里面的數(shù),如果是“0”則顯示時(shí)間((20H)、(21H)、(22H))里面的數(shù)。總的來(lái)說(shuō)通過(guò)這次課程設(shè)計(jì)我學(xué)到了如何去編寫(xiě)時(shí)間程序、鬧鐘的設(shè)定程序、顯示程序。</p><p><b>  參考文獻(xiàn)</b></p><p>  單

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論