STC8G系列单片机内部集成了一个I2C串行控制器。
STC8G系列的I2C总线提供了两种操作模式:主机模式(SCL为输出口,发送同步时钟信号);从机模式(SCL为输入口,接收同步时钟信号)。
I2C相关寄存器:
I2C主机模式相关寄存器:
I2CCFG:配置寄存器,总线速度控制
符号 |
描述 |
地址 |
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
I2CCFG |
配置寄存器 |
FE80H |
ENI2C |
MSSL |
MSSPEED[5:0] |
ENI2C:I2C功能使能控制位
0:禁止I2C功能
1:允许I2C功能
MSSL:I2C工作模式选择位
0:从机模式
1:主机模式
MSSPEED[5:0]:I2C总线速度控制
I2C总线速度=FOSC/2/(MSSPEEED*2+4)
注意:只有当I2C模块在主机模式时,MSSPEED参数设置的等待参数才有效。此参数主要用于I2C起始信号和中止信号的建立和保持时间的设置。
I2CMSCR:主机控制寄存器
符号 |
描述 |
地址 |
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
I2CMSCR |
主机控制寄存器 |
FE81H |
EMSI |
- |
- |
- |
MSCMD[3:0] |
EMSI:主机模式中断使能控制位
0:关闭主机模式的中断
1:开启主机模式的中断
MSCMD[3:0]:主机命令
0000:待机,无动作
0001:起始指令,发送起始信号。
0010:发送数据指令
0011:接收ACK命令
0100:接收数据命令