74HC595和74hc164一樣是在單片機系統(tǒng)中常用的芯片之一他的作用就是把串行的信號轉為并行的信號,常用在各種數(shù)碼管以及點陣屏的驅動芯片, 使用74HC595可以節(jié)約單片機mcu的io口資源,用3個io就可以控制8個數(shù)碼管的引腳,他還具有一定的驅動能力,可以免掉三極管等放大電路,所以這塊芯片是驅動數(shù)碼管的神器.應用非常廣泛。
74HC595引腳圖
74HC595管腳功能
74HC595工作原理
74HC595的數(shù)據(jù)端
74HC595的控制端說明
74HC595的引腳端說明
用法簡單介紹
當SCK為上升沿的時候,由數(shù)據(jù)線端(既14引腳,也叫SI或者DS)輸入的數(shù)據(jù)將在每一個上升沿周期,進行移位,當SCK為低電平時,將保存數(shù)據(jù),依次類推
上升沿為電平從低到高的那個過程。如下圖紅色線所示。下降沿即為電平從高電平到低電平的過程。
當RCK(既輸出儲存器鎖存時鐘)為上升沿時,數(shù)據(jù)從移位寄存器轉存帶存儲寄存器。即剛剛在74HC95中的SI數(shù)據(jù)線端寫入的信息,將在QA-QH端口呈現(xiàn)出來。
如下所示
以下面原理圖為例子,編寫74HC595驅動,其中OE端需要接地。
#include "reg52.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define GPIO_LED P0 // 定義P0 IO口為GPIO_LED
sbit SRCLK=P3^6; //74HC595的11引腳連接在單片機的36引腳
sbit RCLK1=P3^5; //74HC595的12引腳連接在單片機的35引腳
sbit SER=P3^4; //74HC595的14引腳連接在單片機的34引腳
void delay(u16 i)
{
while(i--);
}
void Hc595SendByte(u8 dat)
{
u8 a;
SRCLK=0;
RCLK1=0; //初始化,將SRCLK、RCLK1拉低
for(a=0;a< 7;a++)
{
SER=dat >>7; //將主函數(shù)傳進的參數(shù)右移7為后賦值給SER,即74HC595的數(shù)據(jù)端
dat< <=1; //在上一次的dat值中,左移一位后在重新賦值給dat,被移除的位等于寫入74HC595的位
SRCLK=1;
_nop_();
_nop_(); //上升沿,讓串行輸入時鐘變?yōu)楦唠娖?,并延時2個時鐘周期
SRCLK=0;
} //循環(huán)了8次后,即*位全部寫入了74HC595中
/*位移寄存器數(shù)據(jù)準備完畢,轉移到存儲寄存器*/
RCLK1=1;
_nop_();
_nop_(); //上升沿,讓存儲寄存器時鐘變?yōu)楦唠娖?,并延時2個時鐘周期
RCLK1=0;
}
void main()
{
u8 ledNum;
ledNum=0x01;
while(1)
{
GPIO_LED=0x00;
Hc595SendByte(ledNum);
ledNum=_crol_(ledNum,1);
delay(50000);
}
}
-
三極管
+關注
關注
142文章
3611瀏覽量
121866 -
單片機
+關注
關注
6035文章
44554瀏覽量
634617 -
數(shù)碼管
+關注
關注
32文章
1882瀏覽量
91060 -
引腳
+關注
關注
16文章
1193瀏覽量
50409 -
74HC595
+關注
關注
7文章
191瀏覽量
30843
發(fā)布評論請先 登錄
相關推薦
評論