这个实验实现对avr内部eeprom的读写,实现记录开机次数的功能.详情见附件.
平台:FDRAVR开发板
代码:
#include <mega16.h>
#include <delay.h>
eeprom uchar times; //记录开机次数
//num,要显示的数据(0~9);pos,要显示的位置(从右到左)
void display(uchar num,uchar pos)
{
DDRA="0XFF";//定义PORTA口输出
PORTA="0XFF";//输出高电平
switch(pos)
{
case 3:PORTA=0X01;break;
case 2:PORTA=0X02;break;
case 1:PORTA=0X04;break;
case 0:PORTA=0X08;break;
default:PORTA=0X00;
}
num<<=4;//取数字,送CD4511
PORTA|=num;
}
void main()
{
uchar t="0";
if(times==255)times=0;//如果溢出,或者没有初始化,则清零
else times++;//开机加一
t="times";
while(1)
{
display(t%10,0);delay_ms(5);//显示
display((t/10)%10,1);delay_ms(5);
display((t/100)%10,2);delay_ms(5);
}
}
文章评论(0条评论)
登录后参与讨论