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

上传人:wz****p 文档编号:243188017 上传时间:2024-09-17 格式:PPT 页数:45 大小:2.32MB
返回 下载 相关 举报
单片机第6章__MCS-51系列单片机的扩展技术课件_第1页
第1页 / 共45页
单片机第6章__MCS-51系列单片机的扩展技术课件_第2页
第2页 / 共45页
单片机第6章__MCS-51系列单片机的扩展技术课件_第3页
第3页 / 共45页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单片机第6章_MCS-51系列单片机的扩展技术,在很多复杂的应用情况下,单片机内的RAM、ROM和I/O接口不够使用时,就需要进行扩展。,单片机的系统扩展主要是指外接程序存储器、数据存储器或I/O接口等,以满足应用系统的需要。,2,单片机是通过地址总线,数据总线和控制总线与外部交换信息的。,MCS-51单片机的总线接口信号,见图。,3,(1) 地址总线A0A15,地址总线的高8位是由P2口提供的,低8位是由P0口提供的。,在访问外部存储器时,由地址锁存信号ALE的下降沿把P0口的低8位以及P2口的高8位锁存至地址锁存器中,从而构成系统的16位地址总线。,(2) 数据总线D0D7,数据总线是由P0口提供的,因为,P0口线既用作地址线,又用作数据线(分时使用),,因此,需要加一个8位锁存器。,4,(3) 控制总线,系统控制总线共12根,既P3口的第二功能再加上RESET、EA、ALE和PSEN。实际应用中的常用控制信号如下。,使用ALE作为,地址锁存的选通信号,,以实现低8位地址的锁存。,以PSEN信号作为扩展,程序存储器的读选通信号,在取指令码时或执行MOVC指令时变为有效。,。,以EA信号作为,内、外程序存储器的选择信号,。,以RD和WR作为扩展,数据存储器和I/O端口的读、写选通信号,。执行MOVX指令时,这两个信号分别自动有效。,5,1.外部程序存储器时序分析,程序存储器扩展电路的安排应满足单片机从外存取指令的时序要求。从时序图中分析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,读,选通外部存储器,延时等待,TPLIV,存储器把数据送到,P0,口。,在,PSEN,上升沿来以前,单片机读取,P0,数据,完成一次外部程序存储器访问。,一个机器周期可访问两次外部程序存储器,读两字节指令。,7,2.外部程序存储器的连接方法,三总线分别连接,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除2716外均为28线双列直插式封装,各引脚定义如下。,A0Ai:,地址输入线,i=1215。,D0Di:,三态数据总线,读或编程校验时为数据输出线,编程,时为数据输入线。其余时间呈高阻状态。,PGM:,编程脉冲输入线。,OE:,读出选通线,低电平有效。,CE:,片选线,低电平有效。,V,PP,:,编程电源线,其值因芯片及制作厂商而异。,V,CC,:,电源线,接+5V电源。,GND:,接地。,10,74LS373,为,8D,锁存器在,ALE,下跳沿锁存地址,高位地址直接相连。,只扩展了一片,EPROM,,片选端接地。,PSEN,的下降沿使,OE,有效,由,A0,A12,指定的单元指令码从,D0,D7,输出。,P0,读入指令到单片机,经译码执行。,常见的EPROM存储器及扩展电路,11,单片机扩展2716,2732,27128等EPROM的方法与上图相同,差别仅在于不同的芯片的存储容量不同,因而使用高8位地址的P2端口线的根数不同。,扩展2716(2KB)需使用A8A10 三条高位地址线,扩展2732(4KB)需要A8A11 四条高位地址线。,扩展27128(16KB)需要A8A13六条高位地址线。,注意:2764和27128的PGM引脚应接Vcc。,12,(2)E,2,PROM存储器及扩展电路,电可擦除只读存储器EEPROM的特点如下:,单,+5V,供电,电可擦除可改写。,使用次数为,1,万次,信息保存时间为,10,年。,读出时间为,ns,级,写入时间为,ms,级。,芯片引脚信号与相应的,RAM,和,EPROM,芯片兼容。,13,74LS373,为,8D,锁存器在,ALE,下跳沿锁存地址,高位地址直接相连。,只扩展了一片,EEPROM,,片选端接地。,PSEN,和,RD,相与后与,OE,相连,支持读指令和读数据操作。,WR,和,WE,相连,支持写数据操作。,14,(3)多存储器片选方法, 线选法,所谓线选法,就是把单根高位地址线直接加在存贮器芯片的CE端。线选法的优点是连接简单,不必附加逻辑,但扩展的存贮芯片地址,不连续。,15, 译码法(全译码),译码法能提供全部64KB地址空间,且扩展的存贮器芯片地址是连续的。,16,6.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,数据,完成一次外部存储器读操作。,18,外部数据存储器的写周期,第一个机器周期读指令,第二个机器周期写数据。,P2,口输出高,8,位地址,A15-A8,。,P0,口输出低,8,位地址,A7-A0,。分时有效,需,ALE,下降沿锁存。,P0,口读,8,位数据,D7-D0,。分时有效,需,WR,选通外部存储器。,外部存储器在,WR,上升沿之前将,P0,数据写入指定单元。,19,2. 外部数据存储器的连接方法,注意:,外部数据存储器由RD或WR选通,可读可写;,20,3. 外部数据存储器的扩展,6116的地址为0000H07FFH,由于高位地址线未接入电路中,该芯片地址还可为1000H17FFH、2000H27FFH等等。,21,完成外部数据存储器,RAM,读写操作的两种方式:,例如把累加器,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,,,02F3H,;,DPTR,提供,16,位地址,MOVX A,,,DPTR,;,02F3H,单元内容送入,A,中,C51语言中采用什么指令实现上述功能?,22,6.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口送出低8位,2)读取数据:,变量=P0,(2)XBYTE宏定义通过外设输出数据:,XBYTE地址=数据;WR=0;,1)送出地址:确定访问的单元,P2口送出高8位;P0口送出低8位,2)输出数据:,P0=数据;,24,6.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组三态门使能端,,低电平有效,2G:第2组三态门使能端,,低电平有效,VCC:工作电源,接+5V电压,GND:接地,25,程序如下(汇编):,MOV DPTR, #F,E,FFH; 数据指针指向74LS244,MOVX A, DPTR ; 外部数据经过74LS244送入累加器A,MOV 61H, A ; 数据送61H单元保存,26,程序如下(C51语言):,(1)变量=XBYTE0xfeff;,(2)unsigned char xdata a _at_ 0xfeff;(全局变量),变量=a;,27,74LS273的选通信号由WR和P2.0相或产生,通过执行对该片的写指令,WR和P2.0有效,使8XX51的数据往74LS273输出。,74LS273各引脚定义如下:,D0D7:输入线。,Q0Q7:输出线。,CLR:清除控制端,,低电平有效。,CLK:时钟输入端,,上升沿有效。,VCC:工作电源,,接+5V电压。,GND:接地。,28,从74LS273输出数据,可使用如下指令(汇编):,MOV DPTR, #0F,E,FFH,MOVX DPTR,A ;向74LS273输出数据,29,从74LS273输出数据,可使用如下指令(C51语言):,(1) XBYTE0xfeff=输出数据,(2) unsigned char xdata a _at_ 0xfeff;(全局变量),a=数据;,30,【例】,74LS273,输出端接8个LED,发光二极管,以,显示8个按钮开关状态,,某位低电平时二极管发光。,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 ;数据A,MOV DPTR,#0FEFFH ;I/O地址DPTR,MOVX DPTR,A ;WR为低,数据经74LS273口输出,输入程序段(汇编):,MOV DPTR,#0FEFFH ;I/O地址DPTR,MOVX A,DPTR ;RD为低,74LS244口,;数据读入内部RAM,32,输出程序段(C51语言):,(1)XBYTE0xfeff=输出数据,(2)unsigned char xdata a _at_ 0xfeff;(全局变量),a=输出数据,输入程序段(C51语言):,(1)变量=XBYTE0xfeff;,(2)unsigned char xdata a _at_ 0xfeff;(全局变量),变量=a;,33,例1,编写程序把按钮开关状态通过上图的发光二极管显示出来。,程序如下:,DDIS:MOV DPTR,#0FEFFH ;输入口地址DPTR,LP:MOVX A,DPTR ;按钮开关状态读入A中,MOVX DPTR,A ;A中数据送输出口,SJMP LP ;反复连续执行,#include ,#include ,void main(),unsigned char a;,while(1), a=XBYTE0xfeff;,XBYTE0xfeff=a; ,#include ,unsigned char xdata a _at_ 0xfeff;,void main(), unsigned char b;,while(1), b=a;,a=b;,34,一、8255的内部结构及引脚功能,8255A是可编程并行输入/输出接口芯片,内含A、B、C三个8位的输入输出数据端口,A、B两组控制电路,读/写控制逻辑电路以及数据总线缓冲器, 其内部结构与引脚配置如下图所示。,6.2.2可编程并行输入/输出口8255的扩展,35,8255A控制信号与端口信号传送的I/O操作关系,A1,A0,RD,*,WR,*,CS,*,工作状态,0,0,0,1,0,读端口A:A口数据数据总线,读端口B:B口数据数据总线,读端口C:C口数据数据总线,0,1,0,1,0,1,0,0,1,0,0,0,1,0,0,写端口A:总线数据A口,写端口B:总线数据B口,写端口C:总线数据C口,写控制字:总线数据控制字寄存器,0,1,1,0,0,1,0,1,0,0,1,1,1,0,0,1,数据总线为三态,1,1,0,1,0,非法状态,1,1,0,数据总线为三态,36,二、8255A的工作方式及选择,8255A在三种基本的方式下工作:,方式 0:基本输入/输出。,方式 1:选通的输入/输出。,方式 2:双向传输。,1、方式选择控制字,其中,A口,可工作于方式0、1、和2,,而,B口,只能工作在方式0和方式1,。,例 写入工作方式控制字95H,可将8255A编程为:,A口,方式0输入,,B口,方式1输出,,,C口的上半部分,(PC7 PC4)输出,,C口的下半部分,(PC3PC0)输入。,37,2. C口按位置位/复位控制字,可对C口8位中的任一位置“1”或清“0”。用于,位控,。,例,控制字07H写入控制口,置“1” PC3;08H写入控制口,清“0” PC4。,38,三、AT89C51单片机和8255的接口,1.硬件接口电路,如,图,是89C51扩展1片8255A的电路图。74LS373是地址锁存器,,P0.1、P0.0,经74LS373与8255A的地址线A1、A0连接;,P0.7,经74LS373与片选端相连,其他地址线悬空。,39,2.确定8255A端口地址,图,中8255A各端口寄存器的地址为:,A口:,FF7CH,B口:,FF7DH,C口:,FF7EH,控制寄存器:,FF7FH,40,3.软件编程,例,要求8255A工作在方式0,且A口作为输入,B口、C口作为输出,,程序如下:,MOV A,#90H ;A口方式0输入,B口、,;C口输出的控制字送A,MOVDPTR,#0FF7FH ;控制寄存器地址DPTR,MOVX DPTR,A ;方式控制字控制寄存器,MOVDPTR,#0FF7CH ;A口地址DPTR,MOVX A,DPTR ;从A口读数据,MOV DPTR,#0FF7DH ;B口地址DPTR,MOV A,#DATA1 ;要输出的数据DATA1A,MOVX DPTR,A ;将DATA1送B口输出,MOV DPTR,#0FF7EH ;C口地址DPTR,41,MOV A,#DATA2 ;DATA2A,MOVX DPTR,A ;将数据DATA2送C口输出,C51语言程序:,#include ,#include ,void main(),unsigned char a,b,c;,XBYTE0xff7f=0x90; /写入控制字,a=XBYTE0xff7C; /读A口数据,存入变量a中,XBYTE0xff7D=b; /写B口,变量b通过B口输出,XBYTE0xff7e=c; /写C口,变量C通过C口输出,42,【练习】,用8255的PA、PB、PC口分别作为输入口接八只控制开关,或作为输出口接八只发光二极管,编写控制程序,八只发光二极管分别受各自对应的控制开关的控制。,43,ORG 0000H,AJMP MAIN,ORG 0250H,MAIN: MOV DPTR,#0FFfeH,MOV A,#90H;A口输入、B口输出,MOVX DPTR,A;写控制字数据,LOOP: MOV DPTR,#0FF3eH,MOVX A,DPTR;读输入口数据,MOV DPTR,#0FF7eH,MOVX DPTR,A;写输出口数据,SJMP LOOP,END;程序结束,44,C51语言程序:,#include ,#include ,void main(),unsigned char a;,XBYTE0xfffe=0x90;,while(1),a=XBYTE0xff3e;,XBYTE0xff7e=a;,#include ,unsigned char xdata a _at_ 0xfffe;,unsigned char xdata b _at_ 0xff3e;,unsigned char xdata c _at_ 0xff7e;,void main(),unsigned char d;,a=0x90;,while(1),d=b;,c=d;,45,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!