IIC通信例子.doc_第1页
IIC通信例子.doc_第2页
IIC通信例子.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IIC通信例子void Start(void)/Sda=0;Scl=1;_nop_ ();/根据时序图尽心延时_nop_ ();_nop_ ();_nop_ ();Sda=1;_nop_ ();_nop_ ();_nop_ ();_nop_ ();void Ack(void)Sda=0;_nop_ ();_nop_ ();/延时 根据时序图_nop_ ();_nop_ ();Scl=1;_nop_ ();_nop_ ();_nop_ ();_nop_ ();Scl=0;voidNoAck(void)Sda=1;_nop_ ();/根据时序图进行延时_nop_ ();_nop_ ();_nop_ ();Scl=1;_nop_ ();_nop_ ();_nop_ ();_nop_ ();Scl=0;void Send(uchar Data)uchar BitCounter=8;uchar temp;dotemp=Data;Scl=0;_nop_ ();_nop_ ();_nop_ ();_nop_ ();if(temp&0x80)=0x80)Sda=1;elseSda=0;/如果最高位是0就发送0Scl=1;temp=Data1;Data=temp;BitCounter-;/没发完一位数据就减一while(BitCounter);/如果发送完8位后跳出循环Scl=0;/释放总线uchar Read(void)uchar temp=0;uchar temp1=0;uchar BitCounter=8;/定义从存储器读出的数据位数Sda=1;doScl=0;_nop_ ();_nop_ ();_nop_ ();_nop_ ();Scl=1;_nop_ ();_nop_ ();_nop_ ();_nop_ ();if(Sda)temp=temp|0x01;elsetemp=temp&0xfe;if(BitCounter-1)temp1=temp1;/逐位的读出temp=temp1;BitCounter-;while(BitCounter);/读出8位后跳出循环return(temp);/返回读出的数据void WrToROM(uchar Data,uchar Address)/向存储器写一字节的数据 函数uchar i=0;Start();/调用起始条件函数Send(0xa0);/ 发送命令,准备写入数据到存储器,让存储器做好准备Ack();/调用应答函数Send(Address);/ 先发送要写入数据的的存储器内存地址Ack();/ 调用应答函数Send(Data);/ 开始发送要写入到存储器中的数据Ack();/ 调用应答函数Stop();/ 调用停止发送函数,表示发送完毕ucharRdFromROM(uchar Address)/从存储器读出一字节的数据uchar i;Start();/调用起始条件函数Send(0xa0);/让存储器准备接受命令Ack();Send(Address);/发送要读出来的数据地址Ack();Start();/重新调用起始函数Send(0xa1);/发送读出数据的命令Ack();i=Read ( )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论