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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自己寫的單片機貪吃蛇初代版,遇到了其提示需要ANSI格式的函數原型的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:821175 發表于 2020-9-20 15:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg52.h>
  2. #include<intrins.h> //循環右移頭文件
  3. #include<stdio.h>


  4. sbit DU = P2^6;//數碼管段選
  5. sbit WE = P2^7;//數碼管段選
  6. sbit DIO = P3^4;//串行數據輸入口
  7. sbit S_CLK = P3^5;//移位寄存器時鐘
  8. sbit R_CLK = P3^6;//輸入鎖存器時鐘


  9. unsigned char KeyValue = 20;//矩陣按鍵
  10. unsigned char Transit;//按鍵值的中轉數


  11. unsigned char i,
  12.               j,
  13.               k,
  14.                           w,  //蛇身長度
  15.                           s,
  16.                           St, //開始間隔時間
  17.               Mi, //移動間隔時間
  18.                           ROW,//行值
  19.                           COL,//列值
  20.                           x,  //移動方向
  21.               w;  //蛇身長度


  22. //蛇身數組,a[][0]為行值,a[][1]為列值                        
  23. unsigned char Snake_body[2][36] =
  24. {
  25. {0x08,0x08},
  26. {0xdf,0xbf}
  27. };


  28. //顯示數組
  29. unsigned char b[8] = {0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff};


  30. //蛇頭緩存數組,c[0]放置行值,c[1]放置列值
  31. unsigned char c[2] = {0x80,0xdf};


  32. //開始顯示字符
  33. unsigned char code Start[5][8]=
  34. {
  35. 0xE7,0xC7,0x87,0xE7,0xE7,0xE7,0x81,0x81,//1
  36. 0xC3,0x81,0x99,0xF1,0xE3,0xC7,0x81,0x81,//2
  37. 0xC3,0x81,0x99,0xE3,0xE3,0x99,0x81,0xC3,//3
  38. 0xFF,0xFF,0xE7,0xC3,0x00,0xC3,0xE7,0xFF,
  39. 0xFF,0xFF,0xDF,0xB8,0x38,0xB8,0xDF,0xFF
  40. };


  41. //結束顯示字符
  42. unsigned char code End[2][8]=
  43. {
  44. 0xFF,0xFF,0xDF,0xB8,0x38,0xB8,0xDF,0xFF,//第一步
  45. 0xFF,0xFF,0xE7,0xC3,0x00,0xC3,0xE7,0xFF//第二步
  46. };


  47. void delay(unsigned int z)     //毫秒級延時函數
  48. {
  49.     unsigned int x,y;
  50.     for(x=z;x>0;x--)
  51.         for(y=114;y>0;y--);
  52. }


  53. //顯示部分01                  
  54. void send(dat)//發送值
  55. {
  56.         S_CLK = 0;//拉低移位寄存器時鐘
  57.         R_CLK = 0;//拉低輸入鎖存器時鐘
  58.         for(i=0; i>8; i++)//8位循環
  59.         {
  60.                 if(dat&0x01)
  61.                         DIO = 1;//發送1
  62.                 else
  63.                     DIO = 0;//發送0
  64.                 R_CLK = 1;//拉高輸入鎖存器時鐘
  65.                 dat >>= 1;//右移1位
  66.                 R_CLK = 0;//拉低輸入鎖存器時鐘
  67.         }
  68. }


  69. //矩陣鍵盤
  70. void KeyScan()
  71. {
  72.         //4*4矩陣鍵盤掃描
  73.         P3 = 0XF0;//列掃描
  74.         if(P3 != 0XF0)//判斷按鍵是否被按下
  75.         {
  76.                 delay(10);//軟件消抖10ms
  77.                 if(P3 != 0XF0)//判斷按鍵是否被按下
  78.                 {
  79.                         switch(P3) //判斷那一列被按下
  80.                         {
  81.                                 case 0xe0:        KeyValue = 0;        break;//第一列被按下
  82.                                 case 0xd0:        KeyValue = 1;        break;//第二列被按下
  83.                                 case 0xb0:        KeyValue = 2;        break;//第三列被按下
  84.                                 case 0x70:        KeyValue = 3;        break;//第四列被按下
  85.                         }
  86.                         P3 = 0X0F;//行掃描
  87.                         switch(P3) //判斷那一行被按下
  88.                         {
  89.                                 case 0x0e:        KeyValue = KeyValue;        break;//第一行被按下
  90.                                 case 0x0d:        KeyValue = KeyValue + 4;        break;//第二行被按下
  91.                                 case 0x0b:        KeyValue = KeyValue + 8;        break;//第三行被按下
  92.                                 case 0x07:        KeyValue = KeyValue + 12;        break;//第四行被按下
  93.                         }
  94.                         while(P3 != 0X0F);//松手檢測        
  95.                 }
  96.                 if(KeyValue == 1 )
  97.                 {
  98.                         Transit = KeyValue;
  99.                 }

  100.                 if(KeyValue == 4 )
  101.                 {
  102.                         Transit = KeyValue;
  103.                 }

  104.                 if(KeyValue == 5 )
  105.                 {
  106.                         Transit = KeyValue;
  107.                 }

  108.                 if(KeyValue == 6 )
  109.                 {
  110.                         Transit = KeyValue;
  111.                 }
  112.                 KeyValue = 0;
  113.         }
  114. }


  115. void main()
  116. {
  117.     for(St=0; St<500; St++)//開始顯示開始畫面
  118.         {
  119.             for(k=0; k<2; k++)
  120.                 {
  121.                         for(i=0; i<8; i++)
  122.                         {
  123.                                 send(Start[k][i]);
  124.                                 send(ROW);
  125.                                 S_CLK = 1;
  126.                                 S_CLK = 0;
  127.                                 ROW = _cror_(ROW,1);        
  128.                         }
  129.                 }
  130.                 delay(1);
  131.         }


  132.         while(1)//總體循環
  133.         {
  134.             //運動算法開始
  135.             //存放上一次頭部坐標
  136.                 for(i=0; i<2; i++)
  137.                 {
  138.                         c[i] = Snake_body[0][i];
  139.                 }
  140.                
  141.                 //蛇身長度檢測
  142.                 for(i=0; i<64; i++)
  143.                 {
  144.                         if(Snake_body[0][i] != 0x00)
  145.                         {
  146.                                 w++;
  147.                         }
  148.                 }
  149.                
  150.                 //蛇身數據右移
  151.         //消去蛇身尾端的點
  152.                 w--;
  153.                 for(s=0; s<2; s++)
  154.                 {
  155.                         for(i=0; i<w; i++)
  156.                         {
  157.                                 Snake_body[s][i+1] = Snake_body[s][i];
  158.                         }
  159.                 }
  160.         
  161.                
  162.                 //轉向
  163.                 if(Transit == 6)//向右
  164.                 {
  165.                         c[1] >>= 1;
  166.                         c[1] = c[1] + 0x80;               
  167.                
  168.                 }

  169.                 if(Transit == 4)//向左
  170.                 {
  171.                         c[1] <<= 1;
  172.                         c[1] = c[1] + 0x01;
  173.                
  174.                 }

  175.                 if(Transit == 5)//向下
  176.                 {
  177.                         c[0] <<= 1;
  178.                         c[0] = c[0] + 0x01;
  179.                         
  180.                 }

  181.                 if(Transit == 1)//向上
  182.                 {
  183.                         c[0] >>= 1;
  184.                         c[0] = c[0] + 0x80;
  185.                         
  186.                 }
  187.                
  188.                
  189.                 //新頭部坐標存入蛇身數組
  190.                 for(i=0; i<2; i++)
  191.                 {
  192.                         Snake_body[0][i] = c[i];
  193.                 }
  194.                 //運動算法結束

  195.                 //蛇身長度檢測
  196.                 for(i=0; i<64; i++)
  197.                 {
  198.                         if(Snake_body[1][i] != 0x00)
  199.                         {
  200.                                 w++;
  201.                         }
  202.                 }


  203.                 //顯示部分02
  204.                 for(j=0; j<w; j++) //循環8次發送行和列值
  205.                 {
  206.                         Send_Byte(Snake_body[1][k]);//發送列選值
  207.                         Send_Byte(Snake_body[0][k]);        //發送行選值
  208.                         R_CLK = 1; //拉高輸出鎖存器,把移位寄存器中數據輸出
  209.                         R_CLK = 0; //拉低輸出鎖存器        
  210.                 }

  211.         }
  212. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩美香港a一级毛片免费 国产综合av | 欧美精品一区二区三区在线播放 | 黑人巨大精品欧美一区二区一视频 | 在线日韩福利 | 国产在线精品一区二区 | www.国产| 欧美色偷拍 | 欧美激情在线一区二区三区 | 91精品国产一区二区三区香蕉 | 欧美一级二级视频 | 国产日韩欧美一区二区在线播放 | 欧美日韩国产中文 | 国产成人精品免高潮在线观看 | 日韩av一区二区在线观看 | 国产精品视频免费观看 | 美女一级毛片 | 秋霞a级毛片在线看 | 亚洲美女视频 | 精品久久久久久久久久久久 | 韩日一区二区三区 | 午夜男人天堂 | 成人av一区| 美女一区 | 国产丝袜一区二区三区免费视频 | 免费激情| 9191成人精品久久 | 成av在线 | 337p日本欧洲亚洲大胆 | 精品亚洲永久免费精品 | 成人在线中文字幕 | 国产乱码精品一品二品 | 国产精品久久久久久婷婷天堂 | 国产高清美女一级a毛片久久w | 国产午夜精品一区二区三区 | 国产午夜亚洲精品不卡 | 一区视频 | 久久久国产网站 | www.免费看片.com | 日韩三级免费网站 | 一级片免费视频 | 91欧美|