MCS-51单片机原理及应用技术教程第6章MCS-51单片机系统扩展_第1页
MCS-51单片机原理及应用技术教程第6章MCS-51单片机系统扩展_第2页
MCS-51单片机原理及应用技术教程第6章MCS-51单片机系统扩展_第3页
MCS-51单片机原理及应用技术教程第6章MCS-51单片机系统扩展_第4页
MCS-51单片机原理及应用技术教程第6章MCS-51单片机系统扩展_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章MCS-51

单片机系统扩展程序存储器扩展6.2数据存储器扩展6.3FLASH存储器的扩展6.4MCS-51单片机的扩展总线6.1并行I/O口的扩展6.5为什么要进行系统扩展?MCS-51单片机集成了CPU、ROM、RAM、定时/计数器和并行I/O接口等内部资源,但在许多应用场合,仅靠单片机的内部资源不能满足需要。什么时候进行系统扩展?用户程序大于4K时,需要扩展程序存储器(ROM)数据(变量)大于126B时,需要扩展数据存储器(RAM)外设过多时,需要扩展输入/输出口(I/O)这就是通常所说的MCS-51单片机的系统扩展6.1MCS-51单片机的扩展总线

6.1.1MCS-51系列单片机最小应用系统单片机最小应用系统:利用最少的外部电路构成的可独立工作的单片机应用系统8051/8751最小应用系统8051/8751集成了CPU、ROM、RAM、I/O等内部资源,外部电路包括:晶体振荡电路、复位开关和电源部分。使用8051/8751最小应用系统应用时应注意以下几点:P0~P3口全部用于输入输出接口设计用户程序不能超过4KB数据不能超过128B灵活使用定时器、计数器、串行口、中断等单片机内部资源

MCS-51单片机8051/8751最小应用系统2.8031最小应用系统8031最小应用系统除了外加时钟电路、复位电路外,还应在片外扩展ROM,这种系统已成历史,现已无人使用。6.1.2MCS-51单片机的系统总线单片机的系统总线:连接系统中各扩展器件的一组公共信号线。MCS-51单片机扩展的系统总线包括地址总线、数据总线和控制总线。MCS-51单片机片外引脚可以构成并行的三总线结构,可以大大减少单片机系统中传输线的数目,提高了系统的可靠性,增加了系统的灵活性。MCS-51单片机系统总线的结构地址总线(AddressBus,AB)地址总线用于传送单片机送出的地址信号,以便进行存储单元和I/O端口的选择。地址总线是单向的,只能由单片机向外发送信息。地址总线的数目决定了可直接访问的存储单元的数目。MCS-51单片机有16条地址线,最多可扩展64KB,即216个地址单元。数据总线(DataBus,DB)数据总线用于单片机与存储器之间或单片机与I/O端口之间传送数据。数据总线是双向的,可以进行两个方向的数据传送。

MCS-51单片机有8条数据总线。控制总线(ControlBus,CB)控制总线实际上是一组控制信号线。对于具体的控制信号线来说,其传送方向是单向的,但是由不同方向的控制信号组合的控制总线则表示为双向。MCS-51单片机系统扩展的实现数据总线的实现:P0口地址总线的实现:P2口(高8位)、P0口和地址锁存器(低8位)控制总线的实现:ALE,地址锁存器选通控制线;,扩展程序存储器的读控制线;

,内、外程序存储器的选择控制线;和

,系统扩展的读/写控制线。

MCS-51单片机扩展的三总线

6.1.3外扩芯片的片选和地址分配线选法扩展片外芯片线选法:利用MCS-51单片机高位地址总线作为存储器芯片(或I/O接口芯片)的片选信号,即将P2口的某一根地址线与存储器芯片(或I/O接口芯片)的片选引脚直接相连,该地址线为低电平时,选中该芯片。例6-1

假设某一单片机系统,需要外扩4片4KB的存储器芯片,这些芯片与MCS-51单片机的地址线连接如图所示,列出各存储器芯片的地址分配。MCS-51单片机扩展4片4KB存储器芯片M1、M2、M3、M4,由地址线A11~A0提供片内存储单元地址,共有4K个地址。用MCS-51单片机的4根高位地址线A15、A14、A13、A12实现片选,均为低电平有效。A15M1A11A0…M2A11A0…M4A11A0…M3A11A0…A13A14A12A11A0…12121212为了不出现寻址错误,当A15、A14、A13、A12之中有一根地址线为低电平时,其余三根地址线必须为高电平,也就是说每次存储器操作只能选中一个芯片,这样可得到4个芯片的地址分配,如表所示。二进制表示十六进制A15A14A13A12A11A0芯片M1

1110××××××××××××E000H~EFFFH芯片M2

1101××××××××××××D000H~DFFFH芯片M3

1011××××××××××××B000H~BFFFH芯片M4

0111××××××××××××7000H~7FFFH4个4KB存储器芯片的内部寻址A11~A0都是000H(共12位)到FFFH(共12位),依靠不同的片选信号高位地址线A15、A14、A13、A12之中某一根为0,来区分这4个芯片的地址空间。优点:电路简单,不需其他外围器件,体积小,成本低。缺点:可寻址的器件数目受到限制(例如5片4KB存储器),各外围器件的地址空间不连续,不能充分利用存储空间,每一个存储单元的地址不唯一,这会给程序设计带来一些不方便。所以线选法一般只用于不太复杂的系统中,复杂系统一般采用译码法实现。地址译码法地址译码法:利用译码器对单片机的某些高位地址线进行译码,其译码输出作为存储器芯片(或I/O接口芯片)的片选信号。译码法是一种最常用的存储器地址分配的方法,这种方法存储空间连续,能有效地利用存储器空间,适用于大容量多芯片的存储器扩展。地址译码法必须采用地址译码器,常用的译码器有74LS13874LS13974LS154…………

例6-2

例6.1系统用译码法实现,存储器芯片与MCS-51单片机的地址线连接如图所示,列出各存储器芯片的地址分配。MCS-51单片机扩展容量4片4KB的存储器芯片M1、M2、M3、M4ⅣA11A0…A12M1A11A0…M2A11A0…A11A0…M3A11A0…12121212ABCG1A13A14A1574LS138M4由地址线A11~A0用于片内寻址,高位地址线A14、A13、A12接到74LS138译码器的选择输入端C、B、A,A15接到74LS138译码器的控制端G1,74LS138器的Y0、Y1、Y2分别作为4个芯片的片选信号。根据译码器的逻辑关系和存储器的片内寻址范围,可以得到4个芯片地址空间,如表所示。二进制表示十六进制A15A14A13A12A11…A0芯片M11011××××××××××××B000H~BFFFH芯片M21010××××××××××××A000H~AFFFH芯片M31001××××××××××××9000H~9FFFH芯片M41000××××××××××××8000H~8FFFH6.2程序存储器扩展存储器用来存储程序和数据,是计算机的重要组成部分。MCS-51单片机的程序存储器和数据存储器是分开的,各有自己的寻址系统、控制信号和功能。通常,程序存储器用来存放程序和表格常数;数据存储器用来存放程序运行时所需要给定的参数和运行结果。MCS-51单片机有4个存储器空间,它们是片内程序存储器、片外程序存储器、片内数据存储器(含特殊功能寄存器)、片外数据存储器。当单片机的内部程序存储器、数据存储器的容量不能满足要求时,就通过外接存储器芯片对单片机存储系统扩展。6.2.1EPROM扩展EPROM(ErasableProgrammableROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器,EPROM内资料的写入要用专用的编程器。常用程序存储器EPROM扩展芯片常用的EPROM芯片是Intel公司的系列产品,其典型产品有2716、2732、2764、27128、27256…型号名称“27”后面的数字表示其位存储容量,如果转换成字节存储容量,将该数字除以8即可。

EPROM芯片2716和2764的引脚如图所示VPP为编程电源线2716的地址信号线为A0~A10、共11根,2764的地址信号线为A0~A12、共13根D0~D7,共8根是数据信号线CE为片选信号线,/CE

=0时,该片被选通OE为数据输出选通信号线,低电平有效PGM为编程脉冲输入线,此引脚仅在编程时接编程脉冲.VPP1A122A73A64A55A46A37A28A19A010D0111213GND1415D416D517D618D719CE20A1021OE22A1123A924A825NC26PGM27Vcc282764D1D2D312A73A64A55A46A37A28A19A010D01112GNDD4D513D614D715CE16A1017OE18VPP19A920A8212223Vcc242716D1D2D3芯片2716和2764的引脚如图2764的工作方式

引脚工作方式(20)(22)(27)Vpp/V(1)Vcc/V(28)输出读出LLHVCCVCCDOUT维持HXXVCCVCC高阻编程LH脉冲VPPVCCDIN编程检验LLHVPPVCCDOUT禁止编程HXXVPPVCC高阻EPROM扩展举例MCS-51扩展一片EPROM时,EPROM数据线与单片机数据总线(P0口)相连,EPROM地址线与单片机低位地址线相连,片选线与单片机某条未用高位地址线相连,也就是采用线选法优点:电路连接简单,EPROM的输出允许端与单片机的PSEN端相连。不同存储容量的EPROM只是地址线数量不同而已,2764是8KB存储容量的EPROM器件,它有13根地址线A12~A0,可选择213=8192个片内存储器中任一字节单元。这13根地址线,高5位与单片机的P2.4~P2.0连接;低8位与单片机的P0口连接。单片机发送13位地址信息时,分别选中2764片内8KB任何一个单元。2764的数据线D0~D7与单片机的P0口直接连接。EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10OC1C111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19VCC20GND1074LS373A010A19A28A37A46A55A64A73A825A924A1021A1123A122A1326A1427CE20OE22VPP1D011D112D213D315D416D517D618D719VCC28GND1427256+5v+5v+5v803180518751+5v276427128....MCS-51单片机扩展多片EPROM时,常采用地址译码法优点:多片EPROM地址编码唯一确定,采用全译码法,不存在地址重叠。MCS-51单片机扩展4片2716芯片,2716是2KB存储容量的EPROM器件,它有11根地址线A10~A0,可选择211=2048个片内存储器中任一字节单元。这11根地址线,高3位与单片机的P2.2~P2.0连接;低8位与单片机的P0口连接。当单片机发送11位地址信息时,可分别选中2716片内2KB任何一个单元。译码芯片选择74LS138,A13、A12、A11作为74LS138选择输入端C、B、A,A15、A14作为74LS138的使能控制信号。74LS138输出Y0、Y1、Y2、Y3分别作为4个芯片的片选信号。

2716的数据线D0~D7与单片机的P0口直接连接,OE端与单片机PSEN相连。M1M2M3M46.2.2扩展E2PROME2PROM是一种电擦除可编程只读存储器主要特点:能在计算机系统中进行在线修改和擦除,并能在断电的情况下保持修改的结果,其功能相当于磁盘。较新的E2PROM产品在写入时还能自动完成擦除,且不需要专用的编程电源,可以直接使用单片机系统的5V电源。因而在智能化仪器仪表、控制装置等领域得到普遍采用。在芯片的引脚设计上,2KB的E2PROM2816与相同容量的EPROM2716是兼容的,8KB的E2PROM2864A与相同容量的EPROM2764是兼容的。由于有上述这些特点使单片机硬件线路系统的设计和调试更为方便和灵活。

E2PROM扩展芯片介绍常用的E2PROM芯片主要有Intel2816、2816A、2817、2817A、2864A……型号性能28162816A28172817A2864A读出时间250ns200/250ns250ns200/250ns250ns读操作电压5V5V5V5V5V写/擦操作电压21V5V21V5V5V字节擦除时间10ms9~15ms10ms10ms10ms写入时间10ms9~15ms10ms10ms10ms存储容量2KB2KB2KB2KB8KB封装DIP24DIP24DIP28DIP28DIP28兼容271627162764A0~A10:地址输入线;D0~D7:双向三态数据线;CE:片选信号输入线,低电平有效;OE:读选通信号输入线,低电平有效;WE:写允许信号输入线,低电平有效;RDY和BUSY:是空/忙信号;Vcc:主电源,电压为5V;GND:接地端。2817A的工作方式

引脚工作方式(20)(22)(27)RDY/(1)输入/输出读出LLH高阻DOUT维持HXX高阻高阻字节写入LHLLDIN字节擦除字节写入之前自动清除

E2PROM扩展举例MCS-51单片机外扩一片2817AE2PROM,2817A的片选信号脚与低电平连接,2817A一直被选中。2817AE2PROM的存储容量为2KB,2817A的地址线和数据线与2716兼容,连接方式与上述扩展2716EPROM的情况也相同。在读工作方式时,2817A的输出允许信号OE与单片机的PSEN和RD相与的与门输出端相连,使程序空间和数据空间混合。擦/写工作方式时,2817A的写入允许信号与单片机的连接,以便进行擦、写操作。对2817A进行擦除和写入操作时应使用访问外部数据存储器的指令MOVX,将2817A看作外部RAM。P2.0P2.1P2.2WRP0.0P0.1P0.2P0.3P0.4P0.5P0.7P0.6181714138743191615123965245678910272124251918171615131211202930162322213233343536373839111D7D6D5D4D3D2D1D0Q7Q6Q5Q4Q3Q2Q1Q0WEA10A9A8A7A6A5A4A3A2A1A0I/O7I/O6I/O5I/O4I/O3I/O2I/O1I/O0OEALEPSENGOEGNDGND281420VCCGNDCEEA31GND80312817A2K×874LS373RD17P1.01231RDY/BUSY174LS08+5V+5V3kW&6.3数据存储器扩展MCS-51单片机内部有128B个字节的RAM,当系统需要较大容量RAM时,就需要片外扩展数据存储器RAM,最大扩展64KB。由于单片机是面向控制的,实际需要扩展容量不大。因此一般采用静态RAM较方便,如6116(2KB)、6264(8KB)、62256(32KB)等。与动态RAM相比,静态RAM无须考虑保持而设置的刷新电路,故扩展电路简单。扩展数据存储器空间地址同外扩程序存储器一样,由P2口提供高8位地址,P0口分时提供低8位地址和用作8位双向数据总线。片外RAM的读/写由单片机的RD(P3.7)WE(P3.6)信号控制,而片外程序存储器EPROM的输出允许端OE由单片机读选通信号PSEN控制。尽管与EPROM共处同一地址控制,但由于控制信号及使用的数据传送指令不同,故不会发生总线冲突。6.3.1常用数据存储器芯片介绍常用的数据存储器半导体静态随机存取存储器(SRAM)是Intel公司的6116和6264、62256等。引脚工作方式6116626462256存储容量2KB8KB32KB读写时间200ns200ns200ns工作电压5V5V5V典型工作电流35mA40mA8mA典型维持电流5mA2mA0.5mA封装DIP24DIP28DIP28数据存储器的地址线、数据线、片选线功能和EPROM、E2PROM类似,数据存储器需要与CPU进行双向数据传输,所以需要读/写控制线WE和OE。A141A122A73A64A55A46A37A28A19A010D0111213GND1415D416D517D618D719CE20A1021OE22A1123A924A825A1326WE27Vcc2862256D1D2D312A73A64A55A46A37A28A19A010D01112GNDD4D513D614D715CE16A1017OE18WE19A920A8212223Vcc246116D1D2D3NC1A122A73A64A55A46A37A28A19A010D0111213GND1415D416D517D618D719CE120A1021OE22A1123A924A825CE226WE27Vcc286264D1D2D3SRAM工作方式引脚工作方式I/O7~I/O0未选中HXX高阻输出禁止LHH高阻读出LLHDOUT写入LHLDIN6.3.2访问外部数据存储器的读/写操作时序读片外RAM操作时序单片机与外部RAM交换数据时,只能使用MOVX类指令,这类指令能产生读/写信号。在执行“MOVXA,@DPTR或MOVXA,@Ri”产生信号。MOVX类指令是单字节双周期指令。第一机器周期是从外部ROM取指令操作码,工作过程是外部程序存储器读周期时序。第二个周期完成从外部RAM读数据,过程如下:在取指令后前半个机器周期,P2口输出高8位地址,P0口输出低8位地址,接着在ALE下跳沿将P0口低8位地址锁存。而P2口的高位地址一直保持到指令执行结束。此间PSEN保持高电平(无效);在后半个周期,RD变为低电平(有效),读出相应RAM单元的内容,在RD上升沿完成数据读出任务。地址或SFRP2地址A15-A8指令输入浮空浮空浮空数据输入地址或浮空A7-A0ALEPSENRDP2P0TTTTTTRLBMAVWLAVDXRLDVRHDXRHDZ________外部数据存储器读周期波形图写片外RAM操作时序向片外RAM写数据,是MCS-51单片机执行“MOVX@DPTR,A或MOVX@Ri,A”指令产生的动作。在单片机的引脚WR上产生信号有效电平,这个信号是RAM的WE端被选通。写数据开始的过程与读过程相似,但写的过程是CPU主动将数据送上P0口总线,故在时序上,CPU先向P0总线上送完低8位地址后,紧跟这将数据送到P0总线。在写控制信号WR有效,选通片外RAM,稍过片刻,P0上的数据就写到RAM内。地址或SFRP2DPH或P2输出地址A8-A15指令输入浮空数据输出地址或浮空A7-A0ALEPSENWRP2P0TTTTWLWHAVWHOVWAWHOX________外部数据存储器写周期波形图6.3.3典型扩展数据存储器的接口电路扩展静态RAM6116地址线A10~A0作为6116的片内寻址。8051的P0口线通过74LS373锁存器与6116的A7~A0连接,74LS373的作用是锁存低8位地址。8051的P2.0~P2.2直接与6116的A8~A10,6116的数据线D0~D7与8051的P0口直接相连。8051的RD(P3.7)、WR(P3.6)分别连接6116的OE、WE,这样当8051执行外部数据存储器读/写指令时,符合6116读/写工作方式的要求。6116的片选控制端CE接地为常选通,寻址范围为0000H~07FFH。由于系统使用片内ROM从0000H开始的空间,因此,EA接高电平。

EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U?OC1C111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19VCC20GND10U?74LS373A08A17A26A35A44A53A62A71A823A922A1019E18G20W21D09D110D211D313D414D515D616D717VCC24GND12U?6116+5v+5v+5v803180518751....扩展静态RAM62648051扩展一片8KB6264外部数据存储器,8051的P0口线通过74LS373锁存器与6116的A7~A0连接,地址锁存信号ALE与74LS373的输入选通端G相连,用于锁存P0口发出的低8位地址。8051的P2.0~P2.4直接与6264的A8~A12,6264的数据线D0~D7与8051的P0口直接相连。8051的RD(P3.7)、WR(P3.6)分别连接6264的OE、WE。6264的片选控制端CE接地,为常选通,地址范围为0000H~01FFH。P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7ALE/PRDWRD0D1D2D3D4D5D6D7OCGQ0Q1Q2Q3Q4Q5Q6Q73938373635343332A0A1A2A3A4A5A6A7A8A9A10A11A12CS1CS2WEOED0D1D2D3D4D5D6D7P00P01P02P03P04P05P06P07X112MHz181931111212223242526272830171680C51910UC120PC220PVCC74LS3736264109876543252421232256912151619P20P21P22P23P241112131516171819VCC20262722PSEN29EA/VPX1X2RESETINT0INT1T0T1例6-3编写程序将片外数据存储器中0100H~01FFH单元全部清零。程序如下:MOV DPTR,#0100H ;设置数据块指针的初值MOV R7,#00H ;设置长度计数器初值CLR A ;将累加器清零LOOP: MOVX@DPTR,A ;给片外数据存储器中某单 元送“00H”INC DPTR ;地址指针加1DJNZ R7,LOOP ;长度计数器减1,若不为0 则继续清零SJMP $ ;执行完毕,原地踏步6.4FLASH存储器的扩展FLASH存储器也称闪速存储器,是一种可擦除、可改写的只读程序存储器。但是现在已经把它当作是一种单独的存储器品种来对待,因为它有一般的只读存储器所没有的良好性能。自从EPROM的问世以来,增加EPROM的容量一直是一个不能令人满意的问题——EPROM的容量一般只有64KB,很难满足实际应用的需要。1987年,一种利用单个晶体管的EPROM单元,加上高速灵敏放大器等技术的新型只读存储器问世了——该存储器的容量有256KB。擦除和编程写入的速度也比一般的E2PROM快了10倍。因而称为FLASH存储器,可翻译成闪速存储器,简称闪存。闪速存储器和EPROM,E2PROM的性能比较

类别EPROME2PROM闪速存储器擦除时间20min1ms100μs编程时间<1ms<1ms100μs单元面积/μs26427064芯片面积/mm232.99832.9擦除方法紫外线电擦除电擦除6.4.1FLASH存储器的分类标准的并行接口这种芯片具有独立的地址线和数据线,在和CPU接口时,基本上和一般的存储器接口相似,只要三类总线分别连接就可以。NAND(与非)型闪存NAND型闪存也是一种并行接口芯片,但是在街口是采用了引脚分时复用的方法,使得数据、地址和命令线分时复用I/O总线。结果,使得接口的引脚数可以减少很多。串行接口的FLASH存储器这种产品只通过一个串行数据输入、一个串行数据输出和CPU接口,因此CPU的连接非常简单。但由于数据和地址都是由一条线来传输,要用不同的命令来区分是地址操作还是数据操作。6.4.2典型FLASH存储器芯片简介典型FLASH存储器产品由AMD公司生产的16t闪速存储器Am29f016B;美国NationalSemiconductor公司的产品NM29A040/080(分别是4Mbit和8Mbit的串行FLASH存储器),Atmel公司的闪速存储器系列,容量从256kbit到4Mbit,采用单一电源供电,并且可以选用几种不同的电压电源。AT29C×××系列:5V电源;AT29L×××系列:低电源系列:3.3V电源;AT29B×××系列:低电池供电系列:3V电源。FLASH的片内有厂商和产品型号编码,其擦除和编程都是通过对内部寄存器写命令字进行读取和识别的,以确定编程算法。不同厂商的命令字不同,内部命令寄存器的地址也不同,编程时查阅FLASH厂家提供相关资料。

FLASH存储器的内部结构以并口FLASH存储器为例介绍,它内部结构和ROM差不多,也是由数据总线接口逻辑、地址译码器、数据缓冲器、存储阵列组成,对FLASH编程写入过程简述如下:发编程命令→置扇区地址(FLASH一般容量较大,分扇区写入)→置扇区内字节地址→写一个字节(采用MOVX@DPTR,A指令)→写下一个字节。

···数据缓冲器D0···

读写控制逻辑···地址线X地址译码器···主存储器A0A1AnD7D6Y地址译码器AT29LV040A芯片简介AT29LV040A是Atmel公司生产的一种容量为512KB的FLASH存储器,采用低电压3.3V电源供电,无论是编程还是擦除都使用同样的电源供电,访问速度为200ns,低功耗,工作电流15mA,维持电流20nA,有独立的数据线和地址线。从这些芯片引脚功能来看,AT29LV040A存储器与RAM十分相似,如果只把FLASH当做数据存储器来用的话,FLASH的扩展方法和RAM一样。

A111A92A83A134A1456VCC7A188A169A1510A12111213A51431OE32A317A218A119A020D02122D223GND24D325D42627D628AT29LV040AA7A6A1015A1716A429CE30D7D5D1AT29LV040AFLASH存储器的工作方式

操作A18~A0D7~D0读LLH地址输入数据输出写LHL地址输入数据输出等待H×××高阻输出禁止LHH×高阻6.4.3典型FLASH存储器扩展电路MCS-51单片机和FLASH存储器连接时注意事项FLASH存储器既可以作为程序存储器使用,又可以作为数据存储器使用。传统的方法是将程序存储器和数据存储器分开使用的。如将FLASH存储器当做两种存储器同时使用,连接时,必须保证无论是PSEN有效或者是RD、WR有效,FLASH存储器都可以被访问。PSEN有效时,作为ROM读出程序,RD、WR有效时,作为RAM可以读出或写入数据。

MCS-51单片机正常的寻址范围只有64KB,必须用适当的方法来对FLASH存储器中64KB以外的区域来寻址,否则FLASH存储器就无法被充分利用。

8031和FLASH存储器AT29LV040A的连接现在将AT29LV040AFLASH存储器应用于8031系统中,并且同时用做程序存储器和数据存储器。由于AT29LV040A的容量是512KB,需要单片机有19条地址线才可以充分使用全部的存储单元。最简单的办法就是从8031的P1口分配几条线作为高位地址线使用,可以用P1.0~P1.2。

另外,还需产生必要的片选信号和读信号。RD和PSEN经过与门加到AT29LV040A的读控制信号当PSEN有效时,AT29LV040A作为程序存储器使用,地址从0000H开始,容量是64KB;而当RD有效时,AT29LV040A就当做数据存储器RAM使用,在使用时RAM地址必须从10000H开始,RAM容量是448KB。803174LS373AT29LV040A

P1.0~P1.2P2.0~P2.7P0.0~P0.7A18~A16A15~A8D0~D7A7~A0ALEWRRDPSENWEOECE&例6-4如图6-17所示电路,编写程序将片外数据存储器中10000H单元内容读出送入R0,将R1内容写入20000H单元。程序如下:MOV P1,#01H ;设置FLASH页地址01HMOV DPTR,#0000H ;设置FLASH页内地址MOVX A,@DPTR MOV R0,A ;读出10000H单内容送R0MOV P1,#02H ;设置FLASH页地址MOV DPTR,#0000H ;设置FLASH页内地址MOV A,R1 MOVX @DPTR,A ;将R1内容写入20000H6.5并行I/O口的扩展MCS-51单片机有4个8位并行输入/输出口P0~P3,当扩展存储器时,P2口、P0口被占用,留给用户的只有P1和P3口,而P3口是多用途口,当第二功能使用时,就不能作一般I/O口。因此,当所接的外设较多,就必须扩展I/O口。MCS-51单片机扩展I/O口和外部数据存储器统一编址,采用相同的控制信号、相同的寻址方式和相同的指令,因此扩展方法和外部存储器类似。

6.5.1简单I/O口扩展扩展并行I/O口的方法主要有两种:一种是采用可编程的I/O接口芯片,如8255、8155等;二种是利用非可编程的接口芯片,如74LS273、74LS244、74LS245、74LS373、74LS377等。当应用系统需要扩展的I/O口数量较少,且功能单一时,一般采用非可编程的接口芯片构成简单的I/O口。这种接口通过P0口进行扩展,由于P0口是数据/地址总线,因此扩展的输入口面向总线,必须是三态的;扩展的输出口连接外部设备,应具有锁存功能,因此扩展简单并行口选择器件的原则是“输入三态缓冲,输出锁存选通”。

74LS273扩展单片机输出口74LS273是带清除端的8D触发器,上升沿触发,具有锁存功能。CLR端固定接高电平,使之无效;8051的P2.0和WR经或门接到74LS273的CLK端,扩展输出口的地址为0FEFFH(P2.0=0,假设其余地址线为1)。当单片机向74LS273输出数据时,先把要输出的数据放在累加器A中,然后执行一次以0FEFFH为目的地址的传送操作,这时P2.0=0,在WR脉冲的作用下,CLK端得到一个正脉冲,使得经P0口输出的数据被锁存在74LS273输出端,其输出控制发光二极管LED,当某线输出低电平时,该线上的LED发光。操作指令如下:MOVDPTR,#0FEFFHMOVA,#DATAMOVX@DPTR,A74LS244是8位三态门电路,无锁存功能,常用作并行输入口和总线驱动器。G为三态门控制端,低电平有效。用74LS244扩展单片机输入口,图中由8051的P2.0和RD经或门接到74LS244的G端。当P2.0和RD都0时,“或”门输出0,选通74LS244,将外部信号输入到总线。扩展输入口的地址为0FEFFH。当无键按下,输入为全1;若按下某键,则所在线输入为0。操作指令如下:MOVDPTR,#0FEFFHMOVXA,@DPTR从图中可知,输入、输出都是在P2.0为低电平时有效,74LS244、74LS273的地址都为0FEFFH,但由于分别是由RD和WR信号控制,所以不会发生冲突。例6-5如图4-18所示电路,编写程序实现功能按下任意键,对应的LED发光。程序如下:LOOP:MOV DPTR, #0FEFFH;数据指针指向扩展I/O口地址MOVX A, @DPTR;向244读入数据,检测按键MOVX@DPTR,A;向273输出数据,驱动LEDSJMP LOOP ;循环6.5.2可编程8255扩展I/O口可编程并行接口芯片是专为和计算机接口而设计的,它有和计算机接口的三总线引脚,方便和CPU连接;其功能可由指令来加以改变,使用灵活方便。8255是Intel公司生产的可编程通用并行I/O接口芯片,利用软件编写的程序可使其能按几种不同方式:基本方式选通方式双向方式………8255的内部结构3个并行I/O端口A口:8位输入输出或双向口。B口:8位输入输出口。C口:8位输入输出口,也可分为两个4位口,还可以作为A口、B口选通方式操作时的状态控制信号。数据缓冲器双向三态的8位数据缓冲器,用于和单片机的数据总线相连。

端口选择及读/写控制逻辑用于管理所有的控制字、状态字和数据的传送。

A组和B组控制电路

由控制字控制3个并行I/O端口的工作方式。

8255的引脚功能数据输入/输出引脚:D0~D7,与单片机数据总线相连;并行I/O口引脚:A、B、C口线,与外设相连

;RD:读信号线;

WR:写信号线;CS:片选信号线;A0、A1:端口地址选择信号;RESET:复位输入信;8255各端口的工作状态与控制信号的关系

A1A0RESET工作状态000010读PA(PA数据送数据总线)010010读PB(PA数据送数据总线)100010读PC(PA数据送数据总线)000100写PA(数据总线数据送PA)010100写PB(数据总线数据送PB)100100写PC(数据总线数据送PC)110100写控制字(数据总线数据送控制字寄存器)×××××1复位(PA,PB,PC均为输入)××1××0芯片未选通(数据总线为高阻)8255的工作方式及C口置位/复位控制字82553种工作方式方式0:基本方式,无需联络信号,A口、B口、C口均可设置成基本方式。8255工作在方式0时,单片机可对8255进行I/O数据的无条件传送。方式1:选通方式,需要联络信号,用来查询、应答和中断。A口和B口均可独立地设置成选通方式,C口为它们的联络线。方式2:双向方式,仅A口可以设置双向方式,既作为输入接口又可作为输出接口使用,此时输入和输出各使用一套联络线。当作为输入总线使用时,A口受STBA和IBFA控制;当作为输出总线使用时,A口受OBFA和ACKA控制,其具体工作过程和方式1相同。

工作方式选择控制字三种工作方式由写入控制字寄存器的方式控制字来决定。三个端口中C口被分为两个部分,上半部分随A口称为A组,下半部分随B口称为B组。

D7D6D5D4D3D2D1D0特征标志位A口方式A口I/OC7~4I/OB口方式B口I/OC3~0I/O固定为100:方式001:方式110:方式20:输出1:输入0:输出1:输入0:方式01:方式10:输出1:输入0:输出1:输入C口置位/复位控制字C口8位中的任意一位,可以用写入控制口的置位/复位控制字来对C口按位置“1”或者清“0”,这个功能主要用于位控制。

D7D6D5D4D3D2D1D0特征标志位不用C口的位选择置位/复位固定为0一般置0000:C口的位0;001:C口的位1;010:C口的位2;011:C口的位3;100:C口的位4;101:C口的位5;110:C口的位6;111:C口的位3;0:复位1:置位MCS-51单片机与8255的接口设计MCS-51单片机和8255的连接很简单,只需两者的数据线对接,地址线和片选线接单片机的地址线即可。用单片机低两位地址线和8255地址线相连,A口、B口、C口、控制口地址连续,编程方便;用单片机高字节两位地址线和8255地址线相连,可以不使用地址锁存器,接线简单。

8255地址线A1、A0经74LS373接于P0.1、P0.0;片选端接P2.7。若单片机其他无用地址都设为“1”,那么8255的A口、B口、C口及控制口的地址分别为:7FFCH、7FFDH、7FFEH、7FFFH。若无用地址都设为“0”,那么8255的A口、B口、C口及控制口的地址分别为:0000H、0001H、0002H、0003H。也可将高字节中不用的地址设为“1”,低字节不用的地址设为“0”。那么8255的A口、B口、C口及控制口的地址分别为:7F00H、7F01H、7F02H、7F03H。例6-6要求8255工作在方式0,且A口输入,B口、C口输出。对C口的PC5置1。MOVA,#90H ;方式0,A口输入,B、C口输 出的控制字→AMOVDPTR,#7F03H ;控制寄存器地址→DPTRMOVX@DPTR,A ;方式控制字→8255控制寄存器MOVA,#0BH ;PC5置1的控制字→AMOVDPTR,#7F03H ;控制寄存器地址→DPTRMOV@DPTR,A ;控制字→8255控制寄存器6.5.3可编程8155扩展I/O口MCS-51单片机系统扩展时,在保证系统功能的前提下,采用扩展芯片越少越好,可以加快速度和增加可靠性。8155为Intel公司资源丰富的可编程芯片,片内集成了静态RAM、I/O端口和定时/计数器。单片机外接一片8155后,就对单片机的内部资源进行了综合扩展,因此,8155在单片机系统扩展中得到了广泛应用。

8155的内部结构8155的内部结构如图6-22所示,8155内部具有两个8位和一个6位的并行输入/输出端口,256B的静态RAM,一个地址锁存器,一个14位的可编程的减法计数器。MCS-51单片机系统扩展时,用16位地址信号对RAM和I/O端口进行统一编址,单片机外扩8155时,高8位地址提供片选信号CE和IO/M(I/O和存储器选择)信号,低8位地址用于8155片内寻址。

当IO/M=1时,8155作为单片机扩展的并行I/O口和定时/计数器,地址由AD2~AD0编码决定;当IO/M=0时,8155作为单片机扩展的256B存储器,其地址范围为00H~FFH。

IO/AD7~AD0功能1(I/O口及定时/计数器)×××××000命令/状态寄存器×××××001PA口×××××010PB口×××××011PC口×××××100定时器/计数器低8位寄存器TL×××××101定时器/计数器高8位寄存器TH0(存储器)00000000(00H)256B静态RAM11111111(0FFH)256B静态RAM14位定时计数器ABCAD0~7CERDWRRESETALETIMEINTIMEOUTVCC(+5V)VSS(GND)PC0~5PB0~7PA0~7IO/

M8155的引脚功能地址/数据复用引脚(AD7~AD0),用来传送8位数据和低8位地址。并行I/O口引脚:与外设相连,分为A,B,C三组。控制及地址线除了前面介绍的片选端CE、读写控制端RD和WR、复位端RESET还有IO/存储器选择端和地址所存允许端ALE。定时器/计数器信号线

输入端TIMERIN:高电平有效。输出端TIMEROUT:低电平有效。12345678910111213141516171819204039383736353433323130292827262524232221PC3PC4TIMERINRESETPC5TIMEROUTCERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VSSVCCPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA08155IO/

M8155的寄存器命令寄存器

8155只有一个控制字,将控制字写入命令寄存器(地址为×××××000B),命令寄存器就决定A口、B口和C口和定时器/计数器的工作方式及功能。

D7D6D5D4D3D2D1D0TM2TM1IEBIEAPC2PC1PBPA定时器/计数器命令B口中断允许A口中断允许C口工作方式A口工作方式A口工作方式00:不影响计数器工作01:停止计数器工作10:计数器回零停止工作11:启动计数器工作1:允许0:禁止1:允许0:禁止00:方式001:方式110:方式211:方式31:输出0:输入1:输出0:输入I/O口工作方式可以根据需要灵活配置,A口、B口可以工作于基本I/O方式和选通I/O方式,具体功能如下:方式0:A口、B口为基本输入/输出方式,C口为基本输入口。方式1:A口、B口为基本输入/输出方式,C口为基本输出口。方式2:A口为选通输入/输出口,B口为基本输入/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论