Lúc ta dịch dữ liệu vào thì nó vẫn chưa được đưa ra ngoài khi chưa cho cạnh xuống trên chân ST_CP(chân 12).Chân OE(output enable cho phép xuất) luôn nối GND(0V).Chân MR(xóa dữ liệu trong 74HC595,cái này phải treo cao(5V)).Bây giờ sơ bộ về 74HC595 là ok.Vậy dịch 1 byte vào 74HC595 sẽ viết như sau:
void shift_byte(unsigned char data)
{
unsigned char i;
for(i=0;i<8;i++)
{
D=data&0x80//lấy bit 7 tức bit cao nhất
SH_CP=1;SH_CP=0;//dịch
data=data<<1;//dịch trái 1 bit
}
ST_CP=1;ST_CP=0;//xuất ra
}
void shift_byte(unsigned char data)
{
unsigned char i;
for(i=0;i<8;i++)
{
D=data&0x80//lấy bit 7 tức bit cao nhất
SH_CP=1;SH_CP=0;//dịch
data=data<<1;//dịch trái 1 bit
}
ST_CP=1;ST_CP=0;//xuất ra
}
Comment