关键词不能为空

当前您在: 主页 > 英语 >

IIC串口通信

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-09 08:49
tags:

-

2021年2月9日发(作者:亲爱的英文怎么说)


项目


4.3



IIC


串口通信




一、



任务目标。



?



理解单片机的

IIC


通信原理。



?



实现两个单片机之间利用


IIC


进行通信。



二、任务要求。






任务主要实现一个单片机通过


IIC


通信方式访问


24C02

< p>




三、相关知识点。



1



IIC


总线概述:



IIC


总线是


PHLIPS

< br>公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决


和高低速器件同 步功能的高性能串行总线。


IIC


总线只有两根双向信号线。一 根是数据线


SDA


,另一根是时钟线


S CL


。如下图:





4.20 IIC


总线



IIC

< br>总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任


一器件输出的低电平,都将使总线的信号变低,即各器件的


SDA



SCL


都是线“与”关系。


如下图 :





4.21 IIC


总线线与图



每个接到


IIC


总线上的器件都有唯一的地址。


主机与其 它器件间的数据传送可以是由主


机发送数据到其它器件,


这时主 机即为发送器。


由总线上接收数据的器件则为接收器。


在多


主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免混乱,

< br> IIC


总线要通


过总线仲裁,以决定由哪一台主机控制 总线。




2



IIC


总线数据传送:



1


)数据位的有效性规定


< p>
IIC


总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须 保持稳定,只


有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许 变化。如下图:





4.22 IIC


总线通信数据发送



2


)起始信号和终止信号


< p>
SCL


线为高电平期间,


SDA

< br>线由高电平向低电平的变化表示起始信号;


SCL


线为高 电平


期间,


SDA


线由低电平向高电平 的变化表示终止信号。如下图:





4.23


起始信号和终止信号



起始和终止信号都是由主机发出的,


在起始信号产生后,


总线就处于被占用的状态;



终止信号产生后,


总线就处于空闲状态。


连接到


IIC


总线上的器件,


若具有


IIC


总线的硬件


接口,


则很容易检测到起始和终止信号。< /p>


接收器件收到一个完整的数据字节后,


有可能需要


完成一些其它工作,


如处理内部中断服务等,


可能无法 立刻接收下一个字节,


这时接收器件


可以将

SCL


线拉成低电平,


从而使主机处于等待状态。


直到接收器件准备好接收下一个字节


时,再释放


SCL


线使之为高电平,从而使数据传送可以继续进行。



3


、数据传送格式



1)


字节传送与应答



每一个字节必须保证是


8


位长度。数据传送时,先传送 最高位



MSB



每一个被传送的


字节后面都必须跟随一位应答位(即一帧 共有


9


位)


。如下图:





4.24


字节传送与应答



由于某种原因从机不对主机寻址信 号应答时


(如从机正在进行实时性的处理工作而无法


接收总线上 的数据)


,它必须将数据线置于高电平,而由主机产生一个终止信号以结束总线


的数据传送;



如果从机对主机进行了应答,< /p>


但在数据传送一段时间后无法继续接收更多的数据时,



机可以通过对无法接收的第一个数据字节的“非应答”通知主机,


主机则 应发出终止信号以


结束数据的继续传送;


当主机接收数据时,


它收到最后一个数据字节后,


必须向从 机发出一个结束传送的信号。


这个信号是由对从机的“非应答”来实现的。


然后,


从机释放


SDA


线,


以允许主机产生终止


信号。



2)


数据帧率格式


< br>IIC


总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号 。在起


始信号后必须传送一个从机的地址(


7

< br>位)


,第


8


位是数据的传送方向 位(


R/T



,用“

< br>0


”表


示主机发送数据(


T



,“


1


”表示主 机接收数据(


R



。每次数据传送总是 由主机产生的终止


信号结束。


但是,若主机希望继续占用总线进 行新的数据传送,则可以不产生终止信号,马


上再次发出起始信号对另一从机进行寻址。



在总线的一次数据传送过程中,可以有以下几种组合方式:


< /p>



1


)主机向从机发送数据,数据的传送 方向在整个传送过程中不变:




【< /p>



】有阴影部分表示数据由主机向从机传送,无阴影部分则表示数 据由从机向主机传送。



A


表示应答,


A


非表示非应答(高电 平)



S


表示起始信号,


P


表示终止信号。





2


)主机在第一个字节后,立即从从机读 数据:






3



在传送过程中,


当需要改变传送方向时,


起始信号和从机地址都被重复产生一次,


但两次读


/


写方向位正好反相。



4


、总线的寻址


IIC


总线有明确规定:采用


7bit

寻址字节(寻址字节是起始信号后的第一个字节)








D7



D1


位组成 从机的地址。


D0


位是数据传送方向位,为


0



时表示主机向从机


写数据,为



1



时表示主机由从机读数据。



主机发送地址 时,总线上的每个从机都将这


7


位地址码和自己的地址比较,如 果相同,


则认为自己被主机寻址,根据


R/T

< br>位将自己确认为发送器或者接收器。



从机的地址由固定 部分和可编程部分组成。


在一个系统中,


可能希望接入多个相同 的从


机,从机地址中可以编程的部分决定了可接入总线该类器件的最大数目。如一个从机 的


7


位寻址位有


4

位是固定位,


3


位是可编程位,这时仅能寻址


8


个同样的器件,即可以有


8



同样的器件接入到该


IIC


总线系 统中。



附:单片机


IIC

< p>
串行总线数据传送模拟





4.25


总线数据传送信号



四、项目分析



本项目主要实现单片机 通过


IIC


通信方式访问


24C02< /p>


。项目实现采用


Proteus


8 < /p>


Professional


进行仿真实验,单片机采用

< p>
51


单片机。



1


、硬件电路设计




Proteus 8 Professional

< p>
仿真软件按下图设计出仿真原理图,


硬件电路包括一个

51


单片


机和一个


LED


灯带,一个


24C02C


和一个


IIC


通信协议分调试。



U 1


19


XTAL1


P0.0/AD0< /p>


P0.1/AD1


P0.2/AD2


P0 .3/AD3


P0.4/AD4


P0.5/AD5


P0.6/AD6


P0.7/AD7


P2.0/A8


P2.1/A9


P2.2/A10


P2 .3/A11


P2.4/A12


P2.5/A13


P2.6/A14


P2.7/A15


P3.0/RX D


P3.1/TXD


P3.2/INT0


P3.3/INT1


P3.4/T0


P3.5/T1


P3.6/WR


P3.7/RD


39

< p>
38


37


36


35


34


33


32


21< /p>


22


23


24


2 5


26


27


28


10


11


12


13

< br>14


15


16


17


18


RP1


RESPACK-8

9


XTAL2


RST


U2


SDA


SCK


7


5


6


WP


SDA


SC K


24C02C


A2


A1


A0


3


2


1


9


8


7


6

5


4


3


2


1


U3


20


19


18


17


16


15

< br>14


13


12


11


1


2


3


4

< br>5


6


7


8


9


10


LED-BARGRAPH-GRN

< br>29


30


31


PSEN


ALE


EA


1


2


3


4


5


6

< p>
7


8


P1.0/T2


P1 .1/T2EX


P1.2


P1.3


P1 .4


P1.5


P1.6


P1.7


AT89C52


SDA


SCL


TRIG


I2C




4.26 IIC


通信硬件原理电路图



2


、程序设计



IIC


通信模块的程序设计主要包括系统启动后向立即向


24 C02


中写入从


0


< br>100


的数据,


然后每个约


1S



24C02


中依次读取写入的数据, 读完后系统等待。



/*




实验



名称 :


IIC


通信实验










: < /p>


单片机用


IIC


通信方式向


24C02


写入









振:


11.0592MHz


MCU




型:


A


T89C51








者:胡云冰



创建



日期:


14-02-08




*/


#include


#define W_cmd 0xa0




//


写指令,以


A


开头,后有地址



,参见手册




#define R_cmd 0xa1




//


读指令,以

A


开头,后有地址







sbit SCL=P2^5;


sbit SDA=P2^4;


sbit WP=P2^3;


/*** ************************************************** ********************


**


函数名称


: void delay(int x)


**


功能描述


:


软件延时



**







: int x


**








:




**


全局变量


:




**


调用模块


:




**







明:无



**







意:无



*************************************** ***********************************/


void delay(int x)


{



int i,j;



for(i=x;i>0;i--)



for(j=110;j>0;j--);


}


/******************************************** *****************************


**


函数名称


: void Dely24(void)



**


功能描述


:


用于通信中的软件延时



**







:




**








:




**


全局变量


:




**


调用模块


:




**







明:这个时间与器件、上拉电阻有很大关系,一般宜大不宜小



**







意:无



*************************************** ***********************************/


void Dely24(void)



{



unsigned char i;






for(i=0;i<20;i++);



}


/************************* ************************************************


**


函数名称


: unsigned char ReadByte(void)



**


功能描述


:


时钟下降沿读取一位数据



**







:




**








: j


**


全局变量


:




**


调用模块


:




**







明:无



**







意:无



*************************************** ***********************************/


unsigned char ReadByte(void)



{




unsigned char i,j;




for(i=0;i<8;i++)







//


循环读


8









{








SDA=1;










//


置高,不影响后续读取,而且是必须的









SCL=1;








j<<=1;








j|=(bit)SDA;




//


读< /p>


1










SCL=0;

-


-


-


-


-


-


-


-



本文更新与2021-02-09 08:49,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/620136.html

IIC串口通信的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文