【摘要】:本程序利用ATmega16单片机本身的EEPROM协议进行数据的存储,当按复位或者重新打开电源开关一次的话,计数值将加1一次,并在LED数码管上显示当前开关机次数的二进制代码。当加满后,再次从0开始计数。图10-24 AT24C02与ATmega16的连接在下面的程序解释中,只给出各个功能模块的解释,完整的程序代码读者可参考光盘中的内容。3)I2C总线启动函数。8)单片机通过I2C总线向AT24C02指定地址上写1B数据函数。
本程序利用ATmega16单片机本身的EEPROM协议进行数据的存储,当按复位或者重新打开电源开关一次的话,计数值将加1一次,并在LED数码管上显示当前开关机次数的二进制代码。当加满后,再次从0开始计数。
图10-24 AT24C02与ATmega16的连接
在下面的程序解释中,只给出各个功能模块的解释,完整的程序代码读者可参考光盘中的内容。
●目的:利用本身EEPROM协议存储。
●功能:利用EEPROM进行开机计数。
●时钟频率:内部1MHz。
●编译环境:ICC-AVR6.31。
●使用硬件:8位LED。
●结果:8位LED显示0~255的二进制代码,满后自动溢出为0。
●操作要求:按复位或者重新打开电源开关一次,LED显示的数值加1。
1)EEPROM读取函数。其中addr表示要读的数据的地址;number表示要读取的数据的长度;p_buff表示读出数据存放指针。
2)EEPROM写入函数。其中addr表示要读的数据的地址;number表示要读取的数据的长度;p_buff表示读出数据存放指针。
(www.xing528.com)
3)I2C总线启动函数。
4)I2C总线停止函数。
5)单片机通过I2C接口写数据函数。
6)单片机通过I2C接口读数据函数。
7)单片机通过I2C总线从AT24C02指定地址上读出1B数据函数。
8)单片机通过I2C总线向AT24C02指定地址上写1B数据函数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。