久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5473|回復: 11
打印 上一主題 下一主題
收起左側

仿真錯誤 8*8點陣貪吃蛇的單片機源程序和仿真,開源供大家分享

  [復制鏈接]
跳轉到指定樓層
樓主
貪吃蛇程序,帶仿真圖哦
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg52.h>
  2. #include<stdlib.h>
  3. typedef unsigned char u8;
  4. typedef unsigned int u16;
  5. #include <math.h>




  6. /***************初始化*************/
  7. sbit up=P3^2;
  8. sbit right=P3^1;
  9. sbit left=P3^3;
  10. sbit down=P3^4;



  11. u8 addx,addy;
  12. u8 head_x[40],head_y[40];
  13. u8 poit_x,poit_y;
  14. u8 leng,z=0,col=1;
  15. u8 y_list[8];




  16. /****************延時函數**********/
  17. void delay1s(void)   //誤差 0us
  18. {
  19.     unsigned char a,b,c;
  20.     for(c=167;c>0;c--)
  21.         for(b=171;b>0;b--)
  22.             for(a=16;a>0;a--);
  23. }
  24. void delay1ms(u16 num)
  25. {
  26.         u16 x,y;
  27.         for(x=num; x>0; x--)
  28.                 for(y=110; y>0; y--)
  29.                 {
  30.                         ;//延時1ms
  31.                 }
  32. }


  33. /****************控制函數***********/
  34. void judge_swit()
  35. {
  36.   if(up==0)
  37.    {
  38.      addx=0;
  39.      if(addy!=-1)
  40.         addy=1;
  41.      else
  42.         addy=-1;
  43.    }
  44.   if(down==0)
  45.    {
  46.      addx=0;
  47.      if(addy!=1)
  48.         addy=-1;
  49.      else
  50.         addy=1;
  51.    }
  52.   if(right==0)
  53.    {
  54.      addy=0;
  55.      if(addx!=-1)
  56.         addx=1;
  57.      else
  58.         addx=-1;
  59.    }
  60.   if(left==0)
  61.    {
  62.      addy=0;
  63.      if(addx!=1)
  64.         addx=-1;
  65.      else
  66.         addx=1;
  67.    }

  68. }


  69. /***************是否相撞****************/
  70. void judg_out()
  71. {  
  72.   u8 i;
  73.   if(head_x[leng-1]>=8)
  74.    {
  75.          P1=0xff;
  76.         
  77.    }
  78. }

  79. /****************顯示函數**************/
  80. void display()
  81. {
  82.   u8 i,j;
  83.   u8 x=0;
  84.   u8 y=0;
  85.   u8 w=0x01;
  86.   for(j=0;j<8;j++)
  87.     y_list[j]=0x00;
  88.   for(i=leng-1;i>=1;i--)
  89.     {

  90.      x=head_x[i];
  91.      y=head_y[i];
  92.      switch(x)
  93.           {
  94.        case 0: y_list[0]=w<<y|y_list[0];
  95.                w=0x01;
  96.                break;
  97.        case 1: y_list[1]=w<<y|y_list[1];
  98.                w=0x01;
  99.                break;
  100.        case 2: y_list[2]=w<<y|y_list[2];
  101.                w=0x01;
  102.                break;
  103.        case 3: y_list[3]=w<<y|y_list[3];
  104.                w=0x01;
  105.                break;
  106.        case 4: y_list[4]=w<<y|y_list[4];
  107.                w=0x01;
  108.                break;
  109.        case 5: y_list[5]=w<<y|y_list[5];
  110.                w=0x01;
  111.                break;
  112.        case 6: y_list[6]=w<<y|y_list[6];
  113.                w=0x01;
  114.                break;
  115.        case 7: y_list[7]=w<<y|y_list[7];
  116.                w=0x01;
  117.                break;
  118. }

  119. }

  120. }
  121. /****************主函數****************/
  122. void main()
  123. {
  124.   u8 i,x,y;
  125. /***********中斷初始化*********/
  126.   TMOD = 0x01;
  127.   TL0 = 0x3C;
  128.   TH0 = 0xF6;
  129.   EA = 1;
  130.   ET0 = 1;
  131.   TR0 = 1;


  132.   head_x[1]=0;
  133.   head_y[1]=0;
  134.   head_x[2]=0;
  135.   head_y[2]=0;
  136.   leng=3;
  137.   poit_x=4;
  138.   poit_y=4;
  139. while(1)
  140. {   
  141.     x = rand()%7+1;
  142.     y = rand()%7+1;

  143.     if(!up||!right||!left||!down)
  144.      judge_swit();         
  145.     if(poit_x==head_x[1]+addx&&poit_y==head_y[1]+addy)
  146.       {
  147.         leng++;
  148.          poit_x=x;
  149.          poit_y=y;  
  150.       }
  151.      else if(poit_x==head_x[1]-addx&&poit_y==head_y[1]-addy)
  152.       {
  153.         leng++;
  154.         poit_x=x;
  155.         poit_y=y;
  156.       }
  157.     // judg_out();
  158.     head_x[1]=head_x[1]+addx;
  159.     head_y[1]=head_y[1]+addy;
  160.    
  161.     for(i=leng-1;i>1;i--)
  162.       {
  163.         head_x[i]=head_x[i-1];
  164.         head_y[i]=head_y[i-1];
  165.       }
  166.     display();
  167.     delay1s();

  168. }
  169. ……………………

  170. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
First_Game.zip (55.31 KB, 下載次數: 116)


評分

參與人數 2黑幣 +10 收起 理由
darkie + 5 很給力!
關外秀才 + 5 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:345750 發表于 2018-7-19 19:29 | 只看該作者
請問你實物成功了嗎?
回復

使用道具 舉報

板凳
ID:344694 發表于 2018-7-19 21:35 | 只看該作者
鄒meng 發表于 2018-7-19 19:29
請問你實物成功了嗎?

因為仿真出來后就準備學校的比賽了,實物并沒有做,不過,我把這個程序改成圖形解鎖實物可以實現。你在實物制作中遇到了問題??等我參加完電賽以后再給你解決問題,可以不 ?
回復

使用道具 舉報

地板
ID:370231 發表于 2018-7-20 09:00 | 只看該作者
程序都出錯
compiling main.c...
MAIN.C(88): warning C280: 'i': unreferenced local variable
MAIN.C(192): error C100: unprintable character 0xA1 skipped
MAIN.C(192): error C100: unprintable character 0xAD skipped
MAIN.C(192): error C141: syntax error near ''
Target not created
回復

使用道具 舉報

5#
ID:344694 發表于 2018-7-21 15:30 | 只看該作者
a89588038 發表于 2018-7-20 09:00
程序都出錯
compiling main.c...
MAIN.C(88): warning C280: 'i': unreferenced local variable

??我重新看了下,沒有錯誤啊
回復

使用道具 舉報

6#
ID:420473 發表于 2018-11-4 14:32 | 只看該作者
很不錯的
回復

使用道具 舉報

7#
ID:423219 發表于 2018-11-8 20:31 | 只看該作者
貌似很不錯額,學習了,感謝分享
回復

使用道具 舉報

8#
ID:428888 發表于 2018-11-18 21:24 | 只看該作者
學習了,感謝分享,感謝感謝
回復

使用道具 舉報

9#
ID:441372 發表于 2018-12-7 07:33 | 只看該作者
給力!
回復

使用道具 舉報

10#
ID:555938 發表于 2019-6-25 11:20 | 只看該作者
仿真怪怪的
回復

使用道具 舉報

11#
ID:529757 發表于 2019-7-8 20:09 | 只看該作者
看不到蛇在跑,難道我眼花了
回復

使用道具 舉報

12#
ID:992343 發表于 2021-12-17 13:55 | 只看該作者
WQL_X 發表于 2019-7-8 20:09
看不到蛇在跑,難道我眼花了

我也是,右上角看見一個大方塊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天干狠狠干 | 欧美一区二区在线观看视频 | 欧美日韩综合视频 | 国产目拍亚洲精品99久久精品 | 毛片久久久| 成人av一区二区三区 | 欧美一区二区三区一在线观看 | av网站免费在线观看 | 午夜激情在线视频 | 欧美aaa级| www.国产.com | 久久久欧洲 | 毛片网站免费观看 | 欧美一级网站 | 爱爱免费视频 | 第一福利社区1024 | 色综合色综合 | 亚洲一二三区精品 | 国产95在线 | 日本在线看片 | 日韩色视频 | 成人亚洲片 | 97精品久久 | aⅴ色国产 欧美 | 丁香五月缴情综合网 | 欧美a区 | 九九九色 | 日韩欧美三级电影在线观看 | 亚洲影视在线 | 中文欧美日韩 | 一区二区精品 | 国产精品美女久久久免费 | av网站免费 | 奇米av | 国产女人与拘做视频免费 | 欧美日韩午夜精品 | 黄色片在线 | 国产乱码精品一区二区三区五月婷 | 综合精品在线 | 精品亚洲一区二区三区 | 日韩视频一区二区三区 |