资源简介

用51单片机做成的游戏-贪食蛇,可以用proteus运行操作。有源程序。

资源截图

代码片段和文件信息

#include 
#include “Model.H“
#include “T6963C.H“
#include “AT89X51.H“

//引脚定义
sbit _CD=P1^5;
sbit _RD=P1^6;
sbit _WR=P1^7;
#define Pin P2

//读状态函数
unsigned char Read_State()
{
Pin=0xff;//读状态之前先将数据线拉高
_CD=1;
_RD=0;
_RD=1;
return Pin;
}
//bit0指令写状态位bit1数据读/写状态位为1时候空闲
void Enable()
{    
while(1)  
if((Read_State()&3)==3)break;
}
//bit3数据自动写状态位为1时候空闲
void Aut_Write()
{
while(1)
if((Read_State()&8)==8)break;
}
//写单参数函数Data1为传入的参数,Com为传入的指令
//注意:写入顺序为先数据后写指令,不可颠倒
void Write_Data1(unsigned char Data1unsigned char Com)
{
Enable();
_CD=0;
Pin=Data1;
_WR=0;
_WR=1;
Enable();
_CD=1;
Pin=Com;
_WR=0;
_WR=1;
}
//写双参数函数Data1/Data2为传入的参数,Com为传入的指令
//注意:写入顺序为先数据Data1后写数据Data2最后写指令,不可颠倒
void Write_Data2(unsigned char Data1unsigned char Data2unsigned char Com)
{
Enable();
_CD=0;
Pin=Data1;
_WR=0;
_WR=1;
Enable();
_CD=0;
Pin=Data2;
_WR=0;
_WR=1;
Enable();
_CD=1;
Pin=Com;
_WR=0;
_WR=1;
}
//写指令函数
void Write_Com(unsigned char Com)
{
Enable();
_CD=1;
Pin=Com;
_WR=0;
_WR=1;
}
//写8字节数据函数Addr表示数据首地址,Way表示写的方式
void Write_8_Data(unsigned char Addrunsigned char Way)
{
Aut_Write();//判断是否能自动写
Write_Com(AUT_WR);//自动写开始
Write_Data1(AddrWay);
Write_Com(AUT_WO);//自动写结束
}
//设置数据显示在屏幕上的坐标(以字节为单位)
//x表示显示的行(0~15),y表示显示的列(0~19)
void Set_xy(unsigned char xunsigned char y)
{
unsigned int a;
a=x*20+y;
Write_Data2(a&0xffa>>8ADR_POS);
}
//设置数据存储起始地址
void Set_Addr(unsigned char Addr1unsigned char Addr2)
{
Write_Data2(Addr1Addr2ADR_POS);
}
/*CGRAM偏置地址设置函数*/
void Set_CGRAM()
{
Write_Data2(10CGR_POS);
}
//液晶初始化函数
//(文本区首地址D1文本区首地址D2 文本区宽度  
//图形区首地址D1 图形区首地址D2 图形区宽度   
//光标形状  显示方式  显示开关)
void LCD_Init( unsigned char Txt1 unsigned char Txt2 unsigned char Txt_Wide
               unsigned char Map1 unsigned char Map2 unsigned char Map_Wide
               unsigned char Guang_Biao unsigned char Disp_Modeunsigned char Kai_Guan)
{
Write_Data2(Txt1Txt2TXT_STP);
Write_Data2(Txt_Wide0TXT_WID);
Write_Data2(Map1Map2GRH_STP);
Write_Data2(Map_Wide0GRH_WID);
Write_Com(CUR_SHP|Guang_Biao);
Write_Com(Disp_Mode);
Write_Com(DIS_SW|Kai_Guan);
}
//显示一个汉字子程序
//x表示显示的行(0~15),y表示显示的列(0~19)n表示字在表格中的位置
void Han_Zi(unsigned char xunsigned char yunsigned char Addr)
{
Set_xy(xy);
Write_8_Data(AddrINC_WR);
Write_8_Data(Addr+2INC_WR);
Set_xy(x+1y);
Write_8_Data(Addr+1INC_WR);
Write_8_Data(Addr+3INC_WR);
}
//清屏程序
void Clear_LCD()
{
unsigned int a;
Set_xy(00);
for(a=0;a<320;a++)
Write_8_Data(0x83INC_WR);
}
/*自定义字符写入CGROM函数*/
void Write_CGORM()
{
unsigned int a;
Set_CGRAM();
Set_Addr(00x0c);
for(a=0;a<992;a++) Write_8_Data(Tab[a]INC_WR);
}
//设置点显示在屏幕上的坐标(以位为单位)
//x表示显示的行(0~127),y表示显示的列(0~159)n=1表示打个点n=0清除一个点
void Point(unsigned char xunsigned char ybit n)
{
unsigned char point;
unsigned int temp;
temp=x*20+y/8+320;
point=0xf7-y%8;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        451  2009-06-11 00:37  推箱子\Keil\Include\KeyMessage.h

     文件        230  2009-05-31 11:53  推箱子\Keil\Include\Model.h

     文件       2464  2009-06-11 00:37  推箱子\Keil\Include\PG160128A.h

     文件       2306  2009-05-31 11:49  推箱子\Keil\Include\T6963C.h

     文件        284  2009-05-31 11:53  推箱子\Keil\Include\VirtualTerminal.h

     文件       3883  2009-07-02 19:13  推箱子\Keil\Keil.Opt

     文件       2611  2009-06-22 17:32  推箱子\Keil\Keil.Uv2

     文件       3883  2009-06-30 21:43  推箱子\Keil\Keil_Opt.Bak

     文件       2612  2009-05-31 11:57  推箱子\Keil\Keil_Uv2.Bak

     文件      13720  2009-06-29 16:47  推箱子\Keil\LST\160128驱动.lst

     文件      11760  2009-06-29 16:47  推箱子\Keil\LST\STARTUP.lst

     文件       9245  2009-06-29 16:47  推箱子\Keil\LST\主函数.lst

     文件      15573  2009-06-29 16:47  推箱子\Keil\LST\字模.lst

     文件      17695  2009-06-29 16:47  推箱子\Keil\LST\按键函数.lst

     文件      45829  2009-06-29 16:47  推箱子\Keil\LST\推箱子.m51

     文件       2643  2009-06-29 16:47  推箱子\Keil\LST\虚拟终端.lst

     文件       6800  2009-06-29 17:47  推箱子\Keil\Source\160128驱动.c

     文件       5115  2002-04-16 15:32  推箱子\Keil\Source\STARTUP.A51

     文件       4278  2009-07-02 19:13  推箱子\Keil\Source\主函数.c

     文件       9601  2009-05-31 11:57  推箱子\Keil\Source\字模.c

     文件      10479  2009-06-30 08:53  推箱子\Keil\Source\按键函数.c

     文件        967  2009-05-31 11:45  推箱子\Keil\Source\虚拟终端.c

     文件      16816  2009-06-29 16:47  推箱子\Keil\Target\160128驱动.obj

     文件        826  2009-06-29 16:47  推箱子\Keil\Target\STARTUP.obj

     文件      15827  2009-06-29 16:47  推箱子\Keil\Target\主函数.obj

     文件       2894  2009-06-29 16:47  推箱子\Keil\Target\字模.obj

     文件      21195  2009-06-29 16:47  推箱子\Keil\Target\按键函数.obj

     文件      52826  2009-06-29 16:47  推箱子\Keil\Target\推箱子

     文件      17299  2009-06-29 16:47  推箱子\Keil\Target\推箱子.hex

     文件        187  2009-07-02 19:11  推箱子\Keil\Target\推箱子.plg

............此处省略13个文件信息

评论

共有 条评论