C51 COMPILER V8.02 24C02 07/09/2010 08:54:13 PAGE 1 C51 COMPILER V8.02, COMPILATION OF MODULE 24C02 OBJECT MODULE PLACED IN 24c02.OBJ COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE 24c02.c BROWSE DEBUG OBJECTEXTEND line level source 1 /*************************************************************** 2 “天祥电子” 倾情奉献 3 www.txmcu.com 4 www.txmcu.cn 5 ***************************************************************** 6 程序功能: 驱动 AT24C02EEPROM芯片,让其保存sec值。 7 演示方法: 下载程序后,数码管开始显示自加数值。片刻后,关闭学习板 8 电源,然后打开,会发现数码管上显示的数值是断电瞬间所显 9 示的数值。(也即由AT24C02EEPROM芯片所记忆的数值。) 10 ***************************************************************/ 11 //试验AT24C02EEPROM芯片程序 12 #include 13 #include 14 #define uint unsigned int 15 #define uchar unsigned char 16 unsigned char sec,num; //定义计数值,每过1秒,sec加1 17 unsigned int times; //定时中断次数 18 bit write=0; //写24C02的标志; 19 sbit sda=P2^0; //IO口定义 20 sbit scl=P2^1; 21 sbit dula=P2^6; 22 sbit wela=P2^7; 23 unsigned char j,k; 24 25 void delay(unsigned char i) //延时程序 26 { 27 1 for(j=i;j>0;j--) 28 1 for(k=125;k>0;k--); 29 1 } 30 31 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //数码管编码 32 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; 33 34 void nop() 35 { 36 1 _nop_(); 37 1 _nop_(); 38 1 } 39 void display(uchar a,uchar b) //显示程序 40 { 41 1 dula=0; 42 1 P0=table[a]; //显示百位 43 1 dula=1; 44 1 dula=0; 45 1 46 1 wela=0; 47 1 P0=0x7e; 48 1 wela=1; 49 1 wela=0; 50 1 delay(5); 51 1 52 1 dula=0; 53 1 P0=table[b]; //显示十位 54 1 dula=1; 55 1 dula=0; C51 COMPILER V8.02 24C02 07/09/2010 08:54:13 PAGE 2 56 1 57 1 wela=0; 58 1 P0=0x7d; 59 1 wela=1; 60 1 wela=0; 61 1 delay(5); 62 1 63 1 } 64 65 /////////24C02读写驱动程序//////////////////// 66 void delay1(unsigned char m) 67 { unsigned int n; 68 1 for(n=0;n