I2C主模式数据接收过程的硬件连接与主模式数据发送过程的硬件连接完全相同。请参考11.2.4节学习其硬件连接方法。下面介绍I2C主模式数据接收过程的程序设计方法。
为了使读者能直观地看到数据发送的效果,本节以两片PIC16F877单片机通过I2C进行通信为例子来介绍PIC单片机的I2C主模式数据接收的编程方法。
【例11-2】电路图如图11-18所示。编程实现每按一次按钮S1,从U2接收一个字节,并显示在数码管X1上。
电路图在光盘位置:“\Example\Chapter11\S112\MstrRcv.DSN”。
图11-18 I2C主模式接收方调试用电路图
题意分析
●按钮S1的状态可以通过读取RC0得知,所以RC0应为输入状态。
●想从U2读取数据,如图11-18所示的连接方法可以使用硬件I2C方式进行通信。
●U1采用硬件I2C模块,所以RC3/SCL和RC4/SCK都应为输入状态。
●本程序需要双机通信:主机接收和从机发送,为了突出介绍重点,本例只关心主机接收过程的实现。
●图11-18中标有I2C字样的仪器是ISIS中的虚拟I2C调试器,在电路运行过程中会显示I2C总线上的各种数据信号。(www.daowen.com)
设计过程
1)用MPLAB新建项目S112,语言工具选择为“HI-TECH Universal Toolsuite”,保存在“C:\S112”文件夹下。
2)新建main.c文件并加入项目中,其内容如下所示(本项目所有源码内容参考光盘“\Example\Chapter11\S112”文件夹内容)。
3)把项目保存后成功编译出目标文件S112.cof。然后用调试工具Proteus VSM加载MstrRcv.DSN(若想在其他文件夹使用此电路图,请连同SlaveSend.hex文件一起复制)。启动VSM后运行程序。程序运行效果是每按一次按钮S1,X1上显示的数字就加1。
4)在程序运行时,默认会显示I2C调试器典型读数据帧显示界面,如图11-19所示。若无此界面,可以单击Proteus VSM窗口的I2C图标来显示。
图11-19 I2C调试器典型读数据帧显示界面
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。