版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
6.1磨刀霍霍—预备知识
6.1.1半导体存储器的分类及引脚6.1.2锁存器和缓冲器 6.2小试牛刀—实战案例
动手实践6-1:外部RAM的扩展动手实践6-2:简单并口的扩展第6章
51单片机资源的并行扩展第6章
51单片机资源的并行扩展6.3庖丁解牛—原理剖析6.3.1并行扩展的基本结构和方法6.3.2片选与地址译码6.3.3MOVX指令及其用法动手实践6-3:地址译码电路的设计第6章
51单片机资源的并行扩展6.4牛气冲天——实战进阶(*)6.4.18155的引脚及内部结构6.4.28155的命令字与工作方式6.4.38155的应用动手实践6-4:8155A的应用6.1磨刀霍霍—预备知识
6.1.1半导体存储器的分类和引脚只读存储器ROM:只能进行读操作,不能随意进行写操作。ROM一个主要的特点是断电后保存的信息不会丢失,因此在系统中ROM一般用于存放已经调试好的程序,称为程序存储器。
随机存取存储器RAM:保存的信息在任何时刻都可以由CPU读取或者写入。系统断电后,RAM中保存的所有信息都将不复存在,因此RAM一般用于存放系统运行过程中的一些实时动态数据,称为数据存储器。半导体存储器芯片的分类程序存储器ROM数据存储器RAM内部ROM外部ROM内部RAM外部RAM存储器MROMPROMEPROMEEPROMFlashEEPROMMemorySRAMDRAMNVRAM在单片机系统中,程序存储器通常用EPROM和EEPROM进行实现和扩展,典型的有2716、2732、2764、27128、27256等EPROM芯片。外部数据存储器的扩展一般用SRAM芯片,典型的有6116、6264、62256等。半导体存储器芯片的引脚数据引脚用于传送芯片内部各存储单元的数据,数据线的数量决定了芯片中每个单元存放的二进制数据的位数。上述3个芯片都有8根数据线,说明芯片内部的每个单元都可以保存8位(一个字节)二进制数。地址引脚用于传送芯片内部各单元的地址。访问时,单片机送来的地址通过地址线送入芯片内部,由内部电路选中对应的单元。一般情况下,同一个芯片内部所有单元的地址是连续的,并且各单元的地址各不相同。也就是说,通过地址线送入不同的地址编码,即可确定找到内部唯一的一个单元进行数据的读写访问。以2716为例,当由A10~A0送入的11位地址为全0时,选中第一个单元;当送入的地址为00000000001B时,选中第2个单元;…;当送入的地址为全1时,选中最后一个单元。由于芯片内部各单位的地址是连续并且唯一的,因此地址线的数量n决定了该存储器芯片中集成的存储单元个数M,其关系为M=2n。例如,2716有11根地址线,2764和6264都分别有13根地址线,因此3个芯片内的单元数分别为211=2
210=2K、213=23
210=8K,其中1K=210=1024。控制引脚用于对芯片的读写进行访问控制,例如CE、CS、OE、WE等。其中CE(ChipEnable)和CS(ChipSelect)都称为片选信号引脚,OE(OutputEnable)和WE(WriteEnable)分别为输出允许和写允许引脚。注意:引脚名称上面的短横线代表低电平有效。例如,当从外部通过CE引脚送入一个低电平或者负脉冲时,称为该引脚信号有效,意味着该芯片被选中,可以对其进行读写操作访问。同样的,如果需要对芯片内部的单元进行写操作,必须由外部电路(一般是CPU)通过WE引脚向存储芯片送入一个负脉冲。存储器芯片的容量——也就是芯片内部集成的存储单元个数和每个单元存储的二进制数据的位数,通常表示为“单元数位数”的形式。例如,2716芯片的容量为2K×8,2764和6264的容量为8K×8。由于8位二进制表示一个字节,因此3个芯片的容量又可简单表示为2KB、8KB,其中B表示字节(Byte,代表8位二进制)。6.1.2锁存器和缓冲器锁存器(Latch)一般用于实现并行输出口的扩展。并行输出口用于连接LED、数码管这样的输出设备,这些外部设备的工作速度远低于单片机和CPU以及系统总线的速度,一般需要通过锁存器才能连接到系统总线上,并进一步接收CPU通过子系统总线送来的数据。各种集成锁存器芯片的内部结构和工作原理都是类似的,内部最关键的部件大都是由若干触发器构成。触发器是最基本的时序逻辑电路,能够将数据稳定地保存一段时间。因此,利用触发器实现的锁存器就可以将数据总线上瞬间出现的数据保存下来,等待外部设备慢慢读取,或者控制外部设备稳定地工作。74HC373OE端接地,在LE上升沿作用下,由D7-D0端送来的8位数据打入锁存器并立即由Q7-Q0端输出。只要LE端不重新出现上升沿,锁存器的输出数据就保持不变,从而实现输出数据的锁存。集成缓冲器芯片内部主要由若干三态门构成,另外有一些控制电路。在单片机系统中,缓冲器通常用于扩展并行输入口,或者用作数据总线或其他部件的驱动电路,主要就是利用内部的三态门以增强带负载能力、实现数据的缓冲和时序的匹配、避免出现总线冲突等。6.2小试牛刀—实战案例
动手实践6-1:外部RAM的扩展(ex6_1.pdsprj,p6_1.asm)动手实践6-2:简单并口的扩展(ex6_2.pdsprj,p6_2.asm)动手实践6-1外部RAM的扩展动手实践6-2简单并口的扩展6.3庖丁解牛—原理剖析
6.3.1并行扩展的基本结构和方法在51单片机中,内部存储器、4个并口、定时/计数器和串口等都与CPU一起集成在单片机芯片的内部,这些部件通过单片机的内部总线相互连接。对于在单片机外部扩展的存储器和并行接口,一般通过三组系统总线(地址总线、数据总线和控制总线)连接起来,利用三组系统总线在单片机和扩展芯片之间分别传送所需的各种信号,并相互配合实现外部存储器和扩展并口的读写访问。并行扩展的基本结构与系统总线在51单片机系统中,各种扩展的外部I/O接口、定时/计数器、模拟外设等都与外部RAM采用统一编址方式,即将每个扩展接口部件都视为一个外部RAM存储单元。扩展的各种外围接口器件只要符合总线规范,都可方便地接入系统,并采用相同的方法和程序指令进行读写访问。地址总线(AB,AddressingBus):用于传送外部扩展部件的地址,以便找到当前需要访问的存储器和接口。地址一定是由CPU送往外部各种扩展芯片,因此地址总线是单向的。数据总线(DB,DataBus):用于CPU与外部扩展部件之间的数据传送。数据可以从CPU送往外部存储器和扩展并口(称为写),也可以是从外部存储器和扩展接口送往CPU(称为读),因此数据总线是双向的。控制总线(CB,ControlBus):用于传送读/写所需的联络控制信号,不同的联络控制信号可能是由CPU送往外部扩展芯片,也可能是由外部扩展芯片送入单片机和CPU。系统总线的形成P0口:数据总线,通过地址锁存器得到地址总线的低8位;P2口:地址总线的高8位;P3口:P3.6和P3.7的第二功能分别为WR和RD,和单片机的PSEN、ALE、EA等引脚一起用于提供控制信号,形成控制总线。在单片机访问外部扩展资源的过程中,地址的低8位和数据在时间上错开都通过P0口进行传送,这种技术称为分时复用(Time-SharingMultiplexing)。需要注意的是,P2口只用于形成地址总线的高8位,不会传送数据,因此没有采用分时复用技术,也不需要将其输出的地址进行锁存,而是直接得到地址总线的高8位。ex6_1.pdsprj系统总线与扩展芯片的连接与三组系统总线相对应,每个扩展芯片上都有数据线、地址线和控制信号线引脚。一般来说,将这些引脚分别与系统总线中的三组总线对应连接即可。此外,在任何时刻只能选中其中的一个芯片通过系统总线与单片机进行数据传送,这就要求每个扩展芯片都必须具有片选功能。具体连接时,一般利用某些地址总线和控制总线经过一定的组合逻辑运算后得到扩展芯片上的片选信号。ex6_1.pdsprjex6_2.pdsprj相当于片选信号6.3.2片选与地址译码片选与单元选择选中该存储器芯片,称为芯片选择,简称为片选(ChipSelect),只有被选中的芯片才能被单片机访问,未被选中的芯片不能被访问。每个扩展芯片都有片选引脚,一般情况下,将地址总线的高位直接或者经过译码电路后实现芯片的片选。每个存储器芯片内部都有很多存储单元,扩展的每个并行接口芯片内部也可能会有很多相当于存储单元的端口(Port,又称为寄存器)。因此在片选的基础上还需要对该芯片中需要读写访问的单元或端口进行选择和指定,称为单元选择。扩展芯片上的地址引脚就是用于实现芯片内部单元选择,一般将这些地址引脚与地址总线中的低位相连接。所谓线选法,指的是直接利用单片机地址总线中的某一根高位地址线作为存储器芯片的片选信号,不同的芯片用不同的高位地址线作为片选信号。这种方法电路简单,不需另外增加地址译码器硬件电路,体积小,成本低。但是可寻址芯片数目受限制。另外,地址空间不连续,存储单元地址不唯一,这会给程序设计带来一些不便。线选法适用于外扩芯片数目不多的单片机系统的系统扩展。片选的简单实现——线选法ex6_1.pdsprj当单片机送出16位地址时,只要其中的最高位A15=0,就选中该存储芯片,这就意味着对U3中的所有单元,地址的最高位必须都为0。另一方面,低13位地址总线用于实现片内单元选择,低13位从全0到全1分别选中芯片内部从第一个到最后一个单元。由此得到U3内部8KB个单元的地址范围为:0**0000000000000B~0**1111111111111B
其中A13和A14可任意设为0码或1码,因为对U3来说这两位地址总线未用。地址总线中的A14虽然没有用于控制U3,但是该位地址总线直接送到U4芯片的片选。因此,当A14=0时,应该选中U4芯片中的某个单元。对U3来说,应该将所有单元地址的A14位设为1,以保证不选中U4芯片,只选中U3芯片。最后得到U3内部8KB个单元的基本地址范围(未用的地址位设为0)为4000H~5FFFH,重叠地址范围(未用的地址位设为1)6000H~7FFFH。ex6_2.pdsprj74HC245和74HC273的地址分别为0111111111111111B=7FFFH和1011111111111111B=0BFFFH。上述线选法会造成很多地址空间的浪费,也就是64KB的外部RAM地址无法得到全部利用。例如,在图6-5所示电路中,地址范围0000H~3FFFH、0C000H~0FFFFH内的这些地址将不会选中任何一个单元,这些地址空间范围被浪费掉了。为此,在需要更大容量的单片机系统中,通常采用译码器对高位地址进行译码后作为各芯片的片选信号,称为地址译码。地址译码实现地址译码的电路实际上是一个组合逻辑电路,可以用基本的逻辑门电路实现,也可以采用集成的地址译码器芯片实现。常见的地址译码器芯片有74LS138(3-8译码器)、74LS139(双2-4译码器)与74LS154(4-16译码器)等。对地址译码电路,其输入一般为地址总线中没有与扩展芯片相连接的高位,而输出为各存储芯片所需的片选信号。举例:为案例6-1中的两片6224设计地址译码电路。两片6264内8K个单元的地址范围分别为0000H~1FFFH2000H~3FFFH在该例中,除低13位以外,剩下的高3位全部参与译码,称为全译码法。采用全译码方法,所有存储芯片中的每个单元都有确定的地址,不存在地址重叠。此外,图中的74LS138译码器还有6个输出端,可另外再接6个6264芯片,从而使整个系统可以有8个6264芯片,得到总的存储器容量为8×8KB=64KB。这是51单片机能够管理的最大外部RAM容量。由此可见,采用全译码法,不仅不存在地址重叠,还可以将存储地址空间得到充分利用。在实际系统中,如果所需的存储容量不大,存储芯片的数量和片选信号较少,也可以只将一部分高位地址总线接到译码电路,这种方法相应地称为部分译码法。在这种方法中,没有参与地址译码的高位地址可以任意取为1码或0码,从而使得扩展的每个存储单元将有多个地址,即存在地址重叠。6.3.3MOVX指令与扩展资源的访问MOVX指令及其用法
在51单片机的指令系统中,MOVX指令的用法和书写格式只有如下4种:MOVX
A,@DPTRMOVX A,@RiMOVX
@DPTR,AMOVX @Ri,A
其中,前面两条和后面两条分别用于实现外部RAM单元和扩展并口的读和写操作访问。举例:要从地址为2010H的外部RAM单元读取一个字节数据,可以用如下指令:MOV DPTR,#2010HMOVX A,@DPTR也可以用如下程序段实现:MOV P2,#20H ;地址的高8位到P2MOV R0,#10H ;第8位地址存入R0MOVX A,@R0 ;读取RAM单元注意这条指令采用寄存器间接寻址,但由于是MOV指令,所以访问的是内部RAM单元。51单片机执行MOVX指令访问一次外部RAM,从中读取或写入一个字节的操作又可以分解为很多小步骤,在每个步骤内,单片机和存储器分别需要哪些信号配合和控制,称为时序(TimeSequence),一般用时序图表示。外部RAM的访问时序单片机执行MOVX指令需要2个机器周期,其中第一个机器周期从ROM中将程序中的该条指令取入CPU(取指令),第二个机器周期实现该条指令规定的操作(执行指令)。对MOVX指令来说,执行指令就是访问外部RAM,实现RAM单元的读写操作。图6-12给出了单片机CPU执行MOVX指令实现外部RAM读写时的基本时序。其中P1和P2分别代表一个时钟周期,S1~S6分别都由两个时钟周期构成,称为状态。左侧和右侧的S1~S6分别构成两个机器周期。扩展并口的访问时序动手实践6-3:地址译码电路的设计本案例用4片6264为AT89C52系统扩展32KB的外部RAM,已知各片6264的单元地址从8000H开始连续分配。要求:(1)分别用基本逻辑门电路和集成3-8译码器设计地址译码电路,画出电路原理图;(2)编制程序将1#6264内部的8KB个单元存入常数0AH,1#6264内部的8KB个单元存入常数0BH,3#和4#6264内部的8KB个单元分别存入常数0CH和0DH。解
答:(1)根据已知的起始地址,得到4片6264的单元地址范围(地址分配表)如表6-2所示。ex6_3.pdsprj(2)程序如下:6.4牛气冲天—实战进阶
上述小规模的集成锁存器和缓冲器芯片,每个芯片只能扩展一个8位并口。当系统中需要扩展的并口较多时,所需芯片数也将大为增加,势必导致系统的体积增大,芯片之间相互连接导致的可靠性降低等。利用8155可以为单片机系统扩展2个8位并行接口和一个6位并行接口。8155内部还提供了256字节的SRAM和一个14位的定时/计数器,可以为单片机系统扩展256B的外部RAM,并额外扩展一个14位定时/计数器,因此在单片机系统中得到了广泛应用。本节将对8155及其用法进行简单介绍。6.4.18155的引脚及内部结构(1)PA和PB端口是8位并行接口(端口),对应2组8根引脚PA0~PA7和PB0~PB7,可连接外部8位并行输入或输出设备,但PC接口(端口)只有6位,对应的引脚也只有6根,即PC0~PC5。(2)地址/数据线AD0~AD7采用分时复用技术,一般直接与单片机的P0口相连接,在单片机与8155内部各端口和RAM单元之间传送8位数据和低8位地址。(3)ALE引脚传送地址锁存信号,高电平有效,一般和单片机的ALE端直接相连。当单片机通过P0口送来低8位地址时,同时由ALE引脚送来的脉冲下降沿将低8位地址锁存到8155内部的地址锁存器。因此8155的地址线可以直接与单片机的P0口相连接,无需另外再连接地址锁存器。(4)IO/M为内部RAM和端口选择信号引脚。访问内部RAM单元时,该信号为低电平;当访问片内3个端口以及命令/状态寄存器和定时/计数器时,该信号为高电平。(5)CE为片选信号引脚,当从该引脚送入低电平时,选中该片8155,再由IO/M上的高低电平区分是访问内部的端口还是RAM单元。(6)RD和WR为读和写信号输入引脚,一般直接与单片机的P3.6和P3.7引脚相连接,控制实现内部端口和RAM单元数据的读和写。(7)TI和TO是片内定时/计数器的计数脉冲输入和输出引脚。在TI端送入计数脉冲作用下,内部的14位定时/计数器实现递减计数。当计数值递减到0时,TO引脚输出脉冲或方波,波形形状由计数器的工作方式决定。8155内部除了3个并口、一个计数器和256字节RAM单元以外,还有一个控制寄存器,这些端口和寄存器通过AD7~AD0送入的8位地址进行寻址,各端口的地址分配及访问时所需的控制信号如表6-3所示。6.4.28155的命令字与工作方式当单片机输出16位地址的低3位地址A2A1A0=000时,表示对控制寄存器进行读写访问,再进一步由RD或WR引脚送入的负脉冲决定是读操作还是写操作。如果是写操作,表示向8155写入命令字,以指定8155的工作方式;如果是读操作,则表示读取其中保存的状态字。6.4.28155的命令字与状态字中断请求允许,1:允许;0:禁止PA、PB端口的输入输出,1:输出;0:输入定时器启停控制PA、PB端口输入输出方式,00~11:ALT1~ALT4PB中断允许状态PA有中断请求定时/计数器溢出中断,读状态字后将自动复位PA中断允许状态PB有中断请求PB缓冲器满PA缓冲器满6.4.38155的工作方式当IO/M=0,并且CE=0时,8155工作在存储器方式,单片机可以利用MOVX指令对8155内部的RAM单元进行读写访问。在访问过程中,首先由AD7~AD0输出RAM单元的8位地址,在RD和WR信号的作用下,再通过AD7~AD0传送选中单元的数据。一般情况下,8155的AD7~AD0直接与单片机的P0相连接,则执行MOVX指令时,由DPTR提供的16位地址中,只有低8位能够由AD7~AD0送入8155,用于内部RAM单元的选择。16位地址中的其他位可以直接或者经过译码后作为IO/M或CE信号。存储器方式当IO/M=1,并且CE=0时,8155工作在端口数据输入/输出方式,由PA、PB和PC端口根据命令字中PAB1、PAB2和PA、PB位设置的输入输出方式实现数据的输入或输出。命令字中的PAB1和PAB2位共有4种组合00~11,可分别设置PA和PB端口工作在4种输入/输出工作方式,这种工作方式依次表示为ALT1、ALT2、ALT3和ALT4方式,其中前两种称为基本输入输出方式,后两种称为选通工作方式。输入/输出方式(1)基本输入输出方式如果通过命令字设置8155工作在ALT1或ALT2方式,则内部的3个端口PA、PB和PC都工作在基本输入/输出方式。如果端口连接输入设备,则外部设备准备好数据后,立即存入8155内部的端口寄存器中,等待单片机读取;如果端口连接的是输出设备,则单片机需要输出数据时,将数据送到8155内部的端口寄存器后,立即通过PA或PB端口送到外部设备。具体是输入还是输出,取决于命令字中的最低两位。(2)选通输入输出方式如果通过命令字设置8155工作在ALT3或ALT4方式,则内部的端口PA和PB工作在选通输入/输出方式。所谓选通方式输入/输出,指的是在传输数据的过程中,8155与单片机和外部设备之间需要一些应答联络信号,以配合实现数据的准确可靠传送。在选通输入时,外部设备由PC2或PC5引脚送来STB负脉冲选通信号,将数据打入8155。此时,BF信号变为高电平,通知单片机读取数据。如果中断允许(命令字中的INTEA或INTEB设为1),8155内部会自动将PC0或PC3置为高电平,向单片机发出中断请求。单片机从相应端口读取数据后,BF和INTR恢复为低电平。此后,单片机等待外部设备送来下一个数据,并重复上述过程。在选通输出时,单片机向PA或PB端口输出一个数据,立即使BF信号变为高电平,通知外部设备从8155读取数据。外部设备将数据读取后,STB信号变为低电平。此时,如果中断允许,则8155内部将使INTR信号变为高电平,从而向单片机发出中断请求。单片机检测到STB信号为低电平,或者响应中断后,可以向8155端口输出下一个数据,并重复上述过程。在ALT3方式下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026芹菜籽止咳片说明书错误哄抬价格市场监管处罚解析省
- 2026煤炭行业市场供需趋势投资潜力规划研究报告
- 2026中国智能婴儿监护呼吸传感器误报率降低
- 2026中国智能农业智能应用行业市场供需分析及投资评估规划分析研究报告
- 2026年AR建筑施工的进度跟踪交互界面
- 2026中国固态电池产业化突破路径与商业化应用前景专项研究报告
- 2026中国物联网设备行业供需分析与投资价值评估报告
- 2026能源私募股权投资策略研究报告
- 统编版七年级语文上册第一单元第3课《雨的四季》学习任务单
- 2026能源装备制造业智能制造升级分析及融资策略报告
- 2026年秋季学期小学教科版六年级上册科学教学计划
- 蓝色简约风结构化思维训练模板
- 2026四川成都市生态环境工程评估与绩效评价中心编外人员招聘2人备考题库含答案详解(黄金题型)
- 2026年济南地铁调度岗位招聘考试题库
- 腹主动脉扩张护理查房
- 2026年档案职称中级高分题库附完整答案详解【网校专用】
- 2026年上海市静安区高三语文二模作文题目解析及范文:当你觉得对话失去意义
- 2026年北京市西城区初三一模语文试卷(含答案)
- 2026四川宜宾高新区招聘城市综合管理辅助人员15名笔试备考试题及答案解析
- 广东粤电阳江海上风电有限公司招聘笔试题库2026
- PCB设计规范(IPC2152中文版)
评论
0/150
提交评论