找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LED點(diǎn)陣實(shí)驗(yàn)兩個(gè)圖案顯示for循環(huán)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1150380 發(fā)表于 2025-5-14 16:02 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include "reg52.h"
#include "intrins.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit SRCLK=P3^6;
sbit rCLK=P3^5;
sbit SER=P3^4;

//點(diǎn)陣列控制數(shù)據(jù)1
u8 gled_col[32]=
{0x80,0x00,0x9F,0x10,0x90,0x10,0x90,0x08,0x90,0x04,0x9E,0x02,0x82,0x00,0xE2,0x7F,
0x82,0x02,0x9E,0x04,0x90,0x04,0x90,0x08,0x90,0x10,0x90,0x22,0x8A,0x41,0x84,0x00
};
//點(diǎn)陣列控制數(shù)據(jù)2
u8 gled_co2[32]=
{0x80,0x08,0x82,0x08,0xF4,0x7F,0x84,0x08,0x00,0x02,0xE1,0x3F,0x02,0x22,0xFA,0x7F,
0x08,0x22,0xE4,0x3F,0x07,0x02,
0xA4,0x26,0xA4,0x2A,0x64,0x2A,0x14,0x22,0x08,0x22};


//點(diǎn)陣行控制數(shù)據(jù)
u8 gled_row[32]=
{
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,
0x10,0x20,0x40,0x80};

void delay_10us(u16 ten_us)//當(dāng)傳入Ten_us=1時(shí),大約延時(shí)10us
{
        while(ten_us--);
}


void hc595_write_data(u8 dat1,u8 dat2,u8 dat3,u8 dat4)
{
        u8 i=0;
        for(i=0;i<8;i++)
        {
                 SER=dat4>>7;
                dat4<<=1;
                SRCLK=0;
                _nop_();
                SRCLK=1;
                _nop_();
        }

        for(i=0;i<8;i++)
        {
                 SER=dat3>>7;
                dat3<<=1;
                SRCLK=0;
                _nop_();
                SRCLK=1;
                _nop_();
        }

        for(i=0;i<8;i++)
        {
                 SER=dat2>>7;
                dat2<<=1;
                SRCLK=0;
                _nop_();
                SRCLK=1;
                _nop_();
        }

        for(i=0;i<8;i++)
        {
                 SER=dat1>>7;
                dat1<<=1;
                SRCLK=0;
                _nop_();
                SRCLK=1;
                _nop_();
        }
        rCLK=1;
        delay_10us(1);
        rCLK=0;
}

void main()
{
        u8 i=0;
        int j;       
        while(1)   
        {
          
                            
                for(j=0;j<100;j++)
               
                        for(i=0;i<16;i++)//循環(huán)16次 行,列
                       
                        {        hc595_write_data(gled_row[i],gled_row[i+16],~gled_col[i*2],~gled_col[i*2+1]);
                                delay_10us(10);//延遲一段時(shí)間,
                                hc595_write_data(0x00,0x00,0x00,0x00);//消影
                        }               
               
                for(j=0;j<100;j++)
                        for(i=0;i<16;i++)//循環(huán)16次 行,列
                        {
                                hc595_write_data(gled_row[i],gled_row[i+16],~gled_co2[i*2],~gled_co2[i*2+1]);

                        }                                       
                                                       
          }
}


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

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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