版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課 程 設 計</b></p><p> 課程名稱__單片機應用系統(tǒng)設計_ </p><p> 題目名稱_基于單片機的電子時鐘 </p><p> 學生學院___信息工程學院_______</p><p> 專業(yè)班級___ _____</p><p> 學
2、 號 </p><p> 學生姓名__ _ ___________</p><p> 指導教師__ _ ___________</p><p> 2010 年 6 月 15 日</p><p> 單片機課程設計任務書</p><p> 1、課程設計題目:
3、 單片機應用系統(tǒng)設計</p><p><b> 基于單片機的——</b></p><p><b> 題目自擬</b></p><p><b> 2、總體要求:</b></p><p> 本課程設計的題目機設計內容自選,學生可以根據平時的觀察、了解單片機實際的應用系統(tǒng),弄
4、清其結構和功能,結合單片機課程及其他相關課程的知識,充分發(fā)揮自身的想象力和創(chuàng)造力,自行選定設計項目,但總體應達到以下要求:</p><p> 用89S51CPU,12M時鐘,常規(guī)的上電和手動復位電路</p><p> 包括3個以上的獨立式按鍵</p><p> 至少2位LED數碼顯示器及其接口</p><p><b> 一路
5、蜂鳴器輸出</b></p><p> 至少有2路輸入信號,可以是模擬量或數字量</p><p> 3、課程設計具體要求:</p><p> 選定好設計項目后,課程設計應達到以下要求</p><p> 編寫項目功能說明書,確定應用系統(tǒng)的功能和具體參數</p><p><b> 設計電路原理
6、圖</b></p><p><b> 制作硬件</b></p><p><b> 設計和調試程序</b></p><p><b> 課程設計報告</b></p><p><b> 單片機課程設計報告</b></p><
7、;p><b> 一、設計項目簡介</b></p><p> 隨著現代生活的推進,電子時間在人們的生活中已經普及,此電子時鐘是一款基于單片機AT98C51的計時工具,它的工作原理是利用程序使定時器每50ms產生一次時間中斷,以20次時間中斷定義一秒,再利用程序達到每六十秒,秒鐘清零,分鐘進一,每60分鐘,分鐘清零,時鐘進一,每24小時,時鐘清零,并使用八段LED 顯示管來實現時、分
8、、秒的顯示。</p><p><b> 二、電路原理圖</b></p><p><b> 三、系統(tǒng)功能描述</b></p><p> 這是一款基于單片機AT89C51的電子時鐘,是通過定時中斷來實現計時的。該電子時鐘共有五個按鈕,分別為復位電路按鈕,時、分、秒控制按鈕以及聲音控制按鈕。復位電路按鈕用于對系統(tǒng)進行復位操
9、作;時、分、秒控制按鈕用于對時鐘、分鐘及秒鐘進行調整操作,每按一次,則相應的時間鐘數加1;聲音控制按鈕是用于控制時間控制按鈕聲音及整點報時聲音的開關。此電子時鐘操作簡易,能夠方便快捷地對時、分秒、以及聲音進行控制,并能準確地顯示時間,是一款簡單實用的電子時鐘。</p><p><b> 四、程序框圖</b></p><p><b> 五、程序清單<
10、/b></p><p> HOUR EQU30H</p><p> MINUTE EQU31H</p><p> SECONDEQU32H</p><p> T_SEC EQU33H</p><p> SD_CON BIT P1.6</p&
11、gt;<p> H_CON BIT P1.4 ;數字鐘小時控制位</p><p> M_CON BIT P1.2 ;數字鐘分鐘控制位</p><p> S_CON BIT P1.0 ;數字鐘秒控制位</p><p><b> ORG
12、00H</b></p><p><b> SJMPMAIN</b></p><p><b> ORG0BH</b></p><p> LJMPINT_T0</p><p> MAIN: MOVDPTR,#TABLE</p><p>
13、 MOVHOUR,#0</p><p> MOVMINUTE,#0</p><p> MOVSECOND,#0</p><p> CLR P2.6 </p><p> LCALL SHOW;檢視LED</p><p> MOVT_SEC,#0
14、</p><p> MOVTMOD,#01H</p><p> MOVTH0,#3CH;定時50毫秒</p><p> MOVTL0,#80H</p><p> MOVIE,#82H</p><p> SETB TR0</p><p> MOV
15、 R4,#0;初始化</p><p> MAIN_C: LCALL DISPLAY</p><p> LCALL KEY</p><p> LCALL KEY_S</p><p> SJMP MAIN_C</p><p> ;*****************
16、***********************************</p><p><b> ;聲音開關</b></p><p> KEY_S: JNB SD_CON,SOUND_C</p><p><b> RET</b></p><p> SOUND_C:MOV
17、 A,R4</p><p> CPL A</p><p> MOV R4,A</p><p> SOUND_C1:JB SD_CON,KEY_S</p><p> LCALL DISPLAY</p><p> SJMP SOUND_C1</p><p&
18、gt; ;****************************************************</p><p> ;判斷是否有控制鍵按下,是哪一個鍵按下</p><p> KEY: JNBS_CON,KEY_SEC</p><p> JNBM_CON,KEY_MIN</p><p> JNBH
19、_CON,KEY_HOU</p><p><b> RET</b></p><p> KEY_SEC:LCALLDELAY_S;去抖動</p><p> JBS_CON,KEY</p><p> INCSECOND;秒值加1</p><p> LCALL S
20、OUND</p><p> MOVA,SECOND</p><p> CJNEA,#60,W_SEC;判斷是否加到60秒</p><p> MOVSECOND,#0</p><p> LJMPKEY_MINU</p><p> KEY_MIN:LCALLDELAY_S</p>&l
21、t;p> JBM_CON,KEY</p><p> KEY_MINU:INCMINUTE;分鐘值加1</p><p> LCALL SOUND</p><p> MOVA,MINUTE</p><p> CJNEA,#60,W_MIN;判斷是否加到60分</p><p> MOV
22、MINUTE,#0</p><p> LJMPKEY_HOUR</p><p> KEY_HOU:LCALLDELAY_S</p><p> JBH_CON,KEY</p><p> KEY_HOUR:INCHOUR;小時值加1 </p><p> LCALL S
23、OUND</p><p> MOVA,HOUR</p><p> CJNEA,#24,W_HOU;判斷是否加到24小時</p><p> MOVHOUR,#0</p><p> MOVMINUTE,#0</p><p> MOVSECOND,#0</p><p><b
24、> LJMPKEY</b></p><p> ;****************************************************</p><p><b> ;等待按鍵抬起</b></p><p> W_SEC:JBS_CON,KEY</p><p> LCAL
25、LDISPLAY</p><p> SJMPW_SEC</p><p> W_MIN:JBM_CON,KEY</p><p> LCALLDISPLAY</p><p> SJMPW_MIN</p><p> W_HOU:JBH_CON,KEY</p><p>
26、 LCALLDISPLAY</p><p> SJMPW_HOU</p><p> ;****************************************************</p><p> ;檢視八段LED顯示</p><p> SHOW: CLR P3.7</p><p
27、> MOV P0,#7FH</p><p> MOV R5,#125</p><p> DELAY_7:LCALL DELAY_S</p><p> DJNZ R5,DELAY_7</p><p> SETB P3.7</p><p> CLR P3.6
28、</p><p> MOV R5,#100</p><p> DELAY_6:LCALL DELAY_S</p><p> DJNZ R5,DELAY_6</p><p> SETB P3.6</p><p> CLR P3.5</p><p>
29、 MOV R5,#100</p><p> DELAY_5:LCALL DELAY_S</p><p> DJNZ R5,DELAY_5</p><p> SETB P3.5</p><p> CLR P3.4</p><p> MOV R5,#100<
30、/p><p> DELAY_4:LCALL DELAY_S</p><p> DJNZ R5,DELAY_4</p><p> SETB P3.4</p><p> CLR P3.3</p><p> MOV R5,#100</p><p> DE
31、LAY_3:LCALL DELAY_S</p><p> DJNZ R5,DELAY_3</p><p> SETB P3.3</p><p> CLR P3.2</p><p> MOV R5,#100</p><p> DELAY_2:LCALL DELAY_
32、S</p><p> DJNZ R5,DELAY_2</p><p> SETB P3.2</p><p> CLR P3.1</p><p> MOV R5,#100</p><p> DELAY_1:LCALL DELAY_S</p><p>
33、; DJNZ R5,DELAY_1</p><p> SETB P3.1</p><p> CLR P3.0</p><p> MOV R5,#100</p><p> DELAY_0:LCALL DELAY_S</p><p> DJNZ R5,DELAY_
34、0</p><p> SETB P3.0</p><p> ;***********************************************</p><p> ;定時器中斷服務程序,對秒,分鐘和小時的計數</p><p> INT_T0:MOVTH0,#3CH</p><p>
35、MOVTL0,#80H</p><p> INC T_SEC</p><p> MOVA,T_SEC</p><p> CJNE A,#20,T0_RET;計時1秒</p><p> INC SECOND</p><p> MOVT_SEC,#0</p>
36、<p> MOVA,SECOND</p><p> CJNE A,#60,T0_RET</p><p> INC MINUTE</p><p> MOVSECOND,#0</p><p> MOVA,MINUTE</p><p> CJNE A,#60,T
37、0_RET</p><p> INC HOUR</p><p> LCALL SOUND</p><p> MOVMINUTE,#0</p><p> MOVA,HOUR</p><p> CJNE A,#24,T0_RET</p><p> MOV
38、HOUR,#0</p><p> MOVMINUTE,#0</p><p> MOVSECOND,#0</p><p> MOVT_SEC,#0</p><p> T0_RET:RETI</p><p> ;******************************************
39、</p><p><b> ;顯示控制子程序</b></p><p> DISPLAY:MOVA,SECOND;顯示秒</p><p> MOVB,#10</p><p> DIV AB</p><p> CLR P3.6</p><p&g
40、t; MOVC A,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALL DELAY_S</p><p> SETB P3.6</p><p><b> MOVA,B</b></p><p> CL
41、R P3.7</p><p> MOVC A,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALL DELAY_S</p><p> SETB P3.7</p><p> CLR P3.5</p>
42、;<p> MOVP0,#40H;顯示分隔符</p><p> LCALL DELAY_S</p><p> SETB P3.5</p><p> MOVA,MINUTE;顯示分鐘</p><p> MOVB,#10</p><p> DIV AB&l
43、t;/p><p> CLR P3.3</p><p> MOVC A,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALL DELAY_S</p><p> SETB P3.3</p><p&g
44、t;<b> MOVA,B</b></p><p> CLR P3.4</p><p> MOVC A,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALL DELAY_S</p><p>
45、SETB P3.4</p><p> CLR P3.2</p><p> MOVP0,#40H;顯示分隔符</p><p> LCALL DELAY_S</p><p> SETB P3.2</p><p> MOVA,HOUR;顯示小時</p>
46、<p> MOVB,#10</p><p> DIV AB</p><p> CLR P3.0</p><p> MOVC A,@A+DPTR</p><p><b> MOVP0,A</b></p><p> LCALL DELAY
47、_S</p><p> SETB P3.0</p><p><b> MOVA,B</b></p><p> CLR P3.1</p><p> MOVC A,@A+DPTR</p><p><b> MOVP0,A</b></
48、p><p> LCALL DELAY_S</p><p> SETB P3.1</p><p><b> RET</b></p><p> ;******************************************</p><p> ;延時,用于去抖動及檢查LED顯
49、示</p><p> DELAY_S:MOVR6,#10</p><p> DEL_S1: MOVR7,#250</p><p> DJNZ R7,$</p><p> DJNZ R6,DEL_S1</p><p><b> RET</b></p&g
50、t;<p> ;******************************************</p><p><b> ;聲音</b></p><p> SOUND: CJNE R4,#0,SOUND_OFF</p><p> SETB P2.6</p><p> MOV
51、R6,#50</p><p> DEL_L1: MOVR7,#250</p><p><b> DJNZR7,$</b></p><p> DJNZR6,DEL_L1</p><p> CLR P2.6</p><p> SOUND_OFF:RET</p>
52、;<p> TABLE: DB 3FH,06H,5BH,4FH,66H</p><p> DB6DH,7DH,07H,7FH,6FH</p><p><b> END</b></p><p><b> 六、收獲及體會</b></p><p> 單片機是我所學專業(yè)的主
53、要課程之一,因此我認為單片機課程設計是十分必要而且十分重要的。盡管剛剛拿到課程設計題目時有點迷惘,不知道如何著手,但通過上網和圖書館查閱相關資料,自己認真鉆研以及虛心詢問同學,終于解決了一個又一個的困難和障礙,成功完成了任務。</p><p> 通過本次的單片機課程設計,不僅大大地豐富了我的理論知識,而且在實踐過程中更令我學會了堅持、耐心和努力。此次單片機課程設計需要運用到許多之前所學過的知識,令我認識到自己以
54、前學習的一些不足之處,例如對以前所學知識的理解不夠深刻,掌握得不夠牢固,運用不夠靈活。這讓我懂得了認真學習的重要性,以及要孜孜不倦地鉆研所學過的知識,做得融會貫通,不能一覽而過,不求甚解。在邊學習邊動手的過程中,我對電子時鐘的構造以及原理有了進一步的了解,同時也加深和鞏固了我對單片機匯編語言的認識。除此之外,由于是第一次做單片機,因此在此次課程設計的過程中,無論是電路繪制還是匯編語言編寫都難免遇到了不少困難和障礙,例如匯編語言編寫出錯、
55、電路元件無從入手等。在面對困難和障礙時,我慶幸自己沒有退縮和逃避,而是通過各種方法,迎難而上,以堅持、耐心和努力勇敢無畏地面對困難,克服困難,解決困難。讓我發(fā)現問題、分析問題、解決問題以及動手實踐的能力都有了很大的提高,并了解到理論知識與實踐相結合的重要意義。</p><p> 從這次的課程設計中,我們真真正正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計報告-- 基于單片機的電子時鐘設計
- 單片機課程設計-單片機課程設計---電子時鐘
- 單片機課程設計---單片機電子時鐘
- 單片機課程設計--單片機模擬電子時鐘設計
- 單片機課程設計--單片機模擬電子時鐘設計
- 單片機課程設計報告---電子時鐘
- 單片機課程設計報告--電子時鐘
- 單片機課程設計-- 基于51單片機的電子時鐘系統(tǒng)
- 單片機課程設計報告--電子時鐘
- 電子時鐘單片機課程設計
- 單片機課程設計---電子時鐘
- 單片機課程設計——電子時鐘
- 單片機課程設計——電子時鐘
- 單片機課程設計--- 單片機電子時鐘設計
- 單片機課程設計--電子時鐘
- 單片機課程設計--單片機模擬電子時鐘設計.doc
- 單片機課程設計-電子時鐘
- 單片機課程設計--電子時鐘
- 單片機課程設計--電子時鐘
- 單片機課程設計----電子時鐘
評論
0/150
提交評論