最新单片微型计算机原理与接口技术第二版第8章80C51单片微机的系统扩展原理与接口ppt课件.ppt

上传人:豆**** 文档编号:33411764 上传时间:2022-08-11 格式:PPT 页数:229 大小:2.61MB
返回 下载 相关 举报
最新单片微型计算机原理与接口技术第二版第8章80C51单片微机的系统扩展原理与接口ppt课件.ppt_第1页
第1页 / 共229页
最新单片微型计算机原理与接口技术第二版第8章80C51单片微机的系统扩展原理与接口ppt课件.ppt_第2页
第2页 / 共229页
点击查看更多>>
资源描述

《最新单片微型计算机原理与接口技术第二版第8章80C51单片微机的系统扩展原理与接口ppt课件.ppt》由会员分享,可在线阅读,更多相关《最新单片微型计算机原理与接口技术第二版第8章80C51单片微机的系统扩展原理与接口ppt课件.ppt(229页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第八章第八章 单片微机的系统扩展原理单片微机的系统扩展原理及接口技术及接口技术8.1.1.1.并行扩展方式的编址技术并行扩展方式的编址技术 在单片微机应用系统中,为了唯一地选择片外在单片微机应用系统中,为了唯一地选择片外某一存储单元或某一存储单元或I/O端口,需要进行二次选择。端口,需要进行二次选择。必须先找到该存储单元或必须先找到该存储单元或I/O端口所在的芯片,称端口所在的芯片,称为为“片选片选” 通过对芯片本身所具有的地址线进行译码,然后通过对芯片本身所具有的地址线进行译码,然后确定唯一的存储单元或确定唯一的存储单元或I/O端口,称为端口,称为“字选字选”。 “片选片选” 保证每次读或写

2、时,只选中某一片存储器芯片或保证每次读或写时,只选中某一片存储器芯片或I/O接口芯片。常用的方法有接口芯片。常用的方法有4种:种:“线选法线选法” 、“地址译码法地址译码法” 、应用、应用 “可编程器件可编程器件PAL/GAL” 或或“I/O口线口线” 。(1) 线选法线选法:一般是利用单片微机的最高几位空余的地址:一般是利用单片微机的最高几位空余的地址线中一根线中一根(如如P2.7) 作为某一片存储器芯片或作为某一片存储器芯片或I/O接口芯片的接口芯片的“片片选选” 控制线控制线。用于应用系统中扩展芯片较少的场合。用于应用系统中扩展芯片较少的场合。(2) 译码法译码法:用译码器对空余的高位地

3、址线进行译码,而译码器:用译码器对空余的高位地址线进行译码,而译码器的输出作为的输出作为“片选片选” 控制线。常用的译码器有控制线。常用的译码器有3/8译码器译码器74LS138、双、双2/4译码器译码器74LS139、4/16译码器译码器74LS154等。等。3/8译码器译码器74LS138的管脚见图的管脚见图83。G1、 、 :使能端。当:使能端。当G1=1, = =0时,时, 芯片使能。芯片使能。C、B、A:译码器输入,高电平有效。:译码器输入,高电平有效。 Y :译码器输出,低电平有效。:译码器输出,低电平有效。2AGY2AGG2BG2B部分地址线参加译码时,称为部分地址译码,这部分地

4、址线参加译码时,称为部分地址译码,这时芯片的地址会有重叠。时芯片的地址会有重叠。16根地址线全部参加译码的,根地址线全部参加译码的,称为全地址译码。图称为全地址译码。图84示意的是通过示意的是通过3/8译码器译码器74LS138获得获得64KB64KB地址的译码电路。地址的译码电路。图图84中中3/8译码器译码器74LS138已经使能,其输出由已经使能,其输出由C、B、A的状态决定,作为各个扩展芯片的片选控制信号,加的状态决定,作为各个扩展芯片的片选控制信号,加上芯片本身所具有的地址线共同决定每一个存储单元或上芯片本身所具有的地址线共同决定每一个存储单元或I/O端口的地址,全地址译码的地址是唯

5、一的。端口的地址,全地址译码的地址是唯一的。#0 RAM地址:地址:0000H1FFFH,共,共8KB(A15=0,A14=0,A13=0)#1芯片地址:芯片地址:2000H3FFFH,共,共8KB(A15=0,A14=0,A13=1) 芯片地址:芯片地址:4000H5FFFH,共,共8KB(A15=0,A14=1,A13=0)#3 芯片地址:芯片地址:6000H7FFFH,共,共8KB (A15=0,A14=1,A13=1)#4 芯片地址:芯片地址:8000H9FFFH,共,共8KB (A15=1,A14=0,A13=0)#5 芯片地址:芯片地址:A000HBFFFH,共,共8KB (A15

6、=1,A14=0,A13=1)#6 芯片地址:芯片地址:C000HDFFFH,共,共8KB (A15=1,A14=1,A13=0)#7 I/O地址:地址:E000HFFFFH,共,共8KBA15=1,A14=1,A13=1) 可编程阵列逻辑器件可编程阵列逻辑器件PAL(Programmable Array Logic)和通用阵列逻辑和通用阵列逻辑GAL(Generic Array Logic)(加密性好加密性好) 。有的应用系统为了硬件电路加密,采用有的应用系统为了硬件电路加密,采用PAL或或GAL来进行来进行地址译码和分配地址译码和分配(比如有的单片微机仿真器比如有的单片微机仿真器),你能看

7、到的是,你能看到的是PAL或或GAL的输入线和输出线,而无法掌握内部逻辑关系。的输入线和输出线,而无法掌握内部逻辑关系。 输入输出线输入输出线作为译码线作为译码线可以利用空余的可以利用空余的I/O口线口线(如如P1.0) ,或应用系统扩展的,或应用系统扩展的I/O口线作为芯片的片选线,当该口线作为芯片的片选线,当该I/O口线输出低电平时,即选中了口线输出低电平时,即选中了该芯片。该芯片。 地址总线宽度为地址总线宽度为 16位,在片外可扩展的存储器最位,在片外可扩展的存储器最大容量为大容量为64KB,地址为,地址为0000HFFFFH。 片外数据存储器与程序存储器的操作使用不同的指片外数据存储器

8、与程序存储器的操作使用不同的指令和控制信号,允许两者的地址重复,故片外可扩展的令和控制信号,允许两者的地址重复,故片外可扩展的数据存储器与程序存储器数据存储器与程序存储器 最大容量分别为最大容量分别为64 KB。 片外数据存储器与片内数据存储器的操作指令不同片外数据存储器与片内数据存储器的操作指令不同(片外(片外RAM只能用只能用MOVX指令)。允许两者地址重复指令)。允许两者地址重复,亦即外部扩展数据存储器地址可从,亦即外部扩展数据存储器地址可从0000H开始。开始。I/O口扩展与片外数据存储器统一编址,不再另外口扩展与片外数据存储器统一编址,不再另外提供地址线。提供地址线。 外部串行总线主

9、要包括:外部串行总线主要包括:SPI总线和总线和I2C总线两种总线两种 8.1.2.1 SPI三线总线结构三线总线结构 SPI三线总线结构是一个同步外围接口,允许三线总线结构是一个同步外围接口,允许MCU与各种外围设备以串行方式进行通信。与各种外围设备以串行方式进行通信。一个完整的一个完整的SPI系统有如下的特性:系统有如下的特性: . .全双工、三线同步传送;全双工、三线同步传送; . .主、从机工作方式;主、从机工作方式; . .可程控的主机位传送频率、时钟极性和相位;可程控的主机位传送频率、时钟极性和相位; . .发送完成中断标志;发送完成中断标志; . .写冲突保护标志。写冲突保护标志

10、。在大多数场合,使用一个在大多数场合,使用一个MCU作为主机,控制数据向一作为主机,控制数据向一个或多个从机(外围器件)的传送。个或多个从机(外围器件)的传送。 8.1.2 使用两根信号线(使用两根信号线(SDA和和SCL)串行的方法进行)串行的方法进行信息传送,并允许若干兼容器件共享的双线总线,称为信息传送,并允许若干兼容器件共享的双线总线,称为12C总线。总线。12C总线系统的示意图见图总线系统的示意图见图86。SDA:串行数据线,传输双向的数据。:串行数据线,传输双向的数据。SCL:串行时钟线,传输时钟信号,同步串行数:串行时钟线,传输时钟信号,同步串行数据线上的数据。据线上的数据。 8

11、.2 程序存储器的扩展程序存储器的扩展8.2.1 程序存储器扩展时的总线功能和操作时序程序存储器扩展时的总线功能和操作时序为片外程序存储器读选择信号。正常运行时,该为片外程序存储器读选择信号。正常运行时,该引脚不能浮空。引脚不能浮空。 根据连接电平的不同,单片微机有两种取指过程:根据连接电平的不同,单片微机有两种取指过程: 当当 1时,时,80C51单片微机所有片内程序存储器有效。单片微机所有片内程序存储器有效。 当程序计数器当程序计数器PC运行于片内程序存储器的寻址范围内时,运行于片内程序存储器的寻址范围内时,P0口、口、P2 口及口及 线没有信号输出;当程序计数器线没有信号输出;当程序计数

12、器PC的值超的值超出上述范围后,出上述范围后,P0口、口、P2 口及口及PSEN线才有信号输出。线才有信号输出。 80C51访问片外程序存储器时,使用如下的信号:访问片外程序存储器时,使用如下的信号: P0口:分时输出程序存储器的低口:分时输出程序存储器的低8位地址和位地址和8位数据。位数据。 ALE:在:在ALE的下降沿时,的下降沿时,P0口上出现稳定的程序存储口上出现稳定的程序存储器的低器的低8位地址,用位地址,用ALE信号锁存这低信号锁存这低8位地址。位地址。 EAEAPSENP2口:在整个取指周期中,输出稳定的程序存储器的高口:在整个取指周期中,输出稳定的程序存储器的高8位地址。位地址

13、。 线:低电平有效。在线:低电平有效。在ALE的下降沿之后,的下降沿之后,由高变为低,此时片外程序存储器的内容(指令字)送到由高变为低,此时片外程序存储器的内容(指令字)送到 P0口口,而后在,而后在 的上升沿将指令字送入指令寄存器,的上升沿将指令字送入指令寄存器, 信号信号作为片外程序存储器的作为片外程序存储器的“读读”选通信号。选通信号。 (2)当)当 0时,时,80C51单片微机所有片内程序存储器单片微机所有片内程序存储器无效,只能访问片外程序存储器。伴随着单片微机复位,无效,只能访问片外程序存储器。伴随着单片微机复位,P0口口、P2口及口及 线均有信号输出。线均有信号输出。 单片微机片

14、外程序存储器取指操作的时序如图单片微机片外程序存储器取指操作的时序如图87所示。所示。PSENPSENPSENPSENPSENEA8.2.2.2扩展片外程序存储器的硬件电路扩展片外程序存储器的硬件电路 片内程序存储器容量越来越大,如片内程序存储器容量越来越大,如89C5887C58的片内的片内程序存储器的容量高达程序存储器的容量高达32KB,甚至为,甚至为 64 KB。价格也大大降低。价格也大大降低。程序存储器的扩展已不是必须的了,仅作为一种技术来程序存储器的扩展已不是必须的了,仅作为一种技术来加以介绍。加以介绍。通常只需要扩展一片或两片通常只需要扩展一片或两片EPROM芯片就足够。常用芯片就

15、足够。常用EPROM芯片的管脚见图芯片的管脚见图88。门门例:扩展例:扩展16KB片外程序存储器片外程序存储器如图如图89所示。在电路中所示。在电路中 是接高电平的。是接高电平的。27128A是是16KB容量的容量的EPROM,14根地址线根地址线A0A13。系统中只扩展了。系统中只扩展了一片程序存储器,一片程序存储器,27128A的片选端可直接接地,一直有效。的片选端可直接接地,一直有效。EA=1,程序存储器先片内,程序存储器先片内4KB、即、即0000H0FFFH。片外片外27C128的地址为的地址为1000H 4FFFH,共,共16KB。EA 8.3 数据存储器的扩展数据存储器的扩展常用

16、的数据存储器有动态常用的数据存储器有动态RAM和静态和静态RAM,有并行,有并行RAM和串行和串行RAM。 各种存储器性能的比较各种存储器性能的比较 如表如表8 - 28.3.1片外并行数据存储器扩展片外并行数据存储器扩展8.3.1 .1片外并行数据存储器扩展时的总线功能和读、写操作时片外并行数据存储器扩展时的总线功能和读、写操作时序序 80C51对片外数据存储器读、写操作的指令有以下对片外数据存储器读、写操作的指令有以下4条:条: MOVX A,Ri ; 片外片外RAM(A),读(),读( ) MOVX Ri,A ;(;(A)片外片外RAM ,写(,写( ) Ri只能提供只能提供8位地址,仅

17、能扩展位地址,仅能扩展256个字节的片外个字节的片外RAM。MOVX A,DPTR;片外;片外RAM(A),读操作),读操作 MOVX DPTR,A ;(;(A)片外片外RAM , 写操作写操作DPTR能提供能提供16位地址,可以扩展位地址,可以扩展 64KB的片外的片外 RAM。RDWR“MOVX A,DPTR”和和“MOVX DPTR,A”的操作的操作时序示于图时序示于图810。从图中可以看出,执行该组指令时,机器周期从图中可以看出,执行该组指令时,机器周期1为取指周为取指周期,期,在取指周期的在取指周期的S5状态,当状态,当ALE为下降沿时,在为下降沿时,在P0总线上出总线上出现的是数据

18、存储器的低现的是数据存储器的低8位地址,即位地址,即DPL;在;在P2口上出现的是数口上出现的是数据存储器的高据存储器的高8位地址,即位地址,即DPH。 取指操作之后,直至机器周期取指操作之后,直至机器周期2的的S3状态之前,状态之前,一直维持高电平。而在机器周期一直维持高电平。而在机器周期2的的S1与与S2状态之间的状态之间的ALE不再不再出现。出现。 执行执行“MOVX A,DPTR”时,从机器周期时,从机器周期2开始到开始到S3状态,状态, 出现低电平。此时允许将片外数据存储器的数据送上出现低电平。此时允许将片外数据存储器的数据送上P0口,在口,在 的上升沿将数据读入累加器的上升沿将数据

19、读入累加器A。数据为输入。数据为输入。PSENWRRDRD 执行执行“MOVX DPTR,A”时,从机器周期时,从机器周期2开始到开始到S3状态状态, 出现低电平。此时出现低电平。此时P0口上将送出累加器口上将送出累加器A的数据,在的数据,在 的的上升沿将数据写入片外数据存储器中。数据为输出。上升沿将数据写入片外数据存储器中。数据为输出。 此时此时P0口为地址、数据复用总线;口为地址、数据复用总线;P2口在机器周期口在机器周期1的的S4状状态之后出现锁存的高态之后出现锁存的高8位地址(位地址(DPH);用控制线来调动数据总);用控制线来调动数据总线上的数据传输方向:而线上的数据传输方向:而 有

20、效时数据为输入,有效时数据为输入, 有效时数有效时数据为输出。据为输出。WRRDWRWRWRWRWR8.3.1.2片外并行数据存储器的扩展片外并行数据存储器的扩展图图811所示的是用两片所示的是用两片6264扩展扩展16KB片外并行数据存片外并行数据存储器的电路。储器的电路。采用线选法寻址。用一根口线采用线选法寻址。用一根口线P2.7来寻址:来寻址:P2. 7=0时,访问时,访问6264(0) ,地址范围为,地址范围为6000H7FFFH。P2.7=l时,时, 访问访问6264(1),地址范围为,地址范围为E000HFFFFH。 8.3.2.串行数据存储器的的扩展串行数据存储器的的扩展 E2P

21、ROM是可用电气方法在线擦除和可编程的只读存储器,是是可用电气方法在线擦除和可编程的只读存储器,是近年来推出的新产品。近年来推出的新产品。其主要特点其主要特点能在计算机系统中进行在线修改,并能在断电的情能在计算机系统中进行在线修改,并能在断电的情况下保持修改结果。写入的数据在常温下至少可以保存十年,一况下保持修改结果。写入的数据在常温下至少可以保存十年,一般其擦除般其擦除/写入周期寿命为写入周期寿命为1万次,近期推出的万次,近期推出的E2PROM芯片已达芯片已达10万次,有的产品的擦除万次,有的产品的擦除/写入周期寿命为写入周期寿命为100万次。万次。E2PROM问世以来,在智能化仪器仪表、控

22、制装置、开发系统中问世以来,在智能化仪器仪表、控制装置、开发系统中得到了广泛应用。得到了广泛应用。8.3.2.1 I2C串行串行EEPROM的扩展的扩展AT24C0102040816是电可擦除的串行是电可擦除的串行12825651210242048B程控只读存储器,具有两线串行接口,双向数程控只读存储器,具有两线串行接口,双向数据传输握手,硬件数据写保护,据传输握手,硬件数据写保护,8B页写方式和独立定时的写周页写方式和独立定时的写周期期 (最大最大10 ms) 等特点,可在等特点,可在 1.85 .5 V宽电源范围内可靠工宽电源范围内可靠工作,可保证作,可保证100 000次擦写周期和次擦写

23、周期和10年内数据不会丢失。年内数据不会丢失。AT24CXX 的内部结构与引脚图如图的内部结构与引脚图如图8-12所示所示 引脚说明引脚说明1) 串行时钟串行时钟 (SCL) 用于把所有数据同步输入到用于把所有数据同步输入到 EEPROM 器件,或把数据从器件,或把数据从 EEPROM 器件串行同步读出。在写方式中,当器件串行同步读出。在写方式中,当 SCL引脚是高电平时,数据必须保护稳定,并在引脚是高电平时,数据必须保护稳定,并在 SCL 的下降沿把的下降沿把数据同时输出。数据同时输出。2) 串行数据串行数据 (SDA) 是一个双向端口,用于把数据输入到器件是一个双向端口,用于把数据输入到器

24、件,或从器件输出数据,仅在,或从器件输出数据,仅在 SCL引脚为低时,数据才能改变。此引引脚为低时,数据才能改变。此引脚是漏极开路输出,可以和任意多个漏极开路或集极开路引脚以脚是漏极开路输出,可以和任意多个漏极开路或集极开路引脚以 线或线或方式连接在一起。方式连接在一起。3) 器件地址器件地址A2、A1、A0 , 是器件的地址输入端,用于器件的是器件的地址输入端,用于器件的选择。在一个单总线上,最多可挂选择。在一个单总线上,最多可挂 8片片AT24CXX (对于对于AT24C01A02) ,可以通过,可以通过A2、A1、A0 的硬件连接来区分。的硬件连接来区分。4) 写保护写保护 (WP) 端

25、子提供硬件数据保护。当端子提供硬件数据保护。当 WP引脚接地时,允引脚接地时,允许正常的读写;当许正常的读写;当 WP引脚接引脚接 Vcc 时,存储器被保护,禁止对存时,存储器被保护,禁止对存储器的任何写操作。不管储器的任何写操作。不管 WP引脚的状态如何,器件可以被读出引脚的状态如何,器件可以被读出。当。当 WP引脚不连接时,此端则被拉为低电平。引脚不连接时,此端则被拉为低电平。控制线路传输设备称为主设备控制线路传输设备称为主设备 ,受控制的设备称为从设备。,受控制的设备称为从设备。AT24CXX总是从设备。跟随在启动条件后,主设备必须发出总是从设备。跟随在启动条件后,主设备必须发出 “设设

26、备寻址字节备寻址字节”,用于选择一个接在系统总线上的从设备,其中包括,用于选择一个接在系统总线上的从设备,其中包括设备类别标志,设备地址,读或写操作标志等。然后,接收器把数设备类别标志,设备地址,读或写操作标志等。然后,接收器把数据线据线 SDA 接到接到“低低”,作为应答的确认信号,作为应答的确认信号(ACK)。 ACK 用于指用于指示成功的数据传输。发送设备在发送示成功的数据传输。发送设备在发送 8 位数据后就释放数据总线,位数据后就释放数据总线,SDA变高。在发送数据时,每个时钟周期的下降沿传输一位数据。变高。在发送数据时,每个时钟周期的下降沿传输一位数据。在第在第9个时钟周期,接收器把

27、数据线拉到个时钟周期,接收器把数据线拉到 “低低” ,以此向发送器确,以此向发送器确认认 8 位数据已被收到。总线操作时序如图位数据已被收到。总线操作时序如图8-13所示。所示。注意,写周期时间注意,写周期时间 Tw 是从一写序列的有效停止信号开始到内部的是从一写序列的有效停止信号开始到内部的擦写周期结束之间的时间,一般擦写周期结束之间的时间,一般 Tw10 ms 。 1)起始信号起始信号 在在 SCL为高时,为高时, SDA从高到低的变化则为一个起始信从高到低的变化则为一个起始信号,它必须发生在任何命令以前,起始和停止时序如图号,它必须发生在任何命令以前,起始和停止时序如图8-14所示。所示

28、。2)停止信号停止信号 在在SCL为高时,一个低到高的变化则是一个停止信号,为高时,一个低到高的变化则是一个停止信号,在一个读序列以后,停止命令将把在一个读序列以后,停止命令将把 EEPROM 置于低功耗方式,起置于低功耗方式,起始和停止时序如图始和停止时序如图8-14所示。所示。 3)确认确认(输出回答输出回答) 所有的地址和数据都是以所有的地址和数据都是以8bit的形式串行发送到的形式串行发送到EEPROM或从或从 EEPROM中送出。在第中送出。在第 9 个时钟周期,个时钟周期,EEPROM 送出一个送出一个“0”以确认它所接收的每一个字节以确认它所接收的每一个字节 (见图见图8-13

29、c)。 4)器件寻址器件寻址 (器件地址器件地址) 在起始信号后器件要求一个在起始信号后器件要求一个 8bit 的器件的器件地址,地址前地址,地址前4位是器件编号地址位是器件编号地址“1010” 序列。对序列。对 AT24CXX 系列的系列的EEPROM,这点是共同的。地址后,这点是共同的。地址后3位位A2、A1、A0是是引脚地址,必须与它们对应的硬件连线的输入信号相对应。器引脚地址,必须与它们对应的硬件连线的输入信号相对应。器件地址的第件地址的第8 位是读写操作选择位,此位为高,则启动读操位是读写操作选择位,此位为高,则启动读操作;若此位为低,则启动写操作。完成器件地址的比较后,器作;若此位

30、为低,则启动写操作。完成器件地址的比较后,器件输出一个件输出一个“0”,如果比较失败,芯片将转入备用状态。,如果比较失败,芯片将转入备用状态。AT24CXX器件的寻址器件的寻址(器件地址器件地址)格式见表格式见表8-3。 表中,表中,P0、P1、P2表示页寻址,表示页寻址,R/W=1时,是读操作;时,是读操作;R/W=0时,为写操作。时,为写操作。5)写操作写操作 AT24CXX写操作示意图如图写操作示意图如图8-15所示。所示。 字节写字节写 写操作序列如图写操作序列如图8-15a所示。所示。 EEPROM 进入一个内部写操作时序周期,把数据写入非易失性存进入一个内部写操作时序周期,把数据写

31、入非易失性存储器。在这个写操作周期中,所有的输入都被禁止,在写操作完成储器。在这个写操作周期中,所有的输入都被禁止,在写操作完成以后以后 EEPROM 才会响应。才会响应。 页写页写 写操作序列如图写操作序列如图8-15 b所示。所示。AT24CXX具有执行具有执行8B页写页写的能力,页写的启动和字节写的操作启动是相同的,但是在第一个的能力,页写的启动和字节写的操作启动是相同的,但是在第一个数据字节被串行输入到数据字节被串行输入到EEPROM后,单片微机不送停止信号,而后,单片微机不送停止信号,而是在是在 EEPROM 确认收到第一个数据字节以后,单片微机发送其它确认收到第一个数据字节以后,单

32、片微机发送其它7个数据字节,个数据字节,EEPROM每收到一个数据字节后将响应一个每收到一个数据字节后将响应一个0。单。单片微机必须用一个停止信号终止页写过程。片微机必须用一个停止信号终止页写过程。每收到一个数据以后,数据线字节地址的低每收到一个数据以后,数据线字节地址的低3位加位加 1 ,而高位,而高位是不改变的,以保持存储器页位置不变。如果多于是不改变的,以保持存储器页位置不变。如果多于8个数据字个数据字节被送到节被送到 EEPROM ,则数据字节地址重复滚动,以前输入的,则数据字节地址重复滚动,以前输入的数据将被覆盖。数据将被覆盖。一旦内部的写操作时序周期被启动,一旦内部的写操作时序周期

33、被启动,EEPROM 的输入就被禁的输入就被禁止,可以启动确认询问来判断器件内部是否写完。这种询问是止,可以启动确认询问来判断器件内部是否写完。这种询问是发送一个启动信号,接着再发送一个器件地址字节,读写位发送一个启动信号,接着再发送一个器件地址字节,读写位代表要求的操作。只有当内部的写周期完成后,代表要求的操作。只有当内部的写周期完成后, EEPROM 才才会送出一个会送出一个 0 ,以允许后续的读或写。,以允许后续的读或写。6) 读操作读操作 AT24CXX读操作示意图如图读操作示意图如图8-16所示。除了在器件所示。除了在器件地址字节的读写选择位上置地址字节的读写选择位上置 1 外,读操

34、作的启动方法和写操外,读操作的启动方法和写操作的一样。作的一样。有三种读操作:当前地址读、随机地址读和顺序读。有三种读操作:当前地址读、随机地址读和顺序读。 当前地址读当前地址读 AT24CXX内部数据字节地址计数器含有上次读或写内部数据字节地址计数器含有上次读或写操作的数据字节的地址加操作的数据字节的地址加1的值。例如,上次读或写操作的地址单的值。例如,上次读或写操作的地址单元为元为n,内部地址计数器将指向,内部地址计数器将指向n+1的地址单元。只要芯片的电源保的地址单元。只要芯片的电源保持着,那么在操作过程中该地址就保持有效。在读操作中,地址滚持着,那么在操作过程中该地址就保持有效。在读操

35、作中,地址滚动是从存储器的最后一个页面的最后一个字节翻转到第一页面的第动是从存储器的最后一个页面的最后一个字节翻转到第一页面的第一个字节。而在写操作中,地址滚动是从当前页面的最后一个字节一个字节。而在写操作中,地址滚动是从当前页面的最后一个字节翻转到同一页面的第一个字节。一旦读写选择位置翻转到同一页面的第一个字节。一旦读写选择位置1的器件,地的器件,地址被时钟同步输入,且又被址被时钟同步输入,且又被EEPROM确认后,则当前地址的数据确认后,则当前地址的数据字被串行同步送出。此时,单片微机不是用输入字被串行同步送出。此时,单片微机不是用输入0来响应,而是把来响应,而是把确认拉到高电平,接着再产

36、生一个停止信号来终止当前地址读操作确认拉到高电平,接着再产生一个停止信号来终止当前地址读操作。AT24CXX的当前地址读时序如图的当前地址读时序如图 8-16 a 所示。所示。 随机读随机读 随机读操作允许单片微机随机读取任何一个存储单元随机读操作允许单片微机随机读取任何一个存储单元,此类读操作包括两个步骤:首先需要一个空字节写序列,单片,此类读操作包括两个步骤:首先需要一个空字节写序列,单片微机产生一个启动条件,发出读写选择位置微机产生一个启动条件,发出读写选择位置 0 的器件地址和单的器件地址和单片微机要读的数据字的地址,这个步骤把所要求的数据字的地址片微机要读的数据字的地址,这个步骤把所

37、要求的数据字的地址加载到加载到 EEPROM内部地址计数器;第二步是单片微机收到内部地址计数器;第二步是单片微机收到 EEPROM 的数据字地址确认的数据字地址确认(ACK)信信息以后必须发出一个读写选择位置息以后必须发出一个读写选择位置 1 的器件地址字节,以启动的器件地址字节,以启动当前地址读操作当前地址读操作EEPROM 确认器件地址,并且从单片微机要读确认器件地址,并且从单片微机要读取的地址中输出取的地址中输出8位串行数据。此时,单片微机不是用输入位串行数据。此时,单片微机不是用输入“0”来响应,而是把确认拉到高电平,接着产生一个停止信号来结束来响应,而是把确认拉到高电平,接着产生一个

38、停止信号来结束随机读操作。随机读操作。 AT24CXX 的随机读时序如图的随机读时序如图8-16 b所示。所示。 顺序读顺序读 顺序读可以由当前地址读或随机地址读启动。在单片微顺序读可以由当前地址读或随机地址读启动。在单片微机收到一个数据字节以后,用一个确认来响应。只要机收到一个数据字节以后,用一个确认来响应。只要 EEPROM 收收到确认,它就继续执行数据字节地址加到确认,它就继续执行数据字节地址加l,串行同步输出顺序的数据,串行同步输出顺序的数据字节。当地址达到存储器地址界限时,将发生地址重复滚动,然后字节。当地址达到存储器地址界限时,将发生地址重复滚动,然后顺序读仍将进行下去。当单片微机

39、不用顺序读仍将进行下去。当单片微机不用0来响应,而接着产生一个来响应,而接着产生一个停止条件时,顺序读操作被终止。停止条件时,顺序读操作被终止。AT24CXX的顺序读时序如图的顺序读时序如图 8-16 c 所示所示AT24C02与与80C51单片微机的连接原理图如图单片微机的连接原理图如图8 - 17所示。所示。 U1、U2、U3、U4的器件地址分别是的器件地址分别是1010 000 R/W、1010 001 R/W、1010 010 R/W、1010 011 R/W。主控器的写操作主控器的写操作 主控器向被寻址的被控器发送主控器向被寻址的被控器发送n个数据字节,整个数据字节,整个传输过程中数

40、据传送方向不变。其数据传送格式如下:个传输过程中数据传送方向不变。其数据传送格式如下:其中其中 黑底框为主控器发送,被控器接收;其余为主控器接收,被黑底框为主控器发送,被控器接收;其余为主控器接收,被控器发送控器发送(下同下同)。A应答信号应答信号A非应答信号非应答信号S起始信号起始信号P停止信号停止信号SLAW寻址字节寻址字节data1datan写入被控器的写入被控器的n个数据字节个数据字节A主控器的读操作主控器的读操作 主控器从被控器中读出主控器从被控器中读出n个字节的操作,整个传个字节的操作,整个传输过程中除寻址字节外,都是被控器发送,主控器接收的过程。数输过程中除寻址字节外,都是被控器

41、发送,主控器接收的过程。数据传送格式如下:据传送格式如下:A应答信号应答信号A非应答信号非应答信号S起始信号起始信号P停止信号停止信号SLAR寻址字节寻址字节(读读)data1datan被主控器读出的被主控器读出的n个数据字节个数据字节主控器发送停止信号前应发送非应答位,向被控器表明读操作结束主控器发送停止信号前应发送非应答位,向被控器表明读操作结束从上述数据传送格式可以看出:从上述数据传送格式可以看出: 1) 无论何种方式起始、停止,寻址字节都由主控器发送,数据无论何种方式起始、停止,寻址字节都由主控器发送,数据字节的传送方向则遵循寻址字节中方向位的规定。字节的传送方向则遵循寻址字节中方向位

42、的规定。 2) 寻址字节只表明器件地址及传送方向,器件内部的寻址字节只表明器件地址及传送方向,器件内部的n个数据个数据地址由器件设计者在该器件的地址由器件设计者在该器件的I2C总线数据操作格式中,指定第总线数据操作格式中,指定第一个数据字节作为器件内的单元地址一个数据字节作为器件内的单元地址(SUBADR)数据,并且设置数据,并且设置地址自动加减功能,以减少单元地址寻址操作。地址自动加减功能,以减少单元地址寻址操作。 3) 每个字节传送都必须有应答信号每个字节传送都必须有应答信号(A或或A)相随。相随。4) I2C总线被控器在接收到起始信号后都必须复位它们的总线逻总线被控器在接收到起始信号后都

43、必须复位它们的总线逻辑,以便对将要开始的被控器地址的传送进行预处理。辑,以便对将要开始的被控器地址的传送进行预处理。对于内部没有对于内部没有I2C总线的单片微机按照总线的单片微机按照I2C总线的原理及时序要求用总线的原理及时序要求用软件虚拟软件虚拟I2C总线,采用系统内的两根总线,采用系统内的两根I/O口线虚拟口线虚拟I2C总线的总线的SDA和和SCL。虚拟虚拟I2C总线的通用软件包可提供使用,对于非总线的通用软件包可提供使用,对于非80C51只要改变助记只要改变助记符指令即可。符指令即可。应用时注意几点应用时注意几点: 1) 通用软件包为一完整的子程序集合,使用时可预先安放在程序通用软件包为

44、一完整的子程序集合,使用时可预先安放在程序存储器的任何空间,通用软件包与系统硬件无关。存储器的任何空间,通用软件包与系统硬件无关。 2) 注意子程序嵌套所须的堆栈空间。注意子程序嵌套所须的堆栈空间。 3) 通用软件包中直接与应用程序编写有关的子程序为通用软件包中直接与应用程序编写有关的子程序为WRNBYT和和RDNBYT。 相应的相应的I2C总线读写指令为:总线读写指令为:MOV SLA,#SLAW;寻址被控器件;寻址被控器件(写写) MOV NUMBYT,#n ;规定传送字节数;规定传送字节数 LCALL WRNBYT;调用发送;调用发送n个字节数据子程序个字节数据子程序MOV SLA,#S

45、LAR ;寻址被控器件;寻址被控器件(读读)MOV NUMBYT,#n ;规定传送字节数;规定传送字节数LCALL RDNBYT ;调用接收;调用接收n个字节数据子程序个字节数据子程序 启动启动I2C总线总线STASETB SDASETB SCLNOPNOPCLRSDANOPNOPCLRSCLRET停止停止I2C总线数据传送总线数据传送STOP:CLR SDASETB SCLNOPNOPSETB SDANOPNOPCLRSCLRET发送应答位发送应答位I2C总线上第总线上第9个时钟脉冲对应于应答位,相应数据线上个时钟脉冲对应于应答位,相应数据线上“0”为为“ACK” , “0”为为“ACK”

46、。MACKCLRSDASETB SCLNOPNOPCLRSCLSETB SDARET发送非应答位发送非应答位MNACK:SETBSDASETB SCLNOPNOPCLRSCLCLRSDARET应答位检查应答位检查被控器收到字节后,必须向主控器发应答位。被控器收到字节后,必须向主控器发应答位。CACK:SETBSDASETB SCLCLRF0MOV A,P1JNBACC.7,CEND;读;读SDASETB F0CEND:CLR SCLNOPNOPRET向向SDA线上发送一个数据字节线上发送一个数据字节(数据在数据在A中中)WRBYTMOV R0,#08H ;长度;长度WLPRLCA ;发送数据左

47、移;发送数据左移JCWR1AJMPWR0WLP1DJNZR0,WLPRETWR1SETBSDA;发送;发送“1”(SCL=1时,时,SDA保持保持“1”)SETBSCLNOPNOPCLRSCLCLRSDAAJMPWLP1WR0CLRSDA;发送;发送“0”SETBSCLNOPNOPCLRSCLAJMPWLP1从从SDA线上读取一个数据字节线上读取一个数据字节RDBYTMOVR0,#08H;8位位RLPSETBSDA;P1.7为输入状态为输入状态SETBSCL;使;使SDA有效有效MOVA,P1JNBACC.7,RD0AJMPRD1RLP1DJNZR0,RLPRETRD0CLRC;读入;读入“0

48、” ,拼装,拼装MOVA,R2RLCAMOVR2,ACLRSCLAJMPRLP1RD1SETBC;读入;读入“1” ,拼装,拼装MOVA,R2RLCAMOVR2,ACLRSCL;使;使SCL为为0,继续可以接收,继续可以接收AJMPRLP1模拟模拟I2C总线发送几个字节数据总线发送几个字节数据(数据格式见前数据格式见前)WRNBYTPUSHPSWMOV PSW,#18H;换工作寄存器区;换工作寄存器区WRNBYT0MOV R0,NUMBYTWRNBYT1LCALLSTA;启动;启动MOVA,SLA;寻址字节;寻址字节SLA W/RLCALL WRBYT;发一个字节;发一个字节LCALL CAC

49、K;检查应答位;检查应答位JBF0,WRNBYT1;非应答位,重发;非应答位,重发MOVR1,#MTD;发送数据缓冲区首址;发送数据缓冲区首址WRDAMOVA,R1LCALL WRBYT;发送;发送LCALL CACKJBF0,WRNBYT0INCR1DJNZR0,WRDA;判发送完?;判发送完?LCALL STOP;停止;停止POPPSWRET模拟模拟I2C总线接收几个字节数据总线接收几个字节数据RDNBYTPUSHPSWRDNBYT1MOV PSW,#18HLCALL STAMOVA,SLA;寻址字节;寻址字节LCALL WRBYTLCALL CACKJBF0,RDNBYT1;非应答位,重

50、写;非应答位,重写RDNMOVR1,#MRD;接收缓冲区首址;接收缓冲区首址RDN1LCALLRDBYTMOVR1,ADJNZNUMBYT,ACK;N个字节接收完?个字节接收完?LCALL MNACK;接收完,需发非应答位;接收完,需发非应答位LCALL STOPPOPPSWRETACKLCALL MACKINCR1SJMPRDN1例:已知例:已知AT24CXX器件地址为器件地址为1010,A2、A1、A0为引脚地址,为引脚地址,若若A2、A1、A0全接地,则寻址地址全接地,则寻址地址SLAW(写写)=A0H,而,而SLAR(读读)=A1H。读读AT24C02,将其中,将其中50H57H中的数

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁