资源简介
里面包含源程序与hex文件,如果需要更改引脚则要编译hex文件。LCD12864需要有带PSB引脚,注意区分两种类型的LCD12864。可用51最小系统,LCD12864和四个独立按键即可实现。程序经过本人实践过,切实可用。简单,易操作,好玩。
代码片段和文件信息
#include “reg51.h“
#include “12864.h“
#define uchar unsigned char
#define uint unsigned int
static unsigned long Seed = 1;
#define A 48271L
#define M 2147483647L
#define Q (M / A)
#define R (M % A)
sbit K1=P3^4;
sbit K2=P3^5;
sbit K3=P3^6;
sbit K4=P3^7;
unsigned int idata num[19+2]={
0xfff//第1行,最下面
0x8010x8010x8010x8010x8010x8010x8010x8010x8010x801
0x8010x8010x8010x8010x8010x8010x8010x8010x801//第2行到第20行共19行
0xfff//第21行,最上面
};//定义共21行,其中num[0]为下墙壁行,num[20]为上墙壁行每行12格,最左一格为左
unsigned char code Block[28][2]={
/*
* 口 口口口 口口
* 口 口 口 口
* 口口 口 口口口
*/
{0x880xc0}{0xe80x00}{0x620x20}{0x020xe0}
/*
* 口 口口 口口口
* 口 口 口 口
* 口口 口口口 口
*/
{0x220x60}{0x080xe0}{0xc80x80}{0xe20x00}
/*
* 口
* 口口 口口
* 口 口口
*/
{0x8c0x40}{0x6c0x00}{0x8c0x40}{0x6c0x00} /*
* 口 口口
* 口口 口口
* 口
*/
{0x4c0x80}{0xc60x00}{0x4c0x80}{0xc60x00}
/*
* 口 口
* 口 口口 口口口 口口
* 口口口 口 口 口
*/
{0x040xe0}{0x8c0x80}{0xe40x00}{0x260x20}
/*口
* 口
* 口 口口口口
* 口
*/
{0x440x44}{0x0f0x00}{0x440x44}{0x0f0x00}
/*
* 口口
* 口口
*/
{0x060x60}{0x060x60}{0x060x60}{0x060x60}
};
#define PASSSCORE 20
struct Jimu
{
unsigned int dat;
char x;
unsigned char y;
unsigned char type;
unsigned char change;
}Sign[3];//积木结构体
unsigned char SysFlag=0;
#define NEWSIGNFLAG 0
#define DEADFLAG 1
#define PAUSEFLAG 2
unsigned char Score=0;
unsigned char Level=1;
unsigned char DelayCnt=5;
/*********************************************************/
#define N 25
/************************************
伪随机数发生器
*************************************/
double Random(void)
{
long TmpSeed;
TmpSeed=A*(Seed%Q)-R*(Seed/Q);
if(TmpSeed>=0)
Seed=TmpSeed;
else
Seed=TmpSeed+M;
return (double)Seed/M;
}
/**************************************
为伪随机数发生器播种
***************************************/
void InitRandom(unsigned long InitVal)
{
Seed=InitVal;
}
//延时子程序
void Delay(unsigned int t)
{
unsigned int ij;
for(i=0;i
for(j=0;j<10;j++);
}
/*********************************
初始化MPU
**********************************/
void InitCpu(void)
{
TMOD=0x0;
TH0=0;
TL0=0;
TR0=1;
ET0=1;
EX1=1;
EA=1;
TCON|=0x04;
}
/*************俄罗斯方块部分
/******************************
画墙壁,初始化界面
*******************************/
void DrawBoard(void)
{
unsigned char n;
for(n=0;n<12;n++)
{
Lcd_Rectangle(3*n03*n+221);
Lcd_Rectangle(3*n603*n+2621);
}
for(n=0;n<20;n++)
{
Lcd_Rectangle(0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-04-09 15:15 code\
文件 6910 2016-04-09 14:59 code\12864.h
文件 30719 2016-04-09 14:59 code\test
文件 26347 2016-04-09 14:59 code\test.LST
文件 38443 2016-04-09 14:59 code\test.M51
文件 36445 2016-04-09 14:59 code\test.OBJ
文件 10882 2016-04-09 14:59 code\test.c
文件 13439 2016-04-09 14:59 code\test.hex
文件 25 2016-04-09 14:59 code\test.lnp
文件 159 2016-04-09 15:15 code\test.plg
文件 56984 2016-04-09 15:15 code\test.uvopt
文件 13224 2016-04-07 23:24 code\test.uvproj
文件 56992 2016-04-09 14:59 code\test_uvopt.bak
文件 13220 2016-04-07 21:12 code\test_uvproj.bak
相关资源
- 基于51单片机电子秤的代码
- 51单片机通过蜂鸣器实现电子琴7个音
- 51单片机智能窗帘
- 51单片机火灾报警器
- 基于51单片机超声波测距内含源程序,
- 51单片机的200个protel原理图
- 51单片机开发入门与典型(第2版)
- C程序设计语言(第2版 新版) 带书签
- 基于51单片机的步进电机正反转调速系
- 基于arm的开发
- STM32F103C8T6开发参考例程代码
- 基于51单片机的GSM短信防盗报警系统
- 迷人的8051单片机[文字版]
- AltiumDesigner绘制51单片机最小系统教程
- Linux设备驱动开发详解:基于最新的
- cmake-3.16.2-win32-x86.msi
- 用单片机实现的水温控制论文
- 基于51单片机的风光互补发电系统
- 基于51单片机的温度火灾烟雾报警器
- 基于51单片机的智能安防报警系统
- 深入理解计算机系统上交大课程材料
- 普中科技51单片机基础实践例程合集
- IMXRT1064RM.pdf
- 完美51单片机交通灯附仿真,程序,原
- 《学习OpenCV(中文版)》-于仕琪
- 图解数据结构 使用C
- 单片机实验含有+电子琴演奏实+直流电
- C指针基本概念核心技术及最佳实践
- STM32F407中文手册(完全版) 高清完整
- ANSI+C+标准详解
评论
共有 条评论