我们来讲解下程序的基本思路:我们使能了MSSP中断,即是I2C接收中断,当PIC单片机接收到一个数据后就会产生中断。那是接收到设备地址,还是接收到数据,由SSP1STAT寄存器的状态位来判断。 需要判断的状态位分别是 : 数据和地址: 用来判断接收到是地址还是数据 启动位: 用来判断是否接收到启动位 读写: 用来判断是写状态还是读状态。 缓存满: 用来判断缓冲区是否满 我们以随机地址读取为例:讲讲程序执行的过程 1,从单片机接收到启示位和设备地址中断:我们判断SSP1STAT的状态位为(写状态,地址,缓存满,接收到启示位) 然后读取缓存中的设备地址, 接着在读取 需要读/写的数据地址。 2,单片机再次接收到设备地址:我们判断是SSP1STAT的状态为(读状态)然后从设备就输出数据
|