版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p><b> 一、設計目的:1</b></p><p><b> 二、硬件系統:2</b></p><p><b> 三、軟件系統:5</b></p><p><b> 四、仿
2、真結果9</b></p><p> 五、課程總結:11</p><p><b> 六、參考文獻12</b></p><p> 附:實驗源程序13</p><p><b> 一、設計目的:</b></p><p> 由單片機接收小鍵盤陣列設定倒計時
3、時間,倒計時的范圍最大為60分鐘,由LED 顯示模塊顯示剩余時間,顯示格式為 XX(分):XX(秒).X,精確到0.1s的整數倍。倒計時到,由蜂鳴器發出報警。繪制系統硬件接線圖,并進行系統仿真和實驗。畫出程序流程圖并編寫程序實現系統功能。此次設計是我們更進一步了解基本電路的設計流程,提高自己的設計理念,豐富自己的理論知識,鞏固所學知識,使自己的動手動腦能力有更進一步提高,為自己今后的學習和工作打好基礎,為自己的專業技能打好基礎。通過解
4、決實際問題,鞏固和加深“單片機原理與應用”課程中所學的理論知識和實驗能力,基本掌握單片機應用電路的一般設計方法,提高電子電路的設計和實驗能力,加深對單片機軟硬知識的理解,獲得初步的應用經驗,為以后從事生產和科研工作打下一定的基礎。本次設計注重對單片機工作原理以及鍵盤控制及顯示原理的理解,以便今后自己在單片機領域的學習和開發打下基礎,提高自己的動手能力和設計能力,培養創新能力,豐富自己的理論知識,做到理論和實踐相結合。本次設計的重要意義還
5、在于對單片機的內部結構和工作狀態做更進一步的了解,同時還對單片機的接口技術,中斷技術,存</p><p><b> 二、硬件系統:</b></p><p><b> 1.硬件總電路圖:</b></p><p><b> 2.子系統描述</b></p><p><b&
6、gt; 晶振及復位電路:</b></p><p> 由于單片機內部振蕩方式電路簡單,時鐘信號比較穩定,是獨立的單片機應用系統的首選,故本設計采用內部振蕩方式,采用12MHZ的晶振。</p><p><b> a晶振電路圖</b></p><p> 本設計電路采用定時器T0產生定時中斷,由于本設計需要0.1s的基本時間,故選擇
7、其工作在定時方式1下。這時定時器T0是一個16位的計時器,由它產生50ms的基本定時中斷,兩次中斷后將得到0.1s的時間。</p><p> 鍵盤電路有獨立式鍵盤和矩陣式兩種。獨立式鍵盤占用I/O口線較多,適用于按鍵較少的情況。矩陣式鍵盤占用的I/O口相對較少,適用于按鍵很多的情況。</p><p><b> b鍵盤電路圖</b></p><p
8、> 報警電路將采用p3.0口驅動,當數碼管顯示00.00.0時p3.0口輸出高電平,驅動蜂鳴器達到報警的目的,只有當復位鍵按下后,蜂鳴器才會停止報警。</p><p><b> c蜂鳴器報警電路圖</b></p><p> 對于顯示電路,本設計采用6位8段共陰極LED數碼管顯示。上電顯示最大倒計時時間60.00.00-。其中“-”位為系統狀態標志位,當顯示
9、“-”時,表示系統處于等待狀態,按下開始鍵后將開始計數,開始計數后此數碼管將關閉顯示,以達到省電的目的 ,當顯示“E”時,表示系統正處于調時狀態,此時只用兩個調時鍵有用,按下開始鍵或復位鍵將沒有用。</p><p><b> d顯示電路圖</b></p><p> 硬件連接說明:本系統以AT89C51單片機為核心。單片機采用內部振蕩的方式。通過200歐姆電阻與一個
10、6位8段LED數碼顯示管相連。從P0口輸出LED數碼管的字形碼,從P2口輸出LED數碼管的位選碼,高電平有效。4個功能按鍵和P1口相連,中間通過10K的電阻與+5V電源相連,按鍵另一端接地,P1口低電平時表示按鍵被按下。報警電路則與P3.0口相連,當P3.0口輸出高電平時,蜂鳴器響。</p><p><b> 三、軟件系統:</b></p><p><b>
11、; 1.系統總流程圖</b></p><p><b> 四、仿真結果</b></p><p> 上電后LED數碼管顯示最大倒計時值60.00.0-,程序處于等待狀態。</p><p> 上電或者復位鍵被按下時</p><p> 此時,主程序不斷調用顯示子程序以及掃描鍵盤按鍵情況,當檢測到有鍵按下后,
12、轉到相應的程序執行。</p><p> 開始/暫停鍵按下后程序開始減1計數直到0,同時狀態顯示管熄滅,計數值到0后報警器響。若中途遇到開始/暫停鍵按下則,暫停倒計時。若中途遇到復位鍵按下則將倒計時器的倒計時值設置為最大值,并處于等待狀態。</p><p><b> 計數值到0時</b></p><p><b> 開始/暫停鍵按下
13、后</b></p><p> 復位鍵按下后,程序復位,系統處于等待狀態,狀態顯示管顯示“-”。 </p><p> 當設置鍵被按下后,程序進入調時設置狀態,同時狀態顯示管顯示“E”。設置狀態的初始值位00.00.0E,按下+1調整鍵,可以將當前的計數單位值加1,再次按下設置鍵后,即進入了下個計數單位的調時狀態,當按下5次設置鍵后將退出調時狀態,若分鐘十位被設置為6并再次按下
14、設置鍵后程序直接退出調時狀態。設置狀態時開始/暫停鍵和復位鍵無效,等退出調時狀態后,設置狀態時開始/暫停鍵和復位鍵恢復功能。</p><p><b> 調時狀態時</b></p><p><b> 五、課程總結:</b></p><p> 課程設計是培養學生綜合運用所學知識,發現、提出、分析和解決實際問題,鍛煉實踐能
15、力的重要環節,是對學生實際工作能力的具體訓練和考察過程。隨著科學技術發展的日新日異,單片機已經成為當今計算機應用中空前活躍的領域,在生活中可以說得是無處不在,作為二十一世紀的大學生來說掌握單片機的開發技術是十分重要的。</p><p> 通過本次單片機原理及應用課程設計使我充分認認到了課程設計的理要性和必要性,本次設計使我對已學過的基礎知識有了更深入的理解,學會了獨立思考、獨立工作以及對應用所學基本理論分析和解
16、決實際問題的能力有了很大的提高。另外,本次設計使我的實際操作技能得到了訓練, 同時也進一步培養了我嚴謹的科學作風。</p><p> 回顧起此次單片機課程設計,從選題到定稿,從理論到實踐,在整整一星期的日子里,可以說得是苦多于甜,但是從中卻學到很多很多的的東西,不但鞏固了以前所學過的知識,而且對單片機原理課外知識也的到了拓展。做的過程中,開始的確遇到了不少困難的問題,比如說芯片管腳不熟悉怎么放置,對單片機匯編語
17、言掌握得不好等等,同時在這過程中也發現了自己的許多不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。 </p><p> 通過單片機課程設計之后,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我們還學會了如何去培養創新精神和嚴謹的科學作風,從而不斷地戰勝自己,超越自己。更重要的是,我在這一設計過程中,學會了堅持不懈,不輕易言棄。</p><p> 另外,課
18、堂上也有部分知識不太清楚,于是我又不得不邊學邊用,時刻鞏固所學知識,這也是我作本次課程設計的第二大收獲。整個設計我基本上還滿意,由于水平有限,難免會有錯誤,還望老師批評指正。</p><p><b> 六、參考文獻</b></p><p> [1] 曾屹.單片機原理與應用.湖南:中南大學出版社,2009</p><p> [2] 丁元杰.
19、單片微機原理及應用.3版.北京:機械工業出版社,2006</p><p> [3] 嚴天峰.單片機應用系統設計與仿真調試.北京:北京航空航天大學出版社,2005</p><p> [4] 楊振江.流行單片實用子程序及應用實例.西安:電子科技大學出版社,2002</p><p><b> 附:實驗源程序</b></p><
20、;p> ;倒計時器設計源程序</p><p><b> ORG 0000H</b></p><p><b> AJMP MAIN</b></p><p> ORG 000BH ;T0中斷程序入口地址</p><p><b> AJMP T0ZD</b
21、></p><p> ORG 00100H</p><p> MAIN:CLR TR0 ;主程序開始</p><p> CLR P3.0 ;關閉蜂鳴器</p><p> SETB 20H.1 ;使顯示管狀態標志位有效</p><p> CLR 2
22、0H.0 ;開始/暫停標志位,使程序處于等待開始|暫停鍵按下</p><p> MOV 40H,#00H ;0.1S位查表碼</p><p> MOV 41H,#00H ;秒鐘個位位查表碼</p><p> MOV 42H,#00H ;秒鐘十位位查表碼</p><p> MOV 4
23、3H,#00H ;分鐘個位位查表碼</p><p> MOV 44H,#06H ;分鐘十位位查表碼</p><p> MOV 45H,#00H ;狀態顯示管查表碼</p><p> MOV 46H,#02H ;定時器定時次數</p><p> SETB EA ;開總
24、中斷</p><p> SETB ET0 ;開定時器T0中斷</p><p> MOV TMOD,#01H ;定時器工作方式0</p><p> MOV TL0,#0B0H ;定時初值,采用50MS定時</p><p> MOV TH0,#3CH</p><p> JP
25、JC:LCALL XSCX ;顯示倒計時初值60.00.0(XSCX),進入鍵盤檢測程序</p><p> MOV P1,#0FFH ;判斷復位鍵是否按下</p><p> JB P1.0,JC12</p><p> LCALL XDYS ;調用消抖延時程序(XDYS)</p><p> J
26、B P1.0,JC12</p><p> PP10:JNB P1.0,DP10 ;等待按鍵按下</p><p> AJMP MAIN ;復位鍵按下后轉到主程序(MAIN)重新開始</p><p> JC12:MOV P1,#0FFH ;判斷設置鍵是否按下</p><p> JB P1.2,JC1
27、1</p><p> LCALL XDYS</p><p> JB P1.2,JC11</p><p> PP12:JNB P1.2,DP12 ;調整設置鍵按下后轉到調時子程序(TSCX)</p><p> ACALL TSCX</p><p> JC11:MOV P1,#0FFH ;判
28、斷開始/暫停鍵是否按下</p><p> JB P1.1,JPJC</p><p> LCALL XDYS</p><p> JB P1.1,JPJC</p><p> PP11:JNB P1.1,DP11</p><p> CPL 20H.0 ;將標志位取反</p><
29、p> JB 20H.0,KSJS ;開始/暫停標志為1則開始計數(KSJS)</p><p><b> CLR TR0</b></p><p> SETB 20H.1</p><p> AJMP JPJC ;繼續檢測鍵盤按鍵情況(JPJC)</p><p> DP10:LCAL
30、L XSCX ;等待按鍵按下時,調用顯示程序,防止顯示管沒顯示</p><p><b> AJMP PP10</b></p><p> DP11:LCALL XSCX</p><p><b> AJMP PP11</b></p><p> DP12:LCALL XSCX<
31、;/p><p><b> AJMP PP12</b></p><p> KSJS:CLR 20H.1 ;清除狀態顯示管</p><p><b> SETB P2.5</b></p><p> JB P3.0,JPJC ;若蜂鳴器響,則不啟動計時器</p>
32、<p> SETB TR0 ;啟動計時器TO (KSJS)</p><p><b> AJMP JPJC</b></p><p> ; 顯示子程序</p><p> XSCX:MOV DPTR,#TAB ;顯示子程序(XSCX)</p><p><b> M
33、OV A,40H</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2, #0FFH ;關閉顯示.</p><p> MOV P0, A ;輸出0.1S位的顯示段碼.</p><p> CLR P2.0 ;P2.0=0</p>
34、<p> ACALL XSYS</p><p> MOV DPTR,#TAB1 ;</p><p><b> MOV A,41H</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2, #0FFH ;關閉顯示.</p><p&g
35、t; MOV P0, A ;輸出秒鐘個位的顯示碼.</p><p> CLR P2.1 ;P2.1=0</p><p> ACALL XSYS</p><p> MOV DPTR,#TAB</p><p><b> MOV A,42H</b></p>&l
36、t;p> MOVC A,@A+DPTR</p><p> MOV P2, #0FFH ;關閉顯示.</p><p> MOV P0, A ;輸出秒鐘十位位的顯示段碼.</p><p> CLR P2.2 ;P2.2=0</p><p> ACALL XSYS</p&g
37、t;<p> MOV DPTR,#TAB1</p><p><b> MOV A,43H</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2, #0FFH ;關閉顯示.</p><p> MOV P0, A ;輸出分鐘個位的顯示段
38、碼.</p><p> CLR P2.3 ;P2.3=0</p><p> ACALL XSYS</p><p> MOV DPTR,#TAB</p><p><b> MOV A,44H</b></p><p> MOVC A,@A+DPTR</p>
39、<p> MOV P2, #0FFH ;關閉顯示.</p><p> MOV P0, A ;輸出分鐘十位的顯示段碼.</p><p> CLR P2.4 ;P2.4=0</p><p> ACALL XSYS</p><p> JNB 20H.1,ZBTC
40、;20H.1為1則顯示計時器狀態</p><p> MOV DPTR,#TAB2</p><p><b> MOV A,45H</b></p><p> MOVC A,@A+DPTR</p><p> MOV P2, #0FFH ;關閉顯示.</p><p> MOV P0
41、, A ;輸出段碼.</p><p> CLR P2.5 ;P2.5=0</p><p> ACALL XSYS</p><p><b> ZBTC:RET</b></p><p> ; 調時子程序</p><p> TSCX:CLR TR0
42、 ;調時子程序(TSCX)</p><p> CLR 20H.0 ;使時間調整時處于暫停狀態</p><p> MOV 40H,#00H</p><p> MOV 41H,#00H</p><p> MOV 42H,#00H</p><p> MOV 43H,#00
43、H</p><p> MOV 44H,#00H</p><p> SETB 20H.1 ;使狀態顯示管的位選碼有效</p><p> MOV 45H,#01H ;將狀態顯示碼更改為E(調時狀態)</p><p> MOV R0,#44H</p><p> JCTZ:ACALL
44、 XSCX ;先調用顯示程序,掃描時間調整鍵</p><p> MOV P1,#0FFH</p><p> JB P1.3,NEXT ;+1鍵盤沒有按下</p><p> ACALL XDYS ;鍵盤按下,消抖延時</p><p> JB P1.3,NEXT</p>&l
45、t;p> DEN0:JNB P1.3,DEN1 ;等待按鍵釋放</p><p> AJMP JYCX ;+1鍵按下后,跳轉到+1程序</p><p> NEXT:MOV P1,#0FFH</p><p> JB P1.2,JCTZ</p><p> ACALL XDYS ;鍵盤
46、按下,消抖延時</p><p> JB P1.2,JCTZ</p><p> DEN2:JNB P1.2,DEN3 ;等待按鍵釋放</p><p><b> MOV A,44H</b></p><p> CJNE A,#06H,DEC4 ;設置鍵再次按下,將調整指針指向下一位</p>
47、;<p><b> AJMP TCTS</b></p><p> DEC4:DEC R0</p><p> CJNE R0,#3FH,JCTZ ;若R0為3FH則退出調時程序</p><p> AJMP TCTS ;若@R0不為#06H,但R0為#3FH,則跳出調時程序</p>
48、<p> JYCX:CJNE R0,#44H,XIA1 ;加1調時部分</p><p> CJNE @R0,#06H,INCR ;調整分鐘十位</p><p><b> AJMP SET0</b></p><p> XIA1:CJNE R0,#43H,XIA2</p><p> AJM
49、P TZ09 ;調整分鐘個位</p><p> XIA2:CJNE R0,#42H,XIA3</p><p> CJNE @R0,#05H,INCR ;調整秒鐘十位</p><p><b> AJMP SET0</b></p><p> XIA3:CJNE R0,#41H,XIA4&
50、lt;/p><p> AJMP TZ09 ;調整秒鐘個位</p><p> XIA4:CJNE R0,#40H,TCTS</p><p> TZ09:CJNE @R0,#09H,INCR ;調整0.1秒位</p><p> SET0:MOV @R0,#00H</p><p><
51、;b> AJMP JCTZ</b></p><p> INCR:INC @R0</p><p><b> AJMP JCTZ</b></p><p> DEN1:ACALL XSCX</p><p><b> AJMP DEN0</b></p><p&
52、gt; DEN3:ACALL XSCX</p><p><b> AJMP DEN2</b></p><p> TCTS:MOV TH0,#3CH ;退出調時程序</p><p> MOV TL0,#0B0H</p><p> MOV 45H,#00H ;將狀態顯示碼
53、更改為D(等待狀態)</p><p><b> RET</b></p><p> ; T0中斷子程序</p><p> T0ZD:CLR EA ;T0中斷子程序,關中斷 (T0ZD)</p><p><b> CLR ET0</b></p>
54、<p><b> CLR TR0</b></p><p> DJNZ 46H,TCZD</p><p> MOV 46H,#02H ;當定時兩次后重新給計時次數賦值為2</p><p> MOV R0,#40H ;減1計數,R0為40H</p><p> C
55、JNE @R0,#01H,R040</p><p> INC R0 ;R0為41H</p><p> CJNE @R0,#00H,DEC1</p><p> INC R0 ;R0為42H</p><p> CJNE @R0,#00H,DEC1</p><
56、;p> INC R0 ;R0為43H</p><p> CJNE @R0,#00H,DEC1</p><p> INC R0 ;R0為44H</p><p> CJNE @R0,#00H,DEC1</p><p><b> AJMP JYFH</b
57、></p><p> R040:CJNE @R0,#00H,DEC1 ;R0為40H</p><p> INC R0 ;R0為41H</p><p> CJNE @R0,#00H,R041</p><p> INC R0 ;R0為42H</p>
58、<p> CJNE @R0,#00H,R042</p><p> INC R0 ;R0為43H</p><p> CJNE @R0,#00H,R043</p><p> INC R0 ;R0為44H</p><p> CJNE @R0,#00H,R044&l
59、t;/p><p><b> AJMP ZJFH</b></p><p> R041:MOV 40H,#09H</p><p><b> DEC 41H</b></p><p><b> AJMP TCZD</b></p><p> R042:MOV
60、 40H,#09H</p><p> MOV 41H,#09H</p><p><b> DEC 42H</b></p><p><b> AJMP TCZD</b></p><p> R043:MOV 40H,#09H</p><p> MOV 41H,#09H&
61、lt;/p><p> MOV 42H,#05H</p><p><b> DEC 43H</b></p><p><b> AJMP TCZD</b></p><p> R044:MOV 40H,#09H</p><p> MOV 41H,#09H</p>
62、<p> MOV 42H,#05H</p><p> MOV 43H,#09H</p><p><b> DEC 44H</b></p><p><b> AJMP TCZD</b></p><p> DEC1:DEC 40H</p><p> TCZ
63、D:MOV TH0,#3CH ;退出中斷子程序</p><p> MOV TL0,#0B0H</p><p><b> SETB EA</b></p><p><b> SETB ET0</b></p><p><b> SETB TR0</b>&
64、lt;/p><p><b> AJMP ZZFH</b></p><p> JYFH:DEC 40H</p><p> ZJFH:SETB P3.0 ;啟動蜂鳴器</p><p><b> ZZFH:RETI</b></p><p> XDYS:
65、ACALL XSCX ;消抖延時程序,延時10ms(2*5ms)</p><p> ACALL XSCX ;采用調用顯示子程序延時以改善LED顯示效果</p><p><b> RET</b></p><p> XSYS:MOV 55H,#20 ;顯示延時程序,延時1ms</p><p> DEL2
66、:MOV 56H,#25</p><p> DEL1:DJNZ 56H,DEL1</p><p> DJNZ 55H,DEL2</p><p><b> RET</b></p><p> TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p><p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機60倒計時課程設計
- 單片機【倒計時音樂鬧鐘】課程設計
- 單片機課程設計-30s倒計時
- 單片機99s倒計時課程設計
- 單片機課程設計--籃球倒計時牌設計
- 單片機答辯倒計時器課程設計報告
- 60秒倒計時器-單片機課程設計
- 單片機課程設計---六十秒倒計時電路設計
- 60秒倒計時器-單片機課程設計報告
- 單片機課程設計--- 設計并實現可編倒計時裝置
- 單片機原理及應用課程設計--答辯倒計時器
- 籃球倒計時課程設計--籃球板倒計時設計
- 單片機課程設計--簡單的倒計時器的設計與制作
- 開題報告--單片機倒計時電路設計
- 99倒計時課程設計
- 單片機課程設計--基于at89c51的60秒倒計時設計
- 單片機課程設計---基于at89c51的60秒倒計時設計
- 單片機課程設計-基于at89c51的60秒倒計時設計
- 單片機課程設計基于89c51的倒計時牌設計
- 《單片機原理及應用》課程設計任務書--倒計時器
評論
0/150
提交評論