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

下载本文档

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

文档简介

1、外部存储器的扩展技术并行接口的扩展技术第6章 MCS-51系列单片机的扩展技术1 在很多复杂的应用情况下,单片机内的RAM、ROM和I/O接口不够使用时,就需要进行扩展。 单片机的系统扩展主要是指外接程序存储器、数据存储器或I/O接口等,以满足应用系统的需要。2 单片机是通过地址总线,数据总线和控制总线与外部交换信息的。MCS-51单片机的总线接口信号见图。3(1) 地址总线A0A15 地址总线的高8位是由P2口提供的,低8位是由P0口提供的。 在访问外部存储器时,由地址锁存信号ALE的下降沿把P0口的低8位以及P2口的高8位锁存至地址锁存器中,从而构成系统的16位地址总线。(2) 数据总线D

2、0D7 数据总线是由P0口提供的,因为P0口线既用作地址线,又用作数据线(分时使用),因此,需要加一个8位锁存器。4(3) 控制总线 系统控制总线共12根,既P3口的第二功能再加上RESET、EA、ALE和PSEN。实际应用中的常用控制信号如下。 使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存。 以PSEN信号作为扩展程序存储器的读选通信号,在取指令码时或执行MOVC指令时变为有效。 以EA信号作为内、外程序存储器的选择信号。 以RD和WR作为扩展数据存储器和I/O端口的读、写选通信号。执行MOVX指令时,这两个信号分别自动有效。 51.外部程序存储器时序分析 程序存储器扩展电路的安

3、排应满足单片机从外存取指令的时序要求。从时序图中分析ALE、PSEN、P0和P2怎样配合使程序存储器完成取指操作,从而得出扩展程序存储器的方法。 单片机一直处于不断的取指令码执行取指令码执行的工作过程中,在取指令码时和执行MOVC指令时PSEN会变为有效,和其它信号配合完成从程序存储器读取数据。6.1 外部存储器的扩展技术6.1.1外部程序存储器的扩展技术6外部程序存储器访问时序EA=0,选择外部ROM。S2P1开始,P2口输出高8位地址A15-A8,一直持续到S4。S2P1开始,P0口输出低8位地址A7-A0,S2P1结束ALE下降沿锁存A7-A0。S3P1开始,PSEN读选通外部存储器,延

4、时等待TPLIV存储器把数据送到P0口。在PSEN上升沿来以前,单片机读取P0数据,完成一次外部程序存储器访问。一个机器周期可访问两次外部程序存储器,读两字节指令。72.外部程序存储器的连接方法三总线分别连接8 单片机外部扩展常用程序存储器芯片为EPROM,其掉电后信息不会丢失,且只有在紫外线的照射下,存储器的单元信息才可擦除。 用作扩展的EPROM主要是27系列,如2716、2732、2764、27128、7256等,其中高位数字27表示该芯片是EPROM,低位数字表明存储容量,如2716表示16K个存储位,亦即字节容量为2K的EPROM。 常用的还有EEPROM ,即28系列,如2816/

5、2817、2864等,型号含义同上。 3.外部程序存储器的扩展(1)常见的EPROM存储器及扩展电路9 EPROM除2716外均为28线双列直插式封装,各引脚定义如下。 A0Ai:地址输入线,i=1215。 D0Di:三态数据总线,读或编程校验时为数据输出线,编程时为数据输入线。其余时间呈高阻状态。 PGM:编程脉冲输入线。 OE:读出选通线,低电平有效。 CE:片选线,低电平有效。 VPP:编程电源线,其值因芯片及制作厂商而异。 VCC:电源线,接+5V电源。 GND:接地。1074LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直接相连。只扩展了一片EPROM,片选端接地。PSEN的

6、下降沿使OE有效,由A0A12指定的单元指令码从D0D7输出。P0读入指令到单片机, 经译码执行。常见的EPROM存储器及扩展电路11 单片机扩展2716,2732,27128等EPROM的方法与上图相同,差别仅在于不同的芯片的存储容量不同,因而使用高8位地址的P2端口线的根数不同。 扩展2716(2KB)需使用A8A10 三条高位地址线 扩展2732(4KB)需要A8A11 四条高位地址线。 扩展27128(16KB)需要A8A13六条高位地址线。 注意:2764和27128的PGM引脚应接Vcc。12(2)E2PROM存储器及扩展电路 电可擦除只读存储器EEPROM的特点如下: 单+5V供

7、电,电可擦除可改写。 使用次数为1万次,信息保存时间为10年。 读出时间为ns级,写入时间为ms级。 芯片引脚信号与相应的RAM和EPROM芯片兼容。1374LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直接相连。只扩展了一片EEPROM,片选端接地。PSEN和RD相与后与OE相连,支持读指令和读数据操作。WR和WE相连,支持写数据操作。14(3)多存储器片选方法 线选法 所谓线选法,就是把单根高位地址线直接加在存贮器芯片的CE端。线选法的优点是连接简单,不必附加逻辑,但扩展的存贮芯片地址不连续。 15 译码法(全译码) 译码法能提供全部64KB地址空间,且扩展的存贮器芯片地址是连续的

8、。 166.1.2 外部数据存储器的扩展技术1.外部数据存储器时序分析 MCS-51单片机内只有128字节的数据RAM,当应用中需要更多的RAM时,只能在片外扩展。可扩展的最大容量为64KB。 当执行指令 MOVX A,Ri 或 MOVX A,DPTR 时,进入外部数据RAM的读周期。C51语言中采用什么指令访问外部数据存储器?17外部数据存储器的读周期 第一个机器周期读指令,第二个机器周期读数据。P2口输出高8位地址A15-A8。P0口输出低8位地址A7-A0。分时有效,需ALE下降沿锁存。P0口读8位数据D7-D0。分时有效,需RD选通外部存储器。单片机在RD上升沿之前读入P0数据,完成一

9、次外部存储器读操作。18外部数据存储器的写周期第一个机器周期读指令,第二个机器周期写数据。P2口输出高8位地址A15-A8。P0口输出低8位地址A7-A0。分时有效,需ALE下降沿锁存。P0口读8位数据D7-D0。分时有效,需WR选通外部存储器。外部存储器在WR上升沿之前将P0数据写入指定单元。192. 外部数据存储器的连接方法注意:外部数据存储器由RD或WR选通,可读可写;203. 外部数据存储器的扩展 6116的地址为0000H07FFH,由于高位地址线未接入电路中,该芯片地址还可为1000H17FFH、2000H27FFH等等。 21完成外部数据存储器RAM读写操作的两种方式: 例如把累

10、加器A的内容写入外部存储器RAM的02F3H单元中,可有如下两种程序:第一种:MOV P2,#02H ;端口提供高8位地址 MOV R0,0F3H ;R0提供低8位地址 MOVX R0,A ;A中内容写入02F3H单元第二种:MOV DPTR,02F3H ;DPTR提供16位地址 MOVX DPTR,A ;A 中内容送02F3H单元 同样地,若需将外部数据存储器RAM 02F3H地址单元中的内容读入A累加器,其程序可为:第一种:MOV P2,02H ;端口提供高8位地址 MOV R0,0F3H ;R0提供低8位地址 MOVX A,R0 ;02F3H单元内容送入A 中第二种:MOV DPTR,0

11、2F3H ;DPTR提供16位地址 MOVX A,DPTR ;02F3H单元内容送入A 中C51语言中采用什么指令实现上述功能?226.2 并行接口的扩展技术 MCS-51单片机共有4个8位并行I/O口, 在外部扩展时, P0和P2口做为总线使用,因而提供给用户的 I/O口就只有P1或P3口的部分口线。所接的外设较多时,就必须扩展I/O接口。 MCS-51单片机扩展的I/O口和外部数据存储器统一编址、采用相同的控制信号、相同的寻址方式和相同的指令,即XBYTE宏定义。23(1)XBYTE宏定义读取外设数据: 变量=XBYTE地址;RD=0; 1)送出地址:确定访问的单元 P2口送出高8位;P0

12、口送出低8位 2)读取数据: 变量=P0(2)XBYTE宏定义通过外设输出数据: XBYTE地址=数据;WR=0; 1)送出地址:确定访问的单元 P2口送出高8位;P0口送出低8位 2)输出数据: P0=数据;246.2.1简单输入/输出口的扩展74LS244的选通信号由RD和P2.0相或产生,当执行读该片的指令时, RD和P2.0有效, 打开74LS244控制门, 从而把数据通过74LS244读入8XX51。74LS244各引脚定义如下:1A11A4:第1组4条输入线1Y11Y4:第1组4条输出线2A12A4:第2组4条输入线2Y12Y4:第2组4条输出线1G:第1组三态门使能端, 低电平有

13、效2G:第2组三态门使能端, 低电平有效VCC:工作电源,接+5V电压GND:接地 25程序如下(汇编): MOV DPTR, #FEFFH; 数据指针指向74LS244 MOVX A, DPTR ; 外部数据经过74LS244送入累加器A MOV 61H, A ; 数据送61H单元保存 26程序如下(C51语言): (1)变量=XBYTE0 xfeff; (2)unsigned char xdata a _at_ 0 xfeff;(全局变量) 变量=a;2774LS273的选通信号由WR和P2.0相或产生,通过执行对该片的写指令,WR和P2.0有效,使8XX51的数据往74LS273输出。7

14、4LS273各引脚定义如下:D0D7:输入线。Q0Q7:输出线。CLR:清除控制端, 低电平有效。CLK:时钟输入端, 上升沿有效。VCC:工作电源, 接+5V电压。GND:接地。28 从74LS273输出数据,可使用如下指令(汇编): MOV DPTR, #0FEFFH MOVX DPTR,A ;向74LS273输出数据29 从74LS273输出数据,可使用如下指令(C51语言): (1) XBYTE0 xfeff=输出数据 (2) unsigned char xdata a _at_ 0 xfeff;(全局变量) a=数据;30【例】74LS273输出端接8个LED发光二极管,以显示8个按

15、钮开关状态,某位低电平时二极管发光。74LS244扩展输入口,接8个按钮开关。 31 74LS273和74LS244的工作受AT89C51的P2.0、RD、WR三条控制线控制。电路的工作原理如下: 当P2.0=0,WR=0(RD=)选中写74LS273, AT89C51通过P0口输出数据到74LS273,; 当P2.0=0,RD=0(WR=1)时选中读74LS244, 某开关按下时则对应位输入为“0”。输出程序段(汇编):MOV A,#data ;数据AMOV DPTR,#0FEFFH ;I/O地址DPTRMOVX DPTR,A ;WR为低,数据经74LS273口输出输入程序段(汇编): MO

16、V DPTR,#0FEFFH ;I/O地址DPTR MOVX A,DPTR ;RD为低,74LS244口 ;数据读入内部RAM32输出程序段(C51语言): (1)XBYTE0 xfeff=输出数据 (2)unsigned char xdata a _at_ 0 xfeff;(全局变量) a=输出数据输入程序段(C51语言): (1)变量=XBYTE0 xfeff; (2)unsigned char xdata a _at_ 0 xfeff;(全局变量) 变量=a;33例1 编写程序把按钮开关状态通过上图的发光二极管显示出来。程序如下:DDIS:MOV DPTR,#0FEFFH ;输入口地址D

17、PTRLP:MOVX A,DPTR ;按钮开关状态读入A中MOVX DPTR,A ;A中数据送输出口SJMP LP ;反复连续执行#include #include void main()unsigned char a;while(1) a=XBYTE0 xfeff; XBYTE0 xfeff=a; #include unsigned char xdata a _at_ 0 xfeff;void main() unsigned char b; while(1) b=a;a=b;34一、8255的内部结构及引脚功能 8255A是可编程并行输入/输出接口芯片,内含A、B、C三个8位的输入输出数据端

18、口,A、B两组控制电路,读/写控制逻辑电路以及数据总线缓冲器, 其内部结构与引脚配置如下图所示。6.2.2可编程并行输入/输出口8255的扩展358255A控制信号与端口信号传送的I/O操作关系 A1A0 RD* WR* CS*工作状态00010读端口A:A口数据数据总线读端口B:B口数据数据总线 读端口C:C口数据数据总线010101001000100写端口A:总线数据A口写端口B:总线数据B口写端口C:总线数据C口写控制字:总线数据控制字寄存器0110010100111001数据总线为三态11010非法状态110数据总线为三态36二、8255A的工作方式及选择 8255A在三种基本的方式下

19、工作:方式 0:基本输入/输出。方式 1:选通的输入/输出。方式 2:双向传输。1、方式选择控制字 其中A口可工作于方式0、1、和2,而B口只能工作在方式0和方式1。例 写入工作方式控制字95H 可将8255A编程为:A口方式0输入,B口方式1输出,C口的上半部分(PC7 PC4)输出,C口的下半部分(PC3PC0)输入。372. C口按位置位/复位控制字可对C口8位中的任一位置“1”或清“0”。用于位控。例 控制字07H写入控制口,置“1” PC3;08H写入控制口,清“0” PC4。38三、AT89C51单片机和8255的接口1.硬件接口电路 如图是89C51扩展1片8255A的电路图。7

20、4LS373是地址锁存器,P0.1、P0.0经74LS373与8255A的地址线A1、A0连接; P0.7经74LS373与片选端相连,其他地址线悬空。392.确定8255A端口地址图中8255A各端口寄存器的地址为:A口: FF7CH B口: FF7DHC口: FF7EH 控制寄存器: FF7FH403.软件编程例 要求8255A工作在方式0,且A口作为输入,B口、C口作为输出,程序如下:MOV A,#90H ;A口方式0输入,B口、 ;C口输出的控制字送AMOVDPTR,#0FF7FH ;控制寄存器地址DPTRMOVX DPTR,A ;方式控制字控制寄存器MOVDPTR,#0FF7CH ;A口地址DPTRMOVX A,DPTR ;从A口读数据MOV DPTR,#0FF7DH ;B口地址DPTRMOV A,#DATA1 ;要输出的数据DATA1AMOVX DPTR,A ;将DATA1送B口输出MOV DPTR,#0FF7EH ;C口地址DPTR41MOV A,#DATA2 ;DATA2AMOVX DPTR,A ;将数据DATA2送C口输出C51语言程序:#include #include void main

温馨提示

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

评论

0/150

提交评论