单片机原理与应用设计张毅刚等编著电子教案讲义课件省公开课金奖全国赛课一等奖微课获奖课件_第1页
单片机原理与应用设计张毅刚等编著电子教案讲义课件省公开课金奖全国赛课一等奖微课获奖课件_第2页
单片机原理与应用设计张毅刚等编著电子教案讲义课件省公开课金奖全国赛课一等奖微课获奖课件_第3页
单片机原理与应用设计张毅刚等编著电子教案讲义课件省公开课金奖全国赛课一等奖微课获奖课件_第4页
单片机原理与应用设计张毅刚等编著电子教案讲义课件省公开课金奖全国赛课一等奖微课获奖课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与应用设计[张毅刚等编著][电子教案]1/60第8章89C51单片机扩展存放器设计8.1系统扩展结构

89C51系统扩展结构如图8-1所表示。

图8-12/60由图8-1能够看出,系统扩展主要包含存放器扩展和I/O接口部件扩展。外部存放器扩展又包含程序存放器扩展和数据存放器扩展。89C51采取是哈佛结构。扩展后,系统形成了两个并行外部存放器空间。89C51单片机采取并行总线结构,大大增加了系统灵活性,使扩展易于实现,各扩展部件只要符合总线规范,就能很方便地接入系统。因为系统扩展是以89C51单片机为关键,经过总线把89C51与各扩展部件连接起来。所以,要进行系统扩展首先要结构系统总线。3/608.2系统总线及总线结构按功效通常把系统总线分为三组,如图8-1所表示。1.地址总线(AdressBus,AB)地址总线用于传送单片机发出地址信号,方便进行存放单元和I/O接口芯片中存放器选择。地址总线是单向传输。2.数据总线(DataBus,DB)数据总线用于在单片机与存放器之间或与I/O端口之间传送数据。数据总线是双向,能够进行两个方向传送。3.控制总线(ControlBus,CB)控制总线实际上就是单片机发出各种控制信号线。8.2.1结构系统总线

4/60系统扩展首要问题:结构系统总线。系统总线上“挂”存放器芯片或I/O接口芯片,“挂”存放器芯片就是存放器扩展,“挂”I/O接口芯片就是I/O扩展。1.以P0口作为低8位地址/数据总线89C51因为受引脚数目标限制,数据线和低8位地址线复用。为了将它们分离出来,需要外加地址锁存器,从而组成与普通CPU相类似片外三总线,见图8-2。

5/60图8-26/602.以P2口口线作为高位地址线P2口全部8位口线用作高位地址线,再加上P0口经地址锁存器提供低8位地址,便形成了完整16位地址总线(见图8-2),使寻址范围到达64KB。3.控制信号线除了地址线和数据线之外,还要有系统控制总线。这些信号有就是单片机引脚第一功效信号,有则是P3口第二功效信号。其中包含:(1)PSEN*信号作为外扩程序存放器读选通控制信号。7/60(2)RD*和WR*信号作为外扩数据存放器和I/O接口读、写选通控制信号。(3)ALE信号作为低8位地址锁存控制信号。(4)EA*信号作为内、外程序存放器选择控制信号。可看出,尽管89C51单片机有4个并行I/O口,共32条口线,但因为系统扩展需要,真正作为数字I/O使用,就剩下P1口和P3口部分口线了。8.2地址空间分配和外部地址锁存器8.2.1存放器地址空间分配

8/60怎样把外部各自64KB空间分配给各个程序存放器、数据存放器芯片,而且使程序存放器各个芯片之间,数据存放器各芯片之间,为防止发生数据冲突,一个存放器单元对应一个地址,这就是存放器地址空间分配问题。在外扩多片存放器芯片中,89C51要完成这种功效,必须进行两种选择:一是必须选中该存放器芯片(或I/O接口芯片),这称为“片选”,只有被“选中”存放器芯片才能被89C51读出或写入数据。为了片选需要,每个存放器芯片都有片选信号引脚,二是在“片选”基础上再选择该芯片某一单元,称为“单元选择”。9/60惯用存放器地址空间分配方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法),下面分别介绍。1.线选法直接利用系统高位地址线作为存放器芯片(或I/O接口芯片)“片选”控制信号。为此,只需要把用到高位地址线与存放器芯片“片选”端直接连接即可。线选法优点是电路简单,不需要另外增加地址译码器硬件电路,体积小,成本低。缺点是可寻址芯片数目受到限制。另外,地址空间不连续,每个存放单元地址不唯一,不10/60能充分有效地利用存放空间,这会给程序设计带来一些不便,只适合用于外扩芯片数目不多单片机系统存放器扩展。2.译码法使用译码器对89C51高位地址进行译码,将译码器译码输出作为存放器芯片片选信号。是最惯用地址空间分配方法,它能有效地利用存放器空间,适合用于多芯片存放器扩展。惯用译码器芯片有74LS138(3-8译码器)74LS139(双2-4译码器)74LS154(4-16译码器)。若全部高位地址线都参加译码,称为全译码;若仅部分高位地址线参加译码,称11/60为部分译码。部分译码存在着部分存放器地址空间相重合情况。两种惯用译码器芯片。(1)74LS13874LS138是3-8译码器,有3个数据输入端,经译码产生8种状态。其引脚如图8-3所表示,真值表如表8-1所表示。由表8-1可见,当译码器输入为某一固定编码时,其输出仅有一个固定引脚输出为低电平,其余为高电平。而输出为低电平引脚就作为某一存放器芯片片选端控制信号。12/60图8-313/60

表8-174LS138译码器真值表

输入输出

G1G2A*G2B*CBAY7*Y6*Y5*Y4*Y3*Y2*Y1*Y0*14/60

(2)74LS13974LS139是双2-4译码器。两个译码器完全独立,分别有各自数据输入端、译码状态输出端以及数据输入允许端。其引脚如图8-4所表示,真值表如表8-2所表示(见P138)。图8-415/60下面以74LS138为例,介绍怎样进行地址分配。例要扩8片8KBRAM6264,怎样经过74LS138把64KB空间分配给各个芯片?64KB地址空间分配如图8-5所表示。图8-516/60采取全地址译码方式,单片机发地址码时,每次只能选中一个存放单元。同类存放器间不会产生地址重合问题。假如用74LS138把64K空间全部划分为每块4KB,怎样划分呢?因为4KB空间需要12条地址线进行“单元选择”,而译码器输入有3条地址线(P2.6~P2.4),P2.7没有参加译码,P2.7发出0或1决定了选择64KB存放器空间前32KB还是后32KB,因为P2.7没有参加译码,就不是全译码方式,这么前后两个32KB空间就重合了。那么,这32KB空间利用74LS138译码器可划分为8个4KB空间。假如把P2.7经过一个非门与74LS138译码器G1端连接起来,如图8-6所表示,就不会发生两个32KB空间重合问题了。17/608.2.2外部地址锁存器地址锁存器芯片:74LS373、8282、74LS573等。1.锁存器74LS373带有三态门8D锁存器,其引脚及内部结构如图8-7和图8-8。89C51与74LS373连接如图8-9所表示。图8-618/60引脚说明以下:D7~D0:8位数据输入线。Q7~Q0:8位数据输出线。G: 数据输入锁存选通信号,

图8-7图8-819/60OE*:数据输出允许信号图8-920/6074LS373功效如表8-3所表示。表8-374LS373功效表OE*

G D Q

0 1 1 1 0 1 0 0 0 0 × 不变 1 × × 高阻态 21/602.锁存器74LS573

输入D端和输出Q端依次排在芯片两侧,为绘制印刷电路板时布线提供了方便。图8-1022/6074LS573各引脚说明以下:D7~D0:8位数据输入线。Q7~Q0:8位数据输出线。G

:数据输入锁存选通信号,该引脚与74LS373G端功效相同。OE*:数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。23/608.3程序存放器EPROM扩展

采取只读存放器,非易失性。(1)掩膜ROM在制造过程中编程。成本较高,所以只适合于大批量生产。(2)可编程ROM(PROM)用独立编程器写入。但PROM只能写入一次,且不能再修改。(3)EPROM电信号编程,紫外线擦除只读存放器芯片。(4)E2PROM(EEPROM)电信号编程,电信号擦除ROM芯片。读写操作与RAM几乎没有什么差异,只是写入速度慢一些。但断电后能够保留信息。(5)FlashROM又称闪烁存放器,简称闪存。大有取代E2PROM趋势。24/60当前许多企业生产以8051为内核单片机,在芯片内部大多集成了数量不等FlashROM。比如,美国ATMEL企业生产与51系列单片机兼容产品89C2051/89C51/89C52/89C55,片内分别有2KB/4KB/8KB/20KBFlashROM,来作为EPROM使用。对于这类单片机,在片内FlashROM满足要求情况下,扩展外部程序存放器工作就可省去。25/608.3.1惯用EPROM芯片介绍经典芯片是27系列产品,比如,2764(8KB×8)、27128(16KB×8)、27256(32KB×8)、27512(64KB×8)。“27”后面数字表示其位存放容量。伴随大规模集成电路技术发展,大容量存放器芯片产量剧增,售价不停下降,其性价比显著增高,而且因为有些厂家已停顿生产小容量芯片,使市场上一些小容量芯片价格反而比大容量芯片还贵。所以,在扩展程序存放器设计时,应尽可能采取大容量芯片。26/601.惯用EPROM芯片27系列EPROM芯片引脚如图8-11所表示,参数见表8-4(P143,略)。图8-11中引脚功效以下:A0~A15:地址线引脚。数目决定存放容量来定,用来进行单元选择。D7~D0:数据线引脚CE*:片选输入端OE*:输出允许控制端PGM*:编程时,加编程脉冲输入端27/60Vpp:编程时,编程电压(+12V或+25V)输入端Vcc:+5V,芯片工作电压。GND:数字地。NC:无用端

28/60图8-1129/602.EPROM芯片工作方式5种工作方式如表8-5所表示。(1)读出方式片选控制线为低,同时输出允许控制线为低,Vpp为+5V,指定地址单元内容从D7~D0上读出。(2)未选中方式片选控制线为高电平。(3)编程方式Vpp端加上要求高压,CE*和OE*端加适当电平(不一样芯片要求不一样),就能将数据线上数据写入到指定地址单元。(4)编程校验方式

30/60(5)编程禁止方式输出呈高阻状态,不写入程序。8.3.2程序存放器操作时序1.访问程序存放器控制信号(1)ALE(2)PSEN*(3)EA*假如指令是从片外EPROM中读取,ALE用于低8位地址锁存,PSEN*接外扩EPROMOE*脚。P0口:分时低8位地址总线和数据总线,P2口:高8位地址线。2.操作时序

31/60(1)应用系统中无片外RAM图8-12(a)32/60(2)应用系统中接有片外RAM图8-12(b)33/60由图8-12(b)可看出:(1)将ALE用作定时脉冲输出时,执行一次MOVX指令就会丢失一个脉冲。(2)只有在执行MOVX指令时第二个机器周期期间,地址总线才由数据存放器使用。8.3.389C51与EPROM接口电路设计

1.硬件接口电路设计时,因为EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制脚,只有读出控制脚,记为OE*,它与89C51单片机PSEN*相连,地址线、数据线分别与89C51地址线、数据线相连,片选端控制可采取线选法或译码法。图8-13为外扩一片27128接口电路图。34/60图8-1335/603.使用多片EPROM扩展电路89C51扩展4片27128。图8-1436/60图8-14中片选控制信号由译码器产生。4片27128各自所占地址空间,请读者自己分析。

8.4静态数据存放器扩展在单片机应用系统中,外扩数据存放器都采取静态数据存放器(SRAM),所以只讨论SRAM与89C51接口。所扩展数据存放器空间地址由P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据总线。片外数据存放器RAM读和写由89C51RD*(P3.7)和WR*(P3.6)信号控制,而片外程序存放器EPROM输出允许端(OE*)由89C51程序存放器读选通信号PSEN*控制。尽管与EPROM地址空间范围都是相同,但因为控制信号不一样,故不会发生总线冲突。37/608.4.1惯用静态RAM(SRAM)芯片经典型号有:6116、6264、62128、62256。+5V电源供电,双列直插封装,6116为24引脚封装,6264、62128、62256为28引脚封装,引脚如图8-15。各引脚功效:A0~A14:地址输入线。D0~D7:双向三态数据线。CE*:片选信号输入。对于6264芯片,当26脚(CS)为高电平时,且CE*为低电平时才选中该片。OE*:读选通信号输入线。WE*:写允许信号输入线,低电平有效。38/60图8-1539/60Vcc:工作电源+5VGND:地工作方式有读出、写入、维持三种,这些工作方式操作控制如表8-6(P148)。8.4.2外扩数据存放器读写操作时序1.读片外RAM操作时序

图8-1640/602.写片外RAM操作时序

写是CPU主动把数据送上P0口总线。故在时序上,CPU先向P0口总线上送完8位地址后,在S3状态就将数据送到P0口总线。

图8-1741/608.4.389C51与RAM接口电路设计

图8-18为线选法扩展外部数据存放器电路。

图8-1842/60地址线为A0~A12,故8031剩下地址线为三根。用线选法可扩展3片6264。3片6264对应存放器空间如表8-7。表8-743/60译码选通法扩展,如图8-19所表示。图8-1944/60各62128芯片地址分配见表8-9。

表8-9各片62128地址分配

P2.6P2.7译码输出选中芯片地址范围存放容量

00YO*IC10000H-3FFFH16K01Y1*IC24000H-7FFFH16K10Y2*IC38000H-BFFFH16K11Y3*IC4C000H-FFFFH16K

例8-1编写程序将片外数据存放器中5000H~50FFH单元全部清零45/60方法1:用DPTR作为数据区地址指针,同时使用字节计数器。

MOVDPTR,#5000H ;设置数据块指针初值 MOVR7,#00H ;设置块长度计数器初值 CLRALOOP:MOVX@DPTR,A ;把某一单元清零 INCDPTR ;地址指针加1 DJNZR7,LOOP ;数据块长度减1,若不为 ;0则继续清零HERE:SJMPHERE ;执行完成,原地踏步46/60方法2:用DPTR作为数据区地址指针,但不使用字节计数器,而是比较特征地址。 MOVDPTR,#5000H CLRALOOP: MOVX@DPTR,A INCDPTR MOVR7,DPL

CJNER7,#0,LOOP;与末地址+1比较HERE: SJMPHERE47/608.6EPROM和RAM综合扩展8.6.1综合扩展硬件接口电路例8-2采取线选法扩展2片8KBRAM和2片8KBEPROM。RAM选6264,EPROM选2764。扩展接口电路见图8-20。图8-2048/60(1)控制信号及片选信号IC2和IC4占用地址空间为H~3FFFH共8KB。同理IC1、IC3地址范围4000H~5FFFH(P2.6=1、P2.5=0、P2.7=0)。线选法地址不连续,地址空间利用不充分。(2)各芯片地址空间分配IC2和IC4占用地址空间为A000H~BFFFH共8KB。同理IC1、IC3地址范围为C000H~DFFFH。4片存放器各自所占地址空间如表8-9所表示。49/60例8-3采取译码器法扩展2片8KBEPROM,2片8KBRAM。EPROM选取2764,RAM选取6264。共扩展4片芯片。扩展接口电路见图8-21。

图8-2150/60各存放器地址范围以下:表8-9可见译码法进行地址分配,各芯片地址空间是连续。51/608.5.2外扩存放器电路工作原理及软件设计

1.单片机片外程序区读指令过程

2.单片机片外数据区读/写数据过程

比如,把片外6000H单元数送到片内RAM50H单元,程序以下:

MOVDPTR,#6000H

MOVXA,@DPTR MOV50H,A

比如,把片内50H单元数据送到片外4000H单元中,程序以下:

MOVA,50H

52/60 MOVDPTR,#4000H

MOVX

@DPTR,A89C51单片机读写片外数据存放器中内容,除用MOVXA,@DPTR和MOVX@DPTR,A外,还可使用MOVXA,@Ri和MOVX@Ri,A。这时经过P0口输出Ri中内容(低8位地址),而把P2口原有内容作为高8位地址输出。例8-4

将程序存放器中以TAB为首址32个单元内容依次传送到外部RAM以7000H为首地址区域去。

53/60DPTR指向标号TAB首地址。R0既指示外部RAM地址,又表示数据标号TAB位移量。本程序循环次数为32,R0值:0~31,R0值到达32就结束循环。程序以下:

MOV P2,#70H MOV DPTR,#TAB MOV R0,#0 AGIN: MOV A,R0 MOVC A,@A+DPTR MOVX @R0,A INC R0

CJNE R0,#32,AGIN HERE: SJMP HERE TAB: DB……54/608.6ATMEL89C51/89C55单片机片内闪烁存放器

AT89C51/89C52/89C55是低功耗、高性能片内含有4KB/8KB/20KB闪烁可编程/擦除只读存放器,芯片内闪存允许在线编程或采取通用编程器对其重复编程。8.6.189C51性能及片内闪烁存放器89C51主要性能(1)与MCS-51微控制器系列产

温馨提示

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

评论

0/150

提交评论