導航:首頁 > 操作系統 > 單片機88點陣貪吃蛇

單片機88點陣貪吃蛇

發布時間:2024-02-06 16:48:03

『壹』 各位都用51單片機做過什麼好玩的東西沒

當然有啦,如:光影搖棒,一搖就可以顯示出漢字來。
還比如:用一個8X8LED點陣,做一個貪吃蛇游戲機。
等等,很多的,都可以用單片機做出一個成形的東西來。

『貳』 求大神幫忙,用51單片機c語言編寫貪吃蛇代碼

這個我寫過,代碼已經丟了,我當時是創建一個(u16)數組,每個數組裡面2個位元組代表都是橫豎2個地址,顯示特定數量是數組的點(蛇長度)。每一次前進,就需要對數組進行自我覆蓋,然後顯示這個新數組的點。如果要變長,那就多顯示一個數組,往後的不顯示。
如果現在寫,我傾向於使用
鏈表
,這樣就不需要反復復制整個數組,而是只改動頭尾變化的點。

『叄』 51單片機開發板的功能介紹

1、8個LED燈,可以練習基本單片機IO操作,在其他程序中可以做指示燈使用。
2、2個四聯8段數碼管,顯示溫度數據,HELLO歡迎詞、時鍾等。
3、高亮8*8點陣,如練習數字,字母,圖片顯示,或者小游戲的開發如貪吃蛇等。
4、4個獨立按鍵,可以配置為中斷鍵盤,為程序的按鍵掃描節省更多的時間。
5、8個AD按鍵,主要設計為游戲開發如推箱子等,去掉了矩陣鍵盤,AD鍵盤在實際中的應用相當廣泛,如電視機加減搜台等都是採用AD鍵盤,一根AD線可以擴展幾百個按鍵,更接近工程。
6、PCF8591具有AD/DA功能,其採用IIC匯流排協議,可練習IIC匯流排的操作。
7、DS18B20:單線多點檢測支持。
8、光敏電阻測試光線強度,感受白天黑夜的區別。
9、FM收音機:能接收80M到110MHz之間的FM頻段。可實現自動搜台和手動搜台。
10、DS1302時鍾晶元提供實時時鍾,帶3V電池,在掉電的情況下,時鍾仍然可以繼續運行。
11、可讀寫SD卡文件系統,保存數據顯示到TFT液晶屏等。
12、繼電器可以控制高電壓的設備,高壓危險,請小心使用。
13、直流電機介面,控制直流電機。
14、步進電機介面,控制步進電機運行。
15、蜂鳴器,可以做電子琴、音樂發聲等。
16、74HC595晶元練習串列轉並行數據擴展。
17、74HC573鎖存擴展晶元,可以擴展介面。
18、ULN2003電機驅動晶元。(這里用它來驅動步進電機,直流電機,繼電器和蜂鳴器)
19、MAX232串口數據傳輸延長發送距離。(可與計算機通信,同時也可做為STC單片機下載程序的介面)
20、PL2303下載單片機,一線下載,直接的USB下載方式,高速下載。
21、TFT液晶屏,單片機也可以控制彩屏了,讓你的學習充滿樂趣
22、nRF24L01無線數據傳輸晶元介面,可以插nRF24L01晶元,做高速無線數據傳輸。
23、LCD1602液晶介面,字元液晶兩行,每行可以顯示16個字元。
24、LCD12864帶字型檔液晶介面。
25、LCD12864圖形液晶介面。
26、DS18B20單線多點溫度採集介面。一根線上便可拓展多個DS18B20溫度感測器,先提供兩個。
27、提供ISP下載介面,可下載AVR、AT的單片機。支持AVR單片機。
28、40針擴展介面,可以無限擴展。以後的DZR-01A開發板配件將從此埠擴展出去。
29、PS2滑鼠鍵盤介面。配合紅外遙控器甚至可以遙控我們的電腦!(配常式)
30、AVR/51復位按鍵。可以復位51 STC AVR單片機,全部支持
31、TEA5767的IIC匯流排控制。學習IIC控制
32、SD卡的SPI匯流排控制。擴展大容量存儲器
33、紅外遙控接收器,可採集紅外遙控發出的信號,可使用遙控信號控制其他設備。
34、外接5V供電電源座。
35、RXD、TXD、POWER電源指示燈
36、40PIN緊鎖座(非常方便單片機晶元的取放)
37、帶LM1117-3.3穩壓晶元(為彩屏液晶,SD卡和無線模塊供電)
38、USB供電(USB可以提供500MA的電流,完全能滿足開發板的需求了)
39、預留電源+5V,GND介面各四個(方便用戶擴展其他外圍電路時取電和共地)

『肆』 51單片機怎麼做做游戲機

要用51單片機做做游戲機,只能做些簡單的游戲機,例如,用8X8點陣模塊做個貪吃蛇,用12864點陣屏做個更好些的貪吃蛇,俄羅斯方塊等。像手機上玩的游戲就做不了的,速度不夠,手機用的顯示屏又不好驅動。

『伍』 c語言 貪吃蛇 程序

基本思路:

蛇每吃一個食物蛇身子就增加一格,用UP, DOWN, LEFT, RIGHT控制蛇頭的運動,而蛇身子跟著蛇頭走,每後一格蛇身子下一步走到上一格蛇身子的位置,以此類推。

#include <stdio.h>

#include <conio.h>

#include <windows.h>

#define BEG_X 2

#define BEG_Y 1

#define WID 20

#define HEI 20

HANDLE hout;

typedef enum {UP, DOWN, LEFT, RIGHT} DIR;

typedef struct Snake_body

{

COORD pos;//蛇身的位置

struct Snake_body *next;//下一個蛇身

struct Snake_body *prev;//前一個蛇身

}SNAKE, *PSNAKE;

PSNAKE head = NULL;//蛇頭

PSNAKE tail = NULL;//蛇尾

//畫游戲邊框的函數

void DrawBorder()

{

int i, j;

COORD pos = {BEG_X, BEG_Y};

for(i = 0; i < HEI; ++i)

{

SetConsoleCursorPosition(hout, pos);

for(j = 0; j < WID; ++j)

{

if(i == 0)//第一行

{

if(j == 0)

printf("┏");

else if(j == WID - 1)

printf("┓");

else

printf("━");

}

else if(i == HEI - 1)//最後一行

{

if(j == 0)

printf("┗");

else if(j == WID - 1)

printf("┛");

else

printf("━");

}

else if(j == 0 || j == WID - 1)//第一列或最後一列

printf("┃");

else

printf(" ");

}

++pos.Y;

}

}

//添加蛇身的函數

void AddBody(COORD pos)

{

PSNAKE pnew = (PSNAKE)calloc(1, sizeof(SNAKE));

pnew->pos = pos;

if(!head)

{

head = tail = pnew;

}

else

{

pnew->next = head;//新創建蛇身的next指向原先的蛇頭

head->prev = pnew;//原先的蛇頭的prev指向新創建的蛇身

head = pnew;//把新創建的蛇身作為新的蛇頭

}

SetConsoleCursorPosition(hout, head->pos);

printf("◎");

}

//蛇身移動的函數

void MoveBody(DIR dir)

{

PSNAKE ptmp;

COORD pos = head->pos;

switch(dir)

{

case UP:

if(head->pos.Y > BEG_Y + 1)

--pos.Y;

else

return;

break;

case DOWN:

if(head->pos.Y < BEG_Y + HEI - 2)

++pos.Y;

else

return;

break;

case LEFT:

if(head->pos.X > BEG_X + 2)

pos.X -= 2;

else

return;

break;

case RIGHT:

if(head->pos.X < BEG_X + (WID - 2) * 2)

pos.X += 2;

else

return;

break;

}

AddBody(pos);//添加了一個新的蛇頭

ptmp = tail;//保存當前的蛇尾

tail = tail->prev;

if(tail)

tail->next = NULL;

SetConsoleCursorPosition(hout, ptmp->pos);

printf(" ");

free(ptmp);

}

int main()

{

int ctrl;

DIR dir = RIGHT;//初始蛇的方向是向右的

COORD pos = {BEG_X + 2, BEG_Y + HEI / 2};

system("color 0E");

system("mode con cols=90 lines=30");

hout = GetStdHandle(STD_OUTPUT_HANDLE);

printf(" ------------貪吃蛇的移動------------");

DrawBorder();

//自定義幾個蛇的身體

AddBody(pos);

pos.X += 2;

AddBody(pos);

pos.X += 2;

AddBody(pos);

pos.X += 2;

AddBody(pos);

pos.X += 2;

AddBody(pos);

pos.X += 2;

AddBody(pos);

pos.X += 2;

AddBody(pos);

//控制蛇的移動

while(ctrl = getch())

{

switch(ctrl)

{

case 'w':

if(dir == DOWN)

continue;

dir = UP;

break;

case 's':

if(dir == UP)

continue;

dir = DOWN;

break;

case 'a':

if(dir == RIGHT)

continue;

dir = LEFT;

break;

case 'd':

if(dir == LEFT)

continue;

dir = RIGHT;

break;

case 'q':

return 0;

}

MoveBody(dir);

}

return 0;

}

(5)單片機88點陣貪吃蛇擴展閱讀:

實現邏輯

1,可以設置游標,就能實現制定位置列印製定符號。

2,涉及一個結構體,包含兩個元素坐標元素和一個結構體指針。

3,結構體串聯形成鏈表,遍歷獲取成員坐標,列印符號得到蛇身。

4,不斷的加頭,去尾,重新遍歷坐標,再列印形成蛇的移動。

5,食物產生的位置判定,不能越界,也不能與蛇身體重合。

6,蛇的轉向判定,一條規則,不允許倒退。

7,轉向的實現,跟行進方向決定新的關節坐標(當前頭的上下左右)

8,死亡檢測,是否頭節點坐標是否與牆壁重合,是否與身體其他關節重合。

9,加速減速,設置刷新休眠時間實現。

『陸』 開發板的電路連接都是固定的了嗎,用單片機開發板能做出貪吃蛇游戲嗎

1.這要看開發板的設計。有的是固定式的,有的是自由連接的。固定式的用起來方便,實驗不需要拔插接頭,沒有接錯線的顧慮,但不靈活。自由連接的則完全相反。

不過,就算是固定式的開發板,大部分也會把所有的IO引腳引出,所以你仍然可以把它當一個最小板然後組合其他的電路。

2.要做貪吃蛇,單片機開發板必須至少有:

如果你的開發板有這些,那麼恭喜你,舞台已經搭好了,剩下的就看你的發揮了。

閱讀全文

與單片機88點陣貪吃蛇相關的資料

熱點內容
怎麼進入電腦板2b2t伺服器 瀏覽:282
idea編譯進度條 瀏覽:132
文件夾工具箱軟體 瀏覽:686
最近為什麼手機連不上索尼伺服器 瀏覽:877
海康錄像機怎麼關視頻加密 瀏覽:786
編程以後有可能被機器人代替嗎 瀏覽:522
windows創建文件命令 瀏覽:986
linuxcopy文件內容 瀏覽:383
程序員帥哥禿頂 瀏覽:839
阿里雲伺服器開通流程 瀏覽:105
如何開雲伺服器 瀏覽:979
網站小說源碼 瀏覽:301
php用什麼ide 瀏覽:867
網上預約課程app哪個好 瀏覽:153
android兼容測試工具 瀏覽:97
雲伺服器不支持虛擬化怎麼辦 瀏覽:189
加密方式的演變 瀏覽:364
java常用演算法pdf 瀏覽:734
伺服器數據遇到異常什麼原因 瀏覽:450
phpexif信息 瀏覽:544