📄 24c04.c
字号:
/*
这个可以测试2404是否已经可以工作了
欢迎我们一块儿交流
xiaoyudz@tom.com
*/
#include<reg51.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SCL=P1^6;
sbit SDA=P1^7;
sbit led=P1^0;
sbit key=P1^2;
sbit led2=P1^1;
//定时函数
void DelayMs(unsigned int number)
{
unsigned char temp;
for(;number>=1;number--)
{
for(temp=112;temp>=1;temp--) ;
}
}
////////////start//////////////
start_iic()
{
SDA=1;
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SDA=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
}
///////////stop ////////////////
stop_iic()
{
SDA=0;
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SDA=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
//////////ack ///////////////
ack_iic()
{
SDA=0;
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
SDA=1;
SCL=0;
}
/////////nack/////////////////
nack_iic()
{
SDA=1;
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
SDA=0;
SCL=0;
}
/////////write_byte///////////////////
write_byte(uchar c)
{
uchar i;
for (i=0;i<8;i++)
{
if(c&0x80)SDA=1;
else SDA=0;
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
c=c<<1;
}
SCL=0;
DelayMs(10);
}
/////////read_byte begin///////////////////
uchar read_byte()
{
uchar i;
uchar r=0;
SDA=1;
for(i=0;i<8;i++)
{
r=r<<1;
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
if(SDA==1)r++;
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
}
SCL=0;
return r;
}
void main(void)
{ uchar j=0;
while(1)
{
if(!key)
{
start_iic();
write_byte(0xa0);////send order
ack_iic();
write_byte(j);/////send address
ack_iic();
write_byte(j);////send data
ack_iic();
stop_iic();///////////
DelayMs(10);
//////////////////////////////
start_iic();
write_byte(0xa0);////send order
ack_iic();
write_byte(j);////send ADDress
ack_iic();
////////////////read ready
start_iic();
write_byte(0xa1);////send order
ack_iic();
P2=read_byte();/////read
SCL=0;
nack_iic();
stop_iic();
while(!key);
j++;
}}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -