[精品論文]單片機(jī)課程設(shè)計(jì)論文 多功能電腦時(shí)鐘設(shè)計(jì)_第1頁
[精品論文]單片機(jī)課程設(shè)計(jì)論文 多功能電腦時(shí)鐘設(shè)計(jì)_第2頁
[精品論文]單片機(jī)課程設(shè)計(jì)論文 多功能電腦時(shí)鐘設(shè)計(jì)_第3頁
[精品論文]單片機(jī)課程設(shè)計(jì)論文 多功能電腦時(shí)鐘設(shè)計(jì)_第4頁
[精品論文]單片機(jī)課程設(shè)計(jì)論文 多功能電腦時(shí)鐘設(shè)計(jì)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

  • 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)論