单片机C语言程序设计 教学课件 ppt 作者 侯殿有 4.14

上传人:E**** 文档编号:89376566 上传时间:2019-05-24 格式:PPT 页数:126 大小:721.50KB
返回 下载 相关 举报
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 4.14_第1页
第1页 / 共126页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 4.14_第2页
第2页 / 共126页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 4.14_第3页
第3页 / 共126页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 4.14_第4页
第4页 / 共126页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 4.14_第5页
第5页 / 共126页
点击查看更多>>
资源描述

《单片机C语言程序设计 教学课件 ppt 作者 侯殿有 4.14》由会员分享,可在线阅读,更多相关《单片机C语言程序设计 教学课件 ppt 作者 侯殿有 4.14(126页珍藏版)》请在金锄头文库上搜索。

1、第十四章 MCS-51与其他常用芯片接口,14.1 MCS-51单片机与C总线芯片接口,单片机应用系统中,带有C总线接口的电路使用越来越多,采用C总线接口的器件连接线和引脚数目少,成本低。与单片机连接简单,结构紧凑,在总线上增加器件不影响系统的正常工作,系统修改和可扩展性好,即使工作时钟不同的器件也可以直接连接到总线上,使用起来很方便,但软件程序稍复杂,速度受系统主频和连接器件的多少影响。,14.1.1 总线简介,1C总线的主要特点 C总线是由PHILIPS公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即在连接于总线上器件之间传送信息。这种总线的主要特点有: (1) 总线只有两根线

2、,即串行时钟线(SCL)和串行数据线 (SDA),这在设计中大大减少了硬件接口。 (2) 每个连接到总线上的器件都有一个用于识别的器件地址,器件地址由芯片内部硬件电路和外部地址引脚同时决定,避免了片选线的连接方法,并建立了简单的主从关系,每个器件既可以作为发送器,又可以作为接收器。,(3) 同步时钟允许器件用不同的波特率进行通信。 (4) 同步时钟可以作为停止或重新启动串行口发送的握手信号。 (5) 串行数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。,1,C总线的主要特点,2C总线的基本结构 C总线是由数据线SAD和时钟线

3、SCL构成的串行总线,可发送和接收数据。各种采用C总线标准的器件均并联在总线上,每个器件内部都有C接口电路,用于实现与C总线的连接,结构形式如图14.1所示。 每个器件都有唯一的地址,器件两两之间都可以进行信息传送。当某个器件向总线上发送信息时,他就是发送器(也叫主控制器),而当其从总线上接受信息时,它又称为接收器(又叫从控制器)。在信息的传输过程中,主控制器发送的信号分为器件地址码、器件单元地址和数据3部分,其中器件地址码用来选择从控制器,确定操作的类型(是发送信息还是接受信息);器件单元地址用于选择器件内部的单元;数据是在各器件间传递的信息。处理过程就像打电话一样,只有拨通号码才能进行信息

4、交流。各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。,3C总线信息传送 C总线没有进行信息传送时,数据线SDA和时钟线SCL都为高电平。当主控制器向某个器件传送信息时,首先应向总线传送开始信号,开始信号和结束信号规定如下: 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 开始信号和结束信号之间传送的是信息,信息的字节没有限制但是每个字节必须为8位,高位在前,低位在后。数据线SDA上每一位信息状态的改变只能发生在时钟线SCL为低电平的期间,因为SCL为高电平的期间SDA状态的改变已经被用来表示

5、开始信号和结束信号。,每个字节后面必须接收一个应答信号ACK,ACK是从控制器在接收到8 位数据后向主控制器发出的特定的低电平脉冲,用以表示已收到数据,主控制器接收到应答信号ACK后,可根据实际情况作出是否继续传递信号的判断。若未收到ACK,则判断为从控制器出现故障,具体情况如图14.2所示。,主控制器每次传送的信息的第一个字节必须是器件地址码,第二个字节为器件单元地址,用于实现选择所操作的器件的内部单元,从第三个字节开始为传送的数据。其中器件地址码格式如下:,4C总线读、写操作时序 (1)指定单元读 该操作从所选器件指定地址读,读的字节数不限,格式如下,见图14.3:,图14-3中,只给出读

6、一个字节SDA的时序,当SCL为高,SDA也为高时,C向总线写第一个字节数据,1010是器件的类型,是EPROM,LSB=0是写命令,接到ACK应答后,再发一字节数据,这个数据是EPROM内的单元地址;再接到ACK后,发一个读命令,此命令LSB=1,然后收到ACK后就可以从SDA线上串行读出数据,收到一个完整字节后不用等ACK,直接发低电平结束本次操作,注意,读操作完后没有ACK。,(2)指定单元写 该操作从所选器件当前地址写,写的字节数不限,格式如下,见图14.4:,图14-4中,只给出写一个字节SDA的时序,当SCL为高,SDA也为高时,C向总线写第一个字节数据,1010是器件的类型,是E

7、PROM,LSB=0是写命令,接到ACK应答后,再发一字节数据,这个数据是EPROM内的单元地址;再接到ACK后,发一个字节数据,将数据写入EPROM内的单元地址。发完一个完整字节后等ACK,收到ACK后发低电平结束本次写操作。,14.1.2 C总线与MCS-51单片机接口,这里通过串行EEPROM电路CAT24WCXX与MCS-51单片机接口来介绍C总线的使用。 1串行EEPROM电路CAT24WCXX系列概述 CAT24WCXX系列是美国CATALYST公司出品的,包含1256K位,支持C总线数据传送协议的串行CMOS EEPROM芯片,可用电擦除,可编程自定义写周期,自动擦除时间不超过1

8、0ms,典型时间为5ms。,CAT24WCXX 系列包含CAT24W01/02/04/08/16/32/64/128/256共8 种芯片,容量分别为1、2、3、4、8、16、32、64、128、256KB。串行EEPROM一般具有两种写入方式,一种是字节写入方式,还有一种是页写入方式。允许在一个写周期内同时对一个字节到一页的若干字节的编程写入,一页的大小取决于芯片的内寄存器的大小。其中CAT24WC01具有8 字节数据的页面写能,CAT24WC02/04/08/16具有16字节数据的页面写能力,CAT24WC32/64具有32 字节的数据的页面写能力,CAT24WC128/256具有64字节数

9、据的页面写能力。,2CAT24WCXX的引脚 CAT24WCXX系列 EEPROM提供标准的8 脚DIP 封装和8 脚表面的SOIC封装。CAT24WC01/02/04/08/16/32/64、CAT24WC128、CAT24WC256 管脚排列图分别如图14.5(a)、(b)、(C)所示。,其中:SCL,串行时钟线。这是一个输入管脚,用于形成器件所有数据发送或接收的时钟。 SDA:串行数据线,它是一个双向传输线,用于传送地址和所有数据的发送或接收。 它是一个漏极开路端,要求接一个上拉电阻到VCC端(速率为100KHZ时电阻为10K,400KHZ是为1K,对于一般的数据传输,仅在SCL为低电平

10、期间SDA才允许变化。SCL为高电平时,留给开始信号START和停止信号STOP。 A0、A1、A2:器件地址输入端。这些输入端用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0(CAT24WC01除外)。 WP:写保护。如果WP管脚连接到VCC,所有的内容都被写保护(只能读)。当WP 管脚连接到VSS或悬空,允许对器件进行正常的读/写操作。,VCC:电源 Vss:地线。 3CAT24WCXX的器件地址 CAT24WCXX的器件地址的高4位 D7D4固定为1010,接下来的3位D3D1(A2、A1、A0)为器件的片选地址位或作为存储器页地址选择位,用来定义哪个器件以及器件的哪个部分被主器

11、件访问,在C总线上最多可以连接8 个CAT24WC01/02,4 个CAT24WC04, 2 个CAT24WC08, 1个CAT24WC16, 8个CAT24WC32/64,1个CAT24WC128,4个CAT24WC256器件到同一条总线上,片选地址必须与硬件连接线输入脚A2、A1、A0相对应。1个CAT24WC16/128可单独被系统寻址。器件地址的最低位D0为读写控制位,D0=1表示对器件进行读操作,D0=0表示对器件进行写操作。,在主器件上发送起始信号和从器件地址字节后, CAT24WCXX监视总线并当其地址与发送的从地址相符时响应一个应答信号(通过SDA线)。CAT24WCXX再根据

12、读写控制位(R/W)的状态进行读或者写操作。CAT24WCXX的器件地址的具体情况见表14.1,表中A0、 A1 和A2对应器件的管脚1、2、和3,a8、a9、a10对应为页地址选择位。,4页写 CAT24WCXX的按字节读/写操作14.1节中已做介绍,这里对CAT24WCXX按页读写做简单介绍。 按字节读/写操作模式下,CAT24WXX一次可写入1个字节数据,页写操作的启动和字节一样。不同的是在于传送了一个字节数据后并不产生停止信号,而是继续传送下一个字节。每发送一个字节数据后CAT24WCXX产生一个应答位,且内部地址加1,若在发送停止信号之前主器件发送数据超过一页字节,地址计数器将自动翻

13、转,先前写入的数据被覆盖。 接收到一页字节数据和主器件发送的停止信号后,CAT24WXX启动内部写周期将数据写到数据区。对CAT24WCXX的不同型号,上述的写页过程会有很小的差别,具体可参考使用说明书编程。,14.1.3 CAT24WCXX与单片机的接口与编程,1CAT24WCXX与单片机的接口 图14.6是8015单片机与串行EEPROM芯片CAT24WXX的接口电路。 图中用的EPROM芯片为CAT24W04,其他芯片与单片机的连接与此稍有不同。8051的P1.0、P1.1作为C总线与CAT24W04的SDA和SCL相连,连接时注意C总线须经过电阻接电源线。P1.3与WP相连。CAT24

14、WC04的地址线A1、 A2、 A0 直接接地,片选编码为000,CAT24WC04的器件地址码的高7位 为1010000。,2C总线时序 C总线是串行通信,系统对各数据和控制信号的时序有严格要求,编程时应参考时序图来进行。C总线时序主要注意以下几点: (1)启动信号,见图14.7。,启动时,SCL为高,SDA由高变低,其中1是SDA由高变低前总线空闲时间,1应大于4.7;2是SDA由高变低时间,由于下降沿有一定陡度要求,2最大不能超过0.3(2)停止信号,见图14.8。 停止时,SCL为高,SDA由低变高,其中1是SDA由低变高前总线空闲时间,1应大于4.7;2是SDA由低变高时间,由于上降

15、沿有一定陡度要求,2最大不能超过1,(3) 发送应答信号“0”和非应答信号“1”的时序见图14.9和图14.10,信号保持时间最少为4,这也和正常数据一样。另外,SCL时钟正常为100400KHZ范围内。,3CAT24WC04的读写驱动程序: 程序中延时采用空操作指令_nop()_函数,该函数在intrins.h头文件中定义。对12M主频CPU,执行一次_nop()_函数延时大约1。 #include #include #define uchar unsigned char #deffine uint unsigned int #deffine Nop ( ) nop-( ) /定义指令 sbit SDA=P10; /定义数据线 sbit SCL=P11; /定义时钟线 sbit WP=P12; /定义写保护线 bit ACK; /定义应答线,/启动C总线 ,发送C开始信号 /- void Start_i2c( ) SDA=1; /准备发送开始信号 Nop( ) SCL=1; Nop( ); Nop( ), Nop( ); Nop ( ), Nop( ); /开始建立时间大于4.7us,延时 SDA=0; /发送开始信号 Nop( ); Nop( );Nop( ); Nop( ); Nop( ); /开始信号锁定时间大于4SCL =0; /钳

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号