这是单片机连接595的电路图,求高手写个控制LED流水灯效果程序

2025年03月24日 00:57
有1个网友回答
网友(1):

#include 
#include 

sbit SCK=P3^6;
sbit RCK=P3^5;
sbit SI =P3^4;

#define DELAY /*微秒级延时*/

void spi_595(unsigned char dat);

void Delay999ms() //@11.0592MHz
{
unsigned char i, j, k;

_nop_();
i = 7;
j = 0;
k = 40;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}

void main(void)
{
    unsigned char i;
    for(i=0;;++i)
    {
        spi_595(i);
        Delay999ms();
    }   
}

void spi_595(unsigned char dat)
{
    unsigned char i;
    SCK=0;
    DELAY;
    RCK=0;
    DELAY;
    for(i=0;i<8;++i)
    {
        SI=dat&0x80?1:0;
        SCK=1;
        DELAY;
        dat<<=1;
        SCK=0;
        DELAY;
    }
    RCK=1;
    DELAY;
    RCK=0;
    DELAY;
}