首页 理论教育 零点起步:AVR单片机开发与实例详解

零点起步:AVR单片机开发与实例详解

时间:2023-10-17 理论教育 版权反馈
【摘要】:本程序利用ATmega16单片机本身的EEPROM协议进行数据的存储,当按复位或者重新打开电源开关一次的话,计数值将加1一次,并在LED数码管上显示当前开关机次数的二进制代码。当加满后,再次从0开始计数。图10-24 AT24C02与ATmega16的连接在下面的程序解释中,只给出各个功能模块的解释,完整的程序代码读者可参考光盘中的内容。3)I2C总线启动函数。8)单片机通过I2C总线向AT24C02指定地址上写1B数据函数。

零点起步:AVR单片机开发与实例详解

本程序利用ATmega16单片机本身的EEPROM协议进行数据的存储,当按复位或者重新打开电源开关一次的话,计数值将加1一次,并在LED数码管上显示当前开关机次数的二进制代码。当加满后,再次从0开始计数。

978-7-111-35161-0-Chapter10-116.jpg

图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表示读出数据存放指针

978-7-111-35161-0-Chapter10-117.jpg

2)EEPROM写入函数。其中addr表示要读的数据的地址;number表示要读取的数据的长度;p_buff表示读出数据存放指针。

978-7-111-35161-0-Chapter10-118.jpg(www.xing528.com)

978-7-111-35161-0-Chapter10-119.jpg

3)I2C总线启动函数。

978-7-111-35161-0-Chapter10-120.jpg

4)I2C总线停止函数。

978-7-111-35161-0-Chapter10-121.jpg

5)单片机通过I2C接口写数据函数。

978-7-111-35161-0-Chapter10-122.jpg

6)单片机通过I2C接口读数据函数。

978-7-111-35161-0-Chapter10-123.jpg

7)单片机通过I2C总线从AT24C02指定地址上读出1B数据函数。

978-7-111-35161-0-Chapter10-124.jpg

8)单片机通过I2C总线向AT24C02指定地址上写1B数据函数。

978-7-111-35161-0-Chapter10-125.jpg

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

我要反馈