74HC595A 由一个 8 位移位寄存器和一个 8 位具有三态并行输出的 D 型锁存器。移位寄存器接受串行数据并提供串行输出。移位寄存器也向 8 位锁存器提供并行数据。移位寄存器和锁存器有独立的时钟输入。该设备还具有异步复位移位寄存器。HC595A 直接与上的 SPI 串行数据端口连接CMOS MPU 和 MCU。
目录- proteus仿真之51之74HC595之流水灯
- 1.封装类型
- 2.引脚分布
- 3.逻辑图
- 4.功能列表
- 4.1功能表---Shift data into shift register(数据写入移位寄存器,MSB->LSB)
- 4.2功能表---Transfer shift register contents to latch register(传送移位寄存器内容到锁存器)
- 5.引脚说明(引脚名参考[逻辑图](#3.逻辑图))
- 6.51代码
- 7.proteus仿真图
SPI协议的三个引脚对应表
| 硬件引脚 | SPI引脚 |
|---|---|
| Shift Clock(11) | SCK |
| Serial Input A(14) | DS |
| Latch Clock(12) | CE |
| SCK | R |
|---|---|
| DS | D |
| CE | L,H,F |
R = RISING D = DATA F = FALLING L = LOW H=HIGH
4.2功能表—Transfer shift register contents to latch register(传送移位寄存器内容到锁存器)| SCK | L,H,F |
|---|---|
| DS | X |
| CE | R |
X = 不关心
5.引脚说明(引脚名参考逻辑图)| 引脚 | 说明 |
|---|---|
| INPUTS A (Pin 14)(DS) | 串行数据输入。该引脚上的数据被移入8 位串行移位寄存器。 |
| CONTROL INPUTS Shift Clock (Pin 11)(SCK) | 移位寄存器时钟输入。低到高的过渡 此输入导致串行输入引脚上的数据被移位 进入 8 位移位寄存器。 |
| Reset (Pin 10) | 低电平有效、异步、移位寄存器复位输入。该引脚上的低电平仅复位该器件的移位寄存器部分。 8 位锁存器不受影响。 |
| Latch Clock (Pin 12)(CE) | 存储锁存时钟输入。此输入上的低到高转换会锁存移位寄存器数据。 |
| Output Enable (Pin 13) | 低电平有效输出使能。该输入的低电平允许来自锁存器的数据呈现在输出端。此输入的高电平迫使输出 (QA-QH) 进入高阻抗状态。串行输出不受此控制单元的影响。 |
| OUTPUTS QA – QH (Pins 15, 1, 2, 3, 4, 5, 6, 7) | 同相、三态、锁存输出。 |
| SQH (Pin 9) | 同相串行数据输出。这是 8 位移位寄存器第 8 级的输出。此输出不具有三态功能。 |
代码效果:
D1-D8轮流点亮
#include#include sbit SCK = P2^1; sbit DS = P2^0; sbit LATCH = P2^2; #define NOP _nop_() void DelayX10us(unsigned int num); void HC595SendData(unsigned char dat); void main() { unsigned char LED=0xFE; HC595SendData(0xFF); while(1) { HC595SendData(LED); LED <<= 1; LED = LED|0x01; if(LED == 0xFF) LED=0xFE; DelayX10us(50000); } } void DelayX10us(unsigned int cnt) { do { NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; }while(cnt--); } void HC595SendData(unsigned char dat) { unsigned char i; for( i=0;i<8;i++) { if((dat< 7.proteus仿真图



