一、概述:
STC8H系列单片机内部集成了一种告诉串行通信接口——SPI接口。SPI是一种全双工的高速同步通信总线。
相比软件模拟SPI来说,硬件SPI的主要优点是高速传输和低CPU负载,适合处理高速数据传输和实时应用。
二、开发环境
1.keil5 C51
2.STC8H8K64U核心板
3.7针脚 0.96寸 OLED屏幕
三、0.96寸OLED屏幕
7针的0.96寸OLED显示,采用SPI协议,速度比采用I2C协议快,但两者的显示驱动相同。
屏幕整体分辨率为128*64,有黄蓝、白、蓝三种颜色可选,驱动芯片为SSD1306,下面是引脚功能介绍。
名称 | 定义 |
GND | 电源地 |
VCC | 电源正(3~5.5V) |
D0 | OLED的D0脚,在SPI和IIC通信中为时钟管脚 |
D1 | OLED的D1脚,在SPI和IIC通信中为数据管脚 |
RES | OLED的RES#脚,用来复位(低电平复位) |
DC | OLED的D/C#E脚,数据和命令控制管脚,1数据,0命令 |
CS | OLED 的CS#脚,也就是片选管脚 |
硬件连接
0.96 OLED | STC8H8K64U |
CS | P2.2 |
D1 | P2.3 |
DC | P2.4 |
D0 | P2.5 |
RES | P2.6 |
四、SPI相关寄存器
1.SPI功能脚切换
根据要连接的引脚选择P_SW1寄存器的值,这里以P2.2~P2.5引脚为例
P_SW1 |= 0x04; //SPI引脚改为SS->P2.2,MOSI->P2.3,MISO->P2.4,SCLK->P2.5
2.SPI控制寄存器(SPCTL)
要根据OLED屏幕的驱动芯片SSD1306的时序来选择配置
SPCTL | SSIG | SPEN | DORD | MSTR | CPOL | CPHA | SPR | |
0xD0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
SSIG = 1:忽略SS引脚功能
SPEN = 1:使能SPI
DORD = 0:MSB方式传输,高位优先
MSRT = 1:设置成主机模式
CPOL = 0 CPHA = 0 或 CPOL = 1 CPHA = 1:根据时序图,可使用为模式0与模式3
SPR = 00 SPI传输频率 = SYSclk/4
SPCTL = 0xD0;//SS启用,使能SPI,MSB高位先行,主机模式