程序存储器的扩展.ppt

上传人:牧羊曲112 文档编号:6138895 上传时间:2023-09-28 格式:PPT 页数:48 大小:451KB
返回 下载 相关 举报
程序存储器的扩展.ppt_第1页
第1页 / 共48页
程序存储器的扩展.ppt_第2页
第2页 / 共48页
程序存储器的扩展.ppt_第3页
第3页 / 共48页
程序存储器的扩展.ppt_第4页
第4页 / 共48页
程序存储器的扩展.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《程序存储器的扩展.ppt》由会员分享,可在线阅读,更多相关《程序存储器的扩展.ppt(48页珍藏版)》请在三一办公上搜索。

1、项目七:程序存储器的扩展,项目目标项目任务项目分析项目预备知识知识点链接项目实施,项目目标 通过调用不同程序存储器中的程序,观察控制现象,学习程序存储器扩展的方法,理解扩展程序存储器的意义,掌握INC、DEC、JZ、JNZ指令的功能并编写控制程序。,项目任务 应用AT89C51芯片和程序存储器芯片,实现单片机系统程序存储器的扩展。项目分析 本项目通过编写不同的程序存储于不同的程序存储器(片内和片外),学习程序存储器扩展和读取程序的方法。,1、累加器A的逻辑操作指令 在MCS-51指令系统中,为了使用方便,特别设计了7条对累加器A的逻辑操作指令,包括清零、取反、移位和高低半字节交换,其中的移位指

2、令已经在项目二中进行了学习,下面我们学习其余指令。汇编指令 指令功能 清零:CLR A 将A的内容清成00H 取反:CPL A 将A中内容按位取反 半字节交换:SWAP A 将A中高低半字节交换 以上指令都是单字节指令,除标志位P外,PSW中其余各位均不受影响。,项目预备知识:汇编指令学习,2、加1、减1指令,加1指令又称为增量指令,共有5条指令;减1指令又称减量指令,有4条。和加法、减法指令所不同的是,除奇偶标志位外,这些指令的操作不影响PSW中的标志位。1)加1指令 汇编指令 指令功能 INC A 累加器内容加1 INC direct 直接地址单元内容加1 INC Rn 通用寄存器内容加1

3、 INC Ri 寄存器Ri指向的地址单元中的内容加1,结果送回原地址单元中 INC DPTR 数据指针EPTR内容加1,例如,(30H)=22H,执行 INC 30H 后,(30H)=23H。,本组指令将操作数内容加1,结果仍然送回原地址存放,如果原地址单元中内容为0FFH,加1后将要变为00H,运算结果不影响任何标志位。指令中前4条是8位数加1指令,可以用来对指定的片内RAM单元操作,第5条指令是16位数的加1指令,运算过程中,若有低8位(DPL)向高8位(DPH)的进位,直接进位即可。这也是MCS-51指令系统中唯一的一条16位算术运算指令。,2)减1指令,汇编指令 指令功能 DEC A

4、累加器内容减1 DEC direct 直接地址单元内容减1 DEC Rn 通用寄存器内容减1 DEC Ri 寄存器Ri指向的地址单元中的内容减1,结果送回原地址单元中 本组指令将操作数减1,结果仍送回原地址单元,若原指定单元中的内容为00H,减1后将变为0FFH,运算结构也不影响任何标志位。这4条指令全是8位数减1指令,若需要对16位数进行减1操作,可通过简单的编程实现。,例如,R0=30H,(30H)=22H,执行 DEC R0 后,(30H)=21H。,3、累加器A的判零转移指令,汇编指令 指令功能 JZ rel 若(A)=0,则程序转移;否则顺序执行 JNZ rel 若(A)0,则程序转

5、移;否则顺序执行 这两条指令是以累加器A的内容是否为零作为程序是否转移的条件。,一、单片机应用系统组成 单个的单片机芯片用途是有限的,它往往要和其他具有专门用途的芯片组成单片机应用系统,才会更好的发挥它在控制方面的优势。单片机应用系统的组成特点之一就是单片机、存储器、I/O口、外设控制均以芯片的形式存在。典型单片机应用系统的硬件组成框图如图所示。,知识点链接:单片机系统扩展技术,MCS51系统单片机(8031、8032除外)尽管是一功能完全的单片机,但因其内部资源(RAM、ROM、I/O、A/D、D/A等)不足,在实际应用中不加以扩展直接用其基本系统的情况较少,一般情况下需扩展。单片机扩展的首

6、要问题就是构造系统总线,然后再往系统总线上“挂”存储芯片或I/O接口芯片。MCS-51系列单片机片外引脚可以构成三总线结构:地址总线(AB)数据总线(DB)控制总线(CB)所有外部芯片都通过这三组总线进行扩展,二、外部总线的扩展,单片机扩展构造图,1)地址总线(AB)地址总线宽度为16位,寻址可达64KB。地址总线由P0口提供地址的低8位,P2口提供地址的高8位。由于P0口是数据/地址复用线,只能分时使用,故P0口先输出的地址低8位只能锁存到地址锁存器中保存。P2口具有输出锁存功能,故不需外加锁存器便可保存地址高8位。P0口和P2口作系统扩展的地址线后,便不能再作一般的I/O口使用。,2)数据

7、总线(DB)数据总线由P0口提供,其宽度为8位,该口为三态双向口,是应用系统中使用最为频繁的通道。单片机与外部交换的数据、指令、信息大部分由P0口传送。通常系统数据总线上连有很多芯片,而在某一时刻,数据总线上只能有一个有效的数据,究竟哪个芯片的数据有效,则由地址信号控制各个芯片的片选端来选择。,3)控制总线 单片机控制信号有PSEN、WR、RD、ALE和EA。PSEN:用于片外程序存存储器(EPROM)的“读”控制,实际上就是 取指令选通控制(低电平有效)。WR、RD:用于片外数据存储器(包括其它接口芯片)的“读”、“写”控制(低电平有效)。ALE:用于锁存P0口上地址低8位的控制线。EA:用

8、于选择片内或片外程序存储器。当EA=0时,只访问外部程序存储器,不管片内有无程序存储器,因此使用片内ROM时EA=1。,作为数据/地址复用总线,P0口可驱动8个TTL门电路,P1、P2、P3只能驱动4个TTL门电路。当应用系统规模较大、超过其负载能力时,系统便不能稳定可靠地工作。在这种情况下,系统设计时应加总线驱动器,以增强系统总线的驱动能力。常被用户选择的有单向总线驱动器74LS244、74LS273,双向驱动器74LS245等芯片。如下图7-8所示,74LS273作8位并行输出接口,74LS244作8位并行输入接口。74LS244是一个三态输出八缓冲器及总线驱动器,其带负载能力强,可直接驱

9、动小于130的负载。,总线驱动能力,芯片功能介绍,(1)74LS244三态缓冲器(24路),74LS244三态缓冲器功能表,主要功能:数据保持(锁存),8D1D:8位数据输入;8Q1Q:8位数据输出;CLK:时钟信号,上升沿数据锁存;CLR:清除端,典型芯片:带清除端的8D锁存器,(2)74LS273 8D锁存器,74LS273只有清除端为高电平才具锁存功能锁存器控制较CLK,上升沿锁存数据。单片机ALE引脚需接反相器,74LS273功能表,当CLK由低电平向高电平跳变时刻,D端输入数据传送到Q输出端。,(3)用74LS273和74LS244扩展I/O口,芯片及连线说明P0口作为双向8位数据线

10、,既能够从74LS244输入数据,又能够从74LS273输出数据。输入控制信号由P2.7和 相“或”后形成。当二者都为0时,74LS244的控制端有效,选通74LS244,外部的信息输入到P0数据总线上。当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0。,输出控制信号由P2.7和 相“或”后形成。当二者都为0后,74LS273的控制端有效,选通74LS273,P0上的数据锁存到74LS273的输出端,控制发光二极管LED,当某线输出为0时,相应的LED发光。I/O口地址确定 因为74LS244和74LS273都是在P2.7为0时被选通的,所以二者的口地址都为7

11、FFFH(这个地址不是惟一的,只要保证P2.7=0,其它地址位无关)。但是由于分别由RD和WR控制,因而两个信号不可能同时为0(执行输入指令,如MOVX A,DPTR时,RD有效;执行输出指令,如MOVX DPTR,A时,WR有效),所以逻辑上二者不会发生冲突。,编程应用 下述程序实现的功能是按下任意键,对应的LED发光。CONT:MOV DPTR,#7FFFH;数据指针指向口地址 MOVXA,DPTR;检测按键,向74LS244 读入数据 MOVXDPTR,A;向74LS273输出数据,驱动LED SJMP CONT;循环,三、程序存储器的扩展,MCS-51的程序存储器寻址空间为64KB,其

12、中片内包含4K的ROM/EPROM。当片内ROM不够而需要扩展程序存储器时,MCS-51的EA管脚应接地,其它控制信号还有:1、常用的程序存储器芯片 可用紫外线擦除、由电编程的只读存储器EPROM芯片常用作MCS-51应用系统的外部程序存储器。常用的EPROM芯片有2716、2732、2764、27128、27256、27512等,这些芯片的窗口在专门的紫外线灯光照射下,经20min后,存储器所有单元的信息全部变为1,从而擦去了程序指令代码。用户可用专门的EPROM编程(写入)电路将程序固化在这些EPROM芯片之中。,以27256A为例说明其工作方式及引脚功能。下图是27256A的管脚图。,2

13、7256A是一种32K8位EPROM存储器,单一+5V供电,工作电流为100mA,维持电流为40mA,读出时间最大为250ns。27256A为28线双列直插式封装。,27256A工作方式见下表:,27256A引脚功能如下:A0A14:15根地址线。CE:片选线,低电平有效。VPP:编程电源。GND:接地线。Q0Q7:8根数据线。OE:读出选通。VCC:+5V工作电源。,2、常用的扩展方法:,为保证系统正常工作,P0口应通过地址锁存器与存储器低8位地址相连,以保持存储器的低8位地址。常用的8位地址锁存器有74LS373、74LS273、8282等。74LS373用于单片机系统的扩展时,其电路的连

14、接采用74LS373实现。74LS373的D0D7接P0口,G端接ALE,E端接地,则Q0Q7输出为A0A7,即地址的低8位。27256A的地址与系统地址线相连接,数据线与89C51的P0口连接,OE端与PSEN连接,这样,系统扩展了32KB的程序存储器,地址为0000H7FFFH。,D7D6D5D4D3D2D1D0G,74LS373,GND,+5V,E,Q7Q6Q5Q4Q3Q2Q1Q0,74LS373引脚功能,使能端,当E=0,G=1时,输出Q=输入D(透明);当E=0,G=0时,输出Q端不变(锁存)当E=1,输出高阻态,G一般与单片机的锁存控制信号ALE相连,程序存储器扩展电路举例,扩展电

15、路的原理分析(1)单片机所用到引脚的时序分析,(2)原理分析 单片机取指令是各个部件相互协调工作的一个过程.主要是以下几步.第一步,送16位地址,指明要取的指令的存放位置。高8位地址通过P2送到27256的A8-A14和片选端CE。低8位地址由P0口提供,是通过373连接到27256的A7-A0上的。这里要注意:高8位地址是由A8-A14和片选端CE共同组成的。片选端CE为最高位。真正的地址范围为0000H-7FFFH.第二步,等待ALE第一次有效(高电平)。此时,373通道被打开,低8位地址被送入A7-A0。与此同时,PSEN为高电平,因此27256的数据输出端还未打开,即数据没有送出。,第

16、三步,ALE出现下降沿。此时,373的门被关住(锁存数据),与此同时,PSEN出现低电平,27256的数据输出端被打开,要取的指令代码通过O0-O7端口送入数据总线。第四步,ALE第二次有效,此时,总线上的代码通过P0口读入单片机。虽然此时373被打开,但是由于此时PSEN为高电平,把27256关掉了。因此,即使刚才的代码通过373被送到A7-A0,也不会送入27256中。,一、硬件电路设计二、控制程序的编写三、程序仿真与调试,项 目 实 施,(一)设计思路 在单片机系统扩展存储器时,根据4个并行I/O口使用的一般原则,使用MCS-51单片机芯片的P0口和P2口进行程序存储器的扩展。P0口具有

17、数据/地址复用功能,既可在片外存储器和单片机芯片之间进行数据传送,又可以和P2口共同组成地址线,利用74HC373锁存器实现此功能。,一、硬件电路设计,1、扩展电路设计 扩展用的程序存储器选用27C512芯片,内存64KB。使用74HC373锁存器实现P0口的数据/地址分时复用功能。将P0口与锁存器的输入引脚D0D7进行连接,同时与27C512芯片的数据引脚D0D7连接,锁存器的输出Q0Q7与27C512芯片的地址线的低8位(A0A7)连接。P2口直接与程序存储器的地址线的高8位(D8D15)连接即可。设计要求根据不同的程序控制单个发光二极管闪烁,因此利用P1.1引脚连接1只发光二极管。,(二

18、)电路设计,2、控制电路设计 1)EA/VPP引脚:本设计选用AT89C51单片机芯片,由于要实现存储器扩展,因此EA/VPP引脚连接一只双向开关,可以在高电平和低电平之间转换,以选择要读取的程序的存储空间-片内或片外。2)ALE引脚:使用此引脚的“地址锁存允许信号”功能,将ALE引脚与74HC373锁存器的允许端G连接。3)PSEN引脚:使用此引脚对外部程序存储器进行读选通,因以将PSEN引脚与27C512芯片的数据输入选通引脚OE连接。,综合以上分析,得到如图所示的控制电路图。,(三)材料表 从原理图可以得到实现本项目所需的元器件。,二、控制程序的编写(一)绘制程序流程图 为了说明不同存储

19、器的使用方法,编写单个发光二极管闪烁的控制程序,采用循环程序结构。,(二)编制汇编源程序1、存储于片内ROM中的程序(EA接高电平)(1)参考程序清单,(2)程序执行过程:ORG0000HLJMPMAIN7ORG0700HMAIN7:MOVA,#10CLRP1.1SS1:LCALLDELAYDECACPLP1.1JNZSS1SJMP$ORG0F00HDELAY:MOVR7,#10 RETEND,2、存储于片外ROM中的程序(EA接低电平)(1)参考程序清单,(2)程序执行过程:ORG0000HLJMPMAIN7ORG0100HMAIN7:MOVA,#0CLRP1.1SS2:LCALLDELAY

20、CPLP1.1INCACJNEA,#20,SS2SJMP$ORG0F00HDELAY:MOVR7,#10 RET END,三、程序仿真与调试:,1、将程序写入对应芯片。2、程序在实际电路中运行。,1、将存储在片内的程序通过编程器写入AT89C51芯片,改变编程器的设置,将存储在片外程序存储器的程序写入27C512芯片。,2、将写好程序的芯片(AT89C51、W27C512)安装到焊接好的电路板上。利用双向开关将EA接高电平,运行片内程序,观察发光二极管的闪烁速度和闪烁次数;将EA接地,观察发光二极管的闪烁速度和闪烁次数,理解程序存储器扩展的意义。,项目测试,一、问答题:1、在MCS-51单片机中,外部扩展的程序存储器在读取程序时,P0口即可以传送数据又可以传送地址信息,为什么不会发生冲突?2、举例说明扩展存储器和I/O的地址是如何确定的?3、分析ADD与INC、SUBB与DEC的区别。4、查资料了解常用的ROM芯片有哪些。二、程序编写:1、判断两个数是否相等,利用JZ或者JNZ指令如何编写程序?2、试编写程序,比较N1、N2两个数的大小,大者放入R0中,小者放入R1中。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号