效果展示:
移位寄存器分为两种:
- 串行输入并行输出: 74HC595
- 并行输入串行输出: 74HC165
74HC595芯片引脚作用:
- 1号引脚——7号引脚、15号引脚:数据输出口
- 8号引脚:接GND
- 9号引脚:串行输出
- 10号引脚:MR 若输入为低电平,重置整个移位寄存器为0
- 11号引脚:SH_CP 时钟信号输入端,输入上升沿时,芯片读取DS的值
- 12号引脚:ST_CP 锁存信号输入,并将数据输出
- 13号引脚:OE 为高电平时输出引脚被禁用 一般接低电平
- 14号引脚:DS 串行数据输入端
- 16号引脚:接VCC
直接上代码:
#include <STC8.H>
#include <intrins.h>
sbit SH_CP=P2^0;
sbit DS=P2^1;
sbit ST_CP=P2^2;
unsigned int dat;
unsigned char code a[10]={0x3f,0x06,0x5B,0x4f,0x66,0X6D,0X7D,0X07,0X7F,0X6F};
void Delay500ms() //@12.000MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void qudong(dat){
unsigned char m;
ST_CP=0;
for(m=1;m<=8;m++){
SH_CP=0;
DS=dat & 0x80;//dat 和 1000 0000 与运算
dat<<=1;
SH_CP=1;
SH_CP=0;
}
ST_CP=1;
ST_CP=0;
}
void main(){
while(1){
unsigned char y;
for(y=0;y<10;y++){
qudong(~a[y]);
Delay500ms();
}
}
}