当前位置:首页 > 单片机 > 单片机
[导读]实际上还是仅仅备份些代码,加些注释,因为这本身就很容易,没啥多说的。。。先定义些东西#define PORT_IIC PORTC#define DDR_IIC DDRC#define BIT_SCL 0#define BIT_SDA 1#define TW_START 0X08#define TW_REP_STAR

实际上还是仅仅备份些代码,加些注释,因为这本身就很容易,没啥多说的。。。

先定义些东西
#define PORT_IIC PORTC
#define DDR_IIC DDRC
#define BIT_SCL 0
#define BIT_SDA 1
#define TW_START 0X08
#define TW_REP_START 0X10
#define TW_MT_SLA_ACK 0X18

下面切入正题

iic总线初始化

void iic_init(void)

{

TWSR=0;

TWBR=32;//这点要注意下,不要设的速度太高,否则

//proteus仿真可能读不到数据

TWAR=0;

TWCR=(1<

PORT_IIC|=(1<

}

iic初始与终止位

unsigned char iic_start(void)

{

TWCR=(1<

while(!(TWCR&(1<

if ((TWSR & 0xF8) != TW_START&&(TWSR & 0xF8) != TW_REP_START)

{

return 0;

}

else

{

return 1;

}

}

void iic_stop(void)

{

TWCR=(1<

}

iic读取

unsigned char iic_read(unsigned int ack)

{

char data;

if(ack==1)

{

TWCR=(1<

}

else

{

TWCR=(1<

}

while(!(TWCR&(1<

data=TWDR;

return data;

}

iic写入

unsigned char iic_write(unsigned char data)

{

unsigned char ack=1;

TWDR=data;

TWCR=(1<

while(!(TWCR&(1<

if((TWSR&0XF8)!=TW_MT_SLA_ACK)//检测应答位

{

ack=0;

}

else

{

ack=1;

}

return ack;

}

eeprom片选


static unsigned char cs ;

void eeprom24s_set_cs(unsigned char addr)

{

cs=addr;

}


eeprom读取

unsigned char eeprom24s_read(unsigned int addr)

{

unsigned char data;

iic_start();

iic_write(cs<<1);

iic_write(addr>>8);

iic_write(addr);

iic_start();

iic_write((cs<<1)|0x01);

data=iic_read(0);

iic_stop();

delay_us(10);//延时很重要,否则proteus可能出错

return data;

}

eeprom写入

unsigned char eeprom24s_write(unsigned int addr,unsigned char data)

{

iic_start();

iic_write(cs<<1);

iic_write(addr>>8);

iic_write(addr);

iic_write(data);

iic_stop();

delay_ms(10);)//延时很重要,否则proteus可能出错

}

测试用例

Code

测试截图

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制...

关键字: AVR 单片机 计算机

AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通...

关键字: AVR 单片机 计算机

AVR与传统类型的单片机相比,除了必须能实现原来的一些基本的功能,其在结构体系、功能部件、性能和可靠性等多方面有很大的提高和改善。 但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,如果还采用和沿袭以...

关键字: AVR 单片机 硬件

在这篇文章中,小编将为大家带来AVR单片机的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: AVR 单片机

在下述的内容中,小编将会对AVR单片机的相关消息予以报道,如果AVR单片机是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: AVR 单片机

杰成医疗(健适医疗成员企业)的"经血管介入生物主动脉瓣膜"在国内首次得到成功应用,两名心脏瓣膜病患者通过经导管主动脉瓣置换术(TAVR)各被植入一枚"杰成经血管介入瓣膜"。杰成医疗已计划对该产品在全球范围内开展多个前瞻性...

关键字: AVR

新加坡2022年2月5日 /美通社/ -- 近日,新兴医疗科技公司“健适医疗”宣布,公司已完成对“苏州杰成医疗科技有限公司”的收购,后者是国内TAVR(Transcatheter Aortic Valve Replace...

关键字: AVR

心电图aVR导联在额面六轴系统中的地位与作用

关键字: AVR 导联理论

在六轴系统中,avR 导联位于额面右上方,其负极位于左下 30°,在Ⅰ和Ⅱ导联之间。由于胸导联的出现和对Ⅰ和Ⅱ导联的重视,avR 导联常被忽视。近年来有学指出,avR 导联有着重要的应用价值。

关键字: AVR 六轴

通常来讲,AVR单片机指的是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set Computer) 精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算...

关键字: AVR 哈佛
关闭
关闭