花样流水灯:
1、扩展32个LED灯,低电平驱动。
2、使用5个按键切换5种花样。
#include "74hc595.h"
//全部熄灭
void hc595_off()
{
uchar i=0;
SRCLK = 1;
RCLK = 1;
SER=1;
for(i=0;i<64;i++)
{
_nop_();
SRCLK = 0; //发送时序
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
//全部点亮
void hc595_on()
{
uchar i=0;
SRCLK = 1;
RCLK = 1;
SER=0;
for(i=0;i<64;i++)
{
_nop_();
SRCLK = 0; //发送时序
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
//高4位亮
void hc595_high()
{
uchar i=0,j=0;
SRCLK = 1;
RCLK = 1;
for(j=0;j<8;j++)
{
SER=0;
for(i=0;i<4;i++)
{
_nop_();
SRCLK = 0; //发送时序
_nop_();
SRCLK = 1;
}
SER=1;
for(i=0;i<4;i++)
{
_nop_();
SRCLK = 0; //发送时序
_nop_();
SRCLK = 1;
}
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
//低4位亮
void hc595_low()
{
uchar i=0,j=0;
SRCLK = 1;
RCLK = 1;
for(j=0;j<8;j++)
{
SER=1;
for(i=0;i<4;i++)
{
_nop_();
SRCLK = 0; //发送时序
_nop_();
SRCLK = 1;
}
SER=0;
for(i=0;i<4;i++)
{
_nop_();
SRCLK = 0; //发送时序
_nop_();
SRCLK = 1;
}
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
资料借鉴于此纷传
阅读全文