什么是74HC595
是硅結(jié)構(gòu)的CMOS器件, 兼容低電壓TTL電路,遵守JEDEC NO.7A標(biāo)準(zhǔn)。
74HC595具有8位移位寄存器和一個(gè)存儲(chǔ)器,三態(tài)輸出功能。 移位寄存器和存儲(chǔ)器有相互獨(dú)立的時(shí)鐘。
據(jù)在SH_cp(移位寄存器時(shí)鐘輸入)的上升沿輸入到移位寄存器中,在ST_cp(存儲(chǔ)器時(shí)鐘輸入)的上升沿輸入到存儲(chǔ)寄存器中去。如果兩個(gè)時(shí)鐘連在一起,則移位寄存器總是比存儲(chǔ)寄存器早一個(gè)脈沖。
移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q7’),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。
8位串行輸入/輸出或者并行輸出移位寄存器,具有高阻關(guān)斷狀態(tài)。三態(tài)。
將串行輸入的8位數(shù)字,轉(zhuǎn)變?yōu)椴⑿休敵龅?位數(shù)字,例如控制一個(gè)8位數(shù)碼管,將不會(huì)有閃爍。
74HC595鎖存器級(jí)聯(lián)電路
74HC595是具有8位移位寄存器和一個(gè)存儲(chǔ)器,三態(tài)輸出功能。移位寄存器和存儲(chǔ)器是分別的時(shí)鐘。
數(shù)據(jù)在SHcp的上升沿輸入,在STcp的上升沿進(jìn)入的存儲(chǔ)寄存器中去。如果兩個(gè)時(shí)鐘連在一起,則移位寄存器總是比存儲(chǔ)寄存器早一個(gè)脈沖。移位寄存器有一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q),和一個(gè)異步的低電平復(fù)位,存儲(chǔ)寄存器有一個(gè)并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到總線。
我的硬件連接:用級(jí)聯(lián)方式連接!
工作順序:單片機(jī)先送1個(gè)8位數(shù)據(jù)到第一個(gè)595的內(nèi)部移位寄存器-》然后數(shù)據(jù)會(huì)送到內(nèi)部的輸出寄存器-》輸出
當(dāng)MR(10引腳)為高電平,OE(13引腳)為低電平時(shí),數(shù)據(jù)在SHCP上升沿進(jìn)入移位寄存器,在STCP上升沿輸出到并行端口。
可能這還不太好理解,沒(méi)關(guān)系,咱去程序應(yīng)用中理解!
請(qǐng)看一個(gè)簡(jiǎn)單的程序:
sbit SDA1 = P0^0; //串行數(shù)據(jù)輸入,對(duì)應(yīng)595的14腳SER
sbit SCL1 = P0^1; //移位寄存器時(shí)鐘輸入,對(duì)應(yīng)595的11腳SCK
sbit SCL2 = P0^2; //存儲(chǔ)寄存器時(shí)鐘輸入,對(duì)應(yīng)595的12腳RCK
unsigned char code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//0 1 2 3 4 5 6 7 8 9
unsigned char code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay2ms(void)
{
unsigned char i,j;
for(i=133;i》0;i--)
for(j=6;j》0;j--);
}
void 595_in(unsigned char Data)
{
unsigned char i;
for(i = 0; i 《 8; i++) //循環(huán)8次,剛好移完8位
{
SCL1 = 0; //先將移位寄存器控制引腳置為低
_nop_();
if((Data & 0x80)== 0x80)
SDA1 =1;
else
SDA1 =0;
Data 《《= 1; //將數(shù)據(jù)的次高位移到最高位
SCL1 = 1; //再置為高,產(chǎn)生移位時(shí)鐘上升沿,上升沿時(shí)數(shù)據(jù)寄存器的數(shù)據(jù)移位
_nop_();
}
}
void 595_out(void)
{
SCL2 = 0; //先將存儲(chǔ)寄存器引腳置為低
_nop_();
SCL2 = 1; //再置為高,產(chǎn)生移位時(shí)鐘上升沿,上升沿時(shí)移位寄存器的數(shù)據(jù)進(jìn)入數(shù)據(jù)存儲(chǔ)寄存器,更新顯示數(shù)據(jù)。
}
void main(void)
{
unsigned char i;
for(i=0;i《8;i++) //有八位數(shù)碼管,八位依次掃描
{
595_in(wei[i]); //先傳位碼
595_in(duan[i]); //再傳段碼
595_out();
delay2ms(); //延遲時(shí)間2ms以內(nèi)
}
}
注:74164和74595功能相仿,都是8位串行輸入轉(zhuǎn)并行輸出移位寄存器。74164驅(qū)動(dòng)電流(25mA)比74595(35mA)的要小,14腳封裝,體積也小些。
74595的主要優(yōu)點(diǎn)是具有數(shù)據(jù)存儲(chǔ)寄存器,在移位過(guò)程中,輸出端的數(shù)據(jù)可以保持不變。這在串行速度慢的場(chǎng)合很有用,數(shù)碼管沒(méi)有閃爍感。
與164只有數(shù)據(jù)清零端相比,595還多有輸出端時(shí)能/禁止控制端,可以使輸出為高阻態(tài)。
評(píng)論
查看更多