版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 嵌入式程序設(shè)計(jì) 課程設(shè)計(jì) </p><p> 設(shè)計(jì)名稱 秒表設(shè)計(jì)課程設(shè)計(jì)報(bào)告 </p><p> 專業(yè)班級(jí) 測(cè)控 09-2 </p><p> 學(xué) 號(hào) </p><p> 姓 名 </p>
2、<p> 指導(dǎo)教師 </p><p> Sr4eewwe 一:課程設(shè)計(jì)題目</p><p><b> 秒表/時(shí)鐘計(jì)時(shí)器</b></p><p> 二:課程設(shè)計(jì)任務(wù)與要求:</p><p> 利用89C51單片機(jī)設(shè)計(jì)秒表/時(shí)鐘計(jì)時(shí)器,通過(guò)LED顯示器顯示秒十位和個(gè)位,
3、在設(shè)計(jì)過(guò)程中用一個(gè)存儲(chǔ)單元作為秒計(jì)數(shù)單元,當(dāng)一秒鐘到來(lái)時(shí),就讓秒計(jì)數(shù)單元加1,當(dāng)秒計(jì)數(shù)達(dá)到60時(shí),就自動(dòng)返回到0,重新開(kāi)始秒計(jì)數(shù)。</p><p><b> 三:設(shè)計(jì)過(guò)程:</b></p><p> 1.設(shè)計(jì)原理:此次課程設(shè)計(jì)題目是秒表/時(shí)鐘計(jì)時(shí)器,由課程設(shè)計(jì)的要求和任務(wù),我采用的C語(yǔ)言編程,設(shè)計(jì)秒表要求一秒定時(shí),采用了定時(shí)器和FOR循環(huán)來(lái)定時(shí),其中一個(gè)軟件一個(gè)硬
4、件,會(huì)在方案論證中分析在1秒時(shí)采用的是硬件定時(shí),即用單片機(jī)內(nèi)部的定時(shí)器T0。先將時(shí)鐘初始化,賦入初值50ms定時(shí),循環(huán)20次來(lái)進(jìn)行1秒定時(shí)。然后由定義的變量second來(lái)進(jìn)行加一運(yùn)算,然后將其值通過(guò)P1,P2口在數(shù)碼管上進(jìn)行顯示。其中數(shù)碼管的顯示時(shí),我在程序中首先定義了一個(gè)關(guān)于數(shù)碼管顯示的字形碼定義,以便在顯示時(shí)調(diào)用即可。</p><p><b> (1)方案論證:</b></p&g
5、t;<p> 方案1:在方案1中,我們所選用的是軟件定時(shí),即用for循環(huán)來(lái)定時(shí)1秒進(jìn)行顯示的變化。</p><p> 方案2:在方案2中,采用的是硬件定時(shí),即用單片機(jī)內(nèi)部的定時(shí)器T0。先將時(shí)鐘初始化,賦入初值50ms定時(shí),循環(huán)20次來(lái)進(jìn)行1秒定時(shí)。</p><p> 方案比較:我們從兩方面進(jìn)行兩種方案的比較,第一,由于此次課程設(shè)計(jì)要求是秒表,則在定時(shí)時(shí)要求比較精確,所以
6、采用硬件的定時(shí)器定時(shí)時(shí)比較準(zhǔn)確的。第二,由于秒表的定時(shí)程序是很小的,在利用軟件定時(shí)占用的CPU并不是很多,不能顯現(xiàn)出來(lái),但真正大程序時(shí)會(huì)很占用資源的,所以在用定時(shí)中斷過(guò)程中是非常節(jié)省資源的。綜合上述兩種比較,我們選用了第二種方案。</p><p><b> ?。?)創(chuàng)新點(diǎn): </b></p><p> a.在課程要求的基礎(chǔ)上,我們做成的電路板上,用復(fù)位鍵來(lái)控制秒表計(jì)
7、時(shí)的重新開(kāi)始,即清零。</p><p> b.在以上設(shè)計(jì)的基礎(chǔ)上,我們又重新設(shè)計(jì)了一個(gè)程序,基本原理沒(méi)有變,只是將秒表在到達(dá)59清零的瞬間向分的位數(shù)上進(jìn)1,程序?qū)?huì)在附錄3中給出。 </p><p> 2.硬件系統(tǒng)框圖與說(shuō)明:</p><p> 首先
8、,連接的是單片機(jī)51的最小系統(tǒng),其中包括時(shí)鐘電路,復(fù)位電路,在此中包括的元器件在附錄3中。我們所選用的數(shù)碼管是共陰極的,置1時(shí)導(dǎo)通,所以將單片機(jī)的P1.0~P1.7連接數(shù)碼管的a~dp,P2口同理。然后在數(shù)碼管秒表個(gè)十位的顯示則由軟件程序來(lái)控制。</p><p> 3.軟件主要模塊流程圖與說(shuō)明:</p><p> 在真正應(yīng)用時(shí),我們的一秒定時(shí)是用定時(shí)中斷的,但單片機(jī)的T0最長(zhǎng)也不能1秒
9、定時(shí),所以我們采用50ms定時(shí)循環(huán)20次,用count來(lái)控制。當(dāng)秒的時(shí)間達(dá)到59時(shí),用軟件來(lái)清零時(shí)循環(huán)從00重新開(kāi)始。</p><p><b> 四:課程設(shè)計(jì)總結(jié):</b></p><p> 1:本次的課程設(shè)計(jì),使關(guān)于51系列單片機(jī)的,正是我們剛剛學(xué)到的51單片機(jī),在平時(shí)課程的學(xué)習(xí)中,我們僅限于理論知識(shí)的講解,即使知識(shí)是很扎實(shí)的,實(shí)際應(yīng)用并不是這樣的。開(kāi)始時(shí)我也覺(jué)
10、得自己的理論知識(shí)已經(jīng)夠了,但當(dāng)我拿到課題時(shí),在腦海里想的是非常好的,但真正編成和控制時(shí),理論和實(shí)際結(jié)合不到一起,甚至于51芯片的使用我都感覺(jué)很迷茫,還是經(jīng)過(guò)搜集大量資料才將理論與實(shí)際結(jié)合到一起了。本次課程設(shè)計(jì)我主要負(fù)責(zé)編程,這次不僅鍛煉了我C語(yǔ)言的知識(shí),更加我們正在學(xué)習(xí)的51的定時(shí)與中斷結(jié)合在一起,進(jìn)行了實(shí)際的操作,讓我的知識(shí)掌握得更加牢固。本次的實(shí)際經(jīng)驗(yàn)之后,讓我對(duì)單片機(jī)定時(shí)賦初值有了更新的認(rèn)識(shí),對(duì)程序的循環(huán)順序、結(jié)構(gòu)類型都有了非常深
11、刻的認(rèn)識(shí),對(duì)真正硬件的連接也有了認(rèn)識(shí),不再將自己的知識(shí)局限于自己狹隘的空間中。</p><p> 2:通過(guò)這次課程設(shè)計(jì)——秒表/時(shí)鐘計(jì)時(shí)器,使我又重新開(kāi)始學(xué)習(xí)C語(yǔ)言,因?yàn)镃語(yǔ)言是大一學(xué)的,至從學(xué)完就再也沒(méi)用過(guò),所以開(kāi)始很陌生,我又找了有關(guān)資料來(lái)了解,才有了一點(diǎn)眉目。剛開(kāi)始以為可以用匯編很容易就寫出來(lái),因?yàn)槲覀冋趯W(xué)習(xí)匯編語(yǔ)言,以為學(xué)的很明白了,但是用匯編時(shí)才發(fā)現(xiàn)原來(lái)都不怎么熟練,編了一會(huì)程序發(fā)現(xiàn)只有一種感覺(jué)——
12、舉步維艱?。∵€是放棄匯編選擇C語(yǔ)言吧!對(duì)于單片機(jī),我們課本學(xué)習(xí)的是80C51,但是這次做課程設(shè)計(jì)用的是89C51,這樣不僅使我們掌握了80C51,而且對(duì)89C51也有了一定的了解了,在課堂上學(xué)習(xí)的都理論的,跟實(shí)際永遠(yuǎn)有一定的差距,不實(shí)踐就不會(huì)發(fā)現(xiàn)問(wèn)題。通過(guò)這次課程設(shè)計(jì)使我把課堂上學(xué)習(xí)的東西都用到了實(shí)踐中,例如:定時(shí)/計(jì)數(shù)器的應(yīng)用與中斷。學(xué)習(xí)的時(shí)候不怎么理解,但是在實(shí)踐中應(yīng)用了以后就自然了解了。這次課程設(shè)計(jì)使我受益匪淺,而且都是實(shí)際的東西
13、。</p><p> 3:這次課程設(shè)計(jì),我們做的是秒表/時(shí)鐘計(jì)時(shí)器,最終我們選擇的是用C語(yǔ)言編程,但原來(lái)學(xué)的也只是能看懂別人寫好的程序而已,通過(guò)這次課程設(shè)計(jì),更加熟練了C語(yǔ)言的程序設(shè)計(jì)思路。這次課程設(shè)計(jì)我主要負(fù)責(zé)焊接電路板,焊接過(guò)程中最困難的地方就是數(shù)碼管的焊接,因?yàn)閿?shù)碼管的管腳和89C51的管腳是不對(duì)應(yīng)的,而且要避免接線的交叉,所以最后確定了布線最合理的方案,如硬件電路圖所示。我們這次設(shè)計(jì)的出現(xiàn)的最大問(wèn)題是電
14、路當(dāng)中的復(fù)位電路,開(kāi)始電路在Proteus上仿真時(shí)都是可以正常復(fù)位的,但實(shí)際的電路中復(fù)位按鍵后的電阻的參數(shù)不合理,導(dǎo)致了RST上有電壓,復(fù)位電路無(wú)效,所以最后我們?nèi)サ袅四莻€(gè)電阻,此時(shí)復(fù)位電路才有效,所以理論和實(shí)際永遠(yuǎn)有差距,不實(shí)踐永遠(yuǎn)發(fā)現(xiàn)不了問(wèn)題。在焊接前我們沒(méi)有想到給數(shù)碼管用插槽固定,而是直接焊在了電路板上,這造成了后面的很多麻煩,我們方案中用的是共陰極的數(shù)碼管,焊接第一個(gè)數(shù)碼管時(shí)沒(méi)有注意型號(hào),等焊接到一半時(shí)才發(fā)現(xiàn)焊上的是共陽(yáng)極的,所
15、以不得不解焊重新焊接,這也是一個(gè)教訓(xùn),以后焊接器件時(shí)能用上插槽的盡量用插槽,這在器件出了問(wèn)題時(shí)很方便更換。最后焊接完成后在試驗(yàn)的過(guò)程中,剛一接通電源后的上電電壓燒壞了L</p><p> 4:通過(guò)本次秒表/時(shí)鐘計(jì)時(shí)器的設(shè)計(jì)實(shí)驗(yàn),使我對(duì)這學(xué)期學(xué)所學(xué)51系列的單片機(jī)從理論知識(shí)到實(shí)踐硬件的應(yīng)用以及C語(yǔ)言知識(shí)的回顧,更加熟悉了89C51單片機(jī)的每一個(gè)拐角的輸出和各項(xiàng)功能,而且對(duì)硬件電路的布線以及焊接能力有了很大的進(jìn)步。
16、在這次試驗(yàn)中,我主要負(fù)責(zé)的是硬件電路的布線和焊接以及硬件測(cè)試。由于本次試驗(yàn)電路比較簡(jiǎn)單,所以我們按照電路圖布線后就馬上開(kāi)始焊接。焊好一個(gè)數(shù)碼管檢測(cè)后才發(fā)現(xiàn)我們把共陰極的數(shù)碼管焊接成共陽(yáng)級(jí)的了,很不容易才解焊下來(lái),有了這次教訓(xùn)后,我們?cè)诤附悠渌骷臅r(shí)候都提前檢測(cè)好才開(kāi)始焊接。第一次焊接完成后我們上電后發(fā)現(xiàn)實(shí)現(xiàn)了基本功能,可是不能復(fù)位,經(jīng)過(guò)我們的討論和反復(fù)試驗(yàn),我們發(fā)現(xiàn)軟件仿真和硬件實(shí)現(xiàn)并不是完全一致的,我們按照課本上焊接后終于完全實(shí)現(xiàn)
17、了秒表/時(shí)鐘計(jì)時(shí)器的功能??煲?yàn)收時(shí)我們發(fā)現(xiàn)數(shù)碼管的一個(gè)二極管壞了,這才讓我們意識(shí)到?jīng)]有焊接插針的缺陷,以后一實(shí)驗(yàn)時(shí)一定要盡可能讓原件可以取下,以便出現(xiàn)問(wèn)題是更好的更換。這次課程設(shè)計(jì)終于圓滿的完成了,我從理論和硬件以及實(shí)踐上懂得了很多,也明白了一個(gè)團(tuán)隊(duì)的合作精神可以讓我們戰(zhàn)勝所有的困難。</p><p><b> 五:附錄</b></p><p> 附錄1:電路原
18、理圖:</p><p><b> 附錄2:實(shí)物圖:</b></p><p> 附錄3:源程序及程序解釋:</p><p> #include <REG51.H> //包含頭文件REG51。H</p><p> #define uint unsigned int</p&g
19、t;<p> #define uchar unsigned char </p><p> unsigned char code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管0~9的字型碼</p><p> uchar count,second; //定義變量
20、</p><p> /*===================================*/</p><p> void init() //定義定時(shí)器T0初始化程序</p><p><b> {</b></p><p> TMOD=0x01;</p>
21、<p> TH0=(65536-50000)/256;//賦初值定時(shí)1秒</p><p> TL0=(65536-50000)%256;</p><p><b> ET0=1;</b></p><p><b> TR0=1;</b></p><p><b> EA
22、=1;</b></p><p> P2=SEG7[0];</p><p> P1=SEG7[0];</p><p><b> }</b></p><p> void delay(unsigned int k) //定義延時(shí)程序</p><p><b>
23、{</b></p><p> unsigned int i,j;</p><p> for(i=0;i<k;i++)</p><p><b> {</b></p><p> for(j=0;j<121;j++)</p><p><b&g
24、t; {</b></p><p><b> ;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> //---
25、--------------------------------------------------------</p><p> void main(void)</p><p><b> {</b></p><p> init(); //定時(shí)器初始化</p><p> while(1)
26、 //無(wú)限循環(huán)</p><p><b> {</b></p><p><b> ;</b></p><p><b> }</b></p><p><b> }</b></p><p> //
27、----------------------------------------------------</p><p> void timer0() interrupt 1 //定時(shí)器T0中斷</p><p><b> {</b></p><p> TH0=(65536-50000)/256;</p><
28、p> TL0=(65536-50000)%256;</p><p><b> count++;</b></p><p> if(count==20)</p><p><b> {</b></p><p><b> count=0;</b></p>
29、<p><b> second++;</b></p><p> if(second>59)second=0;</p><p> P1=SEG7[second/10];//顯示秒的十位</p><p> delay(10);//延時(shí)</p><p> P2=SEG7[second%10
30、];//顯示秒的個(gè)位</p><p> delay(10);</p><p><b> }</b></p><p> 附錄4:for循環(huán)程序</p><p> #include <REG51.H></p><p> unsigned char code SEG7[10]
31、={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> /*===================================*/</p><p> void delay(unsigned int k);</p><p> //-----------------------------
32、------------------------------</p><p> void main(void)</p><p><b> {</b></p><p> unsigned char val1=0;</p><p><b> long i;</b></p>&
33、lt;p> while(1)</p><p><b> {</b></p><p> for(i=0;i<380;i++)</p><p><b> {</b></p><p> /*P2=0xfd;*/</p><p>
34、P2= SEG7[val1%10]; </p><p><b> delay(1);</b></p><p> /*P2=0xfe;*/</p><p> P1= SEG7[val1/10]; </p><p> delay(1);</p><p><
35、;b> }</b></p><p> val1=val1+1;</p><p> if(val1>59)</p><p> val1=0;</p><p><b> }</b></p><p><b> }<
36、/b></p><p> //----------------------------------------------------</p><p> void delay(unsigned int k)</p><p><b> {</b></p><p> unsigned int i,j;
37、</p><p> for(i=0;i<k;i++)</p><p><b> {</b></p><p> for(j=0;j<121;j++)</p><p><b> ;</b></p><p><b> }<
38、;/b></p><p><b> }</b></p><p><b> 附錄5:匯編程序</b></p><p><b> ORG 0000H</b></p><p> START:MOV R1,#20</p><p> MOV R2,
39、#10</p><p><b> MOV R3,#6</b></p><p> MOV R4,#00H</p><p> LOOP1:MOV R2,#10</p><p> LOOP: MOV A,R4</p><p> MOV B,#0AH</p><p>&l
40、t;b> DIV AB</b></p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p><b> MOV P1,A</b></p><p><b> MOV A,B</b></p><p>
41、MOVC A,@A+DPTR</p><p><b> MOV P2,A</b></p><p><b> LCALL DEL</b></p><p><b> INC R4</b></p><p> DJNZ R2,LOOP</p><p>
42、 DJNZ R3,LOOP1</p><p> MOV P1,#00</p><p> MOV P2,#00 </p><p> LJMP START</p><p> DEL:MOV R7,#12</p><p> DEL1:MOV R6,#123</p><p><
43、b> NOP</b></p><p> DEL2:DJNZ R6,DEL2</p><p> DJNZ R7,DEL1</p><p> DJNZ R1,DEL</p><p><b> RET</b></p><p> TAB:DB 3FH,06H,5BH,4FH,
44、66H,6DH,7DH,07H,7FH,6FH</p><p><b> END</b></p><p> 附錄6:使用元器件一覽表: </p><p><b> 附錄7:參考資料:</b></p><p> 單片機(jī)原理及接口技術(shù) 李全利 遲榮強(qiáng) 編著 C語(yǔ)言程序設(shè)計(jì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)秒表系統(tǒng)設(shè)計(jì)
- 單片機(jī)秒表設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)報(bào)告-秒表設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告-秒表設(shè)計(jì)
- 單片機(jī)秒表設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 單片機(jī)秒表設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)控制秒表系統(tǒng)
- 單片機(jī)秒表課程設(shè)計(jì)
- 單片機(jī)秒表課程設(shè)計(jì)
- 單片機(jī)秒表課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---秒表
- 單片機(jī)秒表課程設(shè)計(jì)
- 秒表(單片機(jī)課程設(shè)計(jì))
- 單片機(jī)秒表單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---秒表設(shè)計(jì)
- 單片機(jī)數(shù)字秒表課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字秒表
- 單片機(jī)課程設(shè)計(jì)-數(shù)字秒表
- 基于單片機(jī)的秒表設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電子秒表
評(píng)論
0/150
提交評(píng)論