本节通过一个程序例子来综合前文所述的内容,实现25C080的读/写控制。
【例10-3】电路图如图10-14所示。编程实现每按一次按钮S1,就把总的按键次数写入25C080的0x134地址处,然后从0x134地址读出一个字节数据并送数码管显示。
电路图在光盘位置:“\Example\Chapter10\S103\SPIEEPROM.DSN”。
题意分析
●在本电路图中,为了简化程序设计,把保持信号直接接高电平,即U3一直有效。要想写入数据,则SW1必须与高电平相连。
●S1状态可以由RB4得知,所以RB4应为输入状态。数码管X1由PORTD控制,所以PORTD应为输出状态。为了简化电路图,限流电阻未加。U3的片选信号由U1的RC1控制,所以RC应为输出状态。
●图10-14中的U2是为ISIS软件提供的虚拟仪器—SPI调试器。其连接方法如图10-14所示。当电路图运行时,U2会弹出SPI接口上收发的数据(见图10-15),便于用户调试基于SPI接口方式的程序。
图10-15 SPI调试器的工作界面
●由于PIC16F877是主控方,所以应该由单片机提供时钟,RC3/SCK为输出,RC5/SDO为输出,RC4/SDI为输入。
●为了便于读者使用此代码,本书把25C080的控制代码写成了模块形式,便于读者重复利用。
设计过程
1)用MPLAB新建项目S103,语言工具选择为“HI-TECH Universal Toolsuite”,保存在“C:\S103”文件夹下。(www.daowen.com)
2)新建main.c文件并加入项目中,其内容如下所示(本项目所有源码内容参考光盘“\Example\Chapter10\S103”文件夹内容)。
3)新建25LC256.H文件并加入项目中,其内容如下所示。
4)新建25LC256.C文件并加入项目中,其内容如下所示。
5)把项目保存后成功编译出目标文件。然后用调试工具Proteus VSM加载SPIEEPROM.DSN。启动VSM后运行程序。程序运行效果是每按一次S1后,数码管X1上会显示S1按过总次数(不能大于10)。
6)读者可以用SPI调试器观察SPI接口上的数据来具体理解EEPROM的读/写过程。若运行时未显示SPI调试器运行界面,则可以单击Proteus VSM窗口的SPI调试器图标,如图10-16所示。
图10-16 SPI调试器图标位置
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。