電子鐘的設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  廣東科學(xué)技術(shù)職業(yè)技術(shù)學(xué)院</p><p><b>  機(jī)械與電子工程學(xué)院</b></p><p><b>  課程設(shè)計(jì)報(bào)告書</b></p><p>  課 題 名 稱 </p><p>  學(xué) 生 姓 名

2、 </p><p>  系、年級(jí)專業(yè) </p><p><b>  一、方案比較</b></p><p><b>  1.設(shè)計(jì)課題任務(wù)</b></p><p&g

3、t;  學(xué)生在教師指導(dǎo)下,綜合運(yùn)用所學(xué)知識(shí)完成基于51單片機(jī)的電子鐘的設(shè)計(jì)。要求格式為:XX XX XX,由左向右分別為:時(shí)、分、秒。</p><p><b>  2.功能要求說(shuō)明</b></p><p>  學(xué)生應(yīng)通過課程設(shè)計(jì)鞏固和加深擴(kuò)大所學(xué)的理論知識(shí),掌握單片機(jī)應(yīng)用系統(tǒng)的硬件、軟件及其接口的設(shè)計(jì)和調(diào)試方法,并根據(jù)調(diào)試結(jié)果,寫出設(shè)計(jì)報(bào)告。設(shè)計(jì)報(bào)告應(yīng)包括任務(wù)書、器件

4、選型及設(shè)計(jì)思路、軟硬件設(shè)計(jì)過程說(shuō)明、調(diào)試結(jié)果總結(jié)及分析等內(nèi)容,并附電路原理圖及程序清單。</p><p>  3.設(shè)計(jì)課題總體方案介紹及工作原理說(shuō)明</p><p>  本電子鐘主要由單片機(jī)、4*1獨(dú)立鍵盤、顯示接口電路和復(fù)位電路構(gòu)成,設(shè)計(jì)課題的總體方案如圖1.1所示: </p><p>  圖1.1 總體設(shè)計(jì)方案圖</p><p>  本

5、電子鐘的所有的軟件、參數(shù)均存放在STC89C52的Flash ROM和內(nèi)部RAM中,減少了芯片的使用數(shù)量簡(jiǎn)化了整體電路也降低了整機(jī)的工作電流。由于STC89C52芯片內(nèi)部Flash ROM有8KB,RAM有256個(gè)字節(jié),故軟件下載編譯時(shí)有足夠的存儲(chǔ)空間。鍵盤采用動(dòng)態(tài)掃描方式。利用單片機(jī)定時(shí)器及計(jì)數(shù)器產(chǎn)生定時(shí)效果通過編程形成數(shù)字鐘效果,再利用數(shù)碼管動(dòng)態(tài)掃描顯示單片機(jī)內(nèi)部處理的數(shù)據(jù),同時(shí)通過端口讀入當(dāng)前外部控制狀態(tài)來(lái)改變程序的不同狀態(tài),實(shí)現(xiàn)

6、不同功能。</p><p><b>  二、硬件設(shè)計(jì)</b></p><p>  1.設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡(jiǎn)要介紹</p><p>  本設(shè)計(jì)的硬件系統(tǒng)主要采用以下基本模塊來(lái)實(shí)現(xiàn),單片機(jī)最小系統(tǒng)模塊,輸入模塊、輸出模塊、電源模塊。</p><p>  (1).單片機(jī)最小系統(tǒng)模塊:包括低功耗、高性能CMOS8位微控制

7、器STC89C52;復(fù)位電路;晶振電路。本本模塊STC89C52系統(tǒng)控制核心,單片機(jī)系統(tǒng)復(fù)位由復(fù)位電路完成,單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端位位引腳XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容。這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。 </p><p> ?。?).輸入模塊:本模塊共用到了5個(gè)按鍵,1個(gè)電源開關(guān),一個(gè)復(fù)位鍵,單片機(jī)運(yùn)行期間,利用按鍵完成復(fù)位操作。

8、3個(gè)按鍵獨(dú)立式鍵盤,S1鍵控制電子鐘的啟動(dòng)\狀態(tài),S2鍵為加1鍵,S3鍵為減1鍵。且S1、S2、S3任一鍵都獨(dú)自連一個(gè)I/O(P1.0、P1.1、P1.2)口線,說(shuō)明它們可以獨(dú)立實(shí)現(xiàn)相應(yīng)的電子鐘功能。</p><p> ?。?).輸出模塊:本次設(shè)計(jì)顯示為8位,采用四個(gè)二位一體數(shù)碼管(共陽(yáng)極)作為顯示窗口,既可以節(jié)約成本又能簡(jiǎn)化電路。數(shù)碼管驅(qū)動(dòng)為74LS245芯片。</p><p>  (4

9、).電源模塊:現(xiàn)在市面上銷售的編程器有很多都是由PC機(jī)的USB口直接供電為了降低本設(shè)計(jì)的成本及節(jié)省設(shè)計(jì)時(shí)間,沒有另外設(shè)計(jì)編程器,而直接購(gòu)買了市場(chǎng)上的USB供電及下載器。</p><p>  2.設(shè)計(jì)課題電路原理圖、元器件布局圖</p><p>  3.設(shè)計(jì)課題元器件清單</p><p>  設(shè)計(jì)課題元器件清單如表2.1所示。</p><p>

10、  表2.1 設(shè)計(jì)所用元器件清單</p><p><b>  三、軟件設(shè)計(jì)</b></p><p>  1.設(shè)計(jì)課題使用單片機(jī)資源的情況</p><p>  設(shè)計(jì)課題使用單片機(jī)資源的情況如下:</p><p>  P0口輸出數(shù)碼管段選信號(hào),P3口輸出數(shù)碼管位選信號(hào);晶振11.0592M;調(diào)整選擇鍵SET_KEY:P1.

11、0;通過選擇鍵選擇調(diào)整位,選中位閃爍;增加鍵ADD_KEY:P1.1;按一次使選中位加1;減少鍵DEC_KEY:P1.2;按一次使選中位減1;P2.1為蜂鳴器發(fā)聲報(bào)時(shí);50H-5FH;16個(gè)寄存器單元作為顯示單元; </p><p>  50H 用于控制秒基準(zhǔn)時(shí)鐘源的產(chǎn)生;51H 清零秒寄存器;</p><p>  52H 清零分寄存器;53H 清零時(shí)寄存器;</p><

12、;p>  5FH 用于秒個(gè)位;5EH 用于秒十位;</p><p>  5DH 用于分個(gè)位;5CH 用于分十位;</p><p>  5BH 用于時(shí)個(gè)位;5AH 用于時(shí)十位;</p><p>  54H 用于控制調(diào)時(shí)閃爍;堆棧棧底:70H。</p><p>  2.設(shè)計(jì)課題軟件系統(tǒng)個(gè)模塊功能簡(jiǎn)要介紹</p><p&g

13、t;  本設(shè)計(jì)的軟件系統(tǒng)主要采用以下基本模塊來(lái)實(shí)現(xiàn),主程序、中斷服務(wù)程序、鍵盤輸入程序模塊、數(shù)碼管及其驅(qū)動(dòng)模塊和延時(shí)模塊。</p><p>  主程序:主要是用于對(duì)輸入信號(hào)的處理、輸出信號(hào)的控制和對(duì)各個(gè)功能程序模塊的運(yùn)用及其控制。</p><p>  中斷服務(wù)程序:主要是用于電子鐘的準(zhǔn)確運(yùn)行、數(shù)據(jù)輸入過程中的閃爍。</p><p>  鍵盤輸入程序模塊:主要是用于確

14、定按鍵并得到特定的鍵碼值。</p><p>  數(shù)碼管及其驅(qū)動(dòng)模塊:主要是用于驅(qū)動(dòng)數(shù)碼管及利用數(shù)碼管顯示時(shí)間。</p><p>  延時(shí)模塊:程序中有兩種延時(shí)子程序,一種是短延時(shí)用于判鍵按下等,一種是長(zhǎng)延時(shí)。</p><p>  3.設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖</p><p>  系統(tǒng)軟件采用匯編語(yǔ)言按模塊化方式進(jìn)行設(shè)計(jì),然后通過Keil軟

15、件開發(fā)平臺(tái)將程序轉(zhuǎn)變成十六進(jìn)制程序語(yǔ)言,接著使用Proteous 進(jìn)行仿真,讀出顯示數(shù)據(jù)。</p><p>  主程序流程框圖如3.1所示;加1子程序如3.2所示;</p><p>  中斷服務(wù)程序程序如3.3所示;</p><p>  鍵盤掃描子程序框圖如3.4所示;</p><p>  顯示子程序框圖如3.5所示;</p>

16、<p>  圖3.1 主程序流程框圖</p><p>  圖3.2 加1子程序流程框圖</p><p>  圖3.3 中斷子程序</p><p>  圖3.4 鍵盤掃描子程序</p><p>  圖3.5 顯示子程序</p><p>  4.設(shè)計(jì)課題軟件系統(tǒng)程序清單</p><p

17、><b>  程序入口</b></p><p>  ;----------- </p><p>  ORG 0000H ;程序入口地址 </p><p>  LJMP START </p><p>  ORG 000BH ;定時(shí)器0

18、中斷入口地址 </p><p>  LJMP TIMET0</p><p>  ORG 1000H</p><p>  ;----------------------------------</p><p><b>  ;顯P.程序</b></p><p>  ;功能:可以在8個(gè)數(shù)碼閃

19、爍移位進(jìn)行屏保</p><p>  ;----------------------------------</p><p>  START: MOV R6, #2 ;閃爍次數(shù)</p><p>  MOV A, #01H ;位選</p><p>  TT:MOV P3

20、, A</p><p>  MOV P0, #0CH ;段碼"P."</p><p>  LCALL DELAY</p><p>  MOV P3, #00H</p><p>  DJNZ R6, TT</p><p>  L

21、CALL DELAY</p><p>  LCALL DELAY1</p><p><b>  RR A</b></p><p>  JB P1.0, TT ;鍵是否按下,沒按下則轉(zhuǎn)移</p><p>  LCALL DELAY ;延時(shí)去抖</p>

22、;<p>  JNB P1.0, KAI ;再次判斷鍵是否按下</p><p>  KAI:SETB P1.0</p><p>  CLR A ;狀態(tài)恢復(fù)</p><p>  MOV P0, #0FFH</p><p>  LCALL DELAY1&

23、lt;/p><p>  SETB 48H ;用于調(diào)時(shí)閃爍標(biāo)志</p><p>  SETB 47H ;用于產(chǎn)生脈沖用于調(diào)時(shí)快進(jìn)的脈沖</p><p>  MOV R1, #0 ;鍵功能標(biāo)志:0計(jì)時(shí)、1調(diào)時(shí)、2調(diào)分、3調(diào)秒</p><p>

24、;  ;-------------------------------</p><p>  ;清16位寄存器及初始化</p><p>  ;50H 用于控制秒基準(zhǔn)時(shí)鐘源的產(chǎn)生</p><p>  ;51H 清零秒寄存器</p><p>  ;52H 清零分寄存器</p><p>  ;53H 清零時(shí)寄存器</p&

25、gt;<p>  ;5FH 用于秒個(gè)位;5EH 用于秒十位</p><p>  ;5DH 用于分個(gè)位;5CH 用于分十位</p><p>  ;5BH 用于時(shí)個(gè)位;5AH 用于時(shí)十位</p><p>  ;54H 用于控制調(diào)時(shí)閃爍</p><p>  ;-------------------------------</p

26、><p>  MOV R0, #50H ;初始化</p><p>  MOV R6, #10H</p><p><b>  CLEARJCQ:</b></p><p>  MOV @R0, #00H ;清寄存器</p><p>

27、;<b>  INC R0</b></p><p>  DJNZ R6, CLEARJCQ</p><p>  MOV IP, #02H</p><p><b>  SETB EA</b></p><p>  SETB ET0</p>&l

28、t;p>  MOV TMOD, #01H ;設(shè)定定時(shí)器0工作方式1</p><p>  MOV TH0, #3CH</p><p>  MOV TL0, #0B0H ;賦定時(shí)初值,定時(shí)50ms</p><p>  SETB TR0 ;啟動(dòng)定時(shí)器0</p>

29、<p>  MOV SP, #70H ;堆棧</p><p><b>  ;--------</b></p><p><b>  ;主程序 </b></p><p>  ;-------- </p><p>  MAIN:LCALL DISPLAY<

30、;/p><p>  LCALL KEY_SCAN</p><p>  JZ MAIN</p><p>  LCALL SET_KEY</p><p>  JB 46H, MAIN ;如果已進(jìn)行調(diào)時(shí)快進(jìn),則不再執(zhí)行下</p><p><b>  面的調(diào)整</

31、b></p><p>  LCALL ADD_KEY ;調(diào)用增加鍵處理子程序,加一</p><p>  LCALL DEC_KEY ;調(diào)用減少鍵處理子程序,減一</p><p>  LJMP MAIN ;重新循環(huán)</p><p>  ;--------------

32、-</p><p><b>  ; 顯示處理程序</b></p><p>  ;---------------</p><p>  DISPLAY:MOV A, 51H</p><p>  ANL A, #0FH</p><p>  MOV 5FH, A

33、 ;轉(zhuǎn)換出秒個(gè)位,存入5FH</p><p>  MOV A, 51H</p><p>  ANL A, #0F0H</p><p><b>  SWAP A</b></p><p>  MOV 5EH, A ;轉(zhuǎn)換出秒十位,存入5EH</p

34、><p>  JB 46H, MIN ;如果調(diào)時(shí)快進(jìn),則跳過閃爍處理程序</p><p>  CJNE R1, #3,MIN ;如果R1為3,閃爍秒位待調(diào)整</p><p>  JB 48H, MIN</p><p>  MOV 5FH, #0AH ;使該位為10,查表

35、得到使該位不顯示</p><p>  MOV 5EH, #0AH</p><p>  MIN:MOV A, 52H</p><p>  ANL A, #0FH</p><p>  MOV 5DH, A ;轉(zhuǎn)換出分個(gè)位,存入5DH</p><p>  M

36、OV A, 52H</p><p>  ANL A, #0F0H</p><p><b>  SWAP A</b></p><p>  MOV 5CH, A ;轉(zhuǎn)換出分十位,存入5CH</p><p>  JB 46H, HOUR</p>

37、;<p>  CJNE R1, #2,HOUR ;如果R1為2,閃爍分位待調(diào)整</p><p>  JB 48H, HOUR</p><p>  MOV 5DH, #0AH</p><p>  MOV 5CH, #0AH</p><p>  HOUR: MOV A,

38、 53H</p><p>  ANL A, #0FH</p><p>  MOV 5BH, A ;轉(zhuǎn)換出時(shí)個(gè)位,存入5BH</p><p>  MOV A, 53H</p><p>  ANL A, #0F0H</p><p><b&g

39、t;  SWAP A</b></p><p>  MOV 5AH, A ;轉(zhuǎn)換出時(shí)十位,存入5AH</p><p>  JB 46H, DISP</p><p>  CJNE R1, #1,DISP ;如果R1為1,閃爍時(shí)位待調(diào)整</p><p>  JB

40、 48H, DISP</p><p>  MOV 5BH, #0AH ;使該位為10,查表得到使該位不顯示</p><p>  MOV 5AH, #0AH</p><p>  ;-------------------</p><p>  ;數(shù)碼管動(dòng)態(tài)掃描顯示</p><p>  ;

41、-------------------</p><p>  DISP:MOV DPTR, #TABLE</p><p>  MOV A, 5FH</p><p>  MOVC A, @A+DPTR</p><p>  MOV P0, A</p><p>  SETB

42、 P3.7</p><p>  LCALL DELAY</p><p>  CLR P3.7 ;顯示秒個(gè)位</p><p>  MOV A, 5EH</p><p>  MOVC A, @A+DPTR</p><p>  MOV P0,

43、 A</p><p>  SETB P3.6</p><p>  LCALL DELAY</p><p>  CLR P3.6 ;顯示秒十位</p><p>  MOV A, #0BFH</p><p>  MOV P0, A</p&g

44、t;<p>  SETB P3.5</p><p>  LCALL DELAY</p><p>  CLR P3.5 ;顯示“-”</p><p>  MOV A, 5DH</p><p>  MOVC A, @A+DPTR</p><p>  MO

45、V P0, A</p><p>  SETB P3.4</p><p>  LCALL DELAY</p><p>  CLR P3.4 ;顯示分個(gè)位</p><p>  MOV A, 5CH</p><p>  MOVC A,

46、 @A+DPTR</p><p>  MOV P0, A</p><p>  SETB P3.3</p><p>  LCALL DELAY</p><p>  CLR P3.3 ;顯示分十位</p><p>  MOV A, #0BFH</p&g

47、t;<p>  MOV P0, A</p><p>  SETB P3.2</p><p>  LCALL DELAY</p><p>  CLR P3.2 ;顯示“-”</p><p>  MOV A, 5BH</p><p> 

48、 MOVC A, @A+DPTR</p><p>  MOV P0, A</p><p>  SETB P3.1</p><p>  LCALL DELAY</p><p>  CLR P3.1 ;顯示時(shí)個(gè)位</p><p>  MOV

49、 DPTR, #TABLE1 ;該位使用TABLE1以消除時(shí)的十位置0</p><p>  MOV A, 5AH</p><p>  MOVC A, @A+DPTR</p><p>  MOV P0, A</p><p>  SETB P3.0</p><

50、p>  LCALL DELAY</p><p>  CLR P3.0 ;顯示時(shí)十位</p><p><b>  RET</b></p><p>  ;-----------------</p><p>  ;定時(shí)器中斷1s程序</p><p>  ;----

51、-------------</p><p>  TIMET0:PUSH ACC ;保護(hù)現(xiàn)場(chǎng)</p><p>  PUSH PSW</p><p>  MOV TH0, #3CH</p><p>  MOV TL0, #0B0H</p>

52、<p>  CPL 47H ;產(chǎn)生脈沖用于調(diào)時(shí)快進(jìn)</p><p>  INC 54H</p><p>  MOV A, 54H</p><p>  CJNE A, #10,ADD_TIME;產(chǎn)生0.5秒,用于調(diào)時(shí)閃爍</p><p>  CPL

53、 48H ;取反調(diào)時(shí)閃爍標(biāo)志位</p><p>  MOV 54H, #00H</p><p>  ADD_TIME:INC 50H</p><p>  MOV A, 50H</p><p>  CJNE A, #10,ZDBACD;整點(diǎn)報(bào)

54、時(shí)時(shí)蜂鳴器響延遲時(shí)間</p><p>  SETB P2.1 ;關(guān)蜂鳴器</p><p>  ZDBACD:CJNE A, #20,RETI1 ;產(chǎn)生1秒時(shí)鐘</p><p>  MOV 50H, #00H ;一秒鐘時(shí)間到,清零50H</p><p>

55、;  MOV A, 51H</p><p>  ADD A, #01H</p><p>  DA A ;十進(jìn)制調(diào)整</p><p>  MOV 51H,A</p><p>  CJNE A,#60H,RETI1</p>

56、<p>  MOV 51H,#00H ;一分鐘到</p><p>  MOV A,52H</p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  MOV 52H,A</p><p

57、>  CJNE A,#60H,RETI1</p><p>  CLR P2.1</p><p>  MOV 52H,#00H ;一小時(shí)到,開蜂鳴器,清分顯示</p><p>  MOV A,53H</p><p>  ADD A,#01H</p><p&g

58、t;<b>  DA A</b></p><p>  MOV 53H,A</p><p>  CJNE A,#24H,RETI1</p><p>  MOV 53H,#00H ;到24點(diǎn),清零小時(shí)</p><p>  RETI1:POP PSW</p>

59、<p>  POP ACC ;恢復(fù)現(xiàn)場(chǎng)</p><p>  RETI ;中斷返回</p><p>  ;-------------</p><p><b>  ;鍵盤掃描程序</b></p><p>  ;R4設(shè)置為00H是為了在進(jìn)入長(zhǎng)按處理前加

60、長(zhǎng)延時(shí),以區(qū)分長(zhǎng)按與短按鍵</p><p>  ;-------------</p><p>  KEY_SCAN:CLR 46H ;關(guān)閉調(diào)時(shí)快進(jìn)標(biāo)志</p><p>  MOV P1,#0FFH ;將P1口設(shè)置成輸入狀態(tài)</p><p>  MOV A,P1</p>

61、<p><b>  CPL A</b></p><p>  ANL A, #07H ;1口低3位連接3個(gè)按鍵,只判斷該3位</p><p>  JZ EXIT_KEY</p><p>  LCALL DELAY ;延時(shí)去抖動(dòng)</p>

62、<p>  MOV A, P1 ;重新判斷</p><p><b>  CPL A</b></p><p>  ANL A, #07H</p><p>  JZ EXIT_KEY</p><p>  MOV R5, A</p>

63、<p>  MOV R4, #00H ;用于控制調(diào)時(shí)快進(jìn)速度</p><p>  LOOP: LCALL DISPLAY ;進(jìn)入長(zhǎng)按處理</p><p>  MOV A, P1</p><p><b>  CPL A</b></p><

64、;p>  ANL A, #07H</p><p>  JB 47H, LOOP1</p><p>  INC R4 ;調(diào)時(shí)快進(jìn)間隔時(shí)間基準(zhǔn)加1</p><p>  LOOP1: CJNE R1, #03H,LOOP2 ;如果調(diào)秒時(shí)長(zhǎng)按,則不處理</p><p&g

65、t;  LJMP LOOP3</p><p>  LOOP2: CJNE R4, #99H,LOOP3</p><p>  MOV R4, #70H ;確認(rèn)長(zhǎng)按后,加快調(diào)時(shí)快進(jìn)速度</p><p>  SETB 46H</p><p>  LCALL ADD_KEY</p>

66、;<p>  LCALL DEC_KEY</p><p>  LOOP3: JNZ LOOP ;等待鍵釋放</p><p>  MOV A, R5 ;輸出鍵值</p><p><b>  RET</b></p><p>  EXIT

67、_KEY:RET</p><p>  ;------------</p><p><b>  ;延時(shí)子程序</b></p><p>  ;------------</p><p>  DELAY:MOV R7,#200 </p><p>  DJNZ R7,$</p>

68、<p><b>  RET</b></p><p>  DELAY1:MOV R3,#50</p><p>  MOV TMOD,#00H</p><p>  MOV TH1,#63H</p><p>  MOV TL1,#18H</p><p>  SETB

69、 TR1</p><p>  LP1:JBC TF1,LP2</p><p>  SJMP LP1</p><p>  LP2:MOV TH1,#63H</p><p>  MOV TL1,#18H</p><p>  DJNZ R3,LP1</p><p>

70、<b>  RET </b></p><p>  ;-----------------</p><p><b>  ;選擇鍵處理子程序</b></p><p>  ;-----------------</p><p>  SET_KEY:CJNE R5,#01H,EXIT ;選擇鍵鍵

71、值</p><p>  INC R1 ;調(diào)整選擇功能標(biāo)志加一</p><p>  CJNE R1,#4,EXIT</p><p>  MOV R1,#0</p><p>  MOV 54H,#00H ;調(diào)時(shí)閃爍清零 </p><p>&

72、lt;b>  RET</b></p><p>  ;----------</p><p><b>  ;加1子程序</b></p><p>  ;----------</p><p>  ADD_KEY:CJNE R5,#02H,EXIT ;加1鍵值</p><p>

73、;  CJNE R1,#01H,NEXT1 ;選擇鍵功能標(biāo)志為1調(diào)時(shí),否則跳出</p><p>  MOV A,53H</p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  MOV 53H,A</p>&l

74、t;p>  CJNE A,#24H,EXIT</p><p>  MOV 53H,#00H</p><p>  NEXT1:CJNE R1,#02H,NEXT2 ;選擇鍵功能標(biāo)志為2調(diào)分,否則跳出</p><p>  MOV A,52H</p><p>  ADD A,#01H</p&g

75、t;<p><b>  DA A</b></p><p>  MOV 52H,A</p><p>  CJNE A,#60H,EXIT</p><p>  MOV 52H,#00H</p><p>  NEXT2:CJNE R1,#03H,EXIT ;選擇鍵功能標(biāo)

76、志為3調(diào)秒,否則跳出</p><p>  MOV A,51H</p><p>  ADD A,#01H</p><p><b>  DAA</b></p><p>  MOV 51H,A</p><p>  CJNE A,#60H,EXIT</p>

77、<p>  MOV 51H,#00H ;如加1鍵按下直接清零秒</p><p><b>  RET</b></p><p>  ;----------</p><p><b>  ;減1子程序</b></p><p>  ;---------- </p>

78、<p>  DEC_KEY:CJNE R5,#04H,EXIT ;減1鍵鍵值</p><p>  CJNE R1,#01H,NEXT3 ;選擇鍵功能標(biāo)志為1調(diào)時(shí),否則跳出</p><p>  MOV A,53H</p><p>  ADD A,#99H</p><p><b>

79、  DA A</b></p><p>  MOV 53H,A</p><p>  CJNEA,#99H,EXIT</p><p>  MOV 53H,#23H</p><p>  NEXT3:CJNE R1,#02H,NEXT4 ;選擇鍵功能標(biāo)志為2調(diào)分,否則跳出</p><

80、;p>  MOV A,52H</p><p>  ADD A,#99H</p><p><b>  DA A</b></p><p>  MOV 52H,A</p><p>  CJNE A,#99H,EXIT</p><p>  MOV 52H,#

81、59H</p><p>  NEXT4:CJNE R1,#03H,EXIT ;選擇鍵功能標(biāo)志為3調(diào)秒,否則跳出</p><p>  MOV A,51H</p><p>  ADD A,#99H</p><p><b>  DA A</b></p><p>  MO

82、V 51H,A</p><p>  CJNE A,#99H,EXIT</p><p>  MOV 51H,#59H</p><p><b>  RET</b></p><p>  ;-----------</p><p><b>  ;返回子程序</b>&

83、lt;/p><p>  ;----------- </p><p><b>  EXIT:RET</b></p><p>  ;-----------------</p><p><b>  ;數(shù)碼管字形編碼表</b></p><p>  ;-----------------&l

84、t;/p><p>  TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH </p><p>  ;"0","1","2","3","4","5","6","7",&quo

85、t;8"",9","不顯示"</p><p>  TABLE1:DB 0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;小時(shí)編碼</p><p>  ;"不顯示","1","2","3","4&quo

86、t;,"5","6","7","8","9","不顯示"</p><p><b>  END</b></p><p><b>  四、系統(tǒng)調(diào)試及結(jié)論</b></p><p>  1.設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使

87、用說(shuō)明</p><p>  本設(shè)計(jì)為基于單片機(jī)的電子鐘的設(shè)計(jì)。剛開始,我們很多地方理不清頭緒,無(wú)從下手,但通過認(rèn)真研究設(shè)計(jì)課題,找書上網(wǎng)查資料買元件,確定基本設(shè)計(jì)方案,對(duì)所用芯片功能進(jìn)行查找、調(diào)試,然后畫電路圖制PCB板、打孔、溶銅、焊接等,真的經(jīng)歷了許多困難,卻積累了很多寶貴的經(jīng)驗(yàn),本設(shè)計(jì)用2個(gè)四位一體的共陽(yáng)數(shù)碼管做為顯示器,它顯示時(shí)間值;設(shè)計(jì)中有三個(gè)按鍵,其中S1為啟動(dòng)/選擇調(diào)整位置,S2為加控制鍵 S3為減

88、控制鍵,當(dāng)整點(diǎn)時(shí)間到時(shí),蜂鳴器報(bào)警。這樣的結(jié)果與設(shè)計(jì)要求完全相符,本設(shè)計(jì)成功。完成了設(shè)計(jì)任務(wù)。</p><p>  2.設(shè)計(jì)課題的仿真結(jié)果</p><p>  在Proteus ISIS的Debug菜單中選擇Execute,運(yùn)行程序,系統(tǒng)仿真結(jié)果如圖4.1與4.2所示。</p><p><b>  實(shí)現(xiàn)功能:</b></p>&l

89、t;p>  可調(diào)整運(yùn)行的電子鐘具有三種工作狀態(tài):“P.”狀態(tài)、運(yùn)行狀態(tài)、調(diào)整狀態(tài)。</p><p> ?。?).“P.”狀態(tài),依靠上電或按復(fù)位鍵進(jìn)入,在此狀態(tài)下,按S2、S3鍵均無(wú)效,</p><p>  按S1鍵有效,進(jìn)入運(yùn)行狀態(tài);</p><p> ?。?).運(yùn)行狀態(tài),在此狀態(tài)下,按S2、S3鍵均無(wú)效,只有按S1鍵有效,按下S1鍵后,退出運(yùn)行狀態(tài),進(jìn)入調(diào)整

90、狀態(tài);</p><p> ?。?).調(diào)整狀態(tài),按S1鍵進(jìn)入時(shí)、分、秒的閃爍,在此狀態(tài)下,按S2(+1鍵)、</p><p>  S3(-1鍵)鍵均有效;調(diào)整結(jié)束后必須按S1鍵,即可退出調(diào)整狀態(tài),進(jìn)入</p><p>  運(yùn)行狀態(tài)。在調(diào)整狀態(tài)時(shí)長(zhǎng)按S2、S3時(shí)可以連加及連減。</p><p>  時(shí)間顯示格式為:時(shí)-分-秒; </p>

91、;<p>  圖4.1 “P.”運(yùn)行狀態(tài)仿真</p><p>  圖4.2 時(shí)鐘運(yùn)行狀態(tài)仿真</p><p>  3.設(shè)計(jì)課題的誤差分析</p><p>  該電子鐘在運(yùn)行中存在一定的誤差,誤差產(chǎn)生有三種可能,首先是采用的計(jì)時(shí)方案是軟件計(jì)時(shí)的,計(jì)時(shí)優(yōu)勢(shì)利用中斷來(lái)實(shí)現(xiàn)。而當(dāng)電子鐘運(yùn)行時(shí)間1秒時(shí),又得去執(zhí)行中斷程序,這個(gè)過程是需要時(shí)間的,所以就產(chǎn)生了一

92、定的誤差,當(dāng)然這個(gè)誤差是避免不了的,其次還有硬件系統(tǒng)也有一定的影響。第三,設(shè)計(jì)用到11.0592MHz的晶振,計(jì)算是滿20次為一秒鐘,但實(shí)際會(huì)慢很多。</p><p><b>  五、參考文獻(xiàn)</b></p><p>  [1]李朝清.單片機(jī)原理與接口技術(shù)[M].北京航空航天大學(xué)出版社。2005.10. </p><p>  [2]耿永剛.單片

93、機(jī)與接口應(yīng)用技術(shù)[M].華東師范大學(xué)出版社.2008.4.</p><p>  [3]范立南, 謝子殿. 單片機(jī)原理及應(yīng)用教程[M].北京大學(xué)出版社. 2006.1.</p><p>  [4]梅麗鳳.王艷秋,汪毓鐸. 單片機(jī)原理及接口技術(shù)[M].清華大學(xué)出版社.2003.5.</p><p>  [5]何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京航空航天大學(xué)出版社.20

溫馨提示

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

評(píng)論

0/150

提交評(píng)論