51单片机LED点阵爱心代码

以下是一份使用C语言在51单片机上实现LED点阵爱心图案的完整代码
#include <reg51.h>
#define ROW_NUM 8 // 点阵行数
#define COL_NUM 8  // 点阵列数
unsigned char heart[] = {
    0x00, 0x38, 0x7C, 0xFE, 0xFE, 0x7C, 0x38, 0x10,
    0x10, 0x38, 0x7C, 0xFE, 0xFE, 0x7C, 0x38, 0x10,
    0x10, 0x1C, 0x3E, 0x7F, 0x7F, 0x3E, 0x1C, 0x08,
    0x08, 0x1C, 0x3E, 0x7F, 0x7F, 0x3E, 0x1C, 0x08,
    0x08, 0x0C, 0x1E, 0x3F, 0x3F, 0x1E, 0x0C, 0x04,
    0x04, 0x0C, 0x1E, 0x3F, 0x3F, 0x1E, 0x0C, 0x04,
    0x04, 0x06, 0x0F, 0x1F, 0x1F, 0x0F, 0x06, 0x02,
    // 此处省略剩余的点阵数据,可以根据需要自行添加
};
void delay(unsigned int time) // 延时函数
{
    unsigned int i, j;
    for (i = time; i > 0; i--)
        for (j = 256; j > 1; j--);
}
void main() // 主函数
{
    unsigned char row = ROW_NUM - 1; 
    unsigned char col = COL_NUM - 1;
    unsigned char bit_index = 7; 
    while (1) // 主循环,一直循环执行下面的代码块直到断电等特殊情况发生
    {
        P2 = heart[row]; // 将点阵数据赋值给P2口,控制行扫描
        row--; 
        delay(5); 
        if (row == 0) 
        {
            row = ROW_NUM - 1; 
            col--; 
            if (col == 0) 
            {
                col = COL_NUM - 1; 
               bit_index--; 
                if (bit_index == 0) 
                {
                    bit_index = ROW_NUM * COL_NUM - 1; 
                }
            }
        }
        delay(5); 
    }
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃早饭不吃鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值