單片機(jī)課程設(shè)計(jì)_第1頁
單片機(jī)課程設(shè)計(jì)_第2頁
單片機(jī)課程設(shè)計(jì)_第3頁
單片機(jī)課程設(shè)計(jì)_第4頁
單片機(jī)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄一、設(shè)計(jì)目的:1二、硬件系統(tǒng):2三、軟件系統(tǒng):5四、仿真結(jié)果9五、課程總結(jié):11六、參考文獻(xiàn)12附:實(shí)驗(yàn)源程序13一、設(shè)計(jì)目的: 由單片機(jī)接收小鍵盤陣列設(shè)定倒計(jì)時(shí)時(shí)間,倒計(jì)時(shí)的范圍最大為60分鐘,由LED 顯示模塊顯示剩余時(shí)間,顯示格式為 XX(分):XX(秒).X,精確到0.1s的整數(shù)倍。倒計(jì)時(shí)到,由蜂鳴器發(fā)出報(bào)警。繪制系統(tǒng)硬件接線圖,并進(jìn)行系統(tǒng)仿真和實(shí)驗(yàn)。畫出程序流程圖并編寫程序?qū)崿F(xiàn)系統(tǒng)功能。此次設(shè)計(jì)是我們更進(jìn)一步了解基本電路的設(shè)計(jì)流程,提高自己的設(shè)計(jì)理念,豐富自己的理論知識(shí),鞏固所學(xué)知識(shí),使自己的動(dòng)手動(dòng)腦能力有更進(jìn)一步提高,為自己今后的學(xué)習(xí)和工作打好基礎(chǔ),為自己的專業(yè)技能打好基礎(chǔ)。通

2、過解決實(shí)際問題,鞏固和加深“單片機(jī)原理與應(yīng)用”課程中所學(xué)的理論知識(shí)和實(shí)驗(yàn)?zāi)芰?,基本掌握單片機(jī)應(yīng)用電路的一般設(shè)計(jì)方法,提高電子電路的設(shè)計(jì)和實(shí)驗(yàn)?zāi)芰?,加深?duì)單片機(jī)軟硬知識(shí)的理解,獲得初步的應(yīng)用經(jīng)驗(yàn),為以后從事生產(chǎn)和科研工作打下一定的基礎(chǔ)。本次設(shè)計(jì)注重對(duì)單片機(jī)工作原理以及鍵盤控制及顯示原理的理解,以便今后自己在單片機(jī)領(lǐng)域的學(xué)習(xí)和開發(fā)打下基礎(chǔ),提高自己的動(dòng)手能力和設(shè)計(jì)能力,培養(yǎng)創(chuàng)新能力,豐富自己的理論知識(shí),做到理論和實(shí)踐相結(jié)合。本次設(shè)計(jì)的重要意義還在于對(duì)單片機(jī)的內(nèi)部結(jié)構(gòu)和工作狀態(tài)做更進(jìn)一步的了解,同時(shí)還對(duì)單片機(jī)的接口技術(shù),中斷技術(shù),存儲(chǔ)方式和控制方式作更深層次的了解。二、硬件系統(tǒng):1.硬件總電路圖:2

3、.子系統(tǒng)描述a. 晶振及復(fù)位電路: 由于單片機(jī)內(nèi)部振蕩方式電路簡(jiǎn)單,時(shí)鐘信號(hào)比較穩(wěn)定,是獨(dú)立的單片機(jī)應(yīng)用系統(tǒng)的首選,故本設(shè)計(jì)采用內(nèi)部振蕩方式,采用12MHZ的晶振。a晶振電路圖b. 本設(shè)計(jì)電路采用定時(shí)器T0產(chǎn)生定時(shí)中斷,由于本設(shè)計(jì)需要0.1s的基本時(shí)間,故選擇其工作在定時(shí)方式1下。這時(shí)定時(shí)器T0是一個(gè)16位的計(jì)時(shí)器,由它產(chǎn)生50ms的基本定時(shí)中斷,兩次中斷后將得到0.1s的時(shí)間。c. 鍵盤電路有獨(dú)立式鍵盤和矩陣式兩種。獨(dú)立式鍵盤占用I/O口線較多,適用于按鍵較少的情況。矩陣式鍵盤占用的I/O口相對(duì)較少,適用于按鍵很多的情況。b鍵盤電路圖d. 報(bào)警電路將采用p3.0口驅(qū)動(dòng),當(dāng)數(shù)碼管顯示00.00

4、.0時(shí)p3.0口輸出高電平,驅(qū)動(dòng)蜂鳴器達(dá)到報(bào)警的目的,只有當(dāng)復(fù)位鍵按下后,蜂鳴器才會(huì)停止報(bào)警。c蜂鳴器報(bào)警電路圖e. 對(duì)于顯示電路,本設(shè)計(jì)采用6位8段共陰極LED數(shù)碼管顯示。上電顯示最大倒計(jì)時(shí)時(shí)間60.00.00-。其中“-”位為系統(tǒng)狀態(tài)標(biāo)志位,當(dāng)顯示“-”時(shí),表示系統(tǒng)處于等待狀態(tài),按下開始鍵后將開始計(jì)數(shù),開始計(jì)數(shù)后此數(shù)碼管將關(guān)閉顯示,以達(dá)到省電的目的 ,當(dāng)顯示“E”時(shí),表示系統(tǒng)正處于調(diào)時(shí)狀態(tài),此時(shí)只用兩個(gè)調(diào)時(shí)鍵有用,按下開始鍵或復(fù)位鍵將沒有用。d顯示電路圖硬件連接說明:本系統(tǒng)以AT89C51單片機(jī)為核心。單片機(jī)采用內(nèi)部振蕩的方式。通過200歐姆電阻與一個(gè)6位8段LED數(shù)碼顯示管相連。從P0口

5、輸出LED數(shù)碼管的字形碼,從P2口輸出LED數(shù)碼管的位選碼,高電平有效。4個(gè)功能按鍵和P1口相連,中間通過10K的電阻與+5V電源相連,按鍵另一端接地,P1口低電平時(shí)表示按鍵被按下。報(bào)警電路則與P3.0口相連,當(dāng)P3.0口輸出高電平時(shí),蜂鳴器響。三、軟件系統(tǒng):1.系統(tǒng)總流程圖YNYNNYNYNNNYYYY開始關(guān)閉定時(shí)器、蜂鳴器復(fù)位鍵按下?標(biāo)志位、顯示管查表碼初始化定時(shí)器設(shè)置初始化開中斷調(diào)用顯示子程序調(diào)時(shí)設(shè)置鍵按下?調(diào)用消抖延時(shí)子程序開始/暫停鍵按下?開始/暫停鍵按下?調(diào)用消抖延時(shí)子程序開始/暫停標(biāo)志位取反等待按鍵釋放等待按鍵釋放調(diào)用調(diào)時(shí)子程序等待按鍵釋放20H.0=1?置位狀態(tài)顯示管標(biāo)志位P3

6、.0=0?置位P2.5復(fù)位鍵按下?調(diào)用消抖延時(shí)子程序調(diào)時(shí)設(shè)置鍵按下?啟動(dòng)定時(shí)器T0NNYNR0為#39H?YYYNNNNNNNNNYYYYYYYYYY調(diào)用顯示子程序P1.3=0?開始調(diào)用消抖延時(shí)子程序P1.3=0?等待按鍵釋放R0=#44H?R0為#06H?MOV R0,#00HR0=#43H?3R0為#05H?R0為#09H?MOV R0,#00HMOV R0,#00HINC R0INC R0INC R0P1.2=0?P1.2=0?調(diào)用消抖延時(shí)子程序等待按鍵釋放DEC R044H=#06H?R0=#42H?3調(diào)試子程序流程圖子程序返回 T0中斷子程序流程圖NNYYYYNN開始40H=0?41

7、H=0?42H=0?43H=0?44H=0?DEC 40HSETB P3.0DEC 40H啟動(dòng)T0中斷返回NNNNNYYYY將40H置940H=0?41H=0?42H=0?43H=0?44H=0?DEC 42HDEC 40HDEC 40HDEC 41H將40H置9將41H置9將40H、41H、43H置9,42H置5將40H、41H置9,42H置5四、仿真結(jié)果1. 上電后LED數(shù)碼管顯示最大倒計(jì)時(shí)值60.00.0-,程序處于等待狀態(tài)。 上電或者復(fù)位鍵被按下時(shí)2. 此時(shí),主程序不斷調(diào)用顯示子程序以及掃描鍵盤按鍵情況,當(dāng)檢測(cè)到有鍵按下后,轉(zhuǎn)到相應(yīng)的程序執(zhí)行。3. 開始/暫停鍵按下后程序開始減1計(jì)數(shù)直

8、到0,同時(shí)狀態(tài)顯示管熄滅,計(jì)數(shù)值到0后報(bào)警器響。若中途遇到開始/暫停鍵按下則,暫停倒計(jì)時(shí)。若中途遇到復(fù)位鍵按下則將倒計(jì)時(shí)器的倒計(jì)時(shí)值設(shè)置為最大值,并處于等待狀態(tài)。 計(jì)數(shù)值到0時(shí) 開始/暫停鍵按下后4. 復(fù)位鍵按下后,程序復(fù)位,系統(tǒng)處于等待狀態(tài),狀態(tài)顯示管顯示“-”。 5. 當(dāng)設(shè)置鍵被按下后,程序進(jìn)入調(diào)時(shí)設(shè)置狀態(tài),同時(shí)狀態(tài)顯示管顯示“E”。設(shè)置狀態(tài)的初始值位00.00.0E,按下+1調(diào)整鍵,可以將當(dāng)前的計(jì)數(shù)單位值加1,再次按下設(shè)置鍵后,即進(jìn)入了下個(gè)計(jì)數(shù)單位的調(diào)時(shí)狀態(tài),當(dāng)按下5次設(shè)置鍵后將退出調(diào)時(shí)狀態(tài),若分鐘十位被設(shè)置為6并再次按下設(shè)置鍵后程序直接退出調(diào)時(shí)狀態(tài)。設(shè)置狀態(tài)時(shí)開始/暫停鍵和復(fù)位鍵無效,

9、等退出調(diào)時(shí)狀態(tài)后,設(shè)置狀態(tài)時(shí)開始/暫停鍵和復(fù)位鍵恢復(fù)功能。 調(diào)時(shí)狀態(tài)時(shí)五、課程總結(jié): 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說得是無處不在,作為二十一世紀(jì)的大學(xué)生來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。 通過本次單片機(jī)原理及應(yīng)用課程設(shè)計(jì)使我充分認(rèn)認(rèn)到了課程設(shè)計(jì)的理要性和必要性,本次設(shè)計(jì)使我對(duì)已學(xué)過的基礎(chǔ)知識(shí)有了更深入的理解,學(xué)會(huì)了獨(dú)立思考、獨(dú)立工作以及對(duì)應(yīng)用所學(xué)基本理論分析和解決實(shí)際問題的能力有了很大的提高。另外,本

10、次設(shè)計(jì)使我的實(shí)際操作技能得到了訓(xùn)練, 同時(shí)也進(jìn)一步培養(yǎng)了我嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng)。 回顧起此次單片機(jī)課程設(shè)計(jì),從選題到定稿,從理論到實(shí)踐,在整整一星期的日子里,可以說得是苦多于甜,但是從中卻學(xué)到很多很多的的東西,不但鞏固了以前所學(xué)過的知識(shí),而且對(duì)單片機(jī)原理課外知識(shí)也的到了拓展。做的過程中,開始的確遇到了不少困難的問題,比如說芯片管腳不熟悉怎么放置,對(duì)單片機(jī)匯編語言掌握得不好等等,同時(shí)在這過程中也發(fā)現(xiàn)了自己的許多不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固。 通過單片機(jī)課程設(shè)計(jì)之后,我不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我們還學(xué)會(huì)了如何去培養(yǎng)創(chuàng)新精神和嚴(yán)謹(jǐn)?shù)目茖W(xué)

11、作風(fēng),從而不斷地戰(zhàn)勝自己,超越自己。更重要的是,我在這一設(shè)計(jì)過程中,學(xué)會(huì)了堅(jiān)持不懈,不輕易言棄。 另外,課堂上也有部分知識(shí)不太清楚,于是我又不得不邊學(xué)邊用,時(shí)刻鞏固所學(xué)知識(shí),這也是我作本次課程設(shè)計(jì)的第二大收獲。整個(gè)設(shè)計(jì)我基本上還滿意,由于水平有限,難免會(huì)有錯(cuò)誤,還望老師批評(píng)指正。六、參考文獻(xiàn)1 曾屹.單片機(jī)原理與應(yīng)用.湖南:中南大學(xué)出版社,20092 丁元杰.單片微機(jī)原理及應(yīng)用.3版.北京:機(jī)械工業(yè)出版社,20063 嚴(yán)天峰.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與仿真調(diào)試.北京:北京航空航天大學(xué)出版社,20054 楊振江.流行單片實(shí)用子程序及應(yīng)用實(shí)例.西安:電子科技大學(xué)出版社,2002附:實(shí)驗(yàn)源程序 ;倒計(jì)時(shí)器

12、設(shè)計(jì)源程序ORG 0000H AJMP MAIN ORG 000BH ;T0中斷程序入口地址 AJMP T0ZD ORG 00100HMAIN:CLR TR0 ;主程序開始 CLR P3.0 ;關(guān)閉蜂鳴器 SETB 20H.1 ;使顯示管狀態(tài)標(biāo)志位有效 CLR 20H.0 ;開始/暫停標(biāo)志位,使程序處于等待開始|暫停鍵按下 MOV 40H,#00H ;0.1S位查表碼 MOV 41H,#00H ;秒鐘個(gè)位位查表碼 MOV 42H,#00H ;秒鐘十位位查表碼 MOV 43H,#00H ;分鐘個(gè)位位查表碼 MOV 44H,#06H ;分鐘十位位查表碼 MOV 45H,#00H ;狀態(tài)顯示管查表碼

13、 MOV 46H,#02H ;定時(shí)器定時(shí)次數(shù) SETB EA ;開總中斷 SETB ET0 ;開定時(shí)器T0中斷 MOV TMOD,#01H ;定時(shí)器工作方式0 MOV TL0,#0B0H ;定時(shí)初值,采用50MS定時(shí) MOV TH0,#3CHJPJC:LCALL XSCX ;顯示倒計(jì)時(shí)初值60.00.0(XSCX),進(jìn)入鍵盤檢測(cè)程序 MOV P1,#0FFH ;判斷復(fù)位鍵是否按下 JB P1.0,JC12 LCALL XDYS ;調(diào)用消抖延時(shí)程序(XDYS) JB P1.0,JC12PP10:JNB P1.0,DP10 ;等待按鍵按下 AJMP MAIN ;復(fù)位鍵按下后轉(zhuǎn)到主程序(MAIN)重

14、新開始JC12:MOV P1,#0FFH ;判斷設(shè)置鍵是否按下 JB P1.2,JC11 LCALL XDYS JB P1.2,JC11PP12:JNB P1.2,DP12 ;調(diào)整設(shè)置鍵按下后轉(zhuǎn)到調(diào)時(shí)子程序(TSCX) ACALL TSCXJC11:MOV P1,#0FFH ;判斷開始/暫停鍵是否按下 JB P1.1,JPJC LCALL XDYS JB P1.1,JPJCPP11:JNB P1.1,DP11 CPL 20H.0 ;將標(biāo)志位取反 JB 20H.0,KSJS ;開始/暫停標(biāo)志為1則開始計(jì)數(shù)(KSJS) CLR TR0 SETB 20H.1 AJMP JPJC ;繼續(xù)檢測(cè)鍵盤按鍵情

15、況(JPJC)DP10:LCALL XSCX ;等待按鍵按下時(shí),調(diào)用顯示程序,防止顯示管沒顯示 AJMP PP10DP11:LCALL XSCX AJMP PP11DP12:LCALL XSCX AJMP PP12KSJS:CLR 20H.1 ;清除狀態(tài)顯示管 SETB P2.5 JB P3.0,JPJC ;若蜂鳴器響,則不啟動(dòng)計(jì)時(shí)器 SETB TR0 ;啟動(dòng)計(jì)時(shí)器TO (KSJS) AJMP JPJC; 顯示子程序XSCX:MOV DPTR,#TAB ;顯示子程序(XSCX) MOV A,40H MOVC A,A+DPTR MOV P2, #0FFH ;關(guān)閉顯示. MOV P0, A ;輸出

16、0.1S位的顯示段碼. CLR P2.0 ;P2.0=0 ACALL XSYS MOV DPTR,#TAB1 ; MOV A,41H MOVC A,A+DPTR MOV P2, #0FFH ;關(guān)閉顯示. MOV P0, A ;輸出秒鐘個(gè)位的顯示碼. CLR P2.1 ;P2.1=0 ACALL XSYS MOV DPTR,#TAB MOV A,42H MOVC A,A+DPTR MOV P2, #0FFH ;關(guān)閉顯示. MOV P0, A ;輸出秒鐘十位位的顯示段碼. CLR P2.2 ;P2.2=0 ACALL XSYS MOV DPTR,#TAB1 MOV A,43H MOVC A,A+D

17、PTR MOV P2, #0FFH ;關(guān)閉顯示. MOV P0, A ;輸出分鐘個(gè)位的顯示段碼. CLR P2.3 ;P2.3=0 ACALL XSYS MOV DPTR,#TAB MOV A,44H MOVC A,A+DPTR MOV P2, #0FFH ;關(guān)閉顯示. MOV P0, A ;輸出分鐘十位的顯示段碼. CLR P2.4 ;P2.4=0 ACALL XSYS JNB 20H.1,ZBTC ;20H.1為1則顯示計(jì)時(shí)器狀態(tài) MOV DPTR,#TAB2 MOV A,45H MOVC A,A+DPTR MOV P2, #0FFH ;關(guān)閉顯示. MOV P0, A ;輸出段碼. CLR

18、 P2.5 ;P2.5=0 ACALL XSYSZBTC:RET; 調(diào)時(shí)子程序TSCX:CLR TR0 ;調(diào)時(shí)子程序(TSCX) CLR 20H.0 ;使時(shí)間調(diào)整時(shí)處于暫停狀態(tài) MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H SETB 20H.1 ;使?fàn)顟B(tài)顯示管的位選碼有效 MOV 45H,#01H ;將狀態(tài)顯示碼更改為E(調(diào)時(shí)狀態(tài)) MOV R0,#44HJCTZ:ACALL XSCX ;先調(diào)用顯示程序,掃描時(shí)間調(diào)整鍵 MOV P1,#0FFH JB P1.3,NEXT ;+1鍵盤沒有按下 ACALL XDYS

19、 ;鍵盤按下,消抖延時(shí) JB P1.3,NEXTDEN0:JNB P1.3,DEN1 ;等待按鍵釋放 AJMP JYCX ;+1鍵按下后,跳轉(zhuǎn)到+1程序NEXT:MOV P1,#0FFH JB P1.2,JCTZ ACALL XDYS ;鍵盤按下,消抖延時(shí) JB P1.2,JCTZDEN2:JNB P1.2,DEN3 ;等待按鍵釋放 MOV A,44H CJNE A,#06H,DEC4 ;設(shè)置鍵再次按下,將調(diào)整指針指向下一位 AJMP TCTSDEC4:DEC R0 CJNE R0,#3FH,JCTZ ;若R0為3FH則退出調(diào)時(shí)程序 AJMP TCTS ;若R0不為#06H,但R0為#3FH,

20、則跳出調(diào)時(shí)程序JYCX:CJNE R0,#44H,XIA1 ;加1調(diào)時(shí)部分 CJNE R0,#06H,INCR ;調(diào)整分鐘十位 AJMP SET0XIA1:CJNE R0,#43H,XIA2 AJMP TZ09 ;調(diào)整分鐘個(gè)位XIA2:CJNE R0,#42H,XIA3 CJNE R0,#05H,INCR ;調(diào)整秒鐘十位 AJMP SET0XIA3:CJNE R0,#41H,XIA4 AJMP TZ09 ;調(diào)整秒鐘個(gè)位XIA4:CJNE R0,#40H,TCTSTZ09:CJNE R0,#09H,INCR ;調(diào)整0.1秒位SET0:MOV R0,#00H AJMP JCTZINCR:INC R

21、0 AJMP JCTZDEN1:ACALL XSCX AJMP DEN0DEN3:ACALL XSCX AJMP DEN2TCTS:MOV TH0,#3CH ;退出調(diào)時(shí)程序 MOV TL0,#0B0H MOV 45H,#00H ;將狀態(tài)顯示碼更改為D(等待狀態(tài)) RET; T0中斷子程序T0ZD:CLR EA ;T0中斷子程序,關(guān)中斷 (T0ZD) CLR ET0 CLR TR0 DJNZ 46H,TCZD MOV 46H,#02H ;當(dāng)定時(shí)兩次后重新給計(jì)時(shí)次數(shù)賦值為2 MOV R0,#40H ;減1計(jì)數(shù),R0為40H CJNE R0,#01H,R040 INC R0 ;R0為41H CJNE R0,#00H,DEC1 INC R0 ;R0為42H CJNE R0,#00H,DEC1 INC R0 ;R0為43H CJNE R0,#00H,DEC1 INC R0 ;R0為44H CJNE R0,#00H,DEC1 AJMP JYFHR040:CJNE R0,#00H,DEC1 ;R0為40H INC R0 ;R0為41H CJNE R0,#00H,R041 INC R0 ;R0為42H CJNE R0,#0

溫馨提示

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

評(píng)論

0/150

提交評(píng)論