下载此文档

51程序.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
#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();

51程序 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xgs758698
  • 文件大小26 KB
  • 时间2018-11-12