/*************************************************************** “天祥电子” 倾情奉献 www.txmcu.com www.txmcu.cn ***************************************************************** 程序功能: 由于24c02是每个存储地址只对应8个bit的存储空间,即一个 存储单元所存储的数据最大为255,该例程介绍了一种当所记忆 数据大于255(而小于65536)的存储方法。即用两个存储单元来 存储一个数据。 下载程序后,数码管会显示所设定的num值(此处设为12345)。 ***************************************************************/ #include #include #define uint unsigned int #define uchar unsigned char uint num,num1,num2; //定义计数值,每过1秒,sec加1 sbit sda=P2^0; //IO口定义 sbit scl=P2^1; sbit dula=P2^6; sbit wela=P2^7; sbit s1=P3^4;//计数按键 sbit s2=P3^5;//清零按键 unsigned char j,k; char a,b,c,d,e; 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,b,c,d,e) //显示程序 { dula=0; P0=table[a]; //显示万位 dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(5); dula=0; P0=table[b]; //显示千位 dula=1; dula=0; wela=0; P0=0xfd; wela=1; wela=0; delay(5); dula=0; P0=table[c]; //显示百位 dula=1; dula=0; wela=0; P0=0xfb; wela=1; wela=0; delay(5); dula=0; P0=table[d]; //显示十位 dula=1; dula=0; wela=0; P0=0xf7; wela=1; wela=0; delay(5); dula=0; P0=table[e]; //显示个位 dula=1; dula=0; wela=0; P0=0xef; wela=1; wela=0; delay(5); } /////////24C02读写驱动程序//////////////////// void delay1(unsigned int m) { unsigned int n; for(n=0;n