基于STC89C52单片机贪吃蛇做法

2020-02-21 15:19

#ifndef _glb_h_ #define _glb_h_

#define uchar unsigned char #define uint unsigned int

#define LOW 0 #define HIGH 1

//初始化指令

#define CLEAR_SCREEN 0x01 //清屏指令:清屏且AC值为00H #define AC_INIT 0x02 //将AC设置为00H。且游标移到原点位置

#define CURSE_ADD 0x06 //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)

#define FUN_MODE 0x30 //工作模式:8位基本指令集

#define DISPLAY_ON 0x0c //显示开,显示游标,且游标位置反白 #define DISPLAY_OFF 0x08 //显示关

#define CURSE_DIR 0x14 //游标向右移动:AC=AC+1

#define SET_CG_AC 0x40 //设置AC,范围为:00H~3FH #define SET_DD_AC 0x80

#define FUN_MODEK 0x36 //扩展指令集,8位指令 #define X1address 0x80 //上半屏X轴起始地址 #define X2address 0x88 //下半屏X轴起始地址 #define Yaddress 0x80 //Y轴起始地址

/*--------------------------------------------------------------------------------------------------- 液晶屏

----------------------------------------------------------------------------------------------------*/

#define DataPort P0 sbit RS = P3^5; sbit RW = P3^6; sbit E = P3^4; sbit PSB = P3^7; sbit WELA = P2^7; sbit DULA = P2^6; sbit speed=P2^0; sbit beep=P2^3;

/*

#define DataPort P1 sbit RS = P2^0; sbit RW = P2^1; sbit E = P2^3; sbit PSB = P2^4; //sbit WELA = P2^7; //sbit DULA = P2^6; */

/*--------------------------------------------------------------------------------------------------- 贪吃蛇

----------------------------------------------------------------------------------------------------*/ //定义复位不自动清零全局变量

//#pragma DATA_SEG NOINIT_RAM

sbit LEFT=P2^4;//左 sbit RIGHT=P2^1;//右 sbit UP=P2^5;//上 sbit DOWN=P2^2;//下 //sbit Led1=P1^7; //sbit Led2=P1^6;

/*sbit LEFT=P0^2;//左 sbit RIGHT=P0^3;//右 sbit UP=P0^0;//上

sbit DOWN=P0^1;//下*/

sbit Led7=P1^0; sbit Led6=P1^1; sbit Led5=P1^3; sbit Led4=P1^4; //sbit Led3=P3^3; //sbit Led2=P3^2; //sbit Led1=P3^1; //sbit Led0=P3^0;

#endif

#ifndef _Init_h_ #define _Init_h_

/*------------------------------------------------------------------------------------------------------------ Init_12864

-------------------------------------------------------------------------------------------------------------*/

void Delayus(unsigned char i); void Delayms(unsigned int i); void Check_Busy();

void Write_Cmd(unsigned char Cmd); void Write_Data(unsigned char Data); //uchar Read_Status(); uchar Read_Data(); void Init_IO(); void Init_12864(); //void disp(); void CGRAM();

void LCD_PutString(unsigned char x,unsigned char y,unsigned char code *s); void ClrScreen();

void Clr_GDRAM(void);

void LCD_PutGraphic(unsigned char code *img); void SetGraphicMode(); void Keyscan(); void statuschange();

void Draw_Point(uchar X,uchar Y,uchar clour); void Draw_zhi(uchar X1,uchar X2,uchar Y); void Draw_shu(uchar X,uchar Y1,uchar Y2);

void Draw_line(uchar x0,uchar y0,uchar x1,uchar y1); void Draw_all_lines(); void Stat_Point(); void Last_Point(); void Add_Point(); void Bump_Wall(); void Self_Bump();

/*------------------------------------------------------------------------------------------------------------ Init_Time

-------------------------------------------------------------------------------------------------------------*/ //void Init_Time();

//void exter0() interrupt 1

#endif

#include #include \

uint timestatus=0;

void Init_Time() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1; ET0=1; TR0=1; }

void Timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%6; timestatus++; if(speed==0) { if(timestatus>2) timestatus=0; } if(timestatus>10) timestatus=0; }

#ifndef _Interrupt_h_ #define _Interrupt_h_

void Init_Time();

#endif


基于STC89C52单片机贪吃蛇做法.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:萧的入门

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: