找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1252|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)控制8*8實(shí)現(xiàn)流水燈程序優(yōu)化

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
有沒(méi)有哪位大神幫忙優(yōu)化一下,本人初次編寫(xiě)的。

單片機(jī)控制88點(diǎn)陣.png (156.03 KB, 下載次數(shù): 3)

單片機(jī)控制88點(diǎn)陣.png

AT89C51控制64位流水燈.pdf

124.25 KB, 下載次數(shù): 8

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:192020 發(fā)表于 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);
                }
        }
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:404160 發(fā)表于 2024-10-25 18:26 | 只看該作者
#include <reg51.h>  // AT89C51寄存器定義

// 定義LED點(diǎn)陣連接的端口
#define ROW P0  // 行連接到P0
#define COL P1  // 列連接到P1

// 延時(shí)函數(shù)
void delay(unsigned int time) {
    unsigned int i, j;
    for(i = 0; i < time; i++)
        for(j = 0; j < 120; j++);
}

// 流水燈顯示函數(shù)
void display() {
    unsigned char i, j;
    unsigned char row_pattern[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};  // 行數(shù)據(jù)
    unsigned char col_pattern[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};  // 列數(shù)據(jù)

    for(i = 0; i < 8; i++) {  // 遍歷每一行
        ROW = row_pattern[i];  // 設(shè)置當(dāng)前行
        for(j = 0; j < 8; j++) {
            COL = ~col_pattern[j];  // 設(shè)置當(dāng)前列并反轉(zhuǎn),點(diǎn)亮對(duì)應(yīng)的LED
            delay(50);  // 控制流水燈的速度
        }
    }
}

void main() {
    while(1) {
        display();  // 不斷顯示流水燈效果
    }
}
代碼說(shuō)明:
行與列的控制:ROW和COL分別定義了點(diǎn)陣的行和列連接的端口,程序中通過(guò)簡(jiǎn)單的掃描來(lái)實(shí)現(xiàn)流水燈效果。
行列數(shù)據(jù):row_pattern和col_pattern數(shù)組用于定義哪一行、哪一列的LED應(yīng)該點(diǎn)亮。
延時(shí):通過(guò)delay()函數(shù)控制流水燈的速度。
回復(fù)

使用道具 舉報(bào)

地板
ID:1133433 發(fā)表于 2024-10-31 10:54 | 只看該作者
飛云居士 發(fā)表于 2024-10-25 18:26
#include   // AT89C51寄存器定義

// 定義LED點(diǎn)陣連接的端口

謝謝指導(dǎo)
回復(fù)

使用道具 舉報(bào)

5#
ID:1133433 發(fā)表于 2024-10-31 10:58 | 只看該作者
謝謝Graves,你優(yōu)化后只能8只燈循環(huán)
謝謝飛云居士,你的優(yōu)化很好
回復(fù)

使用道具 舉報(bào)

6#
ID:23640 發(fā)表于 2024-10-31 11:40 | 只看該作者
應(yīng)該提出要求:比如燈具體要怎么流動(dòng),從左到右,從上到下,單個(gè)點(diǎn)亮,逐個(gè)點(diǎn)亮
回復(fù)

使用道具 舉報(bào)

7#
ID:192020 發(fā)表于 2024-10-31 15:59 | 只看該作者
馬上學(xué)習(xí) 發(fā)表于 2024-10-31 10:58
謝謝Graves,你優(yōu)化后只能8只燈循環(huán)
謝謝飛云居士,你的優(yōu)化很好

是有點(diǎn)毛病,delay應(yīng)該放在第二個(gè)for循環(huán)里面,大意了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表