的I2C微型荤编码

A

ammmmu

Guest
亲爱的朋友们,

我需要的I2C mikro荤编码石化16F877A请帮助我的朋友.....

 
Galaxy S5 z pewnością nie spełnił pokładanych w nim nadziei i choć jest doskonalszy niż jego poprzednik, to jednak lista zmian była zdaniem redaktorów i użytkowników zbyt mała. Dlatego też producent postanowił wprowadzić do oferty jeszcze jedną wersję o symbolu S5 Prime, która będzie udoskonaloną "espiątką". Zmiany są widoczne na każdym kroku. Po p...

Read more...
 
下面是I2C通信代码为我所!
是8051微控制器,但十分方便地通过任何微生物。

在Keil C语言书写的!

如果你想用汇编你可以找到净吧!

 
24XX512.h
#包括“i2c.h”/ *需要I2C总线* /

#定义EEPROMS_ID 0xA0 / * Microchip的24xx512 * /

无符号字符EEPROM_get(无符号整型地址)

无符号字符逸;

I2C_start(); / *启动I2C总线* /

I2C_write(EEPROMS_ID)/ *连接到EEPROM * /
I2C_write(地址&0xF0); / *请求RAM地址(Hight字节)* /
I2C_write(地址&0x0F); / *请求RAM地址(低字节)* /

I2C_start(); / *启动I2C总线* /

I2C_write(EEPROMS_ID 1)/ *连接到EEPROM的读* /
逸= I2C_read()/ *接收数据* /

I2C_noack();

I2C_stop()/ *停止I2C总线* /

返回逸;


无效EEPROM_set(无符号整型地址为unsigned char val)将

I2C_start();

I2C_write(EEPROMS_ID)/ *连接到EEPROM * /
I2C_write(地址&0xF0); / *请求RAM地址(Hight字节)* /
I2C_write(地址&0x0F); / *请求RAM地址(低字节)* /

I2C_write(val)的; / *写在RAM上指定的地址*秒/

I2C_stop()/ *停止I2C总线* /
)46秒后增加:

i2c.h#定义SDA的P2_2 / *设置P2.7 = SDA的* /
#定义中线P2_3 / *设置P2.6 =中线* /
#定义I2C_DELAY 0x0F / *延误I2C总线* /

无效I2C_delay(无效)

无符号的字符一;

为(1 = 0;“I2C_DELAY,我 );


无效I2C_clock(无效)

I2C_delay();

沙田至中环线= 1; / *开始时钟* /

I2C_delay();

沙田至中环线= 0; / *清除沙田至中环线* /


无效I2C_start(无效)

如果(沙中线)
沙田至中环线= 0; / *清除沙田至中环线* /

SDA的= 1; / *设置SDA的* /
沙田至中环线= 1; / *设置沙* /

I2C_delay();

SDA的= 0; / *清除SDA的* /

I2C_delay();

沙田至中环线= 0; / *清除沙田至中环线* /


无效I2C_stop(无效)

如果(沙中线)
沙田至中环线= 0; / *清除沙田至中环线* /

SDA的= 0; / *清除SDA的* /
I2C_delay();

沙田至中环线= 1; / *设置沙* /

I2C_delay();

SDA的= 1; / *设置SDA的* /


位I2C_write(无符号字符逸)

位data_bit;
无符号的字符一;

为(1 = 0;“8,我 )/ * For循环8时(发送数据1字节)* /

data_bit =逸&0x80; / *过滤的MSB位坚持data_bit * /
SDA的= data_bit; / *发送data_bit的SDA的* /

I2C_clock(); / *征集数据发送到I2C总线* /

逸=逸“”1;


SDA的= 1; / *设置SDA的* /

I2C_delay();

沙田至中环线= 1; / *设置沙* /

I2C_delay();

data_bit = SDA的; / *检查确认* /
沙田至中环线= 0; / *清除沙田至中环线* /

I2C_delay();

返回data_bit; / *如果send_bit = 0 I2C是有效* /


无符号字符I2C_read(无效)

位rd_bit;
无符号的字符我,逸;

逸= 0x00;

为(1 = 0;“8,我 )/ * For循环读取数据,1字节* /

I2C_delay();

沙田至中环线= 1; / *设置沙* /

I2C_delay();

rd_bit = SDA的; / *保持了检查确认* /
逸=逸“”1;
逸=逸| rd_bit; / *请溢位数据* /

沙田至中环线= 0; / *清除沙田至中环线* /


返回逸;


无效I2C_ack()

SDA的= 0; / *清除SDA的* /

I2C_delay();

I2C_clock(); / *征集数据发送到I2C总线* /

SDA的= 1; / *设置SDA的* /


无效I2C_noack()

SDA的= 1; / *设置SDA的* /

I2C_delay();

I2C_clock(); / *征集数据发送到I2C总线* /

沙田至中环线= 1; / *设置沙* /
)1分钟后添加:

主要的#包括<AT89X51.H>
#包括“24xx512.h”

无符号整型德尔,我十,温度;

字符getCharacter(无效)

字符人权中心; / /变量来保存新的字符
而(里!= 1)(;)
人权中心= SBUF的;
里= 0;
返回(人权中心);

无效发送(字符1)

SBUF的= 1;
同时公司(TI = 1);
德州仪器= 0;


无效的主要(无效)(
字符人权中心;
廉政= 0,J = 0时,计数= 0,公司= 47; / /公司= 47
廉政指数= 0;
小= 0X00;
的P2 = 0X00;

SCON的= 0x50; / /模式1,8位UART,使接收器
TMOD = 0x20; / /定时器1,模式2,8位重载
TH1 = 0XE6; / / 1200
TL1 = 0XE6;
TR1的= 1;
德州仪器= 0;
SBUF的= 0;

而(1)(
您的代码)/ /结束时

)/ /结束的主

 
我收到两个lib一个错误,
很抱歉,您还没有登录查看此附件

 
你的编译器将使用???
根据您必须验证是否基础库
, 可...

 
即时通讯使用microvission莱凯勒&proteous与此代码是完全workin罚款1分钟后添加:他们只给了一个警告味精应答功能bcaz米bcaz不使用任何应答在读写在我的代码

 

Welcome to EDABoard.com

Sponsor

Back
Top