74HC595的具體使用的步驟
第一步:目的:將要準備輸入的位數(shù)據(jù)移入74HC595數(shù)據(jù)輸入端上。
方法:送位數(shù)據(jù)到_595。
第二步:目的:將位數(shù)據(jù)逐位移入74HC595,即數(shù)據(jù)串入
方法:SCK_595產(chǎn)生一上升沿,將PSI_595上的數(shù)據(jù)移入74HC595中.從低到高
第三步:目的:并行輸出數(shù)據(jù)。即數(shù)據(jù)并出
方法:P1.1產(chǎn)生一上升沿,將由SI_595上已移入數(shù)據(jù)寄存器中的數(shù)據(jù)送入到輸出鎖存器。
說明: 從上可分析:從SCK_595產(chǎn)生一上升沿(移入數(shù)據(jù))和RCK_595產(chǎn)生一上升沿(輸出數(shù)據(jù))是二個獨立過程,實際應(yīng)用時互不干擾。即可輸出數(shù)據(jù)的 同時移入數(shù)據(jù)。
程序如下,復(fù)制就能用。
sbit SI_595=P2^0;
sbit RCK_595=P2^2;
sbit SCK_595=P2^1;
void HC595SendData(unsigned char SendVal)//發(fā)送數(shù)據(jù)
{
unsigned char i;
for(i=0;i<8;i )
{
if((SendVal<<i)&0x80) SI_595=1;
else SI_595=0;
SCK_595=0;//從SCK_595產(chǎn)生一上升沿(移入數(shù)據(jù))
_nop_();
_nop_();
SCK_595=1;
}
}
void HC595ShowData()//RCK_595產(chǎn)生一上升沿(輸出數(shù)據(jù))
{
RCK_595=0;
_nop_();
_nop_();
RCK_595=1;
}