九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

單片機(jī)應(yīng)用進(jìn)階--俄羅斯方塊游戲板--開發(fā)詳細(xì)介紹-經(jīng)典開發(fā)流程.ppt

  • 資源ID:17806219       資源大?。?span id="24d9guoke414" class="font-tahoma">2.95MB        全文頁數(shù):46頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

單片機(jī)應(yīng)用進(jìn)階--俄羅斯方塊游戲板--開發(fā)詳細(xì)介紹-經(jīng)典開發(fā)流程.ppt

基于 8052單片機(jī)和 8 16點陣屏 俄羅斯方塊游戲板 點擊圖片進(jìn)入 Step 1.硬件構(gòu)成 介紹游戲板所用主要器件及其要實現(xiàn)的功能 1.1 核心處理器 -STC80C52RC 1.2 8x8單色點陣 -LG12088BH-W 1.3 4-to-16 Line Decoder-MM74HC154 1.4 四位八段共陽數(shù)碼管 -LG5641BH 1.5 同向鎖存器 -SN74HC573AN 1.6 開關(guān)按鍵 1.7 焊接實物圖: Step 2.仿真軟件輔助設(shè)計 Proteus 7.10仿真模塊展示 Step 3.C程序模塊簡要說明 開發(fā)概覽 Step 1.硬件構(gòu)成及功能簡介 1.核心處理器 STC80C52RC 8051-based Fullly Static 24MHz CMOS controller with 32 I/O Lines 3 Timers/Counters 8 Interrupts/2 Priority Levels UART Three-Level Program Memory Lock 8K Bytes Flash Memory 128 Bytes On-chip RAM 功能:整個游戲板的控制中心 1.核心處理器 最小系統(tǒng)電路 12MHz晶振 RC復(fù)位電路 5V直流電源 Step 1.硬件構(gòu)成及功能簡介 2.8x8單色點陣 LG12088BH-W 主要參數(shù) 驅(qū)動電流: 20 5mA 顏色:紅色 規(guī)格: 8 8黑底 數(shù)量: 2 信號源:由譯碼器提供 16行掃描信號,由鎖存器提供 8位 顯示信號和驅(qū)動電流。 功能:提供 8 16個像素點的顯示屏,為游戲提供必要的 圖形顯示模塊。 Step 1.硬件構(gòu)成及功能簡介 3.4-to-16 Line Decoder MM74HC154 關(guān)鍵參數(shù) 真值表 引腳圖 Step 1.硬件構(gòu)成及功能簡介 3.4-to-16 Line Decoder 信號源: P2低四位 (P1.0至 P1.3),使能 E1接 P2.7, E2接地 功能:為 8 16點陣提供 16行低電平掃描信號。 Step 1.硬件構(gòu)成及功能簡介 4.四位八段共陽數(shù)碼管 LG5641BH 主要參數(shù): 驅(qū)動電流: 10mA左右 信號源:用兩塊鎖存器分別控制位選信號和段選信號。 功能:為游戲板提供必要的分?jǐn)?shù)顯示模塊。 Step 1.硬件構(gòu)成及功能簡介 5.同向鎖存器 SN74HC573AN 關(guān)鍵參數(shù) 真值表: 引腳圖: 驅(qū)動性:可驅(qū)動數(shù)碼管和點陣正常點亮 數(shù)量: 3塊 Step 1.硬件構(gòu)成及功能簡介 5.同向鎖存器 . 作為點陣顯示信號輸送和驅(qū)動的鎖存器 (一塊 ) 信號源:單片機(jī) P3I/O 功能:給點陣送顯示信號并提供驅(qū)動電流。 (LE接地 ) Step 1.硬件構(gòu)成及功能簡介 5.同向鎖存器 . 作為 P0口拓展和數(shù)碼管位選、段選信號輸送以及驅(qū)動 電流提供鎖存器 (兩塊 )。 信號源:單片機(jī) P0口 (已上拉 10K電阻 )。 兩個鎖存控制端接在單片機(jī) P2口。 功能:為數(shù)碼管送入段選信號和位選信號,提供電流驅(qū)動 Step 1.硬件構(gòu)成及功能簡介 6.開關(guān)按鍵 一個自鎖開關(guān):用作整個游戲板的開關(guān) (帶發(fā)光二極管 )。 六個按鍵:一個用作復(fù)位鍵,其余五個用作人為控制輸入。 信號源:人為擊按。 功能: Start/Suspend鍵:游戲開始和暫??刂?Up鍵:控制形狀逆時針旋轉(zhuǎn) Left和 Right鍵:控制形狀左右移動一格 Down鍵:控制形狀快速下降 Step 1.硬件構(gòu)成及功能簡介 焊接實物圖: Step 1.硬件構(gòu)成及功能簡介 點陣和單片機(jī)正面 點陣和單片機(jī)反面 焊接實物圖: Step 1.硬件構(gòu)成及功能簡介 數(shù)碼管正面 數(shù)碼管反面 焊接實物圖: Step 1.硬件構(gòu)成及功能簡介 程 序 運 行 時 狀 態(tài) Proteus 7.10仿真模塊展示 單片機(jī)最小系統(tǒng)模塊 按鍵模塊 Step 2.仿真軟件輔助設(shè)計 Proteus 7.10仿真模塊展示 點陣顯示模塊 Step 2.仿真軟件輔助設(shè)計 Proteus 7.10仿真模塊展示 四位數(shù)字顯示模塊 Step 2.仿真軟件輔助設(shè)計 Proteus 7.10仿真模塊展示 仿真運行時 Proteus設(shè)計文件 視頻文件 Step 2.仿真軟件輔助設(shè)計 視頻文件 資料 簡單的操作示意 .avi Proteus設(shè)計文件 俄羅斯方塊 -高度仿真版 .DSN 詳細(xì)內(nèi)容見附件 Step 3.C程序模塊簡要說明 附件 1:Keil工程文件夾 俄羅斯方塊 keil文件 附件 2:C51程序文件 elsfk.c 附件 3:C51程序文件 word版 俄羅斯方塊 C程序 .doc /* 名稱: 基于 8052單片機(jī)和 8X16點陣屏俄羅斯方塊游戲板 時間: 2012年 05月 23日 17時 單位:武漢理工大學(xué)信息學(xué)院電子 1003班 作者:電子那點事(新浪微博賬號,歡迎關(guān)注) */ #include #include #include #define uchar unsigned char sbit slock=P27; /譯碼器輸出使能端 sbit upkey=P23; /“旋轉(zhuǎn)圖形 /向上 ” 按鍵 sbit leftkey=P21; /“左移 /向左 ” 按鍵 sbit rightkey=P22; /“右移 /向右 ” 按鍵 sbit downkey=P20; /“快速下移 /向下 ” 按鍵 sbit duan=P25; /數(shù)碼管段選信號所用鎖存器的鎖存允許端 sbit wei=P26; /數(shù)碼管位選信號所用鎖存器的鎖存允許端 sbit startsuspendkey=P24; /“開始 /暫停 /繼續(xù) ” 多功能切換按鍵 Step 3.C程序模塊簡要說明 /*圖形編碼機(jī)制介紹 * 1.由于俄羅斯方塊圖形的寬度和高度最多只有四位,所以要以 4X4為基本單元。 2.硬件采用 16行掃描、 8位送顯示信號 3.各個圖形的寬度不一致,所以要人為給圖形設(shè)定居中位置。 若圖形寬度為偶數(shù)可直接將其居中,若為奇數(shù)則靠左居中。 4.由于圖形需要旋轉(zhuǎn),所以由基本的圖形會衍生出另外 3種圖形。 5.因此每個圖形應(yīng)該給定 4個 8位的二進(jìn)制碼,并放入一個二維數(shù)組里。 6.經(jīng)典俄羅斯方塊游戲里有 19種不同形狀的方塊,包括旋轉(zhuǎn)得到的。 7.數(shù)組的第一個下標(biāo)為該圖形的編號 */ uchar code allshape194= 0 x00,0 x00,0 x18,0 x18,0 x10,0 x10,0 x10,0 x10,0 x00,0 x00,0 x00,0 x3c, 0 x00,0 x08,0 x18,0 x10,0 x00,0 x00,0 x30,0 x18,0 x00,0 x10,0 x18,0 x08, 0 x00,0 x00,0 x18,0 x30,0 x00,0 x08,0 x08,0 x18,0 x00,0 x00,0 x38,0 x08, 0 x00,0 x18,0 x10,0 x10,0 x00,0 x00,0 x20,0 x38,0 x00,0 x10,0 x10,0 x18, 0 x00,0 x00,0 x08,0 x38,0 x00,0 x18,0 x08,0 x08,0 x00,0 x00,0 x38,0 x20, 0 x00,0 x00,0 x10,0 x38,0 x00,0 x08,0 x18,0 x08,0 x00,0 x00,0 x38,0 x10, 0 x00,0 x10,0 x18,0 x10; /*/ Step 3.C程序模塊簡要說明 /數(shù)碼管數(shù)形顯示編碼 uchar code number10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90; /位選信號編碼,方便寫循環(huán)使用 uchar code weima4=0 x01,0 x02,0 x04,0 x08; /各個圖形的寬度屬性,用于判斷左移和右移的步格數(shù)上限 char shapewidth19=2,1,4,2,3,2,3,2,3,2,3,2,3,2,3,3,2,3,2; /旋轉(zhuǎn)圖形時,用于改變圖形的編號以實現(xiàn)圖形的切換 char shaperotate19=0,2,1,4,3,6,5,8,9,10,7,12,13,14,11,16,17,18,15; /用于存儲方塊降落后固定顯示的圖形信息 uchar staticdata20=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 xff; /規(guī)定一次性消掉的行數(shù)的分?jǐn)?shù)獎勵機(jī)制 uchar rate5=0,1,3,6,10; /*/ Step 3.C程序模塊簡要說明 /*全局變量聲明 */ char y;/方塊位置屬性:底部下落的高度, y=0時:剛剛出現(xiàn), y=15時:下落到屏幕最底部 char shapenum;/方塊形狀屬性:從 0到 18 int left; /方塊位置屬性:方塊偏離居中位置的格數(shù),不同的方塊 left值的上限不同 int mark; /玩家分?jǐn)?shù)變量 int speed; /方塊下落速度變量 int initialspeed;/方塊下落的初始速度 int systemspeed;/系統(tǒng)下落速度,此值會隨著玩家分?jǐn)?shù)的增加而減小,相應(yīng)的下落速度會增大 int fastspeed;/當(dāng)用戶按下 down鍵時,方塊下落速度為此值 int k;/一個全局循環(huán)變量, “ 幀數(shù) ” 變量 int startcontrol=1;/開始畫面狀態(tài)指示變量,為 1時說明程序進(jìn)入開機(jī)歡迎界面 int suspendcontrol=0;/游戲暫停與游戲繼續(xù)畫面狀態(tài)指示變量,為 1說明處在暫停界面。 int randnum;/隨機(jī)數(shù)變量,用于產(chǎn)生隨機(jī)方塊 /*/ Step 3.C程序模塊簡要說明 /*函數(shù)聲明 */ void delayms(int); /粗略延時函數(shù) uchar move(uchar,int);/對二進(jìn)制碼實行移位,可為負(fù)值 void shapedisplay(); /對點陣掃描一場,對數(shù)碼管掃描一場,用于顯示圖形和數(shù)字 void keyscan();/對所有鍵盤掃描一次,并執(zhí)行相應(yīng)運算和操作 uchar check(char,int);/用于檢查方塊將要下落的位置或是將要旋轉(zhuǎn)的位置是否有障礙 uchar shapedisappear();/用于消行,返回一次性消掉的行數(shù) numberdisplay(int amark);/用于四位數(shù)字顯示 void startimage();/游戲等待開始畫面函數(shù) void overimage();/游戲結(jié)束后的畫面 void dataset();/對數(shù)據(jù)初始化,為游戲重新開始做準(zhǔn)備 /*/ Step 3.C程序模塊簡要說明 /*主函數(shù) */ void main() char j; startimage(); /進(jìn)入開機(jī),函數(shù)內(nèi)有鍵盤掃描,只有按下 “ 開始 ” 鍵會退出函數(shù),否則不退 出 dataset(); /對數(shù)據(jù)進(jìn)行初始化 while(1) /進(jìn)入大循環(huán) k=speed; /確定顯示的幀數(shù) while(k-) keyscan(); /掃描鍵盤,放入高速循環(huán)語句中提高鍵盤的響應(yīng)速度, 并檢測此時用戶是否有相應(yīng)請求 shapedisplay(); /顯示圖形和數(shù)字 y+; /圖形下落一格 Step 3.C程序模塊簡要說明 if(check(shapenum,left) /在沒有顯示之前判斷將要下落的位置是否 有障礙物,如果有障礙就進(jìn)入到 if語句中 if(y=1) /如果 y=1;說明方塊剛出現(xiàn)就遇到障礙物了, 這時游戲需結(jié)束 overimage(); /進(jìn)入游戲結(jié)束畫面,此函數(shù)內(nèi)沒有鍵盤掃 描,運行一段時間會自動退出 startimage(); /又進(jìn)入開機(jī)畫面 dataset(); /對數(shù)據(jù)進(jìn)行初始化,將前一用戶數(shù)據(jù)清零 else /遇到障礙物,但還不至于圖形不能出現(xiàn) for(j=0;j0;i-) for(j=110;j0;j-); /*/ uchar move(uchar aa,int anum) /移位函數(shù) if(anum=0) aa<=(-anum); return aa; /*/ Step 3.C程序模塊簡要說明 void shapedisplay() /顯示函數(shù) uchar j; for(j=y<3?3-y:0;j<4;j+) /顯示動態(tài)方塊 slock=1;P1=j+y-3;P3=move(allshapeshapenumj,left); slock=0;delayms(1);P3=0 x00; for(j=0;j<16;j+) /顯示靜態(tài)方塊 slock=1;P1=j;P3=staticdataj+3; slock=0;delayms(1);P3=0 x00; numberdisplay(mark); /分?jǐn)?shù)顯示 /*/ Step 3.C程序模塊簡要說明 numberdisplay(int amark) /大數(shù)拆分并顯示,帶去無效零功能 char i; uchar num4; num0=amark/1000%10;num1=amark/100%10;num2=amark/10%10;num3=amark%10; if(amark<10) /顯示一位數(shù) for(i=3;i<4;i+) P0=0 xff; duan=1; P0=numbernumi; duan=0; P0=0 x00; wei=1; P0=weimai; wei=0; delayms(1); wei=1; P0=0 x00; wei=0; Step 3.C程序模塊簡要說明 else if(amark<100) /顯示兩位數(shù) for(i=2;i<4;i+) P0=0 xff; duan=1; P0=numbernumi; duan=0; P0=0 x00; wei=1; P0=weimai; wei=0; delayms(1); wei=1; P0=0 x00; wei=0; Step 3.C程序模塊簡要說明 else if(amark<1000) /顯示三位數(shù) for(i=1;i<4;i+) P0=0 xff; duan=1; P0=numbernumi; duan=0; P0=0 x00; wei=1; P0=weimai; wei=0; delayms(1); wei=1; P0=0 x00; wei=0; Step 3.C程序模塊簡要說明 else /顯示四位數(shù) for(i=0;i<4;i+) P0=0 xff; duan=1; P0=numbernumi; duan=0; P0=0 x00; wei=1; P0=weimai; wei=0; delayms(1); wei=1; P0=0 x00; wei=0; return 0; /*/ Step 3.C程序模塊簡要說明 void keyscan() /鍵盤掃錨并執(zhí)行用戶輸入的指令 /按鍵無效條件: 1.左移超邊緣; 2.左移遇障礙; 3.處在歡迎界面; 4.處在暫停界面 if(leftkey=0 if(rightkey=0) left-; /按鍵命令:方塊右移一位 speed=systemspeed; while(!rightkey) shapedisplay(); Step 3.C程序模塊簡要說明 /按鍵無效條件: 1.翻轉(zhuǎn)超左右邊緣; 2.翻轉(zhuǎn)遇障礙; 3.處在歡迎界面; 4.進(jìn)入暫停界面 if(upkey=0 i-; return j; /返回 0,說明沒有障礙 /*/ Step 3.C程序模塊簡要說明 uchar shapedisappear()/方塊落定后消掉拼滿的行,并使沒有拼滿的行整體下移填補(bǔ)空缺行 char i,j,r=4; for(i=0;i0;j-) staticdataj=staticdataj-1; i-,r-; return 4-r; /函數(shù)返回一次性消掉的行的數(shù)目 /*/ Step 3.C程序模塊簡要說明 void startimage() /開機(jī)歡迎畫面,在沒有按鍵作用的時候會不斷執(zhí)行 uchar i,j; startcontrol=1; while(startcontrol) for(i=10;i0;i-) for(j=0;j<16;j+=2) slock=1;P1=j;P3=0 xaa; slock=0;delayms(1);P3=0 x00; for(j=1;j0;i-) for(j=1;j<16;j+=2) slock=1;P1=j;P3=0 xaa; slock=0;delayms(1);P3=0 x00; for(j=0;j<16;j+=2) slock=1;P1=j;P3=0 x55; slock=0;delayms(1);P3=0 x00; keyscan(); /隨時響應(yīng)用戶輸入 /*/ Step 3.C程序模塊簡要說明 void overimage() /游戲結(jié)束畫面,分?jǐn)?shù)會強(qiáng)制閃爍 8次,并自動結(jié)束 int i,j; for(j=0;j<8;j+) for(i=0;i<200;i+) numberdisplay(mark); delayms(500); /*/ Step 3.C程序模塊簡要說明 void dataset() /數(shù)據(jù)全部清零,重新開始游戲 char j; startcontrol=1; suspendcontrol=0; y=0; left=0; shapenum=0; initialspeed=100; speed=initialspeed; systemspeed=initialspeed; fastspeed=5; randnum=rand()%19; shapenum=randnum; mark=0; for(j=0;j<19;j+) /清除點陣上的顯示數(shù)據(jù) staticdataj=0; /*/ Step 3.C程序模塊簡要說明

注意事項

本文(單片機(jī)應(yīng)用進(jìn)階--俄羅斯方塊游戲板--開發(fā)詳細(xì)介紹-經(jīng)典開發(fā)流程.ppt)為本站會員(w****2)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!