專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

74HC595在單片機(jī)上的應(yīng)用及程序

作者:劉佳喝   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年03月16日   【字體:

74HC595具有8位串入并出的三態(tài)門(mén)電路。

高速率:最高55MHz(5V工作電壓)

寬的工作電壓范圍:2V -6V

每個(gè)口的最大電流值(QA-QH):±35mA

當(dāng)單片機(jī)的I/O資源比較緊張時(shí),采用595并進(jìn)行級(jí)聯(lián)是一個(gè)很好的選擇。

管腳定義:

PIN NO  symbol         name and function

15       QA              data output

1        QB              data output

2        QC              data output

3        QD              data output

4        QE              data output

5        QF              data output

6        QG              data output

7        QH              data output

8        GND             ground

9        QH’           serial data outputs

10     /SCLR          shift register clock input

11      SCK           shift register clock input

12      RCK          storage register clock input

13      /G            output enable input

14      SI            serial data input

16      Vcc          positive  supply voltage

時(shí)序圖:

請(qǐng)參照595的數(shù)據(jù)手冊(cè)

程序編制:

端口定義 設(shè)置:

 sbit DATA=P1^5;

sbit SHIFT=P1^6;

sbit STORAGE=P1^7;

1、寫(xiě)595

 Void write_595(uchar x)//功能:將無(wú)符號(hào)8位數(shù)x,寫(xiě)入到595的shife register

{

 Uchar j;

 For(j=0;j<8;j++)//循環(huán)8次,以便shift register保存8位數(shù)據(jù)

       {

X=x<<1;//將數(shù)據(jù)左移一位,最高位數(shù)據(jù)進(jìn)入到CY中

SHIFT=0;//shift端置0

_nop_();

 _nop_();

 _nop_();

DATA=CY;//將一位數(shù)據(jù)送入595串口數(shù)據(jù)端

SHIFT=1;//shift端產(chǎn)生一個(gè)上升沿,數(shù)據(jù)就送入到了shift register

_nop_();//延時(shí)

_nop_();

_nop_();

SHIFT=0;//shift端產(chǎn)生一個(gè)下降沿,shift register內(nèi)容保持不變

}

}

3、595數(shù)據(jù)的輸出

/********595輸出函數(shù)函數(shù)*******************/

void out_595(void)

{

 STORAGE=0;

 _nop_();

 _nop_();

 STORAGE=1;//上升沿shift register 的內(nèi)容保存到store register

 _nop_();

 _nop_();

 STORAGE=0;//下降沿store register 的內(nèi)容保持不變

 

}

4、只要在主函數(shù)中分別調(diào)用以上兩個(gè)函數(shù)即可將要顯示的數(shù)值X顯示出來(lái)。

  當(dāng)然為方便顯示可以定義一個(gè)數(shù)組。

如一個(gè)7段數(shù)碼管的顯示,595的QA,QB,QC,QD,QE,QF,QG, ,分別對(duì)應(yīng)數(shù)碼管的a,b,c,d,e,f,g,

數(shù)碼管共陽(yáng)極,則可以定義這樣一個(gè)數(shù)組。

uchar code num[]={0x40,0xf3,0x89,0xa1,0xb2,0xa4,0x84,0xf1,0x80,0x20} ; //0-9代碼

5、當(dāng)兩個(gè)或多個(gè)595進(jìn)行級(jí)聯(lián)時(shí)將

   11      SCK           shift register clock input

   12      RCK          storage register clock input

   進(jìn)行并聯(lián),將9        QH’           serial data outputs

   連接另一片的14      SI            serial data input

然后再發(fā)送數(shù)據(jù)時(shí),先連續(xù)發(fā)送數(shù)據(jù),最后在out。

如:

write_595(duanma);

write_595(num[liangdu]);

 out_595();

完整詳細(xì)程序請(qǐng)打開(kāi):http://www.torrancerestoration.com/chip/1799.html
 

關(guān)閉窗口

相關(guān)文章