版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計</b></p><p> 課程名稱__單片機應(yīng)用系統(tǒng)設(shè)計_ </p><p> 題目名稱_基于單片機的電子時鐘 </p><p> 學(xué)生學(xué)院___信息工程學(xué)院_______</p><p> 專業(yè)班級___ _____</p><p> 學(xué)
2、 號 </p><p> 學(xué)生姓名__ _ ___________</p><p> 指導(dǎo)教師__ _ ___________</p><p> 2010 年 6 月 15 日</p><p> 單片機課程設(shè)計任務(wù)書</p><p> 1、課程設(shè)計題目:
3、 單片機應(yīng)用系統(tǒng)設(shè)計</p><p><b> 基于單片機的——</b></p><p><b> 題目自擬</b></p><p><b> 2、總體要求:</b></p><p> 本課程設(shè)計的題目機設(shè)計內(nèi)容自選,學(xué)生可以根據(jù)平時的觀察、了解單片機實際的應(yīng)用系統(tǒng),弄
4、清其結(jié)構(gòu)和功能,結(jié)合單片機課程及其他相關(guān)課程的知識,充分發(fā)揮自身的想象力和創(chuàng)造力,自行選定設(shè)計項目,但總體應(yīng)達到以下要求:</p><p> 用89S51CPU,12M時鐘,常規(guī)的上電和手動復(fù)位電路</p><p> 包括3個以上的獨立式按鍵</p><p> 至少2位LED數(shù)碼顯示器及其接口</p><p><b> 一路
5、蜂鳴器輸出</b></p><p> 至少有2路輸入信號,可以是模擬量或數(shù)字量</p><p> 3、課程設(shè)計具體要求:</p><p> 選定好設(shè)計項目后,課程設(shè)計應(yīng)達到以下要求</p><p> 編寫項目功能說明書,確定應(yīng)用系統(tǒng)的功能和具體參數(shù)</p><p><b> 設(shè)計電路原理
6、圖</b></p><p><b> 制作硬件</b></p><p><b> 設(shè)計和調(diào)試程序</b></p><p><b> 課程設(shè)計報告</b></p><p><b> 單片機課程設(shè)計報告</b></p><
7、;p><b> 一、設(shè)計項目簡介</b></p><p> 隨著現(xiàn)代生活的推進,電子時間在人們的生活中已經(jīng)普及,此電子時鐘是一款基于單片機AT98C51的計時工具,它的工作原理是利用程序使定時器每50ms產(chǎn)生一次時間中斷,以20次時間中斷定義一秒,再利用程序達到每六十秒,秒鐘清零,分鐘進一,每60分鐘,分鐘清零,時鐘進一,每24小時,時鐘清零,并使用八段LED 顯示管來實現(xiàn)時、分
8、、秒的顯示。</p><p><b> 二、電路原理圖</b></p><p><b> 三、系統(tǒng)功能描述</b></p><p> 這是一款基于單片機AT89C51的電子時鐘,是通過定時中斷來實現(xiàn)計時的。該電子時鐘共有五個按鈕,分別為復(fù)位電路按鈕,時、分、秒控制按鈕以及聲音控制按鈕。復(fù)位電路按鈕用于對系統(tǒng)進行復(fù)位操
9、作;時、分、秒控制按鈕用于對時鐘、分鐘及秒鐘進行調(diào)整操作,每按一次,則相應(yīng)的時間鐘數(shù)加1;聲音控制按鈕是用于控制時間控制按鈕聲音及整點報時聲音的開關(guān)。此電子時鐘操作簡易,能夠方便快捷地對時、分秒、以及聲音進行控制,并能準(zhǔn)確地顯示時間,是一款簡單實用的電子時鐘。</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 ;數(shù)字鐘小時控制位</p><p> M_CON BIT P1.2 ;數(shù)字鐘分鐘控制位</p><p> S_CON BIT P1.0 ;數(shù)字鐘秒控制位</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> ;聲音開關(guān)</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> ;定時器中斷服務(wù)程序,對秒,分鐘和小時的計數(shù)</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> 單片機是我所學(xué)專業(yè)的主
53、要課程之一,因此我認(rèn)為單片機課程設(shè)計是十分必要而且十分重要的。盡管剛剛拿到課程設(shè)計題目時有點迷惘,不知道如何著手,但通過上網(wǎng)和圖書館查閱相關(guān)資料,自己認(rèn)真鉆研以及虛心詢問同學(xué),終于解決了一個又一個的困難和障礙,成功完成了任務(wù)。</p><p> 通過本次的單片機課程設(shè)計,不僅大大地豐富了我的理論知識,而且在實踐過程中更令我學(xué)會了堅持、耐心和努力。此次單片機課程設(shè)計需要運用到許多之前所學(xué)過的知識,令我認(rèn)識到自己以
54、前學(xué)習(xí)的一些不足之處,例如對以前所學(xué)知識的理解不夠深刻,掌握得不夠牢固,運用不夠靈活。這讓我懂得了認(rèn)真學(xué)習(xí)的重要性,以及要孜孜不倦地鉆研所學(xué)過的知識,做得融會貫通,不能一覽而過,不求甚解。在邊學(xué)習(xí)邊動手的過程中,我對電子時鐘的構(gòu)造以及原理有了進一步的了解,同時也加深和鞏固了我對單片機匯編語言的認(rèn)識。除此之外,由于是第一次做單片機,因此在此次課程設(shè)計的過程中,無論是電路繪制還是匯編語言編寫都難免遇到了不少困難和障礙,例如匯編語言編寫出錯、
55、電路元件無從入手等。在面對困難和障礙時,我慶幸自己沒有退縮和逃避,而是通過各種方法,迎難而上,以堅持、耐心和努力勇敢無畏地面對困難,克服困難,解決困難。讓我發(fā)現(xiàn)問題、分析問題、解決問題以及動手實踐的能力都有了很大的提高,并了解到理論知識與實踐相結(jié)合的重要意義。</p><p> 從這次的課程設(shè)計中,我們真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,學(xué)習(xí)單機片機更是如此,程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計報告-- 基于單片機的電子時鐘設(shè)計
- 單片機課程設(shè)計-單片機課程設(shè)計---電子時鐘
- 單片機課程設(shè)計---單片機電子時鐘
- 單片機課程設(shè)計--單片機模擬電子時鐘設(shè)計
- 單片機課程設(shè)計--單片機模擬電子時鐘設(shè)計
- 單片機課程設(shè)計報告---電子時鐘
- 單片機課程設(shè)計報告--電子時鐘
- 單片機課程設(shè)計-- 基于51單片機的電子時鐘系統(tǒng)
- 單片機課程設(shè)計報告--電子時鐘
- 電子時鐘單片機課程設(shè)計
- 單片機課程設(shè)計---電子時鐘
- 單片機課程設(shè)計——電子時鐘
- 單片機課程設(shè)計——電子時鐘
- 單片機課程設(shè)計--- 單片機電子時鐘設(shè)計
- 單片機課程設(shè)計--電子時鐘
- 單片機課程設(shè)計--單片機模擬電子時鐘設(shè)計.doc
- 單片機課程設(shè)計-電子時鐘
- 單片機課程設(shè)計--電子時鐘
- 單片機課程設(shè)計--電子時鐘
- 單片機課程設(shè)計----電子時鐘
評論
0/150
提交評論