锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

51单片机红外遥控点阵贪食蛇程序

时间:2024-05-20 11:37:10


完整的源码和制作资料下载:http://www.ruidan.com/bbs/dpj-20623-1.html

/****************工程包含的头文件*************************/
#include
#include
#include"define.h"
#include"delay.h"
#include"zm.h"
#include"32x12matrix.h"
#include"menu.h"
#include"MySnake.h"
#include"ds1302.h"
#include"ds18b20.h"
#include"i2c.h"
#include"radio.h"
#include"ir.h"

/*---------------------------------------------------------
函数功能:Timer0初始化
调用形式:Timer0_Init();
参数:无
备注:用于产生具有随机性质的贪食蛇游戏食物的坐标位置
---------------------------------------------------------*/
void Timer0_Init()
{
TMOD|=0x02;//重装初值计数模式,TL0:0->255
IE|=0X82;
TH0=0;
TL0=0;
TR0=1;//开启内部Timer0
}

/*---------------------------------------------------------
函数功能:ExtInt1初始化
调用形式:ExtInt1_Init();
参数:无
返回值:无
备注:下降沿
---------------------------------------------------------*/
void ExtInt1_Init(void)
{
IT1=1;
EA=1;
EX1=1;
}


/*---------------------------------------------------------
函数功能:主函数
调用形式:无
参数:无
返回值:无
修改时间:13.4.17
备注:无
---------------------------------------------------------*/
void main()
{
uint8 i;
Radio_Init();//待机
Timer0_Init();
Matrix_Boot();
Timer1_Init();
ExtInt0_Init();
ExtInt1_Init();
Menu_Init();//菜单初始化
DS1302_Init();
DS18b20_Init();
snake_status=0;
while(1)
{
if(matrix.S==F)//工作在首屏显示
{
ClearBuf();
if(matrix.N==SNAKE)//菜单编号等于snake游戏,显示snake游戏logo
Display_32x16(1);

else
if(matrix.N==JINIANRI)
Display_32x16(2);

else
if(matrix.N==ME)
Display_32x16(3);//时钟LOGO

else if(matrix.N==SET)
{
Display_32x16(4);
}
else if(matrix.N==MPERATURE)
{
Display_32x16(5);
for(i=0;i<60;i++)
Display();

Display_32x16(6);
for(i=0;i<64;i++)
temp1[i]=temp[i];
Display_32x16(5);
UpDown_Move(UP,SET__EED);
for(i=0;i<60;i++)
Display();
Display_32x16(5);
for(i=0;i<64;i++)
temp1[i]=temp[i];
Display_32x16(6);
UpDown_Move(N,SET_NEXT_SPEED);
for(i=0;i<60;i++)
Display();
}
else if(matrix.N==RADIO)
Display_32x16(7);
Display();
}

else//进入了程序执行状态
{
if(matrix.N==SNAKE)//执行贪食蛇游戏
{
//if(snake_status==0)//游戏状态为0,表示一次执行或者游戏结束 需初始化
//Snake_Init();//游戏初始化
//else
Snake_Ing();//游戏进行时
}
else if(matrix.N==JINIANRI)
Display_LeftMove(img_16x16III,25);
else if(matrix.N==TIME)
Time_Ing();
else if(matrix.N==SET)
TimeSet_Ing();
else if(matrix.N==TEMPERATURE)
Temperature_Ing();
else if(matrix.N==RADIO)
Radio_Ing();
}

}
}

/*---------------------------------------------------------
函数功能:Timer0中断服务
调用形式:
参数:
返回值:
修改时间:13.4.16
备注:
---------------------------------------------------------*/
void Timer0_IRQ() interrupt 1
{
seed++;
}

/*---------------------------------------------------------
函数功能:外中断1服务函数
调用形式:无
参数:无
返回值:
修改时间:13.4.17
备注:根据点阵的工作状态进行扫描,便于按键复用
---------------------------------------------------------*/
void ExtInt1_IRQ() interrupt 2
{
if(matrix.S==FIRST)
Menu_Key();//点阵状态工作在首屏,执行首屏按键扫描
else //执行程序时的按键扫描
{
if(matrix.N==SNAKE)
Snake_Key();//贪吃蛇游戏的按键扫描

else if(matrix.N==JINIANRI)
LeftMove_Key();
else if(matrix.N==TIME)
Time_Key();
else if(matrix.N==SET)
Time_Set_Key();
else if(matrix.N==TEMPERATURE)
Temperature_Key();
else if(matrix.N==RADIO)
Radio_Key();
}
}


-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章