单片机第6章MCS51系列单片机的扩展技术课件_第1页
单片机第6章MCS51系列单片机的扩展技术课件_第2页
单片机第6章MCS51系列单片机的扩展技术课件_第3页
单片机第6章MCS51系列单片机的扩展技术课件_第4页
单片机第6章MCS51系列单片机的扩展技术课件_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

单片机第6章__MCS-51系列单片机的扩展技术单片机第6章__MCS-51系列单片机的扩展技术

在很多复杂的应用情况下,单片机内的RAM、ROM和I/O接口不够使用时,就需要进行扩展。

单片机的系统扩展主要是指外接程序存储器、数据存储器或I/O接口等,以满足应用系统的需要。2在很多复杂的应用情况下,单片机内的RAM、ROM

单片机是通过地址总线,数据总线和控制总线与外部交换信息的。MCS-51单片机的总线接口信号见图。3单片机是通过地址总线,数据总线和控制总线与外部(1)地址总线A0~A15地址总线的高8位是由P2口提供的,低8位是由P0口提供的。在访问外部存储器时,由地址锁存信号ALE的下降沿把P0口的低8位以及P2口的高8位锁存至地址锁存器中,从而构成系统的16位地址总线。(2)数据总线D0~D7数据总线是由P0口提供的,因为P0口线既用作地址线,又用作数据线(分时使用),因此,需要加一个8位锁存器。4(1)地址总线A0~A154(3)控制总线系统控制总线共12根,既P3口的第二功能再加上RESET、EA、ALE和PSEN。实际应用中的常用控制信号如下。使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存。以PSEN信号作为扩展程序存储器的读选通信号,在取指令码时或执行MOVC指令时变为有效。。以EA信号作为内、外程序存储器的选择信号。以RD和WR作为扩展数据存储器和I/O端口的读、写选通信号。执行MOVX指令时,这两个信号分别自动有效。5(3)控制总线51.外部程序存储器时序分析

程序存储器扩展电路的安排应满足单片机从外存取指令的时序要求。从时序图中分析ALE、PSEN、P0和P2怎样配合使程序存储器完成取指操作,从而得出扩展程序存储器的方法。单片机一直处于不断的取指令码-执行-取指令码-执行的工作过程中,在取指令码时和执行MOVC指令时PSEN会变为有效,和其它信号配合完成从程序存储器读取数据。6.1外部存储器的扩展技术

6.1.1外部程序存储器的扩展技术61.外部程序存储器时序分析6.1外部存储器的扩展技术

6.外部程序存储器访问时序EA=0,选择外部ROM。S2P1开始,P2口输出高8位地址A15-A8,一直持续到S4。S2P1开始,P0口输出低8位地址A7-A0,S2P1结束ALE下降沿锁存A7-A0。S3P1开始,PSEN读选通外部存储器,延时等待TPLIV存储器把数据送到P0口。在PSEN上升沿来以前,单片机读取P0数据,完成一次外部程序存储器访问。一个机器周期可访问两次外部程序存储器,读两字节指令。7外部程序存储器访问时序EA=0,选择外部ROM。72.外部程序存储器的连接方法三总线分别连接82.外部程序存储器的连接方法8单片机外部扩展常用程序存储器芯片为EPROM,其掉电后信息不会丢失,且只有在紫外线的照射下,存储器的单元信息才可擦除。用作扩展的EPROM主要是27系列,如2716、2732、2764、27128、7256等,其中高位数字27表示该芯片是EPROM,低位数字表明存储容量,如2716表示16K个存储位,亦即字节容量为2K的EPROM。常用的还有EEPROM

,即28系列,如2816/2817、2864等,型号含义同上。

3.外部程序存储器的扩展(1)常见的EPROM存储器及扩展电路9单片机外部扩展常用程序存储器芯片为EPROM,其掉电EPROM除2716外均为28线双列直插式封装,各引脚定义如下。

A0~Ai:地址输入线,i=12~15。

D0~Di:三态数据总线,读或编程校验时为数据输出线,编程时为数据输入线。其余时间呈高阻状态。

PGM:编程脉冲输入线。

OE:读出选通线,低电平有效。

CE:片选线,低电平有效。

VPP:编程电源线,其值因芯片及制作厂商而异。

VCC:电源线,接+5V电源。

GND:接地。10EPROM除2716外均为28线双列直插式封装,各引脚74LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直接相连。只扩展了一片EPROM,片选端接地。PSEN的下降沿使OE有效,由A0~A12指定的单元指令码从D0~D7输出。P0读入指令到单片机,经译码执行。常见的EPROM存储器及扩展电路1174LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直

单片机扩展2716,2732,27128等EPROM的方法与上图相同,差别仅在于不同的芯片的存储容量不同,因而使用高8位地址的P2端口线的根数不同。扩展2716(2KB)需使用A8~A10三条高位地址线扩展2732(4KB)需要A8~A11四条高位地址线。扩展27128(16KB)需要A8~A13六条高位地址线。注意:2764和27128的PGM引脚应接Vcc。12

单片机扩展2716,2732,27128等EPRO(2)E2PROM存储器及扩展电路

电可擦除只读存储器EEPROM的特点如下:单+5V供电,电可擦除可改写。使用次数为1万次,信息保存时间为10年。读出时间为ns级,写入时间为ms级。芯片引脚信号与相应的RAM和EPROM芯片兼容。13(2)E2PROM存储器及扩展电路1374LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直接相连。只扩展了一片EEPROM,片选端接地。PSEN和RD相与后与OE相连,支持读指令和读数据操作。WR和WE相连,支持写数据操作。1474LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直(3)多存储器片选方法①线选法

所谓线选法,就是把单根高位地址线直接加在存贮器芯片的CE端。线选法的优点是连接简单,不必附加逻辑,但扩展的存贮芯片地址不连续。

15(3)多存储器片选方法15②译码法(全译码)

译码法能提供全部64KB地址空间,且扩展的存贮器芯片地址是连续的。

16②译码法(全译码)166.1.2外部数据存储器的扩展技术1.外部数据存储器时序分析

MCS-51单片机内只有128字节的数据RAM,当应用中需要更多的RAM时,只能在片外扩展。可扩展的最大容量为64KB。当执行指令MOVXA,@Ri或MOVXA,@DPTR时,进入外部数据RAM的读周期。C51语言中采用什么指令访问外部数据存储器?176.1.2外部数据存储器的扩展技术1.外部数据存储器时序外部数据存储器的读周期

第一个机器周期读指令,第二个机器周期读数据。P2口输出高8位地址A15-A8。P0口输出低8位地址A7-A0。分时有效,需ALE下降沿锁存。P0口读8位数据D7-D0。分时有效,需RD选通外部存储器。单片机在RD上升沿之前读入P0数据,完成一次外部存储器读操作。18外部数据存储器的读周期第一个机器周期读指令,第二个机外部数据存储器的写周期第一个机器周期读指令,第二个机器周期写数据。P2口输出高8位地址A15-A8。P0口输出低8位地址A7-A0。分时有效,需ALE下降沿锁存。P0口读8位数据D7-D0。分时有效,需WR选通外部存储器。外部存储器在WR上升沿之前将P0数据写入指定单元。19外部数据存储器的写周期第一个机器周期读指令,第二个机器周期写2.外部数据存储器的连接方法注意:外部数据存储器由RD或WR选通,可读可写;202.外部数据存储器的连接方法203.外部数据存储器的扩展

6116的地址为0000H~07FFH,由于高位地址线未接入电路中,该芯片地址还可为1000H~17FFH、2000H~27FFH等等。213.外部数据存储器的扩展6116的地址为0000完成外部数据存储器RAM读写操作的两种方式:

例如把累加器A的内容写入外部存储器RAM的02F3H单元中,可有如下两种程序:第一种:MOVP2,#02H;端口提供高8位地址MOVR0,#0F3H;R0提供低8位地址MOVX@R0,A;A中内容写入02F3H单元第二种:MOVDPTR,#02F3H;DPTR提供16位地址MOVX@DPTR,A;A中内容送02F3H单元同样地,若需将外部数据存储器RAM02F3H地址单元中的内容读入A累加器,其程序可为:第一种:MOVP2,#02H;端口提供高8位地址MOVR0,#0F3H;R0提供低8位地址MOVXA,@R0;02F3H单元内容送入A中第二种:MOVDPTR,#02F3H;DPTR提供16位地址MOVXA,@DPTR;02F3H单元内容送入A中C51语言中采用什么指令实现上述功能?22完成外部数据存储器RAM读写操作的两种方式:C51语言中采用6.2并行接口的扩展技术

MCS-51单片机共有4个8位并行I/O口,在外部扩展时,P0和P2口做为总线使用,因而提供给用户的I/O口就只有P1或P3口的部分口线。所接的外设较多时,就必须扩展I/O接口。MCS-51单片机扩展的I/O口和外部数据存储器统一编址、采用相同的控制信号、相同的寻址方式和相同的指令,即XBYTE宏定义。236.2并行接口的扩展技术MCS-51单片机共(1)XBYTE宏定义读取外设数据:变量=XBYTE[地址];RD‘=0;1)送出地址:确定访问的单元P2口送出高8位;P0口送出低8位2)读取数据:变量=P0(2)XBYTE宏定义通过外设输出数据:XBYTE[地址]=数据;WR‘=0;1)送出地址:确定访问的单元P2口送出高8位;P0口送出低8位2)输出数据:P0=数据;24(1)XBYTE宏定义读取外设数据:246.2.1简单输入/输出口的扩展74LS244的选通信号由RD和P2.0相或产生,当执行读该片的指令时,RD和P2.0有效,打开74LS244控制门,从而把数据通过74LS244读入8XX51。74LS244各引脚定义如下:1A1~1A4:第1组4条输入线1Y1~1Y4:第1组4条输出线2A1~2A4:第2组4条输入线2Y1~2Y4:第2组4条输出线1G:第1组三态门使能端,低电平有效2G:第2组三态门使能端,低电平有效VCC:工作电源,接+5V电压GND:接地256.2.1简单输入/输出口的扩展74LS244的选通信号由R程序如下(汇编):MOVDPTR,#FEFFH ;数据指针指向74LS244MOVXA,@DPTR;外部数据经过74LS244送入累加器AMOV61H,A ;数据送61H单元保存26程序如下(汇编):26程序如下(C51语言):(1)变量=XBYTE[0xfeff];(2)unsignedcharxdataa_at_0xfeff;(全局变量)变量=a;27程序如下(C51语言):2774LS273的选通信号由WR和P2.0相或产生,通过执行对该片的写指令,WR和P2.0有效,使8XX51的数据往74LS273输出。74LS273各引脚定义如下:D0~D7:输入线。Q0~Q7:输出线。CLR:清除控制端,低电平有效。CLK:时钟输入端,上升沿有效。VCC:工作电源,接+5V电压。GND:接地。2874LS273的选通信号由WR和P2.0相或产生,通过执行对从74LS273输出数据,可使用如下指令(汇编):MOVDPTR,#0FEFFHMOVX@DPTR,A;向74LS273输出数据29从74LS273输出数据,可使用如下指令(汇编):2从74LS273输出数据,可使用如下指令(C51语言):(1)XBYTE[0xfeff]=输出数据(2)unsignedcharxdataa_at_0xfeff;(全局变量)a=数据;30从74LS273输出数据,可使用如下指令(C51语言【例】74LS273输出端接8个LED发光二极管,以显示8个按钮开关状态,某位低电平时二极管发光。74LS244扩展输入口,接8个按钮开关。

31【例】74LS273输出端接8个LED发光二极管,以显示8个74LS273和74LS244的工作受AT89C51的P2.0、RD、WR三条控制线控制。电路的工作原理如下:当P2.0=0,WR=0(RD=1)选中写74LS273,AT89C51通过P0口输出数据到74LS273,;当P2.0=0,RD=0(WR=1)时选中读74LS244,某开关按下时则对应位输入为“0”。输出程序段(汇编):

MOVA,#data;数据→A MOVDPTR,#0FEFFH;I/O地址→DPTR MOVX@DPTR,A;WR为低,数据经74LS273口输出输入程序段(汇编):

MOVDPTR,#0FEFFH;I/O地址→DPTRMOVXA,@DPTR ;RD为低,74LS244口;数据读入内部RAM3274LS273和74LS244的工作受AT89C51输出程序段(C51语言):

(1)XBYTE[0xfeff]=输出数据(2)unsignedcharxdataa_at_0xfeff;(全局变量)a=输出数据输入程序段(C51语言):

(1)变量=XBYTE[0xfeff];(2)unsignedcharxdataa_at_0xfeff;(全局变量)变量=a;33输出程序段(C51语言):输入程序段(C51语言):33例1

编写程序把按钮开关状态通过上图的发光二极管显示出来。程序如下:DDIS: MOVDPTR,#0FEFFH ;输入口地址→DPTRLP: MOVXA,@DPTR ;按钮开关状态读入A中MOVX@DPTR,A ;A中数据送输出口SJMPLP ;反复连续执行#include<reg51.h>#include<absacc.h>voidmain(){unsignedchara;while(1){a=XBYTE[0xfeff];XBYTE[0xfeff]=a;}}#include<reg51.h>unsignedcharxdataa_at_0xfeff;voidmain(){unsignedcharb;while(1) {b=a; a=b; }}34例1编写程序把按钮开关状态通过上图的发光二极管显示出来。一、8255的内部结构及引脚功能

8255A是可编程并行输入/输出接口芯片,内含A、B、C三个8位的输入输出数据端口,A、B两组控制电路,读/写控制逻辑电路以及数据总线缓冲器,其内部结构与引脚配置如下图所示。6.2.2可编程并行输入/输出口8255的扩展35一、8255的内部结构及引脚功能6.2.2可编程并行8255A控制信号与端口信号传送的I/O操作关系A1A0RD*WR*CS*工作状态00010读端口A:A口数据→数据总线读端口B:B口数据→数据总线读端口C:C口数据→数据总线010101001000100写端口A:总线数据→A口写端口B:总线数据→B口写端口C:总线数据→C口写控制字:总线数据→控制字寄存器011001010011100××××1数据总线为三态11010非法状态××110数据总线为三态368255A控制信号与端口信号传送的I/O操作关系A1A0二、8255A的工作方式及选择

8255A在三种基本的方式下工作:方式0:基本输入/输出。方式1:选通的输入/输出。方式2:双向传输。1、方式选择控制字其中A口可工作于方式0、1、和2,而B口只能工作在方式0和方式1。例写入工作方式控制字95H

可将8255A编程为:A口方式0输入,B口方式1输出,C口的上半部分(PC7~PC4)输出,C口的下半部分(PC3~PC0)输入。37二、8255A的工作方式及选择8255A在三种基本的方式下2.C口按位置位/复位控制字可对C口8位中的任一位置“1”或清“0”。用于位控。例

控制字07H写入控制口,置“1”PC3;08H写入控制口,清“0”PC4。382.C口按位置位/复位控制字可对C口8位中的任一位置“1”三、AT89C51单片机和8255的接口1.硬件接口电路

如图是89C51扩展1片8255A的电路图。74LS373是地址锁存器,P0.1、P0.0经74LS373与8255A的地址线A1、A0连接;P0.7经74LS373与片选端相连,其他地址线悬空。39三、AT89C51单片机和8255的接口1.硬件接口电路2.确定8255A端口地址图中8255A各端口寄存器的地址为:A口:FF7CHB口:FF7DHC口:FF7EH控制寄存器:FF7FH402.确定8255A端口地址图中8255A各端口寄存器的地址为3.软件编程例要求8255A工作在方式0,且A口作为输入,B口、C口作为输出,程序如下: MOV A,#90H ;A口方式0输入,B口、 ;C口输出的控制字送A MOV DPTR,#0FF7FH ;控制寄存器地址→DPTR MOVX@DPTR,A ;方式控制字→控制寄存器MOV DPTR,#0FF7CH ;A口地址→DPTRMOVXA,@DPTR ;从A口读数据MOVDPTR,#0FF7DH ;B口地址→DPTRMOV A,#DATA1 ;要输出的数据DATA1→AMOVX@DPTR,A ;将DATA1送B口输出MOVDPTR,#0FF7EH ;C口地址→DPTR413.软件编程例要求8255A工作在方式0,且A口作为输入,MOVA,#DATA2 ;DATA2→AMOVX@DPTR,A ;将数据DATA2送C口输出C51语言程序:#include<reg51.h>#include<absacc.h>voidmain(){unsignedchara,b,c;XBYTE[0xff7f]=0x90;//写入控制字a=XBYTE[0xff7C]; //读A口数据,存入变量a中XBYTE[0xff7D]=b; //写B口,变量b通过B口输出XBYTE[0xff7e]=c; //写C口,变量C通过C口输出}42MOVA,#DATA2 ;DATA2→AC5【练习】用8255的PA、PB、PC口分别作为输入口接八只控制开关,或作为输出口接八只发光二极管,编写控制程序,八只发光二极管分别受各自对应的控制开关的控制。43【练习】用8255的PA、PB、PC口分别作为输入口接八只

ORG0000H AJMPMAIN ORG0250H MAIN:MOVDPTR,#0FFfeH MOVA,#90H ;A口输入、B口输出MOVX@DPTR,A ;写控制字数据LOOP:MOVDPTR,#0FF3eH MOVXA,@DPTR ;读输入口数据MOVDPTR,#0FF7eH MOVX@DPTR,A ;写输出口数据SJMPLOOP END ;程序结束44ORG0000H 44C51语言程序:#include<reg51.g>#include<absacc.h>voidmain(){ unsignedchara; XBYTE[0xfffe]=0x90; while(1) { a=XBYTE[0xff3e]; XBYTE[0xff7e]=a; }}#include<reg51.g>unsignedcharxdataa_at_0xfffe;unsignedcharxdatab_at_0xff3e;unsignedcharxdatac_at_0xff7e;voidmain(){ unsignedchard; a=0x90; while(1) { d=b; c=d; }}45C51语言程序:#include<reg51.g>45单片机第6章__MCS-51系列单片机的扩展技术单片机第6章__MCS-51系列单片机的扩展技术

在很多复杂的应用情况下,单片机内的RAM、ROM和I/O接口不够使用时,就需要进行扩展。

单片机的系统扩展主要是指外接程序存储器、数据存储器或I/O接口等,以满足应用系统的需要。47在很多复杂的应用情况下,单片机内的RAM、ROM

单片机是通过地址总线,数据总线和控制总线与外部交换信息的。MCS-51单片机的总线接口信号见图。48单片机是通过地址总线,数据总线和控制总线与外部(1)地址总线A0~A15地址总线的高8位是由P2口提供的,低8位是由P0口提供的。在访问外部存储器时,由地址锁存信号ALE的下降沿把P0口的低8位以及P2口的高8位锁存至地址锁存器中,从而构成系统的16位地址总线。(2)数据总线D0~D7数据总线是由P0口提供的,因为P0口线既用作地址线,又用作数据线(分时使用),因此,需要加一个8位锁存器。49(1)地址总线A0~A154(3)控制总线系统控制总线共12根,既P3口的第二功能再加上RESET、EA、ALE和PSEN。实际应用中的常用控制信号如下。使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存。以PSEN信号作为扩展程序存储器的读选通信号,在取指令码时或执行MOVC指令时变为有效。。以EA信号作为内、外程序存储器的选择信号。以RD和WR作为扩展数据存储器和I/O端口的读、写选通信号。执行MOVX指令时,这两个信号分别自动有效。50(3)控制总线51.外部程序存储器时序分析

程序存储器扩展电路的安排应满足单片机从外存取指令的时序要求。从时序图中分析ALE、PSEN、P0和P2怎样配合使程序存储器完成取指操作,从而得出扩展程序存储器的方法。单片机一直处于不断的取指令码-执行-取指令码-执行的工作过程中,在取指令码时和执行MOVC指令时PSEN会变为有效,和其它信号配合完成从程序存储器读取数据。6.1外部存储器的扩展技术

6.1.1外部程序存储器的扩展技术511.外部程序存储器时序分析6.1外部存储器的扩展技术

6.外部程序存储器访问时序EA=0,选择外部ROM。S2P1开始,P2口输出高8位地址A15-A8,一直持续到S4。S2P1开始,P0口输出低8位地址A7-A0,S2P1结束ALE下降沿锁存A7-A0。S3P1开始,PSEN读选通外部存储器,延时等待TPLIV存储器把数据送到P0口。在PSEN上升沿来以前,单片机读取P0数据,完成一次外部程序存储器访问。一个机器周期可访问两次外部程序存储器,读两字节指令。52外部程序存储器访问时序EA=0,选择外部ROM。72.外部程序存储器的连接方法三总线分别连接532.外部程序存储器的连接方法8单片机外部扩展常用程序存储器芯片为EPROM,其掉电后信息不会丢失,且只有在紫外线的照射下,存储器的单元信息才可擦除。用作扩展的EPROM主要是27系列,如2716、2732、2764、27128、7256等,其中高位数字27表示该芯片是EPROM,低位数字表明存储容量,如2716表示16K个存储位,亦即字节容量为2K的EPROM。常用的还有EEPROM

,即28系列,如2816/2817、2864等,型号含义同上。

3.外部程序存储器的扩展(1)常见的EPROM存储器及扩展电路54单片机外部扩展常用程序存储器芯片为EPROM,其掉电EPROM除2716外均为28线双列直插式封装,各引脚定义如下。

A0~Ai:地址输入线,i=12~15。

D0~Di:三态数据总线,读或编程校验时为数据输出线,编程时为数据输入线。其余时间呈高阻状态。

PGM:编程脉冲输入线。

OE:读出选通线,低电平有效。

CE:片选线,低电平有效。

VPP:编程电源线,其值因芯片及制作厂商而异。

VCC:电源线,接+5V电源。

GND:接地。55EPROM除2716外均为28线双列直插式封装,各引脚74LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直接相连。只扩展了一片EPROM,片选端接地。PSEN的下降沿使OE有效,由A0~A12指定的单元指令码从D0~D7输出。P0读入指令到单片机,经译码执行。常见的EPROM存储器及扩展电路5674LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直

单片机扩展2716,2732,27128等EPROM的方法与上图相同,差别仅在于不同的芯片的存储容量不同,因而使用高8位地址的P2端口线的根数不同。扩展2716(2KB)需使用A8~A10三条高位地址线扩展2732(4KB)需要A8~A11四条高位地址线。扩展27128(16KB)需要A8~A13六条高位地址线。注意:2764和27128的PGM引脚应接Vcc。57

单片机扩展2716,2732,27128等EPRO(2)E2PROM存储器及扩展电路

电可擦除只读存储器EEPROM的特点如下:单+5V供电,电可擦除可改写。使用次数为1万次,信息保存时间为10年。读出时间为ns级,写入时间为ms级。芯片引脚信号与相应的RAM和EPROM芯片兼容。58(2)E2PROM存储器及扩展电路1374LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直接相连。只扩展了一片EEPROM,片选端接地。PSEN和RD相与后与OE相连,支持读指令和读数据操作。WR和WE相连,支持写数据操作。5974LS373为8D锁存器在ALE下跳沿锁存地址,高位地址直(3)多存储器片选方法①线选法

所谓线选法,就是把单根高位地址线直接加在存贮器芯片的CE端。线选法的优点是连接简单,不必附加逻辑,但扩展的存贮芯片地址不连续。

60(3)多存储器片选方法15②译码法(全译码)

译码法能提供全部64KB地址空间,且扩展的存贮器芯片地址是连续的。

61②译码法(全译码)166.1.2外部数据存储器的扩展技术1.外部数据存储器时序分析

MCS-51单片机内只有128字节的数据RAM,当应用中需要更多的RAM时,只能在片外扩展。可扩展的最大容量为64KB。当执行指令MOVXA,@Ri或MOVXA,@DPTR时,进入外部数据RAM的读周期。C51语言中采用什么指令访问外部数据存储器?626.1.2外部数据存储器的扩展技术1.外部数据存储器时序外部数据存储器的读周期

第一个机器周期读指令,第二个机器周期读数据。P2口输出高8位地址A15-A8。P0口输出低8位地址A7-A0。分时有效,需ALE下降沿锁存。P0口读8位数据D7-D0。分时有效,需RD选通外部存储器。单片机在RD上升沿之前读入P0数据,完成一次外部存储器读操作。63外部数据存储器的读周期第一个机器周期读指令,第二个机外部数据存储器的写周期第一个机器周期读指令,第二个机器周期写数据。P2口输出高8位地址A15-A8。P0口输出低8位地址A7-A0。分时有效,需ALE下降沿锁存。P0口读8位数据D7-D0。分时有效,需WR选通外部存储器。外部存储器在WR上升沿之前将P0数据写入指定单元。64外部数据存储器的写周期第一个机器周期读指令,第二个机器周期写2.外部数据存储器的连接方法注意:外部数据存储器由RD或WR选通,可读可写;652.外部数据存储器的连接方法203.外部数据存储器的扩展

6116的地址为0000H~07FFH,由于高位地址线未接入电路中,该芯片地址还可为1000H~17FFH、2000H~27FFH等等。663.外部数据存储器的扩展6116的地址为0000完成外部数据存储器RAM读写操作的两种方式:

例如把累加器A的内容写入外部存储器RAM的02F3H单元中,可有如下两种程序:第一种:MOVP2,#02H;端口提供高8位地址MOVR0,#0F3H;R0提供低8位地址MOVX@R0,A;A中内容写入02F3H单元第二种:MOVDPTR,#02F3H;DPTR提供16位地址MOVX@DPTR,A;A中内容送02F3H单元同样地,若需将外部数据存储器RAM02F3H地址单元中的内容读入A累加器,其程序可为:第一种:MOVP2,#02H;端口提供高8位地址MOVR0,#0F3H;R0提供低8位地址MOVXA,@R0;02F3H单元内容送入A中第二种:MOVDPTR,#02F3H;DPTR提供16位地址MOVXA,@DPTR;02F3H单元内容送入A中C51语言中采用什么指令实现上述功能?67完成外部数据存储器RAM读写操作的两种方式:C51语言中采用6.2并行接口的扩展技术

MCS-51单片机共有4个8位并行I/O口,在外部扩展时,P0和P2口做为总线使用,因而提供给用户的I/O口就只有P1或P3口的部分口线。所接的外设较多时,就必须扩展I/O接口。MCS-51单片机扩展的I/O口和外部数据存储器统一编址、采用相同的控制信号、相同的寻址方式和相同的指令,即XBYTE宏定义。686.2并行接口的扩展技术MCS-51单片机共(1)XBYTE宏定义读取外设数据:变量=XBYTE[地址];RD‘=0;1)送出地址:确定访问的单元P2口送出高8位;P0口送出低8位2)读取数据:变量=P0(2)XBYTE宏定义通过外设输出数据:XBYTE[地址]=数据;WR‘=0;1)送出地址:确定访问的单元P2口送出高8位;P0口送出低8位2)输出数据:P0=数据;69(1)XBYTE宏定义读取外设数据:246.2.1简单输入/输出口的扩展74LS244的选通信号由RD和P2.0相或产生,当执行读该片的指令时,RD和P2.0有效,打开74LS244控制门,从而把数据通过74LS244读入8XX51。74LS244各引脚定义如下:1A1~1A4:第1组4条输入线1Y1~1Y4:第1组4条输出线2A1~2A4:第2组4条输入线2Y1~2Y4:第2组4条输出线1G:第1组三态门使能端,低电平有效2G:第2组三态门使能端,低电平有效VCC:工作电源,接+5V电压GND:接地706.2.1简单输入/输出口的扩展74LS244的选通信号由R程序如下(汇编):MOVDPTR,#FEFFH ;数据指针指向74LS244MOVXA,@DPTR;外部数据经过74LS244送入累加器AMOV61H,A ;数据送61H单元保存71程序如下(汇编):26程序如下(C51语言):(1)变量=XBYTE[0xfeff];(2)unsignedcharxdataa_at_0xfeff;(全局变量)变量=a;72程序如下(C51语言):2774LS273的选通信号由WR和P2.0相或产生,通过执行对该片的写指令,WR和P2.0有效,使8XX51的数据往74LS273输出。74LS273各引脚定义如下:D0~D7:输入线。Q0~Q7:输出线。CLR:清除控制端,低电平有效。CLK:时钟输入端,上升沿有效。VCC:工作电源,接+5V电压。GND:接地。7374LS273的选通信号由WR和P2.0相或产生,通过执行对从74LS273输出数据,可使用如下指令(汇编):MOVDPTR,#0FEFFHMOVX@DPTR,A;向74LS273输出数据74从74LS273输出数据,可使用如下指令(汇编):2从74LS273输出数据,可使用如下指令(C51语言):(1)XBYTE[0xfeff]=输出数据(2)unsignedcharxdataa_at_0xfeff;(全局变量)a=数据;75从74LS273输出数据,可使用如下指令(C51语言【例】74LS273输出端接8个LED发光二极管,以显示8个按钮开关状态,某位低电平时二极管发光。74LS244扩展输入口,接8个按钮开关。

76【例】74LS273输出端接8个LED发光二极管,以显示8个74LS273和74LS244的工作受AT89C51的P2.0、RD、WR三条控制线控制。电路的工作原理如下:当P2.0=0,WR=0(RD=1)选中写74LS273,AT89C51通过P0口输出数据到74LS273,;当P2.0=0,RD=0(WR=1)时选中读74LS244,某开关按下时则对应位输入为“0”。输出程序段(汇编):

MOVA,#data;数据→A MOVDPTR,#0FEFFH;I/O地址→DPTR MOVX@DPTR,A;WR为低,数据经74LS273口输出输入程序段(汇编):

MOVDPTR,#0FEFFH;I/O地址→DPTRMOVXA,@DPTR ;RD为低,74LS244口;数据读入内部RAM7774LS273和74LS244的工作受AT89C51输出程序段(C51语言):

(1)XBYTE[0xfeff]=输出数据(2)unsignedcharxdataa_at_0xfeff;(全局变量)a=输出数据输入程序段(C51语言):

(1)变量=XBYTE[0xfeff];(2)unsignedcharxdataa_at_0xfeff;(全局变量)变量=a;78输出程序段(C51语言):输入程序段(C51语言):33例1

编写程序把按钮开关状态通过上图的发光二极管显示出来。程序如下:DDIS: MOVDPTR,#0FEFFH ;输入口地址→DPTRLP: MOVXA,@DPTR ;按钮开关状态读入A中MOVX@DPTR,A ;A中数据送输出口SJMPLP ;反复连续执行#include<reg51.h>#include<absacc.h>voidmain(){unsignedchara;while(1){a=XBYTE[0xfeff];XBYTE[0xfeff]=a;}}#include<reg51.h>unsignedcharxdataa_at_0xfeff;voidmain(){unsignedcharb;while(1) {b=a; a=b; }}79例1编写程序把按钮开关状态通过上图的发光二极管显示出来。一、8255的内部结构及引脚功能

8255A是可编程并行输入/输出接口芯片,内含A、B、C三个8位的输入输出数据端口,A、B两组控制电路,读/写控制逻辑电路以及数据总线缓冲器,其内部结构与引脚配置如下图所示。6.2.2可编程并行输入/输出口8255的扩展80一、8255的内部结构及引脚功能6.2.2可编程并行8255A控制信号与端口信号传送的I/O操作关系A1A0RD*WR*CS*工作状态00010读端口A:A口数据→数据总线读端口B:B口数据→数据总线读端口C:C口数据→数据总线010101001000100写端口A:总线数据→A口写端口B:总线数据→B口写端口C:总线数据→C口写控制字:总线数据→控制字寄存器011001010011100××××1数据总线为三态11010非法状态××110数据总线为三态818255A控制信号与端口信号传送的I/O操作关系A1A0二、8255A的工作方式及选择

8255A在三种基本的方式下工作:方式0:基本输入/输出。方式1:选通的输入/输出。方式2:双向传输。1、方式选择控制字其中A口可工作于方式0、1、和2,而B口只能工作在方式0和方式1。例写入工作方式控制字95H

可将8255A编程为:A口方式0输入,B口方式1输出,C口的上半部分(PC7~PC4)输出,C口的下半部分(PC3~PC0)输入。82二、8255A的工作方式及选择8255A在三种基本的方式下2.C口按位置位/复位控制字可对C口8位中的任一位置“1”或清“0”。用于位控。例

控制字07H写入控制口,置“1”PC

温馨提示

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

评论

0/150

提交评论