資源簡介
本壓縮包包含貪吃蛇游戲的整個工程,游戲代碼可以自定義蛇的地圖,同步記錄分數,采用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個文件信息
- 上一篇:銷售模塊的可用性檢查
- 下一篇:仿QQ好友列表控件非控件拼湊
評論
共有 條評論