找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机控制8*8实现流水灯程序优化

查看数: 1494 | 评论数: 6 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-10-25 09:03

正文摘要:

有没有哪位大神帮忙优化一下,本人初次编写的。

回复

ID:192020 发表于 2024-10-31 15:59
马上学习 发表于 2024-10-31 10:58
谢谢Graves,你优化后只能8只灯循环
谢谢飞云居士,你的优化很好

是有点毛病,delay应该放在第二个for循环里面,大意了
ID:23640 发表于 2024-10-31 11:40
应该提出要求:比如灯具体要怎么流动,从左到右,从上到下,单个点亮,逐个点亮
ID:1133433 发表于 2024-10-31 10:58
谢谢Graves,你优化后只能8只灯循环
谢谢飞云居士,你的优化很好
ID:1133433 发表于 2024-10-31 10:54
飞云居士 发表于 2024-10-25 18:26
#include   // AT89C51寄存器定义

// 定义LED点阵连接的端口

谢谢指导
ID:404160 发表于 2024-10-25 18:26
#include <reg51.h>  // AT89C51寄存器定义

// 定义LED点阵连接的端口
#define ROW P0  // 行连接到P0
#define COL P1  // 列连接到P1

// 延时函数
void delay(unsigned int time) {
    unsigned int i, j;
    for(i = 0; i < time; i++)
        for(j = 0; j < 120; j++);
}

// 流水灯显示函数
void display() {
    unsigned char i, j;
    unsigned char row_pattern[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};  // 行数据
    unsigned char col_pattern[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};  // 列数据

    for(i = 0; i < 8; i++) {  // 遍历每一行
        ROW = row_pattern[i];  // 设置当前行
        for(j = 0; j < 8; j++) {
            COL = ~col_pattern[j];  // 设置当前列并反转,点亮对应的LED
            delay(50);  // 控制流水灯的速度
        }
    }
}

void main() {
    while(1) {
        display();  // 不断显示流水灯效果
    }
}
代码说明:
行与列的控制:ROW和COL分别定义了点阵的行和列连接的端口,程序中通过简单的扫描来实现流水灯效果。
行列数据:row_pattern和col_pattern数组用于定义哪一行、哪一列的LED应该点亮。
延时:通过delay()函数控制流水灯的速度。
ID:192020 发表于 2024-10-25 18:13
#include<reg51.h>
const unsigned char P1_arry[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
const unsigned char P3_arry[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay(unsigned int i)
{
        while(i--);
}
void main()
{
        u8 i;
        u8 j;
        while(1)
        {
                for(i=0;i<8;i++)
                {
                        p3 = P3_arry[i];
                        for(j=0;j<8;j++)
                        {
                                p1 = P1_arry[j];
                        }
                        delay(3000);
                }
        }
}

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表