595具體使用的步驟:
第一步:目的:將要準備輸入的位數(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; voidHC595SendData(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; } } voidHC595ShowData()//RCK_595產(chǎn)生一上升沿(輸出數(shù)據(jù)) { RCK_595=0; _nop_(); _nop_(); RCK_595=1; } |