欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
i2c加24c02仿真和程序
[打印本頁(yè)]
作者:
蔡定銀
時(shí)間:
2018-6-11 19:56
標(biāo)題:
i2c加24c02仿真和程序
i2c加24c02仿真和程序,具體見(jiàn)附件壓縮包,如有錯(cuò)誤,請(qǐng)指正。
#include "reg51.h"
#include "intrins.h" //包含有函數(shù)_ nop 0的頭文件
#define uchar unsigned char
#define uint unsigned int
#define out P0
sbit scl=P1^1;
sbit sda=P1^0;
sbit key1=P3^2;
sbit key2=P3^3;
uchar data mem[4]_at_ 0x55;
uchar mem[4] = {0x41,0x42,0x43,0xaa};
uchar data rec_mem[4]_at_ 0x60;
void start(void);
void stop(void);
void sack(void);
bit rack(void);
void ackn(void);
void send_byte(uchar);
uchar rec_byte(void);
void write(void);
void read(void);
void delay4us(void);
void main(void)
{
EA=1;
EX0=1;
EX1=1;
while(1);
}
void ext0()interrupt 0
{
write();
}
void ext1()interrupt 2
{
read();
}
void read(void)
{
uchar i;
bit f;
start();
send_byte(0xa0);
f=rack();
if(!f)
{
start();
send_byte(0xa0);
f=rack();
send_byte(0x00);
f=rack();
if(!f)
{
start();
send_byte(0xa1);
f=rack();
if(!f)
{
for(i=0;i<3;i++)
{
rec_mem[i]=rec_byte();
sack();
}
rec_mem[3]=rec_byte();
ackn();
}
}
}
stop();out=rec_mem[3];while(!key2);
}
void write(void)
{
uchar i;
bit f;
start();
send_byte(0xa0);
f=rack();
if(!f){
send_byte(0x00);
f=rack();
if(!f){
for(i=0;i<4;i++)
{
send_byte(mem[i]);
f=rack();
if(f)break;
}
}
}
stop();
out=0xc3;
while(!key1);
}
void start(void)
{
scl=1;
sda=1;
delay4us();
sda=0;
delay4us();
scl=0;
}
void stop(void)
{
scl=0;
sda=0;
delay4us();
scl=1;
delay4us();
sda=1;
delay4us();
sda=0;
}
bit rack(void)
{ //接收一個(gè)應(yīng)答位
bit flag;
scl=1;
delay4us();
flag=sda;
scl=0;
return(flag);
}
void sack(void)
{ sda=0;
delay4us();
scl=1;
delay4us();
scl=0;
delay4us();
sda=1;
delay4us();
}
void ackn(void)
{ sda=1;
delay4us();
scl=1;
delay4us();
scl=0;
delay4us();
sda=0;
}
uchar rec_byte(void)
{ uchar i,temp;
for(i=0;i<8;i++)
{
temp<<=1;
scl=1;
delay4us();
temp|=sda;
scl=0;
delay4us();
}
return(temp);
}
void send_byte(uchar temp)
{ uchar i;
scl=0;
for(i=0;i<8;i++)
{
sda=(bit)(temp&0x80);
scl=1;
delay4us();
scl=0;
temp<<=1;
}
sda=1;
}
void delay4us(void)
{
_nop_();_nop_(); _nop_(); _nop_();
}
復(fù)制代碼
24c02.rar
2018-6-11 19:55 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
64.41 KB, 下載次數(shù): 41, 下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1