目录
SPI总线
SPI总线概述
SPI总线分类
SPI 优点及缺点
SPI接口硬件原理
SPI四种工作模式
74HC595应用
74HC595芯片概述
74HC595封装及管脚功能
74HC595工作原理 编辑
74HC595串行转并行点亮LED灯
程序实现
Proteus运行结构示意图
SPI总线
SPI总线概述
- SPI(Serial Peripheral interface):串行外围设备接口
- 用途:用来在微控制器与外围设备芯片之间实现数据交换
- 特点:高速、全双工、同步
SPI总线分类
四线制 全双工SPI(同时收发)
MISO 主机输入/从机输出
MOSI 主机输出/从机输入
SCLK 串行时钟
CS或SS 外设片选或从机选择
三线制 半双工SPI(分时收发)
SCLK 串行时钟
CS或SS 外设片选或从机选择
DIO 数据线 输入与输出共用
SPI 优点及缺点
- 优点:全双工(输入/输出独立)、物理结构简单、操作简单、数据传输速率高
- 缺点:需要占用较多IO口、只支持单主机、没有指定的流控制、没有应答确认机制
注:SPI每有一个从器件就会多占用主器件的一个IO口,故比较浪费资源
SPI接口硬件原理
SPI工作原理:
- 两个移位寄存器的数据交换,传输的数据为8位,
- 在主器件产生的从器件使能信号和移位脉冲信号下按位传输
SPI四种工作模式
极性(CPOL)和相位(CPHL)
CPOL(极性) | 作用 |
0 | 空闲时SCLK为低电平 |
1 | 空闲时SCLK为高电平 |
CPHA(相位) | 作用 |
0 | 每个周期第一个时钟沿采样 |
1 | 每个周期第二个时钟沿采样 |
- 注:工作模式由从机芯片决定,需要查阅从机芯片手册,让单片机去适应从机芯片时序
- 注:如第一个时钟沿采样则第二个时钟沿输出,反之亦然 输出即发数据,采样即读数据
74HC595应用
74HC595芯片概述
芯片功能:
- 74HC595 是一款8位 CMOS 移位寄存器
- 一个串行输入端口,八位并行输出端口为可控的三态输出
- 一个串行输出端口可实现多级芯片串行控制,组成8n位并行输出
主要用途:LED数码管驱动、自动化工程等(主要用来实现 串转并 节省IO口)
74HC595封装及管脚功能
74HC595工作原理
注:SCK时钟及SER数据输入,其本质为 CPOL(极性)=0 CPHA(相位)=1 的SPI总线
74HC595串行转并行点亮LED灯
程序实现
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit ST=P0^2; //存储寄存器时钟
sbit DS=P0^1; //串行输入数据线
sbit SH=P0^0; //移位寄存器时钟
uint num[8] = {0,0,1,0,1,0,1,1};//暂时存储点
void HC595(uint num)//移位寄存器
{
SH=0;
ST=0;
DS=num;
SH=0;//产生上升沿,将数据写入移位寄存器
SH=1;
}
main()
{
uint i=0;
while(1)
{
SH=0;
ST=0;
for(i=0;i<8;i++)
{
HC595(num[i]);
}
ST=0;//产生上升沿将数据写入存储寄存器
ST=1;
}
}
Proteus运行结构示意图