1 / 5
文档名称:

51程序.doc

格式:doc   大小:26KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

51程序.doc

上传人:xgs758698 2018/11/12 文件大小:26 KB

下载得到文件列表

51程序.doc

文档介绍

文档介绍:#include <>
#include <>
sbit scl=P3^7; //I2C时钟线
sbit sda=P3^6; //I2C数据线
bit write=0;
unsigned char code ledmap[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //共阴极编码
unsigned char num,sec,ledbuf[6];
void delay(unsigned int z )
{
unsigned char i; //显示用的延时程序
while(--z)
for(i=110;i>0;i++);
}
void delayus(void)
{;;}
void initi2c(void)
{
sda=1;
delayus(); //I2C初始化
scl=1;
delayus();
}
void i2cstart(void)
{
sda=1;
delayus(); //i2c起始信号
scl=1;
delayus();
sda=0;
delayus();
}
void ack()
{
unsigned char i;
scl=1;
i=0; //i2c的应答信号
delayus();
while((sda==1)&&(i<255))
i++;
scl=0;
delayus();
}

void i2cstop(void)
{
sda=0;
delayus();
scl=1; //i2c的停止信号
delayus();
sda=1;
delayus();
}
void i2csend(unsigned char byte)
{unsigned char mask,i;
mask=byte;
for(i=0;i<8;i++) //I2C发送一个字节数据
{
mask=mask<<1; //从最高位开始传送
scl=0; //按照I2C的协议传送数据时,SCL边低
delayus();
sda=CY; //传送
delayus();
scl=1;
delayus();
}
scl=0;
delayus(); //传送完后,scl变低
sda=1; //传送完毕后拉高数据线
delayus();
}
unsigned char i2cread(void)
{
unsigned char byte,i;
scl=0;
delayus();
sda=1;
delayus(); //接收8位数据子程序
for(i=0;i<8;i++)
{
//读一个字节
scl=1; //读的时候SCL为高,稳定数据
delayus();
byte<<=1;
byte|=sda;
scl=0;
delayus();
}
return byte;
}
unsigned char read_eeprom(unsigned char addr)
{
unsigned char databyte; //读取EEPROM数据函数
i2cstart();