#include<reg52.h>
#define unchar unsigned char
sbit sda=P2^0;
sbit scl=P2^1;
unchar z,flag,flag_a,date,address,a,b,sheng,jiang;
sbit up=P3^7;
sbit down=P3^6;
sbit x=P1^0;//升按键
sbit y=P1^1;//降按键
void delay();
void start()
{
scl=1;
sda=1;
delay();
sda=0;
delay();
scl=0;
//flag=1;
}
void stop()
{
scl=1;
sda=0;
delay();
sda=1;
delay();
scl=0;
//flag=0;
}
void answer()
{
sda=0;
delay();
scl=1;
delay();
scl=0;
delay();
sda=1;
}
void _answer1()
{
sda=1;
delay();
scl=1;
delay();
scl=0;
delay();
}
void jcanswer()
{
unchar i,j;
while(1)
{
if(scl==1)
{
while(i<255)
{
i++;
if(sda==0)
{flag_a=1;i=255;j=1;}
}
if(!j)
{
flag_a=0;
i=0;
}
j=0;
}
}
}
void init()
{
sda=1;
scl=1;
flag=0;
address=0;
sheng=0;
jiang=0;
up=0;
down=0;
}
void delay()
{
; ; ;
}
void delay_1(unchar z)
{
unchar i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void jcstart()
{
if((scl==1)&&(sda==1))
{
if(sda==0)
flag=1;
}
}
void jcstop()
{
if((scl==1)&&(sda==0))
{
if(sda==1)
flag=0;
}
}
void write(unchar date)
{
unchar i,j;
//start();
delay();
j=date;
for(i=0;i<8;i++)
{
j=j<<1;
scl=0;
delay();
sda=CY;
delay();
scl=1;
while(!scl);
delay();
}
scl=0;
delay();
sda=1;
delay();
}
unchar read()
{
unchar i,k;
scl=0;
sda=1;
delay();
for(i=0;i<8;i++)
{
while(!scl);
delay();
k=(k<<1)|sda;
scl=0;
delay();
}
return k;
}
void address1()
{
if(0x00==read())
address=1;
}
void anjian()
{
if(P1^0==0)
{
delay_1(5);
if(x==0)
{ sheng=1;y=1;}
while(P1^0==0);
}
if(P1^1==0)
{
delay_1(5);
if(y==0)
{ jiang=1;x=1;}
while(P1^1==0);
}
}
void main()
{
init();
while(1)
{
jcstart();
address1();
jcstop();
anjian();
if(address&&flag)
{
answer();
a=read(); //上还是下
answer();
b=read(); //多少层
_answer1();
}
if(sheng&&jiang)
{
start();
write(0x00); //向上位机发信息(地址)
jcanswer();
if(flag_a)
{
}
}
}
}
I^2C.zip_IIC 测试
版权申诉
72 浏览量
2022-09-24
03:58:01
上传
评论
收藏 14KB ZIP 举报
局外狗
- 粉丝: 66
- 资源: 1万+
最新资源
- python-leetcode面试题解之第198题打家劫舍-题解.zip
- python-leetcode面试题解之第191题位1的个数-题解.zip
- python-leetcode面试题解之第186题反转字符串中的单词II-题解.zip
- 一个基于python的web后端高性能开发框架,下载可用
- python-leetcode面试题解之第179题最大数-题解.zip
- python-leetcode面试题解之第170题两数之和III数据结构设计-题解.zip
- python-leetcode面试题解之第168题Excel表列名称-题解.zip
- python-leetcode面试题解之第167题两数之和II输入有序数组-题解.zip
- python-leetcode面试题解之第166题分数到小数-题解.zip
- python-leetcode面试题解之第165比较版本号-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈