【51单片机】俄罗斯方块游戏-LED点阵

2023-12-13 06:54:11


一、功能简介

本项目使用51单片机控制器,使88LED点阵,按键等。
主要功能:
系统运行后,8
8LED点阵显示游戏界面,K1和K2键控制左右移动,K3和K4键控制变形。


二、软件设计

/*
作者:嗨小易(QQ:3443792007)

*/


#include <REGX52.H>
#include "Tetris.h"
#include "Timer0.h"
#include "Key.h"

unsigned char KeyNum = 0;

void main()
{
	Tetris_Init();
	Timer0_Init();
	while(1)
	{
		KeyNum = Key();
		if(KeyNum)
		{
			//isPause = 1;
			switch(KeyNum)
			{
			case 1:
				Tetris_ToLeft();
				break;
			case 2:
				Tetris_ToRight();
				break;
			case 3:
				Tetris_RtLeft();
				break;
			case 4:
				Tetris_RtRight();
				break;
			default:
				break;
			}
		}
		Tetris_Display();
	}
}

void Timer0_Routine(void) interrupt 1
{
	static unsigned int T_Key_Count,T_Fall_Count;

	TL0 = 0x66;				//设置定时初始值
	TH0 = 0xFC;				//设置定时初始值
	++T_Key_Count;
	++T_Fall_Count;

	if(T_Key_Count >= 20)
	{
		T_Key_Count = 0;
		Key_Loop();		
	}
	
	if(T_Fall_Count >= 700)
	{
		T_Fall_Count = 0;
		if( !Tetris_Fall() )
		{
			Tetris_Stack();
			if(Tetris_GameOver())
			{
				TR0 = 0;
				Delay(1000);
				Tetris_Init();
				TR0 = 1;
			}
			else
			{
				Tetris_Full();
				Tetris_Create();
			}
		}
	}
}


三、实验现象

B站演示视频:https://space.bilibili.com/444388619
在这里插入图片描述


联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

文章来源:https://blog.csdn.net/Hello_Muyi/article/details/134941568
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。