(精品)單片機課程設(shè)計精品多功能電腦時鐘設(shè)計(2013年優(yōu)秀畢業(yè)設(shè)計)_第1頁
(精品)單片機課程設(shè)計精品多功能電腦時鐘設(shè)計(2013年優(yōu)秀畢業(yè)設(shè)計)_第2頁
(精品)單片機課程設(shè)計精品多功能電腦時鐘設(shè)計(2013年優(yōu)秀畢業(yè)設(shè)計)_第3頁
(精品)單片機課程設(shè)計精品多功能電腦時鐘設(shè)計(2013年優(yōu)秀畢業(yè)設(shè)計)_第4頁
(精品)單片機課程設(shè)計精品多功能電腦時鐘設(shè)計(2013年優(yōu)秀畢業(yè)設(shè)計)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

重慶科技學院單片機課程設(shè)計報告多功能電腦時鐘設(shè)計1多功能電腦時鐘的功能規(guī)劃要求設(shè)計的多功能電腦時鐘完成以下功能:Case 0:顯示秒表功能,LED燈全部熄滅;Case 1:跑表的設(shè)定,只有P23燈亮;Case 2:調(diào)試秒表,只有P24燈亮;Case 3:調(diào)試分鐘,只有P25燈亮;Case 4:調(diào)試小時,只有P16燈亮;Case 5:設(shè)定鬧鐘,P23與P24燈亮,P25滅,P26滅時鬧鐘打開; Case 6:倒計時的設(shè)定,LED燈全亮。 值初始化Mode0Mode1Mode2Mode3Mode4Mode5Mode6LED全滅LDE1亮LED2亮LED3亮LED4亮LED3滅LED全亮1.1基本功能要求(1)按MODE健切換顯示模式。(2)按UP、DN健修改當前時鐘。(3)UP、DN鍵設(shè)置鬧鐘時間(兩組)(4)按MODE鍵切換到秒表模式,按ENT鍵秒表開始計時,再按ENT鍵秒表計時停止。(5)UP、DN鍵設(shè)定倒計時初值,按MODE鍵切換到倒計時模式,自動開始倒計時。2方案設(shè)計STC89C51RC40I-PDIP0533RB4469.1D蜂鳴器4個數(shù)碼管顯示4個LED指示燈MAX232芯片電源開關(guān)4個獨立式的按鍵電源指示燈2.1硬件方案設(shè)計 圖 2.1.1 系統(tǒng)硬件結(jié)構(gòu)框圖MCS-51內(nèi)部有4KB閃爍儲存器,芯片本身就是一個最小系統(tǒng),該設(shè)計是一個多功能顯示的最小系統(tǒng),MCS-51能夠滿足該系統(tǒng)的性能要求。而且用這種芯片簡單可靠,只需要接上時鐘電路和復位電路即可,省去了外部擴展程序存儲器的工作,從而減少了芯片的數(shù)目,縮小了產(chǎn)品的體積。單片機應(yīng)用系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)兩部分組成。硬件系統(tǒng)是指單片機以及擴展的存儲器、IO接口、外圍擴展的功能芯片以及接口電路。軟件系統(tǒng)包括監(jiān)控程序和各種應(yīng)用程序。 在單片機應(yīng)用系統(tǒng)中,單片機是整個系統(tǒng)的核心,對整個系統(tǒng)的信息輸入、處理、信息輸出進行控制。與單片機配套的有相應(yīng)的復位電路、時鐘電路以及擴展的存儲器和IO接口,使單片機應(yīng)用系統(tǒng)能夠運行。 在一個單片機應(yīng)用系統(tǒng)中,往往都會輸入信息和顯示信息,這就涉及鍵盤和顯示器。在單片機應(yīng)用系統(tǒng)中,一般都根據(jù)系統(tǒng)的要求配置相應(yīng)的鍵盤和顯示器。配置鍵盤和顯示器一般都沒有統(tǒng)一的規(guī)定,有的系統(tǒng)功能復雜,需輸入的信息和顯示的信息量大,配置的鍵盤和顯示器功能相對強大,而有些系統(tǒng)輸入/輸出的信息少,這時可能用幾個按鍵和幾個LED指示燈就可以進行處理了。在單片機應(yīng)用系統(tǒng)在中配置的鍵盤可以是獨立鍵盤,也可能是矩陣鍵盤。顯示器可以是LED指示燈,也可以是LED數(shù)碼管,也可以是LCD顯示器,還可以使用CRT顯示器。單片機應(yīng)用系統(tǒng)中鍵盤一般用的比較多的是矩陣鍵盤,顯示器用的比較多的是LED數(shù)碼管還LCD顯示器。按鍵的設(shè)置:設(shè)置4個按鍵:MODE鍵:0 模式:顯示秒表1模式:設(shè)定跑表 2模式:設(shè)定秒 3模式:設(shè)定分鐘 4模式:設(shè)定小時5模式:設(shè)定鬧鐘6模式:設(shè)定的倒計時功能UP鍵:修改模式:+1操作;(不在同的模式下)DN鍵:修改模式:-1操作;(不在同的模式下)ENT鍵:設(shè)置模式與正常顯示模式切換按鈕原理圖見附錄1。2.2軟件方案設(shè)計此次選用C51來編程,首先要有初始化程序,通過初始化程序,將對主程序所用到的變量、常量以及各個參數(shù)和所調(diào)用的子函數(shù)定義。其次還有顯示程序、按鍵掃描及處理程序、時鐘程序、通訊程序和倒計時程序,系統(tǒng)軟件流程圖圖如圖 2.2.1所示:開始系統(tǒng)初始化While (1)MODE模式選擇按鍵的掃描及處理A主程序開始現(xiàn)場保護,重置初值啟動下一個5ms5ms 計數(shù)器加1秒單元加1,50ms計數(shù)器清0,秒寫入秒個位和秒十位5ms 計數(shù)器=200?否是分單元加1,秒單元清0,分寫入分個位和分十位秒單元=60?時單元加1,分單元清0,時寫入時個位和時十位分單元=60?時單元清0時單元=24?中斷返回否否否是是是B定時中斷程序圖 2.2.1 系統(tǒng)軟件流程圖3硬件電路設(shè)計與分析3.1時鐘電路時鐘電路用于產(chǎn)生MCS-51單片機工作時所需要的時鐘控制信號。MCS-51單片機的內(nèi)部電路在時鐘信號控制下,嚴格地按照時序執(zhí)行指令進行工作。而時序所研究的是指令執(zhí)行中各個信號在時間上的關(guān)系。MCS-51單片機個功能部件的運行都是以時鐘控制信號為基準,有條不紊地一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質(zhì)量也直接影響單片機系統(tǒng)的穩(wěn)定性。常用的時鐘電路設(shè)計有兩種方式,一種是內(nèi)部時鐘方式,另一種方式為外部時鐘方式。圖3.1.1所示:圖3.1.1時鐘電路3.2數(shù)碼管顯示電路如圖所示,數(shù)碼管主要是用于數(shù)字的顯示。數(shù)碼管有共陰和共陽的區(qū)分,單片機都可以進行驅(qū)動,但是驅(qū)動的方法卻不同。四位數(shù)碼管循環(huán)電路是由1K的電阻、IN4148二極管和數(shù)碼管組成,電源+5V通過560的電阻直接給數(shù)碼管的7個段位供電,P0.0-P0.7對應(yīng)了兩個接數(shù)碼管的A,B,C,D,E,F,G和小數(shù)點位DP,P1.0,P1.1,P1.2,P1.3接位碼。有四位共陰極的七段數(shù)碼管,在不同的模式下顯示不同的內(nèi)容,例如在模式0下顯示北京時間,在模式3下顯示跑表等,P0口送段碼,P1口的低四位送位碼,小數(shù)點1秒亮,1秒滅,用來指示秒。當相應(yīng)的端口變成高電平時,驅(qū)動相應(yīng)的PNPS8550三極管會導通,+5V通過IN4148二極管和驅(qū)動三極管給數(shù)碼管相應(yīng)的位供電,這時只要P0口送出數(shù)字的顯示代碼,數(shù)碼管就能正常顯示需要的數(shù)字。如圖3.2.1所示:3.3按鍵接口電路如圖3.3.1所示,時間設(shè)定模塊設(shè)計的設(shè)計要點是按鍵的去抖動處理與“一鍵多態(tài)”的處理。軟件法去抖動的實質(zhì)是軟件延時,即檢測到某一鍵狀態(tài)變化后延時一段時間,再檢測該按鍵的狀態(tài)是否保持著,如是則作為按鍵處理,否則,視為抖動,不予理睬。圖3.3.1按鍵接口電路圖3.2.1 顯示電路3.4LED指示電路圖3.4.1LED指示電路如圖3.4.1所示,四個共陰極的發(fā)光二極管,用來指示模式,另外還有一個發(fā)光二極管用來指示電源,若通電,發(fā)光二極管亮,否則,發(fā)光二極管滅。3.5蜂鳴器接口電路蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的。因此需要一定的電流才能驅(qū)動它,單片機IO口輸出的電流較小,其TTL電平基本上驅(qū)動不了蜂鳴器,因此需要增加一個電流放大的電路。程序中通過改變單片機對應(yīng)IO口輸出波形的頻率,就可以調(diào)整控制蜂鳴器音調(diào),產(chǎn)生各種不同音色、音調(diào)的聲音。我們可以通過程序控制IO口輸出的電平來使蜂鳴器發(fā)出聲音和關(guān)閉,從而實現(xiàn)各種可能音響的產(chǎn)生。如圖3.5.1為蜂鳴器的原理圖。4軟件設(shè)計4.1控制程序的結(jié)構(gòu)及模塊劃分實現(xiàn)多功能電腦時鐘的程序包含以下部分:(1)初始化程序(2)數(shù)碼管掃描程序(3)時鐘程序(4)設(shè)定時鐘小時程序(5)設(shè)定時鐘分鐘程序(6)跑表程序(7)鬧鐘程序(8)倒計時設(shè)定程序(9) 倒計時執(zhí)行程序(10)掃描鍵盤程序 4.2初始化程序定義一個長度為4的數(shù)組來存放數(shù)碼管顯示的數(shù)。我們采用查表的方法來求得對應(yīng)的段碼,故而我們?nèi)孕枰x一個長度為11的數(shù)組。定義P2.0位為MODE鍵、P2.1位為UP鍵、P2.2位為DOWN鍵、P3.2為ENT鍵。鬧鈴接在P1.4腳。定modle0-6分別來表示表示當前的模式。 其次在程序中使用了定時5ms的定時器,故而需要進行初始化,其對應(yīng)的初始化程序如下:TMOD=0x11; /設(shè)置定時器0工作模式,16位計數(shù)模式 TH0=THCO; TL0=TLCO; TR0=1; /啟動定時器 ET0=1; /使能定時器中斷IT0=1; /外部中斷0連沿觸發(fā)方式EX0=1; /使能外部中斷0 EA=1; /開總中斷4.3數(shù)碼管掃描程序在程序中我們把模式定義為:顯示當前時間(小時和分鐘),顯示跑表的秒和百分秒,顯示鬧鈴的小時分鐘,顯示倒計時的分鐘和秒。修改當前小時和分鐘,分別進入模式1和2,當修改小時時,只顯示小時位;修改分鐘時,只顯示分鐘位;在剩下的模式中,各種模式對應(yīng)修改鬧鈴的小時和分鐘,倒計時的分鐘和秒等,故而在顯示時也區(qū)分這幾種顯示情況。用LED燈的亮滅顯示情況來表示工作在不同的模式情況下。當模式處在模式0的時候,即當前時間模式,所有LED燈熄滅;進入模式1,即跑表模式,LED1亮起;進入模式2,設(shè)定秒表,LED2亮起;進入模式3,設(shè)定分鐘,LED3亮起;進入模式4,即設(shè)定小時,LED4亮起;進入模式5,設(shè)定鬧鐘,LED1與LED2亮起,LED3滅,當LED4滅時鬧鐘打開;進入模式6,LED1、LED2、LED3與LED4亮起。用來顯示數(shù)字的數(shù)碼管采用動態(tài)顯示的方法,每隔5ms送一個位選碼到接有數(shù)碼管的P1端口,并用四只LED燈來動態(tài)顯示當前處在的模式功能狀態(tài)。4.4時鐘程序有按鍵按下Sec+Count=0結(jié)束Count+Count=0NONOYESYESCount=30Sec=60Min+Min=0Hour+Sec=0Min=604.5設(shè)定時鐘的小時程序在程序中定義#define UpKey ;#define DownKey,當模式切換進入模式1,就開始了當前小時的設(shè)定,在按鍵掃描函數(shù)中:if (UpKey) HOUR+; if (HOUR=24) HOUR=0;if (DownKey) HOUR-;if(HOUR=60) MIN =0;if (DownKey) MIN -;if(MIN =60Min=200Daosec-Daosec=0-Dsoflaj5調(diào)試與測試5.1軟件調(diào)試步驟1、打開軟件后,在Project菜單中選擇New Project命令,打開一個新項目。保存此項目,輸入工程文件名后,并保存工程文件的目錄。2、為項目文件選擇一個目標器件,即選擇8051的類型。在Data base 列表框中選擇“ATML 89C52”,確定。3、上述設(shè)置好后,創(chuàng)建源程序文件并輸入程序代碼。輸入好代碼后點擊“文件/保存”。4、把源文件添加到項目中,用鼠標指在目標工作區(qū)的目標1,點擊右鍵在彈出的菜單中選擇添加文件到源代碼組,在彈出的添加文件框中,選擇需要添加到項目中的文件。5、開始編譯,對項目文件進行編譯。若沒有錯誤后進行硬件調(diào)試5.2程序調(diào)試步驟程序調(diào)試應(yīng)一個模塊一個模塊地進行,首先單獨調(diào)試各功能子程序,檢查程序是否能夠?qū)崿F(xiàn)預期的功能,接口電路的控制是否正常等;最后逐步將各子程序連接起來進行總調(diào)試。故調(diào)試步驟如下:a、顯示程序調(diào)試 顯示程序是整個程序的基礎(chǔ),我們必須保證其正確。調(diào)試方法:先一位顯示,然后實現(xiàn)走馬顯示。為此完成了顯示程序的調(diào)試。此顯示可以用軟件來模擬進行,在實驗中已得到了應(yīng)用。在定義的時候,修改顯示緩沖區(qū)的內(nèi)容,屏蔽其它子程序,調(diào)試動態(tài)掃描顯示功能。例如將 case0:led0=0;break;case1:led1=0;break;case2:led0=2;break;case3:led3=0;break;4個語句里分別賦值,即led0=1,led1=2,led2=3,led3=4,檢查LED上是否能正確顯示1234。若顯示不正確,則在相應(yīng)子程序位置設(shè)置斷點,進行調(diào)試檢查,直至可以實現(xiàn)該功能為止。b、按鍵程序調(diào)試 按鍵程序的調(diào)試可以先從單個按鍵開始,比如:用了一個簡單的按鍵程序,及按一下顯示1000在按一下顯示1001,逐漸修改程序到實現(xiàn)功能為止。在調(diào)試按鍵程序時要注意,由于按鍵是機械開關(guān),在按下和松開時必然會存在抖動,所以在調(diào)節(jié)時我們要采用去抖動技術(shù)??梢远x另一個變量來控制CPU對鍵盤的掃描次數(shù)。來降低抖動對程序結(jié)果的影響。先用延時1500ms的子程序代替顯示子程序延時去抖動,在求取鍵號后設(shè)置斷點,中斷后觀察累加器的鍵號是否正確;然后恢復用顯示子程序延時去抖動,檢查與按鍵模塊能否正確連接。在調(diào)試程序時,需要在void keyset(void)函數(shù)里設(shè)置按鍵去抖動,使按鍵按一下后,在數(shù)碼管上可以進行加1或減1的操作,然后下載調(diào)試即可以實現(xiàn)預定功能。5.3測試方法及測試結(jié)果5.3.1測試方法測試與調(diào)試相比很簡單,只需要找一個準確的時鐘和一個秒表既可。具體測試方法如下:a、對時鐘的測試在時鐘模式下,將其與能夠工作正常的時鐘進行比較,如兩時鐘的步伐一致,則正確,如不一致,則需要進行改進。b、按鍵程序的測試直接按照程序編程時規(guī)定的諸多功能說明進行操作,如果操作結(jié)果跟程序設(shè)定的功能相同,則按鍵程序達到其功能要求,即程序是好的;若不能達到程序預先設(shè)定的功能,則需要對程序進行改進,以達到最終所期望的效果。5.3.2測試結(jié)果雖然我們對程序做了較為細致的調(diào)試,但是在測試中仍然發(fā)現(xiàn)了不少問題,比如,當前時間無法顯示到秒位;鬧鐘報時持續(xù)時間沒有達到預先規(guī)定的要求;跑表每次及時完畢,沒有設(shè)定清零,必須用MODE鍵再次切換回來才能清零。故應(yīng)該對程序進行進一步的調(diào)試,以求排除了問題。最終圓滿完成了任務(wù)。6技術(shù)小結(jié)該課程設(shè)計中應(yīng)用到了蜂鳴器、LED流水燈、數(shù)碼管,并且要求在一個電路板上將各個功能集成在一起,也就是能實現(xiàn)LED燈流水工作,數(shù)碼管計時以及蜂鳴器發(fā)生。以前我們做試驗都是一個功能一個功能的完成,從來沒有一起實現(xiàn)過,這樣問題就來了,比如三種程序放在一起相互沖突怎么辦?經(jīng)過老師的講解和分析,我們可以用鍵盤掃描的程序來解決,將各個功能設(shè)置在不同的模塊作為子程序一一調(diào)試,這樣就可以實現(xiàn)全部功能并互不干擾。之

溫馨提示

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

最新文檔

評論

0/150

提交評論