74HC595是具有8位移位寄存器和一個存儲器,三態(tài)輸出功能。 移位寄存器和存儲器是分別的時鐘。
數(shù)據(jù)在SHcp的上升沿輸入,在STcp的上升沿進入的存儲寄存器中去。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖。移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7’),和一個異步的低電平復(fù)位,存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當使能 OE時(為低電平),存儲寄存器的數(shù)據(jù)輸出到總線。
74HC595各個引腳的功能:
Q1~7 是并行數(shù)據(jù)輸出口,即儲寄存器的數(shù)據(jù)輸出口
Q7' 串行輸出口,其應(yīng)該接SPI總線的MISO接口
STcp 存儲寄存器的時鐘脈沖輸入口
SHcp 移位寄存器的時鐘脈沖輸入口
OE的非 輸出使能端
MR的非 芯片復(fù)位端
Ds 串行數(shù)據(jù)輸入端
程序說明:
每當SHcp上升沿到來時,DS引腳當前電平值在移位寄存器中左移一位,在下一個上升沿到來時移位寄存器中的所有位都會向左移一位,同時Q7'也會串行輸出移位寄存器中高位的值,這樣連續(xù)進行8次,就可以把數(shù)組中每一個數(shù)(8位的數(shù))送到移位寄存器;然后當STcp上升沿到來時,移位寄存器的值將會被鎖存到鎖存器里,并從Q1~7引腳輸出。
//74HC595串行輸出數(shù)據(jù)
void outdisp(unsigned char num)
{
unsigned char i;
for (i=0;i<8;i++ )
{
DS=num;
SHCP=1;
SHCP=0;
num<<=1;
}
}
設(shè)計顯示PCB板(595一為傳送位選信號,一為傳送代碼段信號)