2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩15頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、<p>  設計一臺自動打鈴系統</p><p><b>  一、設計任務</b></p><p>  用單片機器件為主體,設計一臺自動打鈴系統。</p><p> ?。?)按照設計標準,畫出系統框圖和系統硬件電路圖。</p><p> ?。?)完成該課題的程序設計,提交程序設計框圖及程序設計清單。</p

2、><p> ?。?)提交課程設計報告</p><p><b>  二、設計要求</b></p><p><b> ?。ㄒ唬┗疽?lt;/b></p><p> ?。?)基本計時和顯示功能(用12小時制顯示)。包括上下午標志,時、分的數字顯示,秒信號指示。</p><p> ?。?)

3、能設置當前時間(含上、下午,時,分)</p><p> ?。?)能實現基本打鈴功能,規定:</p><p>  上午6:00起床鈴:打鈴5秒、停2秒、再打鈴5秒。</p><p>  下午10:30熄燈鈴:打鈴5秒、停2秒、再打鈴5秒。</p><p>  鈴聲可用小喇叭播放,凡是用到鈴聲功能的均按此處理</p><p&g

4、t;<b> ?。ǘ┌l揮部分</b></p><p> ?。?)增加整點報時功能,整點時響鈴5秒,要求有控制啟動和關閉功能。</p><p> ?。?)增加調整起床鈴、熄燈鈴時間的功能。</p><p> ?。?)增設上午4節課的上下課打鈴功能,規定如下:</p><p>  7.30 上課,8.20下課:8.30上課

5、,9.20下課;9.40 上課,10.30下課;10.40上課,11.30下課;每次鈴聲5秒。</p><p> ?。?)特色和創新自選。</p><p><b>  三、設計步驟</b></p><p> ?。?)設計能正常工作的一個單片機最小硬件系統,外圍電路包括設置鍵盤,LCD或LED的顯示屏;</p><p> 

6、?。?)進行軟件設計,利用單片機系統時鐘先設計一個高精度的內部時鐘系統,最小精確時間為期1秒;</p><p> ?。?)在秒計數器的基礎上設計一個24小時時鐘,并設計若干定時功能;</p><p> ?。?)設計打鈴執行機構,完成自動打鈴功能。</p><p>  四、課程設計說明書要求</p><p><b>  后面略....

7、..</b></p><p>  公開我的主要設計資料:</p><p><b>  主程序流程圖:</b></p><p><b>  匯編程序清單:</b></p><p>  /****************************************************

8、***********程序名稱:51單片機自動打鈴系統簡要說明:實現24小時制電子鐘,8位數碼管顯示,顯示時分秒    顯示格式:23-59-59(小時十位如果為0則不顯示)    到預定時間啟動蜂鳴器模擬打鈴,蜂鳴器BEEP:P3.7    打鈴方式分起床、熄燈鈴和上、下課鈴兩種    系統使用4只按鍵,

9、3只按鍵用來調整時間,另一只為強制打鈴按鈕    調整選擇鍵SET_KEY:P1.0;通過選擇鍵選擇調整位,選中位閃爍    增加鍵ADD_KEY:P1.1;按一次使選中位加1    減少鍵DEC_KEY;P1.2;按一次使選中位減1    如果長按ADD_KEY或DEC_KEY,識別后則進行調時快進,此時停止

10、閃爍    如果選中位是秒,則按增加鍵或減少鍵都是將秒清零    強制打鈴鍵DALING_KEY:P1.3;用來強制打鈴或強制關閉鈴聲    P0口輸出數碼管段選信號,P2口輸出數碼管位選信號。晶振12M編    寫:JiangX.net最后更</p><p><b>  O

11、RG 0300H</b></p><p>  /*****程序開始,初始化*****/   START:   SETB BEEP   ;關閉蜂鳴器(電鈴)  SETB 48H   ;使用一個bit位用于調時閃爍標志  SETB 47H  

12、; ;使用一個bit位用于產生脈沖用于調時快進時基  CLR  45H   ;關閉響鈴方式1標志  CLR  44H   ;關閉響鈴方式2標志  MOV R1,#0   ;調整選擇鍵功能標志:0正常走時、1調時、2調分、3調秒</p>&l

13、t;p>  MOV 20H,#00H  ;用于控制秒基準時鐘源的產生   MOV 21H,#00H  ;清零秒寄存器  MOV 22H,#00H  ;清零分寄存器  MOV 23H,#00H  ;清零時寄存器  MOV 24H,#00H  ;用于

14、控制調時閃爍的基準時鐘的產生   MOV IP,#02H   ;IP,IE初始化   MOV IE,#82H   MOV TMOD,#01H  ;設定定時器0工作方式1  MOV TH0,#3CH   MOV TL0,#0B0H  ;賦定時初值,定

15、時50ms     SETB TR0   ;啟動定時器0   MOV SP,#40H   ;重設堆棧指針</p><p>  /*****主程序*****/   MAIN:  CJNE R1,#00H,MAIN1 ;是否為正常走時狀態&

16、#160; LCALL BIJIAO1  ;調用起床、熄燈打鈴比較子程序  LCALL BIJIAO2  ;調用上、下課打鈴比較子程序  LCALL DALING1  ;調用響鈴方式1執行子程序  LCALL DALING2  ;調用響鈴方式2執行子程序MAIN1:  

17、 LCALL DISPLAY   ;調用顯示子程序  LCALL KEY_SCAN   ;調用按鍵檢測子程序   JZ MAIN    ;無鍵按下則返回重新循環  LCALL SET_KEY   ;調用選擇鍵處理子程序  JB 46H,MAI

18、N   ;如果已進行長按調整(調時快進),則不再執行下面的單步調整  LCALL ADD_KEY  ;調用增加鍵處理子程序  LCALL DEC_KEY  ;調用減少鍵處理子程序  LCALL DALING_KEY ;處理強制打鈴/強制關閉鈴聲鍵   LJMP MAIN

19、   ;重新循環  /*****定時中斷服務程序*****/ TIMER_0:</p><p>  ADD_TIME:  INC 20H      MOV A,20H   CJNE A,#20,RETI1 ;產生1秒基準時鐘   MOV 20

20、H,#00H   ;一秒鐘時間到,清零20H   MOV A,21H  ADD A,#01H  DA A       ;作十進制調整   MOV 21H,A   CJNE A,#60H,RETI1   MOV 21H,#00H

21、  ;一分鐘到   MOV A,22H   ADD A,#01H   DA A   MOV 22H,A   CJNE A,#60H,RETI1   MOV 22H,#00H   ;一小時到   MOV A,23H   ADD

22、 A,#01H   DA A   MOV 23H,A   CJNE A,#24H,RETI1   MOV 23H,#00H   ;到24點,清零小時 RETI1:   POP PSW       POP ACC   

23、0;;恢復現場  RETI     ;中斷返回</p><p>  /*****顯示處理*****/ DISPLAY:  MOV A,21H    ;秒  ANL A,#0FH   MOV 2FH,A   ;轉換出秒個位,存入

24、2FH   MOV A,21H   ANL A,#0F0H   SWAP A   MOV 2EH,A   ;轉換出秒十位,存入2EH  JB 46H,MIN   ;如果長按按鍵(調時快進),則跳過閃爍處理  CJNE R1,#3,MIN 

25、 ;如果R1為3,閃爍秒位待調整  JB 48H,MIN  MOV 2FH,#0AH  ;使該位為10,查表得到使該位不顯示的輸出  MOV 2EH,#0AH</p><p>  MIN:  MOV A,22H    ;分   ANL A,#0F

26、H   MOV 2DH,A   ;轉換出分個位,存入2DH   MOV A,22H   ANL A,#0F0H   SWAP A   MOV 2CH,A   ;轉換出分十位,存入2CH  JB 46H,HOUR   ;

27、如果長按按鍵(調時快進),則跳過閃爍處理  CJNE R1,#2,HOUR  ;如果R1為2,閃爍分位待調整   JB 48H,HOUR  MOV 2DH,#0AH  ;使該位為10,查表得到使該位不顯示的輸出  MOV 2CH,#0AH</p><p>  HOUR: &#

28、160;MOV A,23H    ;時   ANL A,#0FH    MOV 2BH,A   ;轉換出時個位,存入2BH   MOV A,23H   ANL A,#0F0H   SWAP A   MOV 2AH,A  

29、; ;轉換出時十位,存入2AH  JB 46H,DISP   ;如果長按按鍵(調時快進),則跳過閃爍處理  CJNE R1,#1,DISP  ;如果R1為1,閃爍時位待調整    JB 48H,DISP  MOV 2BH,#0AH  ;使該位為10,查表得到使該

30、位不顯示的輸出  MOV 2AH,#0AH</p><p>  /*****數碼管動態掃描顯示*****/DISP:  MOV DPTR,#TABLE  MOV A,2FH  MOVC A,@A+DPTR  MOV P0,A  CLR P2.7  LCALL

31、DELAY  SETB P2.7   ;顯示秒個位</p><p>  MOV A,2EH  MOVC A,@A+DPTR  MOV P0,A  CLR P2.6  LCALL DELAY  SETB P2.6   ;顯示秒

32、十位</p><p>  MOV A,#0BFH  MOV P0,A  CLR P2.5  LCALL DELAY  SETB P2.5   ;顯示“-”</p><p>  MOV A,2DH  MOVC A,@A+DPTR  

33、MOV P0,A  CLR P2.4  LCALL DELAY  SETB P2.4   ;顯示分個位</p><p>  MOV A,2CH  MOVC A,@A+DPTR  MOV P0,A  CLR P2.3  LCALL D

34、ELAY  SETB P2.3   ;顯示分十位</p><p>  MOV A,#0BFH  MOV P0,A  CLR P2.2  LCALL DELAY  SETB P2.2   ;顯示“-”</p><p>  M

35、OV A,2BH  MOVC A,@A+DPTR  MOV P0,A  CLR P2.1  LCALL DELAY  SETB P2.1   ;顯示時個位</p><p>  MOV DPTR,#TABLE1 ;該位使用TABLE1以消除前置0 

36、0;MOV A,2AH  MOVC A,@A+DPTR  MOV P0,A  CLR P2.0  LCALL DELAY  SETB P2.0   ;顯示時十位  RET   /*****按鍵檢測子程序*****/ KEY_SCAN:  &

37、#160;CLR 46H    ;關閉長按調整(調時快進)標志  MOV P1,#0FFH   ;將P1口設置成輸入狀態   MOV A,P1   CPL A   ANL A,#0FH    ;P1口低4位連接4個按鍵,只判斷該4位  JZ

38、 EXIT_KEY   ;無鍵按下則返回   LCALL DELAY   ;延時去抖動  MOV A,P1   ;重新判斷   CPL A   ANL A,#0FH   JZ EXIT_KEY   ;鍵盤去抖動  &#

39、160;MOV R5,A    ;臨時將鍵值存入R5  MOV R4,#00H   ;用于控制調時快進速度  ;設置為00H是為了在進入長按處理前加長延時區分用戶的長按與短按,防止誤快進   LOOP:</p><p>  LOOP1:  CJNE R1,#03H,

40、LOOP2 ;如果調秒時長按,則不處理  LJMP LOOP3</p><p>  LOOP2:  CJNE R4,#99H,LOOP3   MOV R4,#70H   ;確認用戶長按后,重新設定起始值,加快調時快進速度  SETB 46H   ;

41、長按調整(調時快進)標志     LCALL ADD_KEY  LCALL DEC_KEY</p><p>  LOOP3:  JNZ LOOP    ;等待鍵釋放  MOV A,R5   ;輸出鍵值  RET

42、60;  </p><p>  EXIT_KEY:  RET</p><p>  /*****延時子程序*****/DELAY:    MOV R7,#150   DJNZ R7,$  RET   /*****選擇鍵處理子程序*****/

43、 SET_KEY:   CJNE R5,#01H,EXIT ;選擇鍵鍵值  INC R1    ;調整選擇功能標志加一  SETB BEEP  CJNE R1,#4,EXIT  MOV R1,#0  MOV 24H,#00H  ;調時閃

44、爍基準清零   RET</p><p>  /*****增加鍵處理子程序*****/ ADD_KEY:   CJNE R5,#02H,EXIT ;增加鍵鍵值  CJNE R1,#01H,NEXT1 ;選擇鍵功能標志為1,調時,否則跳出  MOV A,23H  ADD A,#01H&

45、#160; DA A  MOV 23H,A  CJNE A,#24H,EXIT  MOV 23H,#00H</p><p>  NEXT1:  CJNE R1,#02H,NEXT2 ;選擇鍵功能標志為2,調分,否則跳出  MOV A,22H  ADD A,#01H

46、  DA A  MOV 22H,A  CJNE A,#60H,EXIT  MOV 22H,#00H</p><p>  NEXT2:  CJNE R1,#03H,EXIT ;選擇鍵功能標志為3,調秒,否則跳出  MOV 21H,#00H  ;如增加鍵按下

47、直接清零秒  RET</p><p>  /*****減少鍵處理子程序*****/ DEC_KEY:   CJNE R5,#04H,EXIT ;減少鍵鍵值  CJNE R1,#01H,NEXT3 ;選擇鍵功能標志為1,調時,否則跳出  MOV A,23H  ADD A,#99H&#

48、160; DA A  MOV 23H,A  CJNE A,#99H,EXIT  MOV 23H,#23H NEXT3:  CJNE R1,#02H,NEXT4 ;選擇鍵功能標志為2,調分,否則跳出  MOV A,22H  ADD A,#99H  DA

49、A  MOV 22H,A  CJNE A,#99H,EXIT  MOV 22H,#59H</p><p>  NEXT4:  CJNE R1,#03H,EXIT ;選擇鍵功能標志為3,調秒,否則跳出  MOV 21H,#00H  ;如較少鍵按下直接清零秒 

50、0;RET</p><p>  /*****強制響鈴鍵處理子程序*****/ DALING_KEY:   CJNE R5,#08H,EXIT ;選擇鍵鍵值  CPL BEEP  RET</p><p>  /*****萬用返回程序*****/  EXIT:   RET&

51、lt;/p><p>  /*****數碼管字形編碼表*****/TABLE:   DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;字形顯示編碼</p><p>  TABLE1:  DB 0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;

52、小時位的十位數編碼,該位如果為0則不顯示</p><p>  /*****打鈴時間對比程序(起床、熄燈)*****/BIJIAO1:  MOV A,23H  CJNE A,#06H,B0  MOV A,22H  CJNE A,#00H,B0  ;6:00到  SETB 45H

53、0;  ;開啟響鈴方式1  RETB0:  MOV A,23H  CJNE A,#22H,EXIT_1  MOV A,22H  CJNE A,#30H,EXIT_1 ;22:30到  SETB 45H   ;開啟響鈴方式1  

54、RET</p><p>  EXIT_1:  CLR 45H  RET</p><p>  /*****打鈴時間對比程序(上、下課)*****/BIJIAO2:  MOV A,23H  CJNE A,#07H,B1  MOV A,22H  CJNE A,#3

55、0H,B1  ;7:30  SETB 44H   ;開啟響鈴方式2  RETB1:  MOV A,23H  CJNE A,#08H,B2  MOV A,22H  CJNE A,#20H,B2  ;8:20  SETB

56、 44H  RETB2:  MOV A,23H  CJNE A,#08H,B3  MOV A,22H  CJNE A,#30H,B3  ;8:30  SETB 44H  RETB3:  MOV A,23H  CJNE A,

57、#09H,B4  MOV A,22H  CJNE A,#20H,B4  ;9:20  SETB 44H  RET</p><p>  B4:  MOV A,23H  CJNE A,#09H,B5  MOV A,22H  C

58、JNE A,#40H,B5  ;9:40  SETB 44H  RETB5:  MOV A,23H  CJNE A,#10H,B6  MOV A,22H  CJNE A,#30H,B6  ;10:30  SETB 44H  

59、RETB6:  MOV A,23H  CJNE A,#10H,B7  MOV A,22H  CJNE A,#40H,B7  ;10:40  SETB 44H  RETB7:  MOV A,23H  CJNE A,#11H,EXIT_2

60、0; MOV A,22H  CJNE A,#30H,EXIT_2 ;11:30  SETB 44H  RET</p><p>  EXIT_2:  CLR 44H  RET</p><p>  /*****響鈴方式1程序(響5秒停2秒再響5秒)*****/DA

61、LING1:  JNB 45H,EXIT_DALING  MOV A,21H   ;響鈴起始時間由秒實時控制  CJNE A,#00H,L1  CLR BEEPL1:  MOV A,21H  CJNE A,#05H,L2  SETB BEEP 

62、L2:  CJNE A,#07H,L3  CLR BEEPL3:  CJNE A,#12H,EXIT_DALING  SETB BEEP  RET</p><p>  /*****響鈴方式2程序(響5秒)*****/DALING2:  JNB 44H,EXIT_DALING&

63、#160; MOV A,21H   ;響鈴起始時間由秒實時控制  CJNE A,#00H,L4  CLR BEEPL4:  MOV A,21H  CJNE A,#05H,EXIT_DALING  SETB BEEP  RET</p><p>

溫馨提示

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

評論

0/150

提交評論