

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計報告</b></p><p> Course Design Report</p><p><b> 拔河游戲機</b></p><p><b> 1 設計目的</b></p><p> (1)了解AT89C51芯片的引腳功能和該芯片
2、的結(jié)構(gòu);</p><p> ?。?)熟悉拔河游戲機的原理和對數(shù)碼管,蜂鳴器,發(fā)光二極管各元器件的結(jié)構(gòu)功能;</p><p> ?。?)掌握應用AT89C51芯片設計拔河游戲機電路以及運用C語言編寫簡單的程序。</p><p><b> 2 設計思路</b></p><p> 15個二極管排成一條直線,兩邊各裝一個按鍵
3、,每按一次按鍵,就會產(chǎn)生一個有效低電平,哪邊按一次,發(fā)光二極管就向哪邊移一位。</p><p> 安裝一個復位開關,第一次按是讓發(fā)光二極管回到中點,再按一下后,蜂鳴器發(fā)出響聲,兩邊選手就可以拔河了。</p><p> 當發(fā)光二極管移到終端時,兩邊選手按鍵無效,數(shù)碼管就會記錄一下對應的盤數(shù)。再按復位鍵,以進行下次的拔河。</p><p> 再用一個清零鍵,用于讓
4、記錄盤數(shù)的數(shù)碼管清零,同時發(fā)光二極管也回到中點。</p><p><b> 3 設計過程 </b></p><p> 該電路分為五個部分,分別為提示部分,該部分包括的主要元器件為蜂鳴器;拔河部分,該部分的主要元器件為發(fā)光二極管;顯示部分,該部分的主要元器件為數(shù)碼管;清零部分,該部分的主要元器件為AT89C51芯片等;控制部分,該部分的主要元器件為控制開關。主要過程
5、分為方案論證和電路設計,具體如下。 </p><p><b> 3.1方案論證</b></p><p> 按兩次復位鍵后,蜂鳴器響起,兩邊選手開始拔河。當發(fā)光二極管移到左端終點時,選手按鍵無效,左邊的數(shù)碼管計1次數(shù)。按兩次復位鍵,繼續(xù)拔河,當發(fā)光二極管移到右端終點時,選手按鍵無效,右邊的數(shù)碼管計1次數(shù)。如果是3局2勝制,當有一方已贏了2局后,復位鍵也無效,需要按一
6、下清零鍵。此方案實際操作可行!</p><p><b> 3.2電路設計</b></p><p> 該電路的設計主要從硬件和軟件兩個方面完成。</p><p> ?。?)硬件部分:主要由顯示部分、提示部分、清零部分、控制部分和拔河“繩子”部分五部分組成。具體電路如圖1(a)、(b)、(c)、(d)、(e)所示。</p><
7、;p> ?。╝)顯示部分 (b)提示部分</p><p><b> ?。╟)清零部分</b></p><p><b> (d)控制部分</b></p><p> ?。╡)拔河“繩子”部分</p><p> 圖1 電路硬件部分</p
8、><p> ?。?)軟件部分,其設計過程如圖2所示。</p><p> 圖2 一次拔河過程圖</p><p> 4電路仿真與結(jié)果分析</p><p><b> 4.1電路仿真</b></p><p> (1)按下清零部分復位鍵,觀察顯示部分是否為0比0和發(fā)光二極管是否在中點,如果數(shù)碼管顯示0比
9、0,而且發(fā)光二極管在中點亮,則再按下控制部分復位鍵,蜂鳴器響,提示拔河準備;再按控制部分復位鍵,第一局拔河開始。</p><p> (2)選手任意隨機的按key1和key2,假設按key1鍵的選手對應發(fā)光二極管先移到二極管左端終點,則player1贏,顯示部分如下圖,顯示1比0。</p><p> ?。?)按控制部分復位鍵,使二極管在中點亮,選手準備第二局比賽;再按復位鍵,蜂鳴器響,提示
10、比賽開始;選手按key1和key2,假設按key2鍵的選手對應發(fā)光二極管先移到二極管右端終點,則player2贏,顯示部分如下圖,顯示1比1。</p><p> ?。?)按控制部分復位鍵,使二極管在中點亮,選手準備第三局比賽;再按復位鍵,蜂鳴器響,提示比賽開始;選手按key1和key2,假設按key1鍵的選手對應發(fā)光二極管先移到二極管左端終點,則player1贏,顯示部分如下圖,顯示2比1。由于比賽3局2勝,所以
11、最后player1勝,游戲結(jié)束。</p><p> (5)按下清零鍵,看數(shù)碼管數(shù)據(jù)是否清零,發(fā)光二極管是否也回到中點。如果達到預期,則實驗成功。</p><p><b> 4.2結(jié)果分析</b></p><p> 該拔河游戲機的設計在仿真過程中出現(xiàn)了一些無法正常顯示比賽結(jié)果的情形。第一,數(shù)碼管不亮,經(jīng)過分析后知道是錯用了共陰極數(shù)碼管,改用
12、共陽極的后數(shù)碼管有顯示了。第二是進行拔河游戲過程,發(fā)光二極管從P0口進入到P2口或從P2口進入到P0口后,發(fā)光二極管移位出現(xiàn)了混亂,而且不能到達終點,原因是程序沒有寫好,認真修改了程序后,移位正常了。第三是數(shù)碼管不能實現(xiàn)清零,把清零方式由電平清零改為脈沖式清零后,可以正常清屏了。</p><p><b> 5主要儀器與設備</b></p><p> 發(fā)光二極管
13、 LED 7紅1黃7綠, </p><p> 電阻 RES 300k×15, </p><p> 電阻 RES 1k×2,</p><p> 電阻
14、 RES 20k ×1 </p><p> 數(shù)碼管 7SEG-MPX2-CA×1, </p><p> 芯片 AT89C51×1,</p><p> 極性電容
15、 CAP-POL 22uF×2, </p><p> 電容 CAP 30pF×2, </p><p> 蜂鳴器 BUZZER×1,</p><p> 晶振
16、 CRYSTAL×1, </p><p> 排阻 RESPACK-8×1, </p><p> 三極管 PNP×1,</p><p> 按鍵
17、 BUTTON×4。</p><p><b> 6設計體會與建議</b></p><p><b> 6.1設計體會</b></p><p> 這次課程設計是對我們知識與能力的一次綜合考察,集中鍛煉了我們發(fā)現(xiàn)、提出、分析、解決問題的能力,為我們以后參
18、加工作打好了堅實基礎。通過這次課程設計,從剛開始的新鮮興奮,到后來的挫折沮喪,再到迎難而上,到最后的滿足,我們學會了許多。首先,我們必須努力學好知識,并且必須將知識與實踐相結(jié)合,做到學以致用,只有這樣你才會有自信且有能力去完成一件作品。只有理論扎實,才能更好實踐;只有實踐,才能更好的掌握理論。其次,必須學會去查找課外資料,有良好的自學能力,吸收汲取新的知識,豐富自己。我們必須認識到課本上學到的總是有限的,有不足的。再次,我們必須要有團隊
19、的意識,要善于小組分工合作去解決問題。須知一個人的能力也是有限的,有不足的,有善于的,有不善于的,大家互補學習才是最好的。最后,我們必須熟悉自己所從是行業(yè)的一些常用軟件,不要用的時候方覺不知道。</p><p> 通過這次課程設計,我們對相關的知識有了一個更好的了解掌握,學會了設計的步驟,學會了怎樣使用Proteus軟件畫原理圖和進行仿真實驗,學會了怎樣焊接制作實物圖,學會了怎樣做課程設計報告。總之,通過這幾個
20、星期的努力,我們一起學會了許多。雖然在完成過程中碰到過許多困難,但通過我們的努力以及老師的指點解惑,我們都一一解決了。我們覺得這是苦并快樂著,覺得很有成就感滿足感。</p><p><b> 6.2對設計的建議</b></p><p> (1)發(fā)光二極管部分將15個串聯(lián)電阻該為在二極管至電源的總線上串聯(lián)一個電阻,減少器件。</p><p>
21、 ?。?)數(shù)碼管每按一次鍵閃一下,對選手視覺影響不好,在數(shù)碼管上接一鎖存器,使實驗中按鍵時,數(shù)碼管不閃。</p><p> ?。?)蜂鳴器只在按復位鍵準備游戲時叫,更改程序,使蜂鳴器在游戲開始與結(jié)束時都發(fā)聲提醒。</p><p> ?。?)更改程序,使游戲進行到一定局數(shù)時,無論怎么按拔河部分復位鍵,游戲都不能進行下一局,比如說3局2勝時,當比分2比1時,無論你按拔河部分復位鍵準備,都不能進
22、行下一局。</p><p> (5)在原有設計的基礎增加一個故障中斷恢復系統(tǒng),即在拔河的過程中,出現(xiàn)故障應立即中斷此次拔河比賽,不記入成績,等到恢復系統(tǒng)將其恢復正常后再進行拔河比賽。</p><p><b> 參考文獻</b></p><p> [1] 吳健:《AVR單片機實用C語言程序設計與典型實例》[M],北京中國電力出版社,2008
23、。</p><p> [2] 馬潮:《AVR單片機嵌入式系統(tǒng)原理與應用》[M],北京韓天航空大學出版社,2007。</p><p> [3] 閻石主編:《數(shù)字電子電路》 [M] ,北京中央廣播電視大學出版社,1993。</p><p> [4] 高吉祥主編:《電子技術基礎 實驗與課程設計》電子工業(yè)出版社。</p><p><b&g
24、t; 附件</b></p><p> #include<reg52.h></p><p> #include<intrins.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p>
25、<p> sbit wela1=P3^0;</p><p> sbit wela2=P3^1; //</p><p> sbit beep=P3^5; //</p><p> sbit key=P3^4; //</p><p> sbit key1=P3^2; //</p><p> sbi
26、t key2=P3^3; //</p><p> uchar n,m,temp1,temp2,a,b,num;</p><p> uint n1=0,n2=0;</p><p> void key_init();</p><p> uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0
27、x7d,0x07,0x7f,0x6f};//共陰數(shù)碼管碼表 0--9</p><p> void delay(uchar z) // 延時子程序 z=10時大約為2.5ms</p><p><b> {</b></p><p> uchar x,y;</p><p> for(x=z;x>0;x--
28、)</p><p> for(y=120;y>0;y--);</p><p><b> }</b></p><p> void di(void) //蜂鳴器</p><p><b> {</b></p><p><b> beep=0;</
29、b></p><p> delay(100);</p><p><b> beep=1;</b></p><p><b> }</b></p><p> void disp(uchar shi,uchar ge)//顯示子程序</p><p><b>
30、; {</b></p><p><b> wela1=0;</b></p><p> P1=table[shi];</p><p> delay(10);</p><p><b> wela1=1;</b></p><p><b> wela
31、2=0;</b></p><p> P1=table[ge];</p><p> delay(10);</p><p><b> wela2=1;</b></p><p><b> }</b></p><p> void key_init() //
32、按鍵子程序</p><p><b> {</b></p><p> if(key==0) //復位,按第一次復位,第二次開始</p><p><b> { </b></p><p><b> delay(5);</b></p><p>
33、 if(key==0)</p><p><b> {</b></p><p> while(!key);</p><p> temp1=0x7f;</p><p> temp2=0xff;</p><p><b> di();</b></p><
34、p><b> P0=temp1;</b></p><p><b> P2=temp2;</b></p><p><b> num++;</b></p><p> if(num==3)</p><p><b> num=0;</b></
35、p><p><b> }</b></p><p><b> }</b></p><p> if(num==2)</p><p><b> {</b></p><p> if(key1==0) //玩家一,燈左移</p>&l
36、t;p><b> {</b></p><p><b> delay(5);</b></p><p> if(key1==0)</p><p><b> {</b></p><p> while(!key1); </p><p> if
37、(temp1==0xff)//燈在P2口上</p><p><b> {</b></p><p> if(temp2==0xfe)//燈在P2口的最低位,接著跳到P0口的最高位</p><p><b> {</b></p><p> temp2=0xff;</p><
38、;p><b> P2=temp2;</b></p><p> temp1=0x7f;</p><p><b> P0=temp1;</b></p><p><b> }</b></p><p> if(temp2!=0xff) </p><p
39、><b> {</b></p><p> temp2=_cror_(temp2,1);//P2口燈往左移</p><p><b> P2=temp2;</b></p><p><b> }</b></p><p><b> }</b>&
40、lt;/p><p> else//燈在P0口上</p><p><b> {</b></p><p> temp1=_cror_(temp1,1); //P0口燈往左移</p><p><b> P0=temp1;</b></p><p><b>
41、}</b></p><p> a=1; //用于跳出P0==0xfe的循環(huán)</p><p><b> }</b></p><p><b> }</b></p><p> if(key2==0) //玩家二,燈右移</p><p><b
42、> {</b></p><p><b> delay(5);</b></p><p> if(key2==0)</p><p> while(!key2);</p><p> if(temp2==0xff)</p><p><b> {</b>&
43、lt;/p><p> if(P0==0x7f)</p><p><b> { </b></p><p> temp1=0xff;</p><p><b> P0=temp1;</b></p><p> temp2=0xfe;</p><p>&l
44、t;b> P2=temp2;</b></p><p><b> }</b></p><p> if(temp1!=0xff)</p><p><b> {</b></p><p> temp1=_crol_(temp1,1);</p><p>&
45、lt;b> P0=temp1;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></p>&l
46、t;p> temp2=_crol_(temp2,1);</p><p> P2=temp2; </p><p><b> }</b></p><p> b=1; //用于跳出P2==0xbf的循環(huán)</p><p><b> }</b></p><p
47、><b> }</b></p><p><b> } </b></p><p> if(P0==0xfe&&a==1)//玩家一勝一次,n加1,用來顯示在數(shù)碼管上</p><p><b> { </b></p><p><b>
48、 num=0;</b></p><p><b> n+=1;</b></p><p><b> a=0;</b></p><p><b> } </b></p><p> if(P2==0xbf&&b==1) //玩家二勝一次,m加1,用
49、來顯示在數(shù)碼管上</p><p><b> {</b></p><p><b> num=0;</b></p><p><b> m+=1;</b></p><p><b> b=0;</b></p><p><b&g
50、t; }</b></p><p> if(n==2||m==2)//有人先勝2盤的蜂鳴器響</p><p><b> {</b></p><p><b> di();</b></p><p><b> } </b></p><p&g
51、t;<b> } </b></p><p> void init()</p><p><b> { </b></p><p> P0=0x7f;//中間的燈亮</p><p><b> n1=0;</b></p><p><b>
52、; n2=0;</b></p><p><b> num=0;</b></p><p><b> n=0;</b></p><p><b> m=0;</b></p><p><b> }</b></p><p&g
53、t; void main()</p><p><b> {</b></p><p> init(); //初始化</p><p> disp(n,m); //顯示</p><p><b> while(1)</b></p><p><b&g
54、t; {</b></p><p> disp(n,m); //刷新--顯示</p><p> key_init();//按鍵掃描</p><p><b> }</b></p><p><b> }</b></p><p><b> 完
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 拔河游戲機課程設計
- 拔河游戲機課程設計
- 拔河游戲機課程設計
- 簡易拔河游戲機課程設計
- 拔河游戲機課程設計 (2)
- 拔河游戲機課程設計報告
- eda課程設計---拔河游戲機
- 拔河游戲機課程設計報告
- eda拔河游戲機課程設計報告
- 電子拔河游戲機課程設計報告
- eda拔河游戲機課程設計報告
- 單片機拔河游戲機課程設計
- 數(shù)字電路課程設計-拔河游戲機
- 數(shù)電課程設計---拔河游戲機的設計
- 電子課程設計---拔河游戲機控制器
- 數(shù)字電路課程設計---電子拔河游戲機
- 電子技術課程設計--拔河游戲機
- 基于eda的關于拔河游戲機的課程設計
- 游戲機eda課程設計報告
- eda課程設計--乒乓游戲機
評論
0/150
提交評論