C51程序综合程序设计范例五I.ppt
《C51程序综合程序设计范例五I.ppt》由会员分享,可在线阅读,更多相关《C51程序综合程序设计范例五I.ppt(38页珍藏版)》请在三一办公上搜索。
1、11,C51综合程序设计范例(五),2,Engineering Technical Colledge-1959,本讲主要内容:,11-1.综合程序设计范例五(I2C接口程序设计)11-2.I2C总线接口协议11-3.24C02与单片机接口11-3.实验十,3,Engineering Technical Colledge-1959,11-1 综合程序设计范例五,设计范例:设计程序实现向24C02的第一个单元写入一个数据,再将该数据读出,并将其显示在数码管上。,4,Engineering Technical Colledge-1959,11-1 综合程序设计范例五,范例分析:硬件:24C02特性2
2、4C02与P89V51RD2的接口程序设计中需要解决的主要问题:I2C总线协议24C02的读写,5,Engineering Technical Colledge-1959,11-1 综合程序设计范例五,范例分析:硬件24C02:串行E2PROM是在各种串行器件应用中使用较频繁的器件,和并行E2PROM相比,串行E2PROM的数据传送的速度较低,但是其体积较小,容量小,所含的引脚也较少。所以,它特别适合于需要存放非挥发数据,要求速度不高,引脚少的单片机的应用。24CXX系列的E2PROM有10种型号,其中典型的型号有24C01/02/04/08/16等5种,它们的存储容量分别是128/256/5
3、12/1024/2048字节。24CXX系列的E2PROM 支持I2C 总线数据传送协议,通过器件地址输入端A0、A1、A2 可以将最多8 个24C01/24/C02 器件,4 个24C04 器件,2 个24C08 器件,1 个24C16 器件连接到总线上。这里我们就24C02的进行分析,其它型号与此类似。,6,Engineering Technical Colledge-1959,11-1 综合程序设计范例五,范例分析:硬件24C02:,7,Engineering Technical Colledge-1959,11-1 综合程序设计范例五,范例分析:硬件24C02:,8,Engineeri
4、ng Technical Colledge-1959,11-1 综合程序设计范例五,范例分析:硬件24C02:,A0 A1 A2器件地址输入端:当使用24C02 时最大可级联8 个器件,如果只有一个24C02 被总线寻址这三个地址输入脚A0 A1 A2 可悬空或连接到GND。WP写保护:如果WP 管脚连接到Vcc,所有的内容都被写保护(只能读).当WP 管脚连接到GND或悬空,允许器件进行正常的读/写操作。,9,Engineering Technical Colledge-1959,11-1 综合程序设计范例五,范例分析:硬件24C02:,SCL串行时钟:24C02串行时钟输入管脚用于产生器件
5、所有数据发送或接收的时钟这是一个输入管脚。SDA串行数据/地址:24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收SDA 是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线与(wire-OR)。,10,Engineering Technical Colledge-1959,11-1 综合程序设计范例五,范例分析:硬件24C02与P89V51RD2的接口:,11,Engineering Technical Colledge-1959,11-2 I2C总线接口协议,范例分析:程序设计I2C总线协议:I2C 总线支持任何IC 生产过程NMOS CMOS 双极性两线串行数据SDA 和
6、串行时钟。SCL 线在连接到总线的器件间传递信息每个器件都有一个唯一的地址识别无论是微控制器、LCD驱动器、存储器或键盘接口。而且都可以作为一个发送器或接收器由器件的功能决定。很明显LCD驱动器只是一个接收器而存储器则既可以接收又可以发送数据。除了发送器和接收器外器件在执行数据传输时也可以被看作是主机或从机。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件,此时任何被寻址的器件都被认为是从机。,12,Engineering Technical Colledge-1959,11-2 I2C总线接口协议,范例分析:程序设计I2C总线协议:SDA 和SCL 都是双向线路都通过一个电流源或上拉
7、电阻连接到正的电源电压。都是高电平连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。I2C 总线上数据的传输速率在标准模式下可达100kbit/s 在快速模式下可达400kbit/s 在高速模式下可达3.4Mbit/s。,13,Engineering Technical Colledge-1959,11-2 I2C总线接口协议,范例分析:程序设计I2C总线协议:数据的有效性 SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变。,14,Engineering Technical Colledge-1959,11-
8、2 I2C总线接口协议,范例分析:程序设计I2C总线协议:启始信号:时钟线保持高电平期间,数据线电平从高到低跳变作为I2C 总线的起始信号。,起始信号函数:void I2CStart(void)SDA=1;SCL=1;SomeNoP();延时 SDA=0;SomeNOP();SCL=0;,15,Engineering Technical Colledge-1959,11-2 I2C总线接口协议,范例分析:程序设计I2C总线协议:停止信号:时钟线保持高电平期间,数据线电平从低到高跳变作为I2C 总线的起始信号。,停止信号函数:void I2CStop(void)SCL=0;SDA=0;SomeN
9、OP();延时 SCL=1;SomeNOP();SDA=1;,16,Engineering Technical Colledge-1959,11-2 I2C总线接口协议,范例分析:程序设计I2C总线协议:应答信号:I2C 总线数据传送时,每成功地传送一个字节数据后,接收器都必须产生一个应答信号。应答的器件在第9 个时钟周期时将SDA 线拉低,表示其已收到一个8 位数据。,void SendAck(void)/应答信号 SDA=0;/*SDA先清0,发应答信号*/SomeNOP();SCL=1;/*SCL由低变高,产生一个时钟*/SomeNOP();SCL=0;/*SCL恢复到低电平,以便继续接
10、收*/,17,Engineering Technical Colledge-1959,11-2 I2C总线接口协议,范例分析:程序设计I2C总线协议:非应答信号:I2C 总线数据传送时,当接受结束时,接收器都必须产生一个非应答信号。器件在第9 个时钟周期时将SDA 线置高,表示已经接收完毕。如果主机接收数据时,它收到最后一个数据字节后,必须向从机发送一个非应答信号(/A),使从机释放SDA线,以便主机产生终止信号,从而停止数据传送。,void SendNotAck(void)/非应答信号 SDA=1;/*SDA先置1,发非应答信号*/SomeNOP();SCL=1;/*SCL由低变高,产生一个
11、时钟*/SomeNOP();SCL=0;/*SCL恢复到低电平,以便继续接收*/,18,Engineering Technical Colledge-1959,11-2 I2C总线接口协议,范例分析:程序设计I2C总线协议:字节格式发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位MSB,如果从机要完成一些其他功能后,例如一个内部中断服务程序才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续。,19,Enginee
12、ring Technical Colledge-1959,11-2 I2C总线接口协议,范例分析:程序设计I2C总线协议:器件地址:I2C总线上的每一个从机均有一个唯一的地址,每次主机发出起始信号后,必须接着发出一个字节的地址信息,以选取挂在总线上的某一从机。地址信息的格式如下:,其中D7-D0位表示从机的地址,D0位是数据传送方向,为0时,表示主机向从机发送数据(写),为1时,表示主机由从机处读取数据。主机发送地址时,总线上的每一个从机都将这7位地址码与自已的器件地址进行比较,如果相同则认为自已正被主机寻址,根据读写位将自已确定为发送器或接收器。从机的地址由一个固定部分和一个可编程部分组成。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 程序综合 程序设计 范例

链接地址:https://www.31ppt.com/p-5417035.html