断电可保存~实测可用,eeprom定义什么的就不贴了。
void delay(uchar z)//延时函数 { uchar x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void init() //定时器初始化 { TMOD=0X01; TH0=(65536-100)/256; TL0=(65536-100)%256; EA=1; ET0=1; TR0=1; } void time0() interrupt 1 //控制灯的状态 { TH0=(65536-100)/256; TL0=(65536-100)%256; ++i; if(i==10) {i=0;} if(i<=zkb) {led=1;} else led=0; } void keyscan() //按键扫描 { P3=0XFF; if(key1==0) { delay(10); if(key1==0) { while(!key1); if(zkb<9) zkb++; SectorErase(0x2000); byte_write(0x2000,zkb); } } if(key2==0) { delay(10); if(key2==0) { while(!key2); if(zkb>0) zkb--; SectorErase(0x2000); byte_write(0x2000,zkb); } } } void main() {//zkb=2; zkb=byte_read(0x2000); init(); while(1) { keyscan(); } }