51单片机8X8点阵显示爱心

一、LED点阵显示器结构

LED点阵显示器是把LED按矩阵方式排列在一起,通过对每个LED进行发光控制,点亮不同位置的LED,从而完成各种字符及图形的显示。
一块8X8的LED点阵显示器由8行8列LED构成,对外共有16个引脚,其中有8根行线(Y0-Y7),8根列线(X0-X7)。
在这里插入图片描述

二、案例要求

采用单片机控制一块8X8 LED点阵显示器,稳定显示“爱心”图形。
在这里插入图片描述

三、案例分析

先选中第1行(0x01),同时给8列送11111111;然后选中第2行(0x02),同时给8列送10011001…最后选中第8行(0x80),同时给8列送11111111。每行点亮延时时间为1ms,第8行结束后,再从第1行开始循环显示。利用人眼视觉暂留效应,快速扫描每一行,看到的就是一个稳定显示的“爱心”图形。

四、案例代码

//功能:显示爱心图形
#include<reg51.h>

//实现软件延时
void delayms(unsigned int i)
{
	unsigned char k;
	while(i--)
		for(k=0;k<120;k++);  //120次空操作
}

void main()
{
	unsigned char code led[]={0xff,0x99,0x66,0x7e,0xbd,0xdb,0xe7,0xff};//“爱心”字形码
	//unsigned char code led[]={0xEF,0x00,0xEB,0x01,0xC7,0xAB,0x65,0xEF};//“东”字形码
	
	unsigned char w,i;   //定义行变量w,行数变量i
	while(1)
	{
		w=0x01;         //行变量指向第一行
		for(i=0;i<8;i++)
		{
			P3=w;       //行数据送P3口
			P0=led[i];  //列数据(字形码)送P0口
			delayms(1);
			w<<=1;      //行变量指向下一行
			P0=0xff;    //关显示
		}
	}
}

五、案例仿真

在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值