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

基于51單片機的打地鼠游戲機1602和led顯示模擬源碼齊全

  • 資源ID:34630416       資源大?。?span id="p0q0fq0" class="font-tahoma">1.65MB        全文頁數(shù):46頁
  • 資源格式: DOC        下載積分:0積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要0積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付說明:
本站最低充值0.01積分,下載本資源后余額將會存入您的賬戶,您可在我的個人中心查看。
驗證碼:   換一換

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

基于51單片機的打地鼠游戲機1602和led顯示模擬源碼齊全

目錄一、摘要3二、流程圖4三、電路原理5四、操作說明7五、演示圖片8六、程序代碼11一、摘要本作品采用STC89C52單片機作為主控芯片,選取LCD1602液晶作為顯示屏,選用24C02芯片作為外部EEPROM存儲得分等數(shù)據(jù)。 游戲程序應用C語言編譯,主要使用函數(shù)為顯示主界面函數(shù),選擇模式函數(shù),隨機函數(shù),鍵盤掃描函數(shù)和眾多界面函數(shù)。系統(tǒng)配有開機音樂和led短暫特效;以及關閉游戲音樂效果。目前配有三個難度等級,可以隨時添加。游戲中可以實時顯示得分、時間等數(shù)據(jù)。能夠通過led顯示和LCD1602同時顯示地鼠的出現(xiàn)。題目要求中所有內(nèi)容均已完成,且加入了很多額外顯示環(huán)節(jié)。二、流程圖三、電路原理1、主控芯片2、地鼠led和3*3鍵盤 3、蜂鳴器和buzzer4、1602環(huán)節(jié)5、24C02芯片四、操作說明1. 插上電源后,打開作品左下角的自鎖開關啟動。2. 系統(tǒng)啟動后,會次顯示“welcome”字樣,以及本隊伍的名稱,并伴隨著短暫的旋律,led閃爍效果。緊接著便進入游戲選擇界面,分別是:1.start 2.score 3.exit分別對應著開始游戲,進入歷史分數(shù)菜單,以及結(jié)束的功能。通過button1 和button2鍵可以進行功能選擇的切換和選取,button1用于切換,button2用于確認。3. 選擇start選項之后會有5秒鐘的準備時間,之后即可進入游戲,游戲分為3個關卡,難度依次上升,具體表現(xiàn)為地鼠產(chǎn)生的時間間隔依次減少,第一次為3秒間隔,往后依次遞減。以9個燈泡作為地鼠,每次隨機亮一個燈泡,游戲者需要在另一個3*3的矩陣上在燈泡亮的時間內(nèi)按下相應的按鈕即代表擊打相應位置,從而實現(xiàn)打地鼠的模擬功能。4. 游戲界面的上方有左右兩行,分別對應顯示剩余時間(每次游戲的時間為30秒),以及所獲得的分數(shù)。下方也有左右兩行,分別對應當前所示洞的序數(shù), 5. 若擊中地鼠:正常情況下分數(shù)加1,播放提示音1;6. 每關有(30/地鼠實現(xiàn)時間) 個地鼠(或地雷),擊打完成后若分數(shù)大于等于 level*10則進入下一關。7. 游戲失敗時,顯示“GAME OVER”。8. 順利通過3關或游戲失敗后均導致游戲結(jié)束,此時顯示你的得分并檢測,若比存儲的紀錄分數(shù)高,則刷新紀錄并存儲。9. 顯示作者信息及其他相關信息后回到游戲開始的等待畫面。補充說明:1. 本版本中進入游戲后只能用按鍵控制,在下一版本中會添加紅外遙控控制。2. 液晶顯示屏背光環(huán)節(jié)設置為接電即啟用的狀態(tài),可以換增電池模塊。3. LCD1602顯示圖片上略有難度,下一環(huán)節(jié)將使用12864或者觸屏板進行設計。4. 蜂鳴器聲音過于單調(diào),下一環(huán)節(jié)將啟用PM50100語音芯片進行播報。五、演示圖片仿真圖片實際圖片六、程序代碼#include<reg52.h>#include<stdlib.h>sbit RS=P20;sbit EN=P21;sbit Speak=P22;sbit button1=P23; /選擇模式鍵sbit button2=P24;/確認鍵、返回鍵、暫停鍵、下一關開始鍵sbit Buzzer=P26;sbit hole1=P27;/1號洞sbit SDA=P11;/24c02數(shù)據(jù)線sbit SCL=P10;/24c02時鐘線unsigned char Count;/Play_Song使用unsigned char i,j;unsigned char temp;/隨機數(shù)種子unsigned char result;/隨機數(shù)臨時變量unsigned char score;/保存臨時分數(shù)unsigned char tempname2;/保存臨時分數(shù)的名字unsigned char time;/保存時間(30秒倒計時)unsigned char num;/1秒鐘判斷變量unsigned char flag1;/1標識得分,led全滅,不進行scankey操作unsigned char flag2;/1標識得分Buzzer響方式1unsigned char flag3;/1標識地鼠出洞時間到,開始下一輪地鼠出洞unsigned char flag4;/1標識關卡時間到unsigned char flag5;/1標志暫停unsigned char level;/關卡等級unsigned char holenum;/保存隨機生成的洞號unsigned char topscore3=0; /保存3個最高分unsigned char name32="AA","BB","CC" /保存3個最高分名字 unsigned char code hole=0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/P3口控制的洞unsigned char code str1="Welcome!"/歡迎標語unsigned char code str2="1.start 2.score" unsigned char code str3="3.exit"unsigned char code str4="See You! "/exit界面unsigned char code str5="Ready?"unsigned char code str6="GO!"unsigned char code str7="Your Soccer: "/查看分數(shù)unsigned char code str8="Time: Score: "unsigned char code str9=" Team: SONGE "/隊名unsigned char code str10="Game Over!"unsigned char code str11="You Win! GO?"unsigned char code str12="You Lose!"unsigned char code str13="top1:"unsigned char code str14="Congratulations"unsigned char code str15="hole: level:"unsigned char code str16="top2:"unsigned char code str17="top3:"unsigned char code str18="Your Name:"/記錄姓名/*1602函數(shù)聲明*/void displayWelcome();/顯示歡迎界面void displayPrepare();/顯示選項void Game();/游戲真正進行void displayGame(); /開始游戲void displayExit(); /顯示退出界面void displaytime();void displayChoose(); /顯示選擇界面void displayover();void scankey();void pause();void displayScoreNext();/*基礎函數(shù)*/void delayms(unsigned int xms)/延時xms 毫秒unsigned int i,j;for(i=xms; i>0; i-)for(j=110; j>0; j-);void delayus(unsigned int ums)/延時ums 個3微秒unsigned int i,j;for(i=0; i<ums; i+)for(j=0; j<3; j+);void Time_init() /定時器初始化,11.0592MZ晶振 初始選擇:定時器0用于播放音樂,定時器1關閉 /進入游戲:定時器1用于LCD顯示分數(shù)TMOD = 0x11;/16位定時器退出游戲:定時器0播放音樂,定時器1關閉TH0 = 0xDC;TL0 = 0x00;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1; /開總中斷ET0=1;/開定時器0中斷ET1=1;/開定時器1中斷void Time0() interrupt 1/定時器0中斷播放音樂TH0 = 0xDC;TL0 = 0x00;Count+;/長度加1void Time1() interrupt 3/定時器1中斷游戲中顯示分數(shù)TH1=(65536-45872)/256;TL1=(65536-45872)%256;/每50ms中斷一次num+;if(num%20=0)/近似1秒鐘time-;if(num=(60-20*level)/出洞結(jié)束,level1:3s; level2:2s; level3:1snum=0;flag3=1;if(time=0)/一關結(jié)束time=30;flag4=1;/*播放音樂*/unsigned char code SONG = /祝你平安0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x00, /27個數(shù)字/0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,/0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,/0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,/0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,/0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,/0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,/0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,/0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,/0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,/0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,/0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,/0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,/0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,/第217個數(shù)字 /路邊的野花不要采/0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,/0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xFF,0x20,0x20,0x00,/0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,/0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,/0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,/0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,/0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,/0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,/0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,/0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,/0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,;void Play_Song(unsigned char i)/i=1 播放 路邊的野花不要采/i=0 播放 祝你平安unsigned char Temp1,Temp2;unsigned int Addr;Count = 0;/中斷計數(shù)器清0Addr = i * 27; /音樂地址TR0=1;/開啟定時器0while(1)Temp1 = SONGAddr+; if (Temp1 = 0xFF) /休止符 TR0 = 0; /關閉定時器0 delayus(100); else if (Temp1 = 0x00) /歌曲結(jié)束符 TR0=0; /關閉定時器0 return; else /正常播放歌曲 Temp2 = SONGAddr+; TR0 = 1; while(1) Speak = Speak; delayus(Temp1); if(Temp2 = Count) Count = 0; break; void playBuzzer()if(flag2=1) /得分響B(tài)uzzer=0;delayms(30);Buzzer=1;else/*24C02環(huán)節(jié)*/void init()SDA=1;delayms(5);SCL=1;delayms(5);void start()/開始信號SDA=1;delayms(5);SCL=1;delayms(5);SDA=0;delayms(5);void stop()/停止信號SDA=0;delayms(5);SCL=1;delayms(5);SDA=1;delayms(5);void respons()/應答unsigned char i;SCL=1;delayms(5);while(SDA=1)&&(i<250)i+;SCL=0;delayms(5);void write_byte(unsigned char date)/寫字節(jié)unsigned char i,temp,j;temp=date;for(i=0; i<8; i+)j=0x80&temp;temp=temp<<1;SCL=0;delayms(5);SDA=(bit)j;delayms(5);SCL=1;delayms(5);SCL=0;delayms(5);SDA=1;delayms(5);unsigned char read_byte()/讀字節(jié)unsigned char i,k;SCL=0;delayms(2);SDA=1;for(i=0; i<8; i+)SCL=1;delayms(5);k=(k<<1)|SDA;SCL=0;delayms(5);return k;void write_add(unsigned char address,unsigned char date)/往地址寫數(shù)據(jù)start();write_byte(0xa0);/控制字寫1010 000 0(寫操作)respons();write_byte(address);/存儲單元地址respons();write_byte(date);respons();stop();unsigned char read_add(unsigned char address)/往地址中讀數(shù)據(jù)unsigned char date;start();write_byte(0xa0); /控制字 寫 respons();write_byte(address); /單元地址respons();start();write_byte(0xa1); /控制字讀1010 000 1(讀操作)respons();date=read_byte(); /數(shù)據(jù)SDA=1; /非應答delayus(5); SCL=1;delayus(5);stop();return date;void getRecord()/讀取前三名分數(shù) topscore0=read_add(0);/第一名 name00=read_add(1); name01=read_add(2); topscore1=read_add(3);/第二名 name10=read_add(4); name11=read_add(5); topscore2=read_add(6);/第三名 name20=read_add(7); name21=read_add(8);void Record()/更新前三并記錄分數(shù)write_add(0,topscore0);/第一名write_add(1,name00);write_add(2,name01);write_add(3,topscore1);/第二名write_add(4,name10);write_add(5,name11);write_add(6,topscore2);/第三名write_add(7,name20);write_add(8,name21);void Judge() /判斷分數(shù)高低if(score>topscore0)topscore2=topscore1;/第二名賦給第三名name20=name10;name21=name11;topscore1=topscore0;/第一名賦給第二名name10=name00;name11=name01;topscore0=score;/臨時變量賦給第一名name00=tempname0;name01=tempname1;else if(score>topscore1)topscore2=topscore1;/第二名賦給第三名name20=name10;name21=name11;topscore1=score; /臨時變量賦給第二名name10=tempname0;name11=tempname1;else if(score>topscore2)topscore2=score; /臨時變量賦給第三名name20=tempname0;name21=tempname1;/*1602環(huán)節(jié)*/ void wr_com(unsigned char com)/寫指令 delayms(5);RS=0;EN=0;P0=com;delayms(5);EN=1;delayms(5);EN=0;void wr_dat(unsigned char dat)/寫數(shù)據(jù) delayms(5);RS=1;EN=0;P0=dat;delayms(5);EN=1;delayms(5);EN=0;void lcd_init()/1602初始化設置/delayms(25);wr_com(0x38); /設置16*2顯示,5*7點陣,8位數(shù)據(jù)接口wr_com(0x01); /顯示清0,數(shù)據(jù)指針清0wr_com(0x06); /寫一個字符后地址加一wr_com(0x0c); /設置開顯示,不顯示光標getRecord(); void displayWelcome()/顯示歡迎界面wr_com(0x80+0x03);delayms(5);for(i=0; i<9; i+)wr_dat(str1i);delayus(5);wr_com(0xc0+0x01);delayms(5);for(i=0; i<13; i+)wr_dat(str9i);delayus(5);for(i=0; i<10; i+)/開關顯示完成閃爍if(j=0)wr_com(0x08);/關顯示delayms(100); elsewr_com(0x0c);/開顯示 delayms(100);j=j;Play_Song(0);delayms(100);void displayPrepare()/顯示選項wr_com(0x01);/清屏delayms(5);wr_com(0x80);delayms(5);for(i=0; i<15; i+)wr_dat(str2i);delayus(5);wr_com(0x80+0x40);delayms(5);for(i=0; i<6; i+)wr_dat(str3i);delayus(5);for(i=0; i<9; i+)switch(i%3)case 0:hole1=0;P3=0x00;delayms(100);case 1:hole1=0;P3=0x55;delayms(100); case 2:hole1=1;P3=0xaa;delayms(100); hole1=0;P3=0x00;void displaytime() /游戲過程中刷新顯示時間、分數(shù)wr_com(0x80+0x05); /顯示倒計時delayus(5);wr_dat(0x30+time/10);delayus(5);wr_dat(0x30+time%10);delayus(5);wr_com(0x80+0x0e); /顯示分數(shù)delayus(5);wr_dat(0x30+score/10);delayus(5);wr_dat(0x30+score%10);delayus(5);wr_com(0xc0+0x0e); /顯示關卡delayus(5);wr_dat(0x30+(level+1);delayus(5);void recordName()/記錄姓名wr_com(0x01);delayus(5);wr_com(0x80);delayus(5);for(i=0; i<10; i+)/Your Name:wr_dat(str18i);delayus(5);i=A;wr_dat(i);delayus(5);wr_com(0x10);/光標左移delayus(5);wr_com(0x0f);/光標閃爍delayus(5);while(1) /輸入第一個字母wr_com(0x80+0x0a);delayus(5);wr_dat(i);delayus(5);if(button1=0)delayms(10);if(button1=0)while(!button1);i+;if(i>Z)i=A;if(button2=0)/確認,開始輸入第二個字母tempname0=i;break; i=A;/輸入第二個字母wr_dat(i);delayus(5);while(1)wr_com(0x80+0x0b);delayus(5);wr_dat(i);delayus(5);if(button1=0)delayms(10);if(button1=0)while(!button1);i+;if(i>Z)i=A;if(button2=0)/確認,輸入完畢tempname1=i;break; wr_com(0x0c);/關閉光標delayus(5);displayChoose();void displayover() /顯示一輪游戲結(jié)束畫面TR1=0;/關閉定時器1wr_com(0x01);delayms(5);wr_com(0x80);delayms(5);for(i=0; i<10; i+)/Game Overwr_dat(str10i);delayus(5);wr_com(0xc0);delayus(5);if(score>=(10*(1+level) /不同level分數(shù)要求不同,win了if(level=3) /通關了level=0;wr_com(0x80);delayus(5);for(i=0; i<15; i+)wr_dat(str14i);delayus(5);wr_com(0xc0);delayus(5);for(i=0; i<8; i+)wr_dat(str11i);delayus(5);while(1)if(button2=0)delayms(10);if(button2=0)while(!button2);recordName(); else /升級了for(i=0; i<12; i+) /You Win!wr_dat(str11i);delayus(5);while(1)if(button2=0)delayms(10);if(button2=0)while(!button2);level+;displayGame();else /You Lose!for(i=0; i<9; i+)wr_dat(str12i);delayus(5);while(1)/失敗了if(button2=0)delayms(10);if(button2=0)while(!button2);if(score!=0)/0分不記錄recordName();displayChoose(); void scankey()/掃描按鍵,判斷是否得分 if(hole1=0) && (P3=0x00)/打中地鼠delayms(5);if(hole1=0) && (P3=0x00)while(hole1=0) && (P3=0x00);flag1=1; /標志得分不進行scankeyflag2=1; /標識得分buzzerscore+;playBuzzer(); hole1=0;P3=0x00;unsigned char random()/隨機數(shù)temp+;result=rand()%9+1;return result;void displayhole() /hole地鼠顯示holenum=random();if(holenum=0)holenum+;wr_com(0xc0+0x06);delayus(5);wr_dat(0x30+holenum);delayus(5);switch(holenum)case 0:break;case 1: /1號洞亮hole1=1;P3=hole1;break; case 2: /2號洞亮hole1=0;P3=hole2;break; case 3: /3號洞亮hole1=0;P3=hole3;break; case 4: /4號洞亮hole1=0;P3=hole4;break; case 5: /5號洞亮hole1=0;P3=hole5;break; case 6: /6號洞亮hole1=0;P3=hole6;break; case 7:/7號洞亮 hole1=0;P3=hole7;break; case 8: /8號洞亮hole1=0;P3=hole8;break; case 9: /9號洞亮hole1=0;P3=hole9;break; void pause()/暫停/恢復游戲if(button2=0)/暫停鍵 delayms(5);/去抖動 if(button2=0) while(!button2);TR1=TR1;flag5=flag5; return;void Gameinit() /游戲開始時數(shù)據(jù)初始化flag1=0;/scankey標識flag2=0;/蜂鳴器標志位flag3=0;/出洞結(jié)束標識flag4=0;/timeover標識time=30;if(level=0)/重新開始闖關,則清零得分score=0;wr_com(0x01); /清屏delayus(5);wr_com(0x80);delayus(5);for(i=0; i<15; i+)/固定內(nèi)容顯示wr_dat(str8i);delayus(5);wr_com(0xc0);delayus(5);for(i=0; i<14; i+)wr_dat(str15i);delayus(5);void Game()/游戲真正進行!Gameinit();displaytime();/顯示時間、分數(shù)、洞、關卡TR1=1;/開啟定時器1while(1) displayhole();/地鼠出洞while(!flag3)/地鼠出洞時間 level:3s; level2:2s; level3:1sif(flag5=0)if(flag1=0)scankey();displaytime();pause();/暫停鍵判斷;if(flag2=0)/沒有打中地鼠playBuzzer();if(flag4=1)/時間到,結(jié)束gamedisplayover();flag1=0;/scankey標識flag2=0;/蜂鳴器標志位flag3=0;/出洞結(jié)束標識flag4=0;/timeover標識void displayGame() /開始游戲wr_com(0x01);/清屏delayms(5);wr_com(0x80+0x04);delayms(5);for(i=0; i<6; i+) /顯示Readywr_dat(str5i);delayus(5);wr_com(0xc0+0x06);delayms(5);for(i=5; i>0; i-) /顯示倒數(shù)5秒wr_dat(0x30+i);for(j=0; j<10; j+)delayms(100);wr_com(0xc0+0x06);delayms(5);wr_com(0xc0+0x06);delayms(5);for(i=0; i<3; i+) /顯示GOwr_dat(str6i);delayus(5);delayms(200);Game();/開始游戲!void displayScore() /顯示得分記錄getRecord();/從24C02中獲取數(shù)據(jù)wr_com(0x01);delayms(5);wr_com(0x80);delayms(5);for(i=0; i<12; i+) /顯示當前得分wr_dat(str7i); delayus(5);wr_dat(0x30+score/10);delayms(5);wr_dat(0x30+score%10);delayms(5);wr_com(0xc0);delayus(5);for(i=0; i<5; i+) /第二行顯示top1wr_dat(str13i);delayus(5);wr_com(0xc0+0x06); /top1delayus(5);wr_dat(0x30+topscore0/10);delayus(5);wr_dat(0x30+topscore0%10);delayus(5);wr_com(0xc0+0x09);delayus(5);wr_dat(name00);delayus(5);wr_dat(name01);delayus(5);while(1)/進入第二頁鍵if(button2=0) delayms(10);/去抖動 if(button2=0) while(!button2);displayScoreNext();break; void displayScoreNext()/顯示分數(shù)第二頁wr_com(0x01);delayms(5);wr_com(0x80); delayus(5);for(i=0; i<5; i+) /第一行顯示top2wr_dat(str16i);delayus(5);wr_com(0x80+0x06); delayus(5);wr_dat(0x30+topscore3/10);delayus(5);wr_dat(0x30+topscore3%10);delayus(5);wr_com(0x80+0x09); delayus(5);wr_dat(name10);delayus(5);wr_dat(name11);delayus(5);wr_com(0xc0); delayus(5);for(i=0; i<5; i+) /第二行顯示top3wr_dat(str17i);delayus(5);wr_com(0xc0+0x06); delayus(5);wr_dat(0x30+topscore6/10);delayus(5);wr_dat(0x30+topscore6%10);delayus(5);wr_com(0xc0+0x09); delayus(5);wr_dat(name20);delayus(5);wr_dat(name21);delayus(5);while(1)/返回鍵if(button2=0) delayms(10);/去抖動 if(button2=0) while(!button2);break; void displayExit() /顯示退出界面wr_com(0x01); /清屏delayms(5);wr_com(0x80+0x01);delayms(5);for(i=0; i<8; i+)wr_dat(str4i);delayus(5);wr_com(0xc0+0x01);delayms(5);for(i=0; i<13; i+)wr_dat(str9i);delayus(5);while(1)Play_Song(1);delayms(200);void displayChoose() /顯示選擇界面if(score!=0)/0分不記錄Judge();/判斷并重新排序Record();/記錄到24C02中displayPrepare();wr_com(0x80);delayms(5);wr_com(0x0f);/光標閃爍delayms(5);i=0;while(1)if(button1=0)/選擇模式鍵delayms(10);/去抖動if(button1=

注意事項

本文(基于51單片機的打地鼠游戲機1602和led顯示模擬源碼齊全)為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

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




關于我們 - 網(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ǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!