




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、電子線路綜合課程設計報告設計課題: 貪吃蛇掌上游戲機 專業(yè)班級: 電子信息121班 學生姓名: 指導教師: 設計時間: 2015 .12 . 31 贛南師范學院科技學院數(shù)學與信息科學系 貪吃蛇掌上游戲機 一、設計任務與要求基本功能:制作一個8*8點陣的貪吃蛇游戲,系統(tǒng)以單片機的c語言的軟件設計,系統(tǒng)通過LED點陣屏為載體顯示數(shù)據(jù),并用四個輸入端表示四個控制鍵(上下左右)。系統(tǒng)硬件部分由STC89C52RC單片機,8*8點陣屏, 4個按鍵,軟件部分在keil環(huán)境下用c51語言編寫,包括游戲初始蛇的段數(shù),以及障礙墻壁,游戲結(jié)束時自動復位。具體要求:1、用四個按鈕控制蛇的方向,蛇的原始段數(shù)為2點,并
2、設置墻壁。2、蛇的移動速度隨著蛇的段數(shù)增加而增加,當蛇碰到墻壁和自己的身體時死亡 3、用proteus設計,仿真基于STC89C52RC單片機的8*8點陣貪吃蛇的硬件電路。4、蛇死亡,游戲結(jié)束,系統(tǒng)自動復位。二、方案設計與論證圖1、系統(tǒng)框圖1、貪吃蛇的移動當蛇沒有吃到任何食物時,每次步進蛇頭的將要到的下一個LED燈點亮,而蛇尾那個LED燈會滅掉,程序設計時只要將蛇尾那點位置的值傳給蛇頭下一個位置的值,再改變蛇尾的值即可。而蛇頭下一個位置根據(jù)蛇頭和偏移量來確定,每次上下左右按鍵決定了蛇步進的偏移量,只要將蛇頭的位置加上偏移量的值即得到新的蛇頭位置。當蛇頭碰到四周的墻壁或者碰到自己的身體,小蛇就立
3、即斃命并結(jié)束游戲。2、食物的隨機出現(xiàn)食物的出現(xiàn)是一種隨機行為,所以必須做一個隨機數(shù),而且食物出現(xiàn)的位置不能與蛇的位置相同,也不能超出墻外,否則就要重置食物。這里使用程序中的定時計數(shù)器的低八位 TL0的數(shù)值,由于TL0不斷變化,不同的時間點數(shù)值不同,我這里使用的是C語言里的stdlib.h文件庫,使用里面的隨機函數(shù)srand(),先利用srand(TL0)獲得TL0的數(shù)值,再利用兩次rand()%8分別得到食物出現(xiàn)的橫縱坐標的位置。三、原理圖及元器件清單1單位電路設計(1)AT89C52單片機最小系統(tǒng)模塊本系統(tǒng)以STC89C52RC為核心加上復位電路和晶振電路組成,本系統(tǒng)選用12M的晶振,使得單
4、片機有合理的運行速度。起振電容30pF對振蕩器的頻率高低,振蕩器的穩(wěn)定性和振蕩器的快速性影響較合適復位電路為按鍵高電平復位。圖2、最小系統(tǒng)模塊(2)8*8點陣屏模塊LED點陣屏通過LED(發(fā)光二極管)組成,以燈珠亮滅來顯示程序的運行情況,是模塊化的顯示組件,本設計采用8*8共陽紅色點陣顯示屏,用來顯示貪吃蛇的游戲畫面。圖3、8*8點陣屏模塊(3)獨立按鍵模塊4個按鍵控制蛇的游走方向(上下左右)的功能簡介明了圖4、獨立鍵盤(4)系統(tǒng)總原理圖說明貪吃蛇是一款經(jīng)典的小游戲,玩家使用方向鍵控制一條很短(游戲剛開始)的蛇,通過不斷的吃豆豆,蛇身會逐漸的加長,當蛇撞到身體或墻壁時游戲結(jié)束圖5、總原理圖2元
5、件清單表1、元件清單元件名稱符號數(shù)值單位備注單價(元/個)電阻R1R810K歐姆1/4瓦8電解電容C510F電解,250v耐壓2瓷片電容C1-4103PF50v耐壓48*8點陣屏LED8*81晶振X112M250v耐壓1單片機MUC1STC89C52RC1按鍵Key1-44二極管D1-41N34A正向?qū)▔航导s為0.20.3V4總計: 12 元四、安裝與調(diào)試程序軟件編譯器使用uVision3。在用uVision3編寫單片機程序時,因uVision3往往只能修改語法上的錯誤,對于算法上的問題不好檢查,而直接下到單片機里又受電路板的限制而不方便調(diào)試,因此這里使用Proteus進行電路仿真。該軟件具
6、有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)仿真、RS232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能,同時有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。先在Proteus上繪制硬件電路(并未畫出驅(qū)動電路),電路設計完成后就可以進行仿真。先雙擊單片機,把用uVision3編譯生成的HEX文件指定為下載文件,點擊PLAY鍵即可進行仿真。當出現(xiàn)ANALYSER ERRORS時,表示電路有錯誤,列表中說明了具體的錯誤,必須要先排錯才可以進行仿真。軟件調(diào)試及Proteus仿真完成后就進行硬件的安裝。本設計按照原先設計好的電路圖進行總體上的布置,采用人工搭電路的
7、方法進行硬件的安裝。安裝時要考慮受熱、穩(wěn)固等多方面的影響使用電烙鐵時要控制好焊接的時間,電烙鐵停留的時間太短,焊錫不易完全熔化,形成“虛焊”,而焊接時間太長又容易損壞元器件,每一兩秒內(nèi)要焊好一個焊點,若沒完成,寧愿等一會兒再焊一次。其次芯片的擺置要方便連線,焊接時要先把芯片拔出,等線接好了再插上去。在焊接時要考慮電路的抗干擾能力同時要充分考慮電源對單片機的影響。每焊接完一個模塊,要用萬能表根據(jù)電路圖檢查有沒有接錯、短路等現(xiàn)象,確認正確后再繼續(xù)下一個模塊五、性能測試與分析主程序工作流程如圖3所示,系統(tǒng)上電后首先對LED進行初始化,接著對定時器初始化,并啟動定時器,接著執(zhí)行程序主體邏輯,程序主體邏
8、輯執(zhí)行一遍后檢查是否有中斷發(fā)生。中斷源有兩個,一個是驅(qū)動貪吃蛇自動前行的定時中斷,另一個是用戶控制貪吃蛇移動方向的鍵盤中斷,任意中斷的到來都將改變貪吃蛇的當前狀態(tài)。若當前沒有中斷發(fā)生,主程序繼續(xù)判斷蛇頭是否碰壁或頭尾相撞,若是,結(jié)束游戲,否則繼續(xù)執(zhí)行程序主體循環(huán)。圖6 主程序工作流程七、結(jié)論與心得1.通電前要檢查電路是否短路。2.嚴禁在系統(tǒng)連錯的情況下通電。3.在調(diào)試過程中發(fā)現(xiàn)有元器件燒毀,應立即切斷主電源,認真檢查電路找出原因,才可再次通電.4. 在調(diào)試過程中如有發(fā)現(xiàn)時間變化參數(shù)很大,應認真找出原因,是否原件的熱性不好。應更換元件,電路設計是否合理。八、參考文獻1 李朝青,劉艷玲等.單片機原
9、理及接口技術M.北京:北京航空航天大學出版社,2013. 2邊春元等.C51單片機典型模塊設計與應用M.北京:機械工業(yè)出版社,2008.3楊將新,李軍華,劉東駿等.單片機程序設計及 應用從基礎到實M. 北京:電子工業(yè)出版社,2006.4雷思孝,馮育長等.單片機系統(tǒng)設計及工程應用M.北京:電子工業(yè)出版社,2005.5白小明,徐芳等.匯編語言程序設計M.北京:中國鐵道出版社,2009.6于京,張景璐.51單片機C程序設計與應用案例M.北京:中國電力出版社,2006.7王港元.電子電工實踐指導(第三版)M.南昌:江西科學技術出版社,2003.8閻石.數(shù)字電子技術基礎M.北京:高等教育出版社,2006
10、.9高吉祥,徐欣,吳帥等.基本技能訓練與單元電路設計M.北京:電子工業(yè)出版社,2007.10孫裕晶,沙玲等.實用控制系統(tǒng)設計教程M.長春:吉林大學出版社,2000.九、附錄1、電路總原理圖圖7、總原理圖2、PCB設計圖圖8、PCB圖3、電路板效果圖圖9、實物圖4、外型設計圖圖10、外觀CAD圖5、作品整體效果圖圖11、作品整體效果圖6、程序#include <reg51.h>#define uchar unsigned char#define SNAKE 20 /最大長度#define TIME 50 /顯示延時時間#define SPEED 71 /速度控制sbit keyena
11、ble=P36;/方向使能sbit keyy=P02;/上下*/sbit up=P33; /downsbit down=P31;sbit right=P32;sbit left=P34;uchar xSNAKE+1;uchar ySNAKE+1; uchar time,n,i,e; /延時時間,當前蛇長,通用循環(huán)變量,當前速度char addx,addy; /位移偏移量/*延時程序*/void delay(char MS)char us,usn;while(MS!=0)usn = 0;while(usn!=0)us=0xff;while (us!=0)us-;usn-;MS-;/*判斷碰撞*/
12、bit knock()bit k;k=0;if(x1>7|y1>7)k=1; /撞墻for(i=2;i<n;i+)if(x1=xi)&(y1=yi)k=1; /撞自己return k;/*上下左右鍵位處理*/void turnkey()/ interrupt 0 using 2 if(keyenable)if(left)addy=0;if(addx!=1)addx=-1; else addx=1;if(right)addy=0;if(addx!=-1)addx=1; else addx=-1;if(up)addx=0;if(addy!=-1)addy=1; else
13、addy=-1;if(down)addx=0;if(addy!=1)addy=-1; else addy=1;/*乘方程序*/uchar mux(uchar temp) if(temp=7)return 128;if(temp=6)return 64;if(temp=5)return 32;if(temp=4)return 16;if(temp=3)return 8;if(temp=2)return 4;if(temp=1)return 2;if(temp=0)return 1;return 0;/*顯示時鐘 顯示程序*/void timer0(uchar k)while(k-)for(i=0
14、;i<SNAKE+1;i+)P2=mux(xi);P1=255-mux(yi);turnkey(); /上下左右鍵位處理delay(TIME); /顯示延遲P2=0x00;P1=0xff; /*主程序*/void main(void)e=SPEED; P0=0x00; P1=0xff; P2=0x00; P3=0x00;while(1) /if(keyenable=1)P1=0x00;P2=0xff;elseP1=0xff;P2=0x00; for(i=3;i<SNAKE+1;i+)xi=100;for(i=3;i<SNAKE+1;i+)yi=100;/初始化 x0=4;y0
15、=4; /果子 n=3; /蛇長 n=-1 x1=1;y1=0; /蛇頭 x2=0;y2=0; /蛇尾1 addx=0;addy=0; /位移偏移 k=1; while(1)if(keyenable)break;timer0(1); while(1) timer0(e); if(knock()e=SPEED;break; /判斷碰撞 if(x0=x1+addx)&(y0=y1+addy) /是否吃東西 n+; if(n=SNAKE+1) n=3;e=e-10; for(i=3;i<SNAKE+1;i+)xi=100; for(i=3;i<SNAKE+1;i+)yi=100; x0=xn-2; y0=yn-2; for(i=n-1;i>1;i-)xi=xi-1;yi=yi-1; /xn-1=x2;yn-1=y2; x1=x2+addx;y1=y2+addy; /移動 電子線路綜合課
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關于商鋪租金合同范本
- 墻地磚合同范本
- 全書定制合同范本
- 單位電腦采購合同范本
- 單位與保安合同范本
- 個人投資合伙合同范本
- 修路轉(zhuǎn)讓合同范例
- 入圍合同范本
- 做線上合同范本
- 麻城外包型鋼加固施工方案
- 河南省公安基礎知識真題匯編1
- 內(nèi)陸常規(guī)貨物物流運輸代理協(xié)議三篇
- 2024年江蘇常州市教育基本建設與裝備管理中心招聘3人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 《護理交接班規(guī)范》課件
- 2022年新高考I卷讀后續(xù)寫David's run公開課課件-高三英語一輪復習
- 《語感與語言習得一:積累與探索》教案- 2023-2024學年高教版(2023)中職語文基礎模塊上冊
- 糧油食材配送投標方案(大米食用油食材配送服務投標方案)(技術方案)
- 祭掃烈士實施方案
- 2024年中國電動助力汽車轉(zhuǎn)向系統(tǒng)(EPS)行業(yè)市場現(xiàn)狀、前景分析研究報告
- 2023年吉林省中考滿分作文《成功源于勤奮》
- 2024-2030年中國后量子密碼學行業(yè)運營動態(tài)及投資策略分析報告
評論
0/150
提交評論