void main(void)
{
LCD_ssd1283a_Init();
Init_SNAKE();
Interrupt0_Key();
while(1)
{
Run_SNAKE();
}
}
Snake.c
#include <reg51.H>
#include <KEY_SWEEP.H>
#include "LCD_SSD1283.H"
#include "SNAKE.h"
//=================================================================
// 使用结构体定义变量 使程序的名称更加的清楚
//=================================================================
struct
{
uchar X;
uchar Y;
uchar Yes;
}Food; //食物结构体
#define SNAKE_Max_Long 20 //最大长度
struct
{本文来自辣.文,论-文-网
uchar X[SNAKE_Max_Long];
uchar Y[SNAKE_Max_Long];
uchar Long;
uchar Life;
uchar Score; //蛇的分数
uchar Level; //蛇的等级
}Snake; //蛇结构体
uchar Key_V_temp=0; //取出上次按键值
//函数功能:1ms延时函数
//晶 振:11.0592 M
void Delay_1mS(unsigned int n)
{
unsigned int i;
unsigned char j;
for(i=0;i<n;i++)
for(j=0;j<120;j++)
;
}
//函数名称:void Init_time0 (void)
//函数功能:初始化定时器1 用于产生随机数种子 ,用于放置实物
void Init_time0 (void)
{
EA=1;
ET1=1;
TMOD|=0X10;
TH1=0X00;
TL1=0X00;
TR1=1;
}
void time1 (void) interrupt 3
{
TH1=0X00;
TL1=0X00;
}
//函数名称:Trun_On_Point Trun_Off_Point (uchar x,uchar y)
//函数功能:点亮或者熄灭 一个点。用于显示蛇身体
//入口参数:无
//出口参数:无
//特别说明:此 Trun_On,函数换成其他的就可以兼容其他的液晶
// 入8*8 点阵 12864 等
void Trun_On_Point (uchar x,uchar y,uchar color)
{毕业论文http://www.751com.cn
Bar((4*(x+2)),(4*(y+2)),(4*(x+3)),(4*(y+3)),color);
}
void Trun_Off_Point (uchar x,uchar y)
{
Bar((4*(x+2)),(4*(y+2)),(4*(x+3)),(4*(y+3)),0xBE5F);
}
//函数名称:void Init_SNAKE(void)
//函数功能:绘制游戏界面,初始化游戏等级等参数
void Init_SNAKE(void)
{本文来自辣.文,论-文-网
uchar i;
Init_time0();
//***********绘制游戏界面********************//
CLR_Led_ssd1283a(0xBE5F);
Rectangle(8-1,8-1,84,120,0xaa);//绘制一个矩形框, 0-127
LCD_Display(88,8,"Score",0xcc88,0xBE5F);
LCDShow_uCharNumber(96,24,Snake.Score,0xcc88,0xBE5F);
LCD_Display(88,81,"LEVEL",0xcc88,0xBE5F);
LCDShow_uCharNumber(96,97,Snake.Level,0xcc88,0xBE5F);