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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于單片機的推箱子小游戲代碼(帶仿真)PG160128A液晶顯示

[復制鏈接]
跳轉到指定樓層
樓主
基于單片機的推箱子小游戲(帶仿真)全套帶仿真,帶源碼,hex文件等


單片機源程序如下:
  1. /*獲取當前行,列*/
  2. /*設置當前行,列*/
  3. uchar g=0;
  4. void delay(int c){
  5.         int i, j;
  6.         for(i = 0; i < c; i++)
  7.                 for(j = 0; j < 1000; j++);
  8. }

  9. /*清屏 320 = (160/8) * (128/8) = 20 * 16 = 320*/
  10. void cls(void){
  11.         int i;
  12.         set_xy(0,0);
  13.         for(i = 0; i < 320; i++)
  14.                 write_one(0x94,INC_WR);
  15. }


  16. uchar curx,cury;        /*紀錄當前人物所在位置*/

  17. uchar level_temp[8][8]={
  18.         0,0,0,0,0,0,0,0,
  19.         0,0,0,0,0,0,0,0,
  20.         0,0,0,0,0,0,0,0,
  21.         0,0,0,0,0,0,0,0,
  22.         0,0,0,0,0,0,0,0,
  23.         0,0,0,0,0,0,0,0,
  24.         0,0,0,0,0,0,0,0,
  25.         0,0,0,0,0,0,0,0,
  26. };


  27. void wirte_bg(void){
  28.         int i;
  29.         set_adr(0x50,0x01);
  30.         for(i = 0; i < 2560; i++)
  31.                 write_one(bg[i],INC_WR);
  32. }

  33. void wirte_cgrom(void){
  34.         int i;
  35. //        set_adr(0x50,0x01);
  36. //        for(i = 0; i < 2560; i++)
  37. //                write_one(0xff,INC_WR);
  38.         set_adr(0x00,0x0c);
  39.         /*自定義字符寫入CGROM*/
  40.         for(i = 0; i < 848; i++)
  41.                 write_one(Lattice[i],INC_WR);
  42. }

  43. void start(void){
  44.         uchar i;
  45.         set_xy(0,0);
  46.         for(i=0;i<20;i++)
  47.                 write_one(0x95,INC_WR);
  48.         set_xy(0,15);
  49.         for(i=0;i<20;i++)
  50.                 write_one(0x95,INC_WR);
  51.         for(i=0;i<15;i++){
  52.                 set_xy(0,i);
  53.                 write_one(0x95,INC_WR);
  54.                 set_xy(19,i);
  55.                 write_one(0x95,INC_WR);
  56.         }
  57.         set_xy(18,1);
  58.         write_one(0x96,INC_WR);
  59.         set_xy(18,14);
  60.         write_one(0x97,INC_WR);
  61.         set_xy(1,1);
  62.         write_one(0x98,INC_WR);
  63.         set_xy(1,14);
  64.         write_one(0x99,INC_WR);

  65.         set_xy(7,6);
  66.         write_one(0xaa,INC_WR);
  67.         write_one(0xab,INC_WR);
  68.         write_one(0xae,INC_WR);
  69.         write_one(0xaf,INC_WR);
  70.         write_one(0xb2,INC_WR);
  71.         write_one(0xb3,INC_WR);
  72.         set_xy(7,7);
  73.         write_one(0xac,INC_WR);
  74.         write_one(0xad,INC_WR);
  75.         write_one(0xb0,INC_WR);
  76.         write_one(0xb1,INC_WR);
  77.         write_one(0xb4,INC_WR);
  78.         write_one(0xb5,INC_WR);

  79.         set_xy(6,8);
  80.         write_one(0x9a,INC_WR);
  81.         write_one(0x9b,INC_WR);
  82.         write_one(0x9e,INC_WR);
  83.         write_one(0x9f,INC_WR);
  84.         write_one(0xa2,INC_WR);
  85.         write_one(0xa3,INC_WR);
  86.         write_one(0xa6,INC_WR);
  87.         write_one(0xa7,INC_WR);
  88.         set_xy(6,9);
  89.         write_one(0x9c,INC_WR);
  90.         write_one(0x9d,INC_WR);
  91.         write_one(0xa0,INC_WR);
  92.         write_one(0xa1,INC_WR);
  93.         write_one(0xa4,INC_WR);
  94.         write_one(0xa5,INC_WR);
  95.         write_one(0xa8,INC_WR);
  96.         write_one(0xa9,INC_WR);
  97.         while(i){                        /*此while語句判斷確定鍵超級技巧*/
  98.                 switch(P1&0x1f){
  99.                         case 0x0f:
  100.                                 i=0;
  101.                                 break;                                
  102.                 }
  103.         }
  104. }


  105. void guan(void){
  106.         /*推*/        
  107.         set_xy(16,0);
  108.         write_one(0xaa,INC_WR);
  109.         write_one(0xab,INC_WR);
  110.         set_xy(16,1);
  111.         write_one(0xac,INC_WR);
  112.         write_one(0xad,INC_WR);
  113.         /*箱*/
  114.         set_xy(16,2);
  115.         write_one(0xae,INC_WR);
  116.         write_one(0xaf,INC_WR);
  117.         set_xy(16,3);
  118.         write_one(0xb0,INC_WR);
  119.         write_one(0xb1,INC_WR);
  120.         /*子*/
  121.         set_xy(16,4);
  122.         write_one(0xb2,INC_WR);
  123.         write_one(0xb3,INC_WR);
  124.         set_xy(16,5);
  125.         write_one(0xb4,INC_WR);
  126.         write_one(0xb5,INC_WR);        
  127.         /*第*/
  128.         set_xy(16,8);
  129.         write_one(0xd2,INC_WR);
  130.         write_one(0xd3,INC_WR);        
  131.         set_xy(16,9);
  132.         write_one(0xd4,INC_WR);
  133.         write_one(0xd5,INC_WR);
  134.         /*幾*/        
  135.         set_xy(16,10);
  136.         write_one(0xd6,INC_WR);
  137.         write_one(0xd6+2*(g+1),INC_WR);        
  138.         set_xy(16,11);
  139.         write_one(0xd7,INC_WR);
  140.         write_one(0xd7+2*(g+1),INC_WR);
  141.         /*關*/        
  142.         set_xy(16,12);
  143.         write_one(0xce,INC_WR);
  144.         write_one(0xcf,INC_WR);        
  145.         set_xy(16,13);
  146.         write_one(0xd0,INC_WR);
  147.         write_one(0xd1,INC_WR);
  148.         /*阿*/
  149.         set_xy(18,0);
  150.         write_one(0x9a,INC_WR);
  151.         write_one(0x9b,INC_WR);        
  152.         set_xy(18,1);
  153.         write_one(0x9c,INC_WR);
  154.         write_one(0x9d,INC_WR);
  155.         /*С*/        
  156.         set_xy(18,2);
  157.         write_one(0x9e,INC_WR);
  158.         write_one(0x9f,INC_WR);        
  159.         set_xy(18,3);
  160.         write_one(0xa0,INC_WR);
  161.         write_one(0xa1,INC_WR);
  162.         /*制*/        
  163.         set_xy(18,4);
  164.         write_one(0xa2,INC_WR);
  165.         write_one(0xa3,INC_WR);        
  166.         set_xy(18,5);
  167.         write_one(0xa4,INC_WR);
  168.         write_one(0xa5,INC_WR);
  169.         /*作*/        
  170.         set_xy(18,6);
  171.         write_one(0xa6,INC_WR);
  172.         write_one(0xa7,INC_WR);        
  173.         set_xy(18,7);
  174.         write_one(0xa8,INC_WR);
  175.         write_one(0xa9,INC_WR);
  176. }




  177. void printc(uchar i, uchar j, uchar c){
  178.         set_xy(i*2,j*2);
  179.         switch(c){        
  180.                 case 0:
  181.                            write_one(0x94,INC_WR);
  182.                            write_one(0x94,INC_WR);
  183.                            set_xy(i*2,j*2+1);
  184.                            write_one(0x94,INC_WR);
  185.                            write_one(0x94,INC_WR);
  186.                            break;                                          
  187.                 case 1:                /*人物1*/
  188.                            write_one(0x80,INC_WR);
  189.                            write_one(0x81,INC_WR);
  190.                            set_xy(i*2,j*2+1);
  191.                            write_one(0x82,INC_WR);
  192.                            write_one(0x83,INC_WR);
  193.                            break;
  194.                 case 2:                /*磚頭2*/
  195.                            write_one(0x84,INC_WR);
  196.                            write_one(0x85,INC_WR);
  197.                            set_xy(i*2,j*2+1);
  198.                            write_one(0x86,INC_WR);
  199.                            write_one(0x87,INC_WR);
  200.                            break;
  201.                 case 3:                /*箱子3*/
  202.                            write_one(0x88,INC_WR);
  203.                            write_one(0x89,INC_WR);
  204.                            set_xy(i*2,j*2+1);
  205.                            write_one(0x8a,INC_WR);
  206.                            write_one(0x8b,INC_WR);
  207.                            break;
  208.                 case 4:                /*目的4*/
  209.                            write_one(0x8c,INC_WR);
  210.                            write_one(0x8d,INC_WR);
  211.                            set_xy(i*2,j*2+1);
  212.                            write_one(0x8e,INC_WR);
  213.                            write_one(0x8f,INC_WR);
  214.                            break;
  215.                 case 5:                /*成功5*/
  216.                            write_one(0x90,INC_WR);
  217.                            write_one(0x91,INC_WR);
  218.                            set_xy(i*2,j*2+1);
  219.                            write_one(0x92,INC_WR);
  220.                            write_one(0x93,INC_WR);
  221.                            break;
  222.         }
  223.         
  224. }



  225. void pushbox(){
  226.         uchar i,j;
  227.         /*根據level.h中的值進行輸出單個字符點陣為16*16,顯示8*8個字符*/
  228.         for(i = 0; i < 8; i++)
  229.                 for(j = 0; j < 8; j++){
  230.                         level_temp[i][j]=level[g][j][i];
  231.                         switch(level_temp[i][j]){        
  232.                                 case 0:
  233.                                            printc(i,j,0);
  234.                                            break;                                          
  235.                                 case 1:                /*人物1*/
  236.                                            curx=i;
  237.                                            cury=j;
  238.                                            printc(i,j,1);
  239.                                            break;
  240.                                 case 2:                /*磚頭2*/
  241.                                            printc(i,j,2);
  242.                                            break;
  243.                                 case 3:                /*箱子3*/
  244.                                            printc(i,j,3);
  245.                                            break;
  246.                                 case 4:                /*目的4*/
  247.                                            printc(i,j,4);
  248.                                            break;
  249.                                 case 5:                /*成功5*/
  250.                                            printc(i,j,5);
  251.                                            break;

  252. ……………………

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

所有資料51hei提供下載:
推箱子Cargador.rar (50.1 KB, 下載次數: 61)


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

使用道具 舉報

沙發
ID:998740 發表于 2021-12-30 22:05 | 只看該作者
set_xy是不是沒定義
回復

使用道具 舉報

板凳
ID:876099 發表于 2022-3-20 14:40 | 只看該作者
這個取字模用的什么什么字體大小方便說一下嗎
回復

使用道具 舉報

地板
ID:876099 發表于 2022-3-31 20:00 | 只看該作者
做不出實物
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久岛一牛影视 | 亚洲精品在线视频 | 欧美一区二区三区视频 | 日韩欧美综合 | 99热在线播放 | 国产美女h视频 | 亚洲另类视频 | 日本久久视频 | 黄色av观看 | 中文字幕av第一页 | 欧美亚洲国产日韩 | 久久久久一区二区三区 | 九色porny自拍视频 | 日韩免费在线视频 | 黑人精品欧美一区二区蜜桃 | 福利成人 | 欧美国产中文 | 久久久久免费精品国产 | 在线第一页 | 青青草在线播放 | 一级黄色毛片免费 | 一区二区免费视频 | 日韩一区二区三区在线观看 | 国产精品123区 | 欧美群妇大交群中文字幕 | 中文字幕一区二区三区在线乱码 | 国产成人99久久亚洲综合精品 | 超碰综合 | 国产精品毛片一区二区三区 | 成人妇女免费播放久久久 | 99精品国产一区二区三区 | 二区欧美| 欧美综合一区 | av在线播放免费 | 成人免费在线视频 | 国产成人综合亚洲欧美94在线 | 韩国av一区二区 | 欧美天堂| 成人在线精品 | 成人午夜视频在线观看 | 日韩性生活网 |