花樣流水燈:
1、擴(kuò)展32個LED燈,低電平驅(qū)動。
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; //發(fā)送時序
_nop_();
SRCLK = 1;
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
//全部點(diǎn)亮
void hc595_on()
{
uchar i=0;
SRCLK = 1;
RCLK = 1;
SER=0;
for(i=0;i<64;i++)
{
_nop_();
SRCLK = 0; //發(fā)送時序
_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; //發(fā)送時序
_nop_();
SRCLK = 1;
}
SER=1;
for(i=0;i<4;i++)
{
_nop_();
SRCLK = 0; //發(fā)送時序
_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; //發(fā)送時序
_nop_();
SRCLK = 1;
}
SER=0;
for(i=0;i<4;i++)
{
_nop_();
SRCLK = 0; //發(fā)送時序
_nop_();
SRCLK = 1;
}
}
RCLK = 0;
_nop_();
_nop_();
RCLK = 1;
}
資料借鑒于此紛傳
閱讀全文