51单片机实验6-LED点阵的应用

实训目的:

1、编写程序通过控制51单片机引脚,在8*8LED点阵上显示循环依次显示0-9几个数字

实训步骤:

(一)LED点阵的应用

电路连接如下:

 主要器件:AT89C51、RES、RESPACK-8,MATRIX-8X8-GREEN

程序代码如下:

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define unit unsigned int
{	
	0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,
	0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x38,
	0x00,0x38,0x44,0x04,0x08,0x10,0x20,0x7c,
	0x00,0x38,0x44,0x04,0x38,0x04,0x44,0x38,
	0x00,0x08,0x18,0x28,0x48,0x7c,0x08,0x08,
	0x00,0x7c,0x40,0x40,0x38,0x04,0x44,0x38,
	0x00,0x38,0x44,0x40,0x78,0x44,0x44,0x38,
	0x00,0x7c,0x04,0x04,0x08,0x10,0x10,0x10,
	0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38,
	0x00,0x38,0x44,0x44,0x3c,0x04,0x44,0x38,
};
uchar i=0,t=0,h=0,num_index=0,k;
void main()
{	
	P3=0x80;
	num_index=0;
	TMOD=0x01;
	TH0=(65536-5000)/256;
	TL0=(65536-5000)%256;
	TR0=1;
	IE=0x82;
	while(1);
}
void led_screen_display() interrupt 1
{	
	TH0=(65536-5000)/256;
	TL0=(65536-5000)%256;
	P3=_crol_(P3,1);
	k=(num_index*8+i+h)%80;
	P0=~table_of_digits[k];
	i++;
	i=i%8;
	t++;
	if(t%31==0) h=++h%8;
	if(t==248)
	{	
		t=0x00;
		if(++num_index==10) num_index=0;
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
51单片机俄罗斯方块程序LED点阵是一种基于51单片机控制的LED点阵显示器,用于实现俄罗斯方块游戏的显示和操作。 这个程序的实现主要包括以下几个方面: 1. 硬件连接:将51单片机的IO口通过适当的电路连接到LED点阵的行列控制引脚,以实现对点阵的控制。 2. 初始化:在程序开始时,需要对LED点阵进行初始化。这包括设置行列引脚的输入输出模式、设置刷新频率等。 3. 俄罗斯方块的显示:通过在点阵上分别亮起不同的LED点来显示俄罗斯方块的各个方块。可以通过定义一个数组,保存不同形状的方块在点阵上的显示方式,根据方块的位置和形状,通过控制点阵的引脚亮灭来实现。 4. 俄罗斯方块的控制:通过按键输入控制俄罗斯方块的移动、旋转等操作。可以通过读取按键的状态,判断用户输入,然后调用相应的函数来实现方块的移动、旋转等操作。 5. 游戏的逻辑控制:通过不断刷新LED点阵的显示,更新方块的位置和形状,并检测和处理碰撞等情况,实现俄罗斯方块游戏的进行。可以通过定时中断来控制刷新频率,从而实现游戏的流畅进行。 总之,51单片机俄罗斯方块程序LED点阵是一项基于51单片机和LED点阵的工程项目,通过提供适当的硬件连接和软件实现来实现俄罗斯方块游戏在LED点阵上的显示和操作。这样的程序既可以用于娱乐,也可以作为学习和研究的项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值