⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iiczongxian.c

📁 C51 程序练习
💻 C
字号:
#include <reg52.h>
#define uchar unsigned char
sbit sda=P2^1;
sbit scl=P2^0;
void delay()
{;;}//空语句5ms左右
void star()
{
	sda=1;
	delay();
	scl=1;
	delay();
	sda=0;
	delay();//起始信号
}
void stop()
{
	sda=0;
	delay();
	scl=1;
	delay();
	sda=1;
	delay();//停止信号
}
void respons()//应答信号
{
	uchar i;
	scl=1;
	delay();
	while((sda==1)&(i<250))i++;
	scl=0;
	delay();
}
void init()
{
	sda=1;
	scl=1;
}
void write_byte(uchar date)//写入字节
{
	uchar i,temp;
	temp=date;
	for(i=0;i<8;i++)//8次
		{
			temp=temp<<1;//左移一位
			scl=0;
			delay();
			sda=CY;
			delay();
			scl=1;
			delay();
			
		}
	scl=0;
	delay();
	sda=1;//总线释放
	delay();
}
uchar read_byte()
{
	uchar i,j,k;
	scl=0;
	delay();
	sda=1;
	delay();
	for(i=0;i<0;i++)
	{
		scl=1;
		delay();
		if(sda==1)
			j=1;
		else
			j=0;
		k=(k<<1)|j;//l左移一位与j或运算
		scl=0;
		delay();
		
	}
	delay();
	return k;
}
void main()
{
	init();//初始化拉高
	star();//起始
	write_byte(0xa0);//器件地址写入1010 000 0器件地址
	respons();//应答
	write_byte(3);//地址数据
	respons();//应答
	write_byte(0xfe);//写数据
	respons();
	stop();

	star();
	write_byte(0xa0);
	respons();
	write_byte(3);
	respons();
	star();
	write_byte(0xa1);//读
	respons();
	P1=read_byte();//读数据
	stop();
	while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -