理论教育 小白也会!24C02C读写程序设计

小白也会!24C02C读写程序设计

时间:2023-10-19 理论教育 版权反馈
【摘要】:编程实现每重启一次单片机,就把单片机的重启次数显示在数码管上,设重启次数保存在24C02C的0x04地址处。电路图在光盘位置:“\Example\Chapter11\S113\24C02C.DSN”。A2到A0接地使U2的I2C从机地址为0b1010000。图11-27 PIC16F877读/写24C02C实验原理图●24C02C的控制代码也写成了模块形式,但需要I2C主模式模块文件的支持。4)新建24C02C.C文件并加入项目中,其内容如下所示。启动VSM后运行程序。10)读者可以用I2C调试器观察I2C接口上的数据帧格式来具体理解EEPROM的读/写过程。图11-28 24C02C中使用的复合数据帧格式

小白也会!24C02C读写程序设计

【例11-3】电路图如图11-27所示。编程实现每重启一次单片机,就把单片机的重启次数显示在数码管上,设重启次数保存在24C02C的0x04地址处。按S1则清空重启次数。

电路图在光盘位置:“\Example\Chapter11\S113\24C02C.DSN”。

题意分析

●S1状态可以由RB7得知,所以RB7应为输入状态。数码管X1由PORTD控制,所以PORTD应为输出状态。为了简化电路图,限流电阻未加。

●U1通过硬件I2C与EEPROM相连,所以RC3和RC4都应为输入状态。

●WP接地使写保护失效便于写入数据。A2到A0接地使U2的I2C从机地址为0b1010000。

●图11-27中的U3是I2C调试器,读者在调试此例子时可以用此调试器来观察I2C总线上的信号是否合理。

●为了便于读者使用此代码,本例将PIC16F877的硬件I2C主模式操作代码写成了模块形式便于读者重复利用。

978-7-111-33274-9-Chapter11-59.jpg

图11-27 PIC16F877读/写24C02C实验原理图

●24C02C的控制代码也写成了模块形式,但需要I2C主模式模块文件的支持。

设计过程

1)用MPLAB新建项目S113,语言工具选择为“HI-TECH Universal Toolsuite”,保存在C盘根文件夹下。

2)新建main.c文件并加入项目中,其内容如下所示(本项目所有源码内容参考光盘“\Example\Chapter11\S113”文件夹内容)。

978-7-111-33274-9-Chapter11-60.jpg

978-7-111-33274-9-Chapter11-61.jpg

3)新建24C02C.H文件并加入项目中,其内容如下所示。

978-7-111-33274-9-Chapter11-62.jpg(www.daowen.com)

4)新建24C02C.C文件并加入项目中,其内容如下所示。

978-7-111-33274-9-Chapter11-63.jpg

978-7-111-33274-9-Chapter11-64.jpg

5)新建877_I2C.H文件并加入项目中,其内容如下所示。

978-7-111-33274-9-Chapter11-65.jpg

6)新建877_I2C.C文件并加入项目中,其内容如下所示。

978-7-111-33274-9-Chapter11-66.jpg

978-7-111-33274-9-Chapter11-67.jpg

978-7-111-33274-9-Chapter11-68.jpg

7)新建delay.H文件并加入项目中,其内容如下所示。

978-7-111-33274-9-Chapter11-69.jpg

8)新建delay.C文件并加入项目中,其内容如下所示。

978-7-111-33274-9-Chapter11-70.jpg

9)把项目保存后成功编译出目标文件。然后用调试工具Proteus VSM加载24C02C.DSN。启动VSM后运行程序。程序运行效果是每重新运行一次(按运行工具栏中的复位按钮978-7-111-33274-9-Chapter11-71.jpg或停止VSM后重启VSM重新运行程序),则程序数码管X1上显示数字会加1(不能大于10)。按一次按钮S1后数码管上显示0。

10)读者可以用I2C调试器观察I2C接口上的数据帧格式来具体理解EEPROM的读/写过程。EEPROM的读过程采用复合数据帧格式,如图11-28所示。读者可以阅读read_ext_eeprom函数内容来理解复合数据帧格式的编程方法。

978-7-111-33274-9-Chapter11-72.jpg

图11-28 24C02C中使用的复合数据帧格式

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈