74HC595内含8位串入并出移位寄存器和8位三态输出锁存器。寄存器和锁存器分别有各自的时钟输入SCLK(SH_CP),SLCK(ST_CP);都是上升沿有效。当SCLK有低到高电平跳变时,串行输入数据(SDA)移入寄存器,当SLCK有低到高电平跳变时,寄存器的数据置入锁存器。
74HC595程序:
#include #include sbit SCLK=P1^0; sbit DAT=P1^1; sbit SLCK=P1^2; unsigned char code tab[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};//0-9,-,全灭 void sendbyte(unsigned char a) { unsigned char i; for(i=0;i<8;i++) { SCLK=0; DAT=a&0x80; a=a<<1; SCLK=1; } } void out595(void) { SLCK=0; _nop_(); SLCK=1; } main() { unsigned char i ; unsigned int f=60000; while(1) { for(i=0;i<9;i++) { sendbyte(tab[i]); out595(); while(f--); } } } PROTUES仿真如下:下载本文