/*************************************************************** “天祥电子” 倾情奉献 www.txmcu.com www.txmcu.cn ***************************************************************** 程序功能: 驱动 AT24C02EEPROM芯片,实现对其的读和写。让其保存计时器的输出sec值。 并可以保证在系统掉电后,重新加电时,可以读出上次掉电瞬间所保存的值。 演示方法: 下载程序后,数码管开始显示自加数值。片刻后,关闭学习板 电源,然后打开,会发现数码管上显示的数值是断电瞬间所显 示的数值。(也即由AT24C02EEPROM芯片所记忆的数值。) ***************************************************************/ //试验AT24C02EEPROM芯片程序 #include #include #define uint unsigned int #define uchar unsigned char unsigned char sec,num; //定义计数值,每过1秒,sec加1 unsigned int times; //定时中断次数 bit write=0; //写24C02的标志; sbit sda=P2^0; //IO口定义 sbit scl=P2^1; sbit dula=P2^6; sbit wela=P2^7; unsigned char j,k; void delay(unsigned char i) //延时程序 { for(j=i;j>0;j--) for(k=125;k>0;k--); } uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //数码管编码 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void nop() { _nop_(); _nop_(); } void display(uchar a,uchar b) //显示程序 { dula=0; P0=table[a]; //显示百位 dula=1; dula=0; wela=0; P0=0x7e; wela=1; wela=0; delay(5); dula=0; P0=table[b]; //显示十位 dula=1; dula=0; wela=0; P0=0x7d; wela=1; wela=0; delay(5); } /////////24C02读写驱动程序//////////////////// void delay1(unsigned char m) { unsigned int n; for(n=0;n