版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《單片機原理與應用》課程設計</p><p><b> 總 結 報 告</b></p><p> 題目:單片機電子時鐘的設計與實現(xiàn)</p><p> 設計人員: 學號:</p><p> 班級: 電子系 </p>
2、<p> 同組人員: </p><p> 指導老師: </p><p><b> 日期:</b></p><p> 第一章 總結報告內(nèi)容</p><p><b> 一、
3、題目</b></p><p><b> 二、主要功能要求</b></p><p> 三、整體設計框圖及整機概述</p><p> 四、各硬件單元電路的設計、參數(shù)分析及原理說明</p><p> 五、軟件流程圖和流程說明</p><p> 六、總結設計及調(diào)試的體會</p&
4、gt;<p> 七、附錄(包括:系統(tǒng)電路圖、元器件清單、應用程序清單和參考資料) </p><p> 第二章 課程設計的參考</p><p><b> 1、系統(tǒng)整體框圖</b></p><p> 2、電子時鐘設計的整體思想</p><p> 利用定時器0定時,每隔100m
5、s產(chǎn)生一次中斷,中斷10次(1s)后秒單元加1;秒單元XX滿60后向分單元進位,分單元YY加1;當分單元滿60后時單元ZZ加1。</p><p> 3、電子時鐘顯示設計思想</p><p> 若用六位LED顯示,設六位LED顯示器的顯示緩沖區(qū)地址為II~NN六個連續(xù)的內(nèi)部RAM單元,時間緩沖區(qū)為內(nèi)部RAM中的XX(秒單元)、YY(分單元)、ZZ(時單元)。由于每個LED顯示器只顯示一位
6、數(shù)字,所以為了實現(xiàn)時間的數(shù)碼顯示,必須調(diào)用拆字子程序?qū)r間緩沖區(qū)的內(nèi)容拆開(每個單元拆分為2段,每段的高4位均為0)。比如,XX(秒單元)拆分為2個字節(jié),分別存入顯示緩沖單元II和JJ中;YY(分單元)拆分后存入KK、LL單元中;ZZ(時單元)拆分后存入MM、NN單元。然后調(diào)用顯示子程序顯示當前時間。</p><p> 4、電子時鐘鍵盤輸入設計思想</p><p> 設置三個按鍵分別是
7、SET1、SET2、SET3。SET1用來設置各種狀態(tài),按一下為設置鬧時時間,按兩下為設置走時時間,按三下為設置啟停鬧時,按四下為運行走時。SET2用來調(diào)整鬧/走時的小時部分。SET3用來調(diào)整鬧/走時的分鐘部分。在走時狀態(tài)時,第二位LED(從右往左數(shù))的dp若發(fā)光表示開啟鬧鈴。</p><p><b> 5、蜂鳴器發(fā)聲原理</b></p><p> 單片機端口輸出
8、的方波經(jīng)放大濾波后,驅(qū)動蜂鳴器發(fā)聲。端口輸出延時控制聲音的頻率。不同頻率可以讓蜂鳴器發(fā)出長短不同的聲音。</p><p><b> 6、顯示方式</b></p><p> 從數(shù)碼管顯示方式看,數(shù)碼管分為靜態(tài)顯示和動態(tài)顯示兩種方式。靜態(tài)顯示就是系統(tǒng)中每位數(shù)碼管的顯示值都保持不變,直到顯示新值為止;動態(tài)顯示就是系統(tǒng)工作的每個時刻僅僅顯示1位數(shù)碼管的值,在人眼的視覺暫留
9、效應(時間為100ms)的時間范圍內(nèi),顯示完所有數(shù)碼管的值。</p><p> 這兩種方式各有優(yōu)缺點,兩種方式的比較情況如表所列。實際使用要根據(jù)不同需要選用不同的顯示方式。比如,設計一個亮暗顯示可程序控制的數(shù)碼管顯示系統(tǒng),控制亮暗實際上就是控制數(shù)碼管動態(tài)刷新時間的問題,因此可以利用動態(tài)顯示方式。</p><p> 表 數(shù)碼管靜態(tài)顯示和動態(tài)顯示方式的比較</p><
10、p> 7、影響單片機定時器準確性的原因</p><p> (1) 單片機電子時鐘的計時脈沖基準是由外部晶振的頻率經(jīng)過12分頻后提供,采用內(nèi)部的定時/計數(shù)器來實現(xiàn)計時功能。所以,外接晶振頻率精確度直接影響電子鐘計時的準確性。</p><p> (2) 大家都知道從定時/計數(shù)器產(chǎn)生中斷請求到響應中斷需要3-8個機器周期,定時中斷子程序中的數(shù)據(jù)入棧和重裝定時/計數(shù)器的初值還需要占用數(shù)
11、個機器周期,還有從中斷入口轉到中斷子程序也要占用一定的機器周期。</p><p> 8、單片機最小系統(tǒng)電路</p><p> 第三章 總結設計及調(diào)試的體會</p><p> 經(jīng)過這幾天的實驗,我真的徹徹底底地將制作一份作品的流程搞懂了。第一天,剛開始時熱情高漲,以為實驗很簡單,在寫程序時不知道怎么動態(tài)顯示、什么時候動態(tài)顯示。后來看了一下課本,加上上網(wǎng)查了
12、一下資料,知道了可以在每次計數(shù)器溢出中斷調(diào)用動態(tài)顯示。在第二、三天畫圖時,因為protel99SE從以前就只會到畫完圖,不會自己新制元件和布PCB板。所以畫圖時還得重新學起,向同學借了protel視頻教程來看,一步一步慢慢地完成。終于在第三天晚上,在請教別人如何制版后,經(jīng)過一系列過程終于把板制出來了。第四天,在下午焊完所有原件后,把程序下載到芯片后,發(fā)現(xiàn)數(shù)碼管不亮。后來用萬用表測試一下發(fā)現(xiàn)因為第一次布線不懂,認為線細比較好看,導致有些線
13、斷了。馬上用錫將斷了線連上,可數(shù)碼管還是沒亮。打開當時布線的PCB板,才知道接到位選的線沒出來,所以沒連上。用六條跳線連上后,數(shù)碼管亮了。第五天早上調(diào)試時,發(fā)現(xiàn)數(shù)碼管只亮了幾段,用萬用表測三極管的電壓,發(fā)現(xiàn)有幾個PNP管截止了。怎么想都不知道錯在哪里。后來問了一下老師,是PNP弄反了,把共陽接成共陰的。由于時間不夠,再制版也來不及了??偟脕碚f,就是在試驗過程中,在一步步檢查錯</p><p> 第四章 流
14、程圖及程序</p><p><b> 程序:</b></p><p> ORG 0000H ;程序入口地址</p><p> LJMP START</p><p> ORG 000BH ;定時器0中斷入口地址</p><p> LJMP TIMER_0</p>
15、<p> K1 BIT P3.6 ;定義調(diào)時按鍵</p><p> K2 BIT P3.7 ;定義調(diào)分按鍵</p><p> K3 BIT P1.0</p><p><b> START: </b></p><p> MOV TMOD,#01H ;定時器0,工作模式1</p&
16、gt;<p> MOV TH0,#03CH</p><p> MOV TL0,#0B0H ;賦初值,定時50ms</p><p> SETB EA ;開中斷總開關</p><p> SETB TR0 ;開啟定時器0</p><p> SETB ET0 ;定時器0中斷允許位</p>
17、<p> MOV R6,#0 ;用于控制走時的基準時鐘源,計中斷次數(shù)</p><p> MOV R5,#0 ;R5用于控制掃描按鍵的時間間隔</p><p> MOV 20H,#0 ;秒個位寄存器清零</p><p> MOV 21H,#0 ;秒十位寄存器清零</p><p> MOV 22H,#0
18、 ;分個位寄存器清零</p><p> MOV 23H,#0 ;分十位寄存器清零</p><p> MOV 24H,#0 ;時個位寄存器清零</p><p> MOV 25H,#0 ;時十位寄存器清零</p><p> LJMP DISPLAY</p><p><b> TI
19、MER_0: </b></p><p><b> CLR EA</b></p><p><b> INC R6</b></p><p><b> INC R5</b></p><p> MOV TH0,#03CH</p><p>
20、MOV TL0,#0B0H ;重新賦初值,定時50ms</p><p> SETB EA</p><p><b> RETI</b></p><p><b> ADD_TIME:</b></p><p> CJNE R6,#20,EXIT ;定時器中斷20次,1秒到</p&g
21、t;<p><b> MOV R6,#0</b></p><p> INC 20H </p><p> MOV A,20H </p><p> CJNE A,#10,EXIT ;如果秒個位等于10,清零</p><p> MOV 20H,#00H </p>
22、;<p> INC 21H </p><p> MOV A,21H </p><p> CJNE A,#6,EXIT ;如果秒十位等于6,清零</p><p> MOV 21H,#00H </p><p> INC 22H </p><p><b> M
23、IN:</b></p><p> MOV A,22H </p><p> CJNE A,#10,EXIT ;如果分個位等于10,清零</p><p> MOV 22H,#00H </p><p> INC 23H </p><p> MOV A,23H <
24、/p><p> CJNE A,#6,EXIT ;如果分十位等于6,清零</p><p> MOV 23H,#00H </p><p> INC 24H </p><p><b> HOUR:</b></p><p><b> MOV A,25H</b>&
25、lt;/p><p> CJNE A,#2,LOOP ;如果時十位等于2,檢查時個位</p><p><b> MOV A,24H</b></p><p> CJNE A,#4,EXIT ;如果時個位等于4,清零</p><p> MOV 24H,#00H ;清零時個位</p><p&g
26、t; MOV 25H,#00H ;清零時十位 </p><p><b> LJMP EXIT</b></p><p><b> LOOP:</b></p><p> MOV A,24H </p><p> CJNE A,#10,EXIT ;如果時個位等于10,清零</
27、p><p> MOV 24H,#00H </p><p><b> INC 25H</b></p><p> LJMP EXIT </p><p><b> EXIT:</b></p><p> LJMP DISPLAY ;刷新完畢,跳轉到顯示 </p>
28、;<p><b> DISPLAY:</b></p><p> MOV DPTR,#TABLE</p><p><b> MOV A,20H</b></p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b><
29、;/p><p><b> CLR P2.0</b></p><p> LCALL DELAY</p><p> SETB P2.0 ;顯示秒個位</p><p><b> MOV A,21H</b></p><p> MOVC A,@A+DPTR</p>
30、;<p><b> MOV P0,A</b></p><p><b> CLR P2.1</b></p><p> LCALL DELAY</p><p> SETB P2.1 ;顯示秒十位</p><p> MOV A,#0BFH</p><p&g
31、t;<b> MOV P0,A</b></p><p><b> CLR P2.2</b></p><p> LCALL DELAY</p><p> SETB P2.2 ;顯示“-”</p><p><b> MOV A,22H</b></p>
32、<p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p><b> CLR P2.3</b></p><p> LCALL DELAY</p><p> SETB P2.3 ;顯示分個位</p><p>
33、;<b> MOV A,23H</b></p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p><b> CLR P2.4</b></p><p> LCALL DELAY</p><p&
34、gt; SETB P2.4 ;顯示分十位</p><p> MOV A,#0BFH</p><p><b> MOV P0,A</b></p><p><b> CLR P2.5</b></p><p> LCALL DELAY</p><p> SETB P
35、2.5 ;顯示“-”</p><p><b> MOV A,24H</b></p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p><b> CLR P2.6</b></p><p&g
36、t; LCALL DELAY</p><p> SETB P2.6 ;顯示時個位</p><p><b> MOV A,25H</b></p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p><b
37、> CLR P2.7</b></p><p> LCALL DELAY</p><p> SETB P2.7 ;顯示時十位</p><p><b> KEY_SCAN:</b></p><p> JNB K1,ADD_HOUR</p><p> JNB K2,AD
38、D_MIN</p><p> JNB K3,REST</p><p> LJMP ADD_TIME ;無鍵按下,跳至走時</p><p><b> ADD_HOUR:</b></p><p> INC 24H ;小時加1</p><p> LJMP HOUR;更新</p
39、><p><b> ADD_MIN:</b></p><p> INC 22H ;分鐘加1</p><p> LJMP MIN ;更新</p><p><b> REST:</b></p><p> MOV 20H,#0 ;秒個位寄存器清零</
40、p><p> MOV 21H,#0 ;秒十位寄存器清零</p><p> MOV 22H,#0 ;分個位寄存器清零</p><p> MOV 23H,#0 ;分十位寄存器清零</p><p> MOV 24H,#0 ;時個位寄存器清零</p><p> MOV 25H,#0 ;時十位
41、寄存器清零</p><p> LJMP DISPLAY</p><p><b> EXIT0:</b></p><p> LJMP ADD_TIME</p><p><b> DELAY: </b></p><p> MOV R7,#250 ;掃描延時 &l
42、t;/p><p><b> DJNZ R7,$</b></p><p> RET </p><p> TABLE: ;數(shù)碼管字形顯示編碼表</p><p> DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ,90H ;字形顯示編碼<
43、/p><p> END ;程序結束</p><p><b> 主程序流程圖:</b></p><p><b> 分流程圖:</b></p><p> 第五章 整體的各部分電路圖及PCB板圖</p><p> (1)三極管連接電路:</p>
44、<p> (2)數(shù)碼管及其各腳連接情況:</p><p><b> ?。?)按鍵:</b></p><p> ?。?)電源、地、排針:</p><p> ?。?)單片機及其各口連接電路:</p><p> (6)PCB板的布線圖:</p><p> 第六章 元器件清單</p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計--單片機電子時鐘的設計與實現(xiàn)
- 單片機課程設計---單片機電子時鐘
- 單片機課程設計--- 單片機電子時鐘設計
- 單片機課程設計---單片機電子時鐘的設計
- 單片機電子時鐘的設計 單片機課程設計
- 單片機課程設計-單片機課程設計---電子時鐘
- 單片機電子時鐘課程設計
- 單片機電子時鐘課程設計
- 單片機電子時鐘課程設計
- 單片機電子時鐘課程設計
- 課程設計----單片機電子時鐘
- 單片機原理及應用課程設計--基于單片機的電子時鐘設計
- 單片機原理及應用課程設計(電子時鐘)
- 單片機課程設計--單片機模擬電子時鐘設計
- 單片機課程設計--單片機模擬電子時鐘設計
- 電子時鐘單片機課程設計
- 單片機課程設計---電子時鐘
- 單片機課程設計——電子時鐘
- 單片機課程設計——電子時鐘
- 單片機原理及應用課程設計電子時鐘設計
評論
0/150
提交評論