• 大小: 134KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: snake  

资源简介

本压缩包包含贪吃蛇游戏的整个工程,游戏代码可以自定义蛇的地图,同步记录分数,采用epprom记录最高分数,游戏结束后显示。本工程基于芯片STC89C52

资源截图

代码片段和文件信息

#include “eeprom.h“
 
/**********打开ISP/IAP功能**************/   
void ISP_IAP_Enable(void)
{
    EA = 0;  //关中断  
    ISP_CONTR = ISP_CONTR & 0x18;  
    ISP_CONTR = ISP_CONTR | WaitTime; // 设置等待时间
    ISP_CONTR = ISP_CONTR | 0x80;   //允许ISP/IAP操作
}
 
/**********关闭ISP/IAP功能**************/   
void ISP_IAP_Disable(void)
{
 ISP_CONTR = ISP_CONTR & 0x7f; //禁止ISP/IAP操作
     ISP_CMD = 0x00;    //去除ISP/IAP命令
 ISP_TRIG = 0x00;   //防止ISP/IAP命令无触发
 EA   =   1;        // 开中断 
}
 
/**********触发ISP/IAP**************/  
void ISPTrig(void)
{
 ISP_TRIG = 0x46;  //先送46h,再送B9h到ISP/IAP触发寄存器,每次都需如此
 ISP_TRIG = 0xb9;  //送完B9h后,ISP/IAP命令立即被触发启动
 _nop_();
}
 
/**********字节读**************/
unsigned char byte_read(unsigned int byte_addr)
{
     unsigned char  dat = 0;    //读EEPROM数据缓存
 
 EA = 0;     //关中断
 ISP_ADDRH = (unsigned char)(byte_addr >> 8);     //送地址高字节
 ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff); //送地址低字节
     ISP_IAP_Enable();             //打开ISP/IAP功能
 ISP_CMD   = ISP_CMD & 0xf8;   //清除ISP_CMD寄存器低3位
 ISP_CMD   = ISP_CMD | RdCommand; //写入读数据命令 
 ISPTrig();                //触发ISP/IAP
 dat = ISP_DATA;           //将ISP_DATA寄存器中的数据保存起来
     ISP_IAP_Disable();        //关闭ISP/IAP功能 
 EA  = 1;           //使能中断
 return dat;        //返回读到的数据
}
 
/**********字节写**************/
void byte_write(unsigned int byte_addrunsigned char Orig_data)
{
 EA  = 0;  //关中断
 ISP_ADDRH = (unsigned char)(byte_addr >> 8);       //送地址高字节
 ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);   //送地址低字节
 ISP_IAP_Enable();                   //打开ISP/IAP功能
     ISP_CMD  = ISP_CMD & 0xf8;         //清除ISP_CMD寄存器低3位
 ISP_CMD  = ISP_CMD | PrgCommand;   //写入写数据命令 
 ISP_DATA = Orig_data;      //写入数据到ISP_DATA寄存器
 ISPTrig();                //触发ISP/IAP
 ISP_IAP_Disable();        //关闭ISP/IAP功能 
 EA =1;            //使能中断
}
/**********扇区擦除**************/
void SectorErase(unsigned int sector_addr)
{
 EA = 0;   
 ISP_ADDRH = (unsigned char)(sector_addr >> 8);        //送擦除地址高字节
 ISP_ADDRL = (unsigned char)(sector_addr & 0x00ff);    //送擦除地址低字节
 ISP_IAP_Enable(); 
     ISP_CMD = ISP_CMD & 0xf8;           //清除ISP_CMD寄存器低3位
 ISP_CMD = ISP_CMD | EraseCommand;   //写入擦除数据命令
 ISPTrig();       //触发ISP/IAP
 ISP_IAP_Disable();    //关闭ISP/IAP功能 
 
}

////////////////分数替换函数//////////////////
void max_score(unsigned int scoresss)
{
unsigned int scoresss_pre = 0;
unsigned char scoresss_pre_hscoresss_pre_l;
scoresss_pre = scoresss_pre + byte_read(0x2201);//高位
scoresss_pre = scoresss_pre << 8;
scoresss_pre = scoresss_pre + byte_read(0x2202);//低位

if(scoresss > scoresss_pre)
{
SectorErase(0x2200);    //擦除扇区
scoresss_pre_h = (unsigned char)(scoresss >> 8);       //送数据高字节
  scoresss_pre_l = (unsigned char)(scoresss & 0x00ff);   //送数据低字节

byte_write(0x2201scoresss_pre_h);
byte_write(0x2202scoresss_pre_l);
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        3185  2019-01-24 17:48  EEPROM.c
     文件        1098  2019-01-24 17:03  EEPROM.h
     文件        5409  2019-01-24 18:19  EEPROM.LST
     文件        6566  2019-01-24 18:19  EEPROM.OBJ
     文件         823  2018-12-28 20:32  get_kuai.LST
     文件         603  2018-12-28 20:32  get_kuai.OBJ
     文件        3789  2019-01-08 10:50  interrupt.c
     文件         367  2019-01-06 12:56  interrupt.h
     文件        7281  2019-01-24 18:18  interrupt.LST
     文件        8489  2019-01-24 18:18  interrupt.OBJ
     文件        3215  2019-01-08 10:52  key.c
     文件          75  2019-01-03 19:39  key.h
     文件        6907  2019-01-24 18:18  key.LST
     文件        6782  2019-01-24 18:18  key.OBJ
     文件       10802  2019-01-08 14:22  lcd_data.c
     文件         274  2019-01-08 14:20  lcd_data.h
     文件       14890  2019-01-24 18:19  lcd_data.LST
     文件        2107  2019-01-24 18:19  lcd_data.OBJ
     文件        1149  2019-01-24 18:13  main.c
     文件          82  2019-01-06 15:20  main.h
     文件        3139  2019-01-24 18:18  main.LST
     文件        7281  2019-01-24 18:18  main.OBJ
     文件        2688  2019-01-08 14:07  maze.c
     文件         117  2019-01-08 14:07  maze.h
     文件        5351  2019-01-08 14:19  maze.LST
     文件        8427  2019-01-08 14:19  maze.OBJ
     文件        9063  2019-01-24 17:54  show.c
     文件         974  2019-01-06 15:47  show.h
     文件       15214  2019-01-24 18:19  show.LST
     文件       12914  2019-01-24 18:19  show.OBJ
     文件       19767  2019-01-24 17:49  snake.c
............此处省略18个文件信息

评论

共有 条评论