第06章 MCS-51单片机存储器扩展与并行IO接口扩展_第1页
第06章 MCS-51单片机存储器扩展与并行IO接口扩展_第2页
第06章 MCS-51单片机存储器扩展与并行IO接口扩展_第3页
第06章 MCS-51单片机存储器扩展与并行IO接口扩展_第4页
第06章 MCS-51单片机存储器扩展与并行IO接口扩展_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

并行I/O口的应用与扩展

I/O接口技术概述存储器的扩展第6章存储器扩展与并行I/O接口扩展单片机系统扩展的结构系统扩展就是往总线上“挂”存储器芯片或I/O接口芯片,“挂”存储器芯片就是存储器扩展,“挂”I/O接口芯片就是I/O扩展6.151单片机存储器扩展一、存储器概述内存由半导体存储器组成,速度快、但造价高、容量小,用来存放当前运行的程序存储器分类外存由硬盘或光盘存储器等构成,造价低、容量大、信息可长期保存,但速度慢6.151单片机存储器扩展只读存储器ROM,正常工作时只能读出不能写入,断电后信息可长期保存半导体存储器随机读写RAM,工作中既可读出数据也可写入数据,但断电后其中的信息将会丢失只读存储器ROMPROM:用户自行写入程序,但只能写一次EPROM:用户可多次编程,用紫外灯照射可擦除信息EEPROM:通过加电信号可直接擦除其中的信息掩膜ROM:其中的信息在制造时由掩膜工艺固化进去ROM只能读不能写,那其中的内容是怎么放进去的?随机读写RAM6.151单片机存储器扩展动态RAM:用电容上的电量来表示信息,电路简单,集成度高。但需要定时刷新静态RAM:用触发器存储信息,集成度低,容量小,但无需刷新1)存储容量存储容量是指存储器所能存储的二进制信息的总量。存储器容量=单元数×数据线位数例如:512×8,1024×8=1KB,2KB,64KB6.151单片机存储器扩展半导体存储器的主要指标2)存取速度指从CPU给出有效的存储器地址到存储器给出有效数据所花费的时间。存取时间越小,存储器的存取速度就越快。通常,半导体存储器的最大存取时间从几十到几百毫微秒6.151单片机存储器扩展6.151单片机存储器扩展二、程序存储器及其扩展1.Intel27系列EPROM芯片型号存储容量地址线数27162KB1127324KB1227648KB132712816KB142725632KB152751264KB16为什么2764是13根地址线?存储容量与地址线之间什么关系?6.151单片机存储器扩展2764引脚功能A0~A12:地址线引脚,可寻址213=8192=8KD7~D0:数据线引脚,用于传送数据CE:片选输入端,低电平允许本芯片工作OE:输出允许PGM:编程控制端VCC:工作电源VPP:编程电源GND:电源地端6.151单片机存储器扩展2764的工作方式工作方式引脚CEOEPGMVPPVCCD7~D0读出低低高VCCVCC输出维持高××VCCVCC高阻编程低高编程负脉冲VPPVCC输入编程校验低低高VPPVCC输出禁止编程高××VPPVCC高阻存储器扩展的关键问题是地址总线、数据总线和控制总线这三类总线的连接。MCS-51单片机由于受引脚数目的限制,数据线和低8位地址线复用,为了将它们分离出来,需要外加地址锁存器74LS3736.151单片机存储器扩展2.单片程序存储器的扩展MCS-51单片机片外三总线的构成MCS-51数据线和低8位地址线复用。为了将它们分离出来,需要外加地址锁存器,从而构成片外三总线MCS-51单片机扩展27128P2.7P2.6P2.5···········P2.1P2.0P0.7P0.6·····P0.3P0.2P0.1P0.0

00000000

00111111

00000000

11111111=0000H=3FFFHMCS-51单片机扩展27128地址线:低8位从P0口发出,用74LS373锁存高8位从P2口发出,实际只用了6根数据线:P0口(分时复用)控制线:ALE、PSEN、EA根据硬件连接,该27128的地址范围是多少?什么是重叠地址?什么是基本地址?P2.7P2.6P2.5···········P2.1P2.0P0.7P0.6·····P0.3P0.2P0.1P0.0

01000000

01111111

00000000

…11111111=4000H……=7FFFHP2.7P2.6P2.5···········P2.1P2.0P0.7P0.6·····P0.3P0.2P0.1P0.0

10000000

10111111

00000000

…11111111=8000H……=BFFFHP2.7P2.6P2.5···········P2.1P2.0P0.7P0.6·····P0.3P0.2P0.1P0.0

11000000

11111111

00000000

…11111111=C000H……=FFFFH当空余脚取不同值时的地址称为重叠地址当空余脚取0时的地址称为基本地址多片存储器扩展的关键问题仍然是地址总线、数据总线和控制总线这三类总线的连接。为了区分CPU是访问哪一片EPROM,可以利用译码器进行片选,这种片选方法称为译码法6.151单片机存储器扩展3.多片程序存储器的扩展由多片存储芯片组成的存储空间,CPU是如何选中各个存储芯片的?6.151单片机存储器扩展8031单片机扩展四片271282-4译码器真值表BAY0Y1Y2Y3000110110111

101111011110G为选通控制端各片27128的地址范围27128编号A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0地址范围IC1(Y0=0)0000000000000000………00111111111111110000H……3FFFHIC2(Y1=0)0100000000000000………01111111111111114000H……7FFFHIC3(Y2=0)1000000000000000………10111111111111118000H……BFFFHIC4(Y3=0)1100000000000000………1111111111111111C000H……FFFFH6.151单片机存储器扩展三、数据存储器及其扩展1.Intel62系列SRAM型号芯片容量地址线数61162KB1162648KB136212816KB146225632KB156.151单片机存储器扩展6264引脚功能A0~A12:地址线引脚,可寻址213=8192=8KD7~D0:数据线引脚,用于传送读写数据CS和CS1:片选端,同时有效允许本芯片工作OE:输出允许WE:写允许信号,低电平写入,高电平读出VCC:工作电源GND:电源地端6.151单片机存储器扩展6264的工作方式工作方式CSCS1WEOE功能读出0110从6264读出数据到D7~D0写入0101将D7~D0数据写入6264未选通11××输出高阻6.151单片机存储器扩展2.数据存储器的扩展数据存储器扩展与程序存储器扩展的连接方法基本相同。不同的只是控制信号不一样。在程序存储器扩展中,单片机使用PSEN作为读选通信号,而在数据存储器扩展中,单片机则使用RD和WR分别作为读和写的选通信号采用线选法扩展三片6264地址线:低8位从P0口发出,用74LS373锁存高8位从P2口发出,用P2口高3位片选数据线:P0口(分时复用)控制线:ALE、RD、WR各片6264的地址范围6264编号A15A14A13

A12A11A10A9A8A7A6A5A4A3A2A1A0地址范围IC16264(P2.5=0)1100000000000000………1101111111111111C000H……DFFFHIC26264(P2.6=0)1010000000000000………1011111111111111A000H……BFFFHIC36264(P2.7=0)0110000000000000………01111111111111116000H……7FFFH

8031单片机内部没有程序存储器,必须外接。而内部RAM很少,经常也需要外接数据存储器。下面给出利用74LS138译码器同时扩展二片2764和二片6264的电路6.151单片机存储器扩展3.同时扩展程序存储器和数据存储器采用译码法同时扩展ROM和RAM各片ROM和RAM的地址范围存储芯片A15A14A13

A12A11A10A9A8A7A6A5A4A3A2A1A0地址范围IC12764(Y0=0)0000000000000000………00011111111111110000H……1FFFHIC22764(Y1=0)0010000000000000………00111111111111112000H……3FFFHIC36264(Y2=0)0100000000000000………01011111111111114000H……5FFFHIC46264(Y3=0)0110000000000000………01111111111111116000H……7FFFH思考题为什么当P2口作为扩展存储器高8位地址后,不再适宜作通用I/O口了?8031如果只外接了程序存储器,实际上还有多少根I/O口线可供用户使用?如果只外接了数据存储器,实际上还有多少根I/O口线可供使用?请说明原因在扩展多片外部存储器时,有几种片选方法?各有什么特点?在8031扩展系统中,外部程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储器的地址不会发生冲突?下次课前请预习6.2~6.3节,并思考下列问题什么叫I/O接口?I/O接口的作用是什么?外设端口有哪两种编址方法?各有什么特点?I/O数据有哪几种传送方式?查询方式与中断方式有什么不同之处?并行I/O接口和串行I/O接口各有什么特点?

51单片机在读引脚之前为什么要先送“1”6.2I/O接口技术概述6.2I/O接口技术概述一、I/O接口的作用I/O接口作用输出数据锁存输入数据缓冲速度匹配数据转换12346.2I/O接口技术概述二、I/O接口的编址外设端口单独编址:

I/O寄存器地址空间和存储器地址空间分开编址I/O接口编址外设端口与存储器统一编址:直接使用访问数据存储器的指令进行I/O操作6.2I/O接口技术概述三、I/O数据的传送方式I/O数据传送方式查询传送方式中断传送方式DMA传送方式无条件传送方式1.无条件传送存在问题:外设必须准备就绪使用条件:(1)外设速度与CPU的速度一样快 因外设速度非常快,CPU可认为它已经准备就绪 例如:CPU与D/A的接口──输出模拟量 CPU与数码管的接口──点亮数码管(2)外设速度非常慢 因外设速度非常慢,CPU总认为它已经准备就绪 例如:CPU读取外部开关的通断状态。2.查询方式传送存在问题:CPU效率降低3.中断方式传送特点:(1)与外设并行工作,CPU效率高(2)控制系统实时性好。4.DMA方式传送6.2I/O接口技术概述四、I/O接口的类型并行I/O接口:用于并行传送I/O数据,速度快、效率高,适用于近距离传送I/O接口类型串行I/O接口:用于串行传送I/O数据,成本低但速度慢,适用于远距离传送6.3并行I/O口的应用与扩展一、51单片机I/O口的直接应用P0口在扩展片外存储器时作地址/数据分时复用总线,在没有扩展时作双向输入/输出口使用P1口为通用准双向输入/输出接口。P2口在扩展片外存储器时作高8位地址总线,在无扩展时可用作通用准双向I/O接口。P3口除了作通用双向I/O口使用外,还具有第2功能6.3并行I/O口的应用与扩展1.51单片机I/O端口的操作方式

1)输出数据方式CPU通过以端口为目的操作数的指令就可以把数据写到P0~P3的端口锁存器,然后通过输出驱动电路送到端口的引脚上。因此,凡是以端口为目的操作数的指令都能达到从端口引脚上输出数据的目的 MOV P0, R2 ORL P1, A ANL P2, #data XRL P3, A6.3并行I/O口的应用与扩展

2)读端口锁存器方式读端口锁存器方式实际上并不从外部引脚读入数据,而只是把端口锁存器中的内容读到内部总线,按指令要求进行运算和变换后,再写回到锁存器属于这类操作的指令通常是ANL、ORL、XRL等“读—修改—写”指令,例如:

ANL20H,P2 ORL R1, P16.3并行I/O口的应用与扩展

3)读引脚方式当端口做输入使用时,若要读取端口引脚上的信号,要先向其锁存器写入“1”,使得该输出驱动电路的场效应管截止,然后再执行输入指令,才能真正把外部引脚的状态读入例如要读取P1口低4位引脚上信号的指令如下:MOV P1,#0FH;使P1口低4位锁存器置“1”MOV A,P1;读P1口低4位引脚信号送ADQCLKQP1.n读锁存器内部总线写锁存器读引脚VCCRTP1口引脚6.3并行I/O口的应用与扩展2.I/O口用作输出当I/O口用作输出时,每个I/O引脚输出高电平时的拉电流应控制在1mA之内P1、P2和P3口每个I/O引脚输出低电平时的灌电流一般应控制在3mA之内P0口每个I/O引脚的灌电流允许到5mA6.3并行I/O口的应用与扩展【例6-1】

如图所示,P1口的P1.0~P1.7分别通过反相器接8个发光二极管。要求编写程序,每隔1s循环点亮1只发光二极管,一直循环下去,已知系统的晶振频率为6MHz解:用软件延时实现每隔1s循环点亮1只发光管⑴设计0.1s延时子程序因为fosc=6MHz,所以机器周期=12/fosc=2µs

0.1s的延时子程序宜采用双重循环结构,如下所示: DEL1:MOVR2, #200 ;1m DEL2:MOVR3, #X ;1m NOP ;1m DEL3:DJNZR3, DEL3 ;2m DJNZR2, DEL2 ;2m RET则延时时间=[(X×2m+4)×200]×2µs=100000µs 解得:X=123⑵主程序连续10次调用0.1s延时子程序,则总延时时间就达到了1s主程序如下: ORG 0000H START: MOV A, #01H LOOP: MOV P1, A MOV R1, #10DELAY: LCALLDEL1 ;10次调用延时子程序 DJNZR1, DELAY RL A LJMPLOOP6.3并行I/O口的应用与扩展3.I/O口用作输入当I/O口用作输入时,每个I/O脚的拉电流、灌电流一般应控制在1mA之内。如果I/O脚的电流太大时,在单片机与输入设备之间应该用限流电阻予以隔离。需要特别注意的是,当I/O口作为输入使用时,必须先向I/O口锁存器的相应位写“1”,然后再读,才能正确读入引脚上的输入信号6.3并行I/O口的应用与扩展【例6-2】

如图所示,P1口外接8个开关,要求将开关的状态输入到片内RAM30H单元6.3并行I/O口的应用与扩展

ORG 0100HRDP1:MOV P1, #0FFH;先向P1口送1 MOV A, P1 ;读入开关状态

MOV 30H, A ;送指定单元

NOP SJMP RDP1 ;反复再读

END为了能正确读入P1口引脚的输入信号,必须要先向P1口送“1”,然后再读这条指令起什么作用?MCS-51单片机虽然有四个并行I/O口P2口和P0口用于和外部存储器连接P3口常用于第二功能只剩下P1口可用于连接外设当外设较多时,需要扩展单片机的并行I/O口单片机系统扩展的结构I/O扩展就是往总线上“挂”I/O接口芯片,以便能连接更多外设6.3并行I/O口的应用与扩展二、采用8255A扩展并行I/O口8255A是可编程并行I/O接口芯片具有3个8位并行I/O口3种工作方式,可通过编程改变其功能使用灵活方便,通用性强6.3并行I/O口的应用与扩展1.8255A内部结构和引脚6.3并行I/O口的应用与扩展D7~D0:三态双向数据线,传送数据以及控制字PA7~PA0:A口输入/输出线。PB7~PB0:B口输入/输出线。PC7~PC0:C口输入/输出线。 CS:片选信号线,低电平有效,表示本芯片被选中RD:读出信号线,低电平有效,控制从8255A读WR:写入信号线,低电平有效,控制向8255A写入A1、A0:地址线,用来选择8255A内部的4个端口RESET:复位线,高电平有效。Vcc:+5V电源。8255A引脚功能如何选择8255A的各端口地址?6.3并行I/O口的应用与扩展地址线A1、A0与端口的对应关系

8255A各端口地址A1A000─A口地址01─B口地址10─C口地址11─控制口地址6.3并行I/O口的应用与扩展8255A各端口工作状态与控制信号的关系CSA1A0RDWR工作状态00001读端口A:数据总线←A口数据00101读端口B:数据总线←B口数据01001读端口C:数据总线←C口数据00010写端口A:总线数据→A口00110写端口B:总线数据→B口01010写端口C:总线数据→C口01110写控制字:总线数据→控制字口1××××数据总线为三态6.3并行I/O口的应用与扩展2.8255A控制字8255A有两个控制字:方式控制字和C口置复位字。用户通过程序可以把这两个控制字写到8255A的控制字寄存器,以设定8255A的工作方式和C口各位的状态6.3并行I/O口的应用与扩展8255A方式控制字6.3并行I/O口的应用与扩展C口置复位控制字8255如何辨认方式控制字和C口置复位控制字?6.3并行I/O口的应用与扩展8255A的工作方式方式1:选通I/O方式方式2:双向I/O方式(仅A口)方式0:基本I/O方式3.8255A的工作方式6.3并行I/O口的应用与扩展【例6-3】要求8255A各端口工作于方式0,A口作输出,B口作输入,C口高4位作输出,C口低4位作输入,写出8255A的方式控制字练习题二I/O数据有哪几种传送方式?查询方式与中断方式有什么不同之处?并行I/O接口和串行I/O接口各有什么特点?

51单片机在读引脚之前为什么要先送“1”决定8255各端口地址的引脚有哪几条?作用是什么?8255如何辨认方式控制字和C口置复位控制字?下次课前请预习6.3.2~6.3.3,并思考下列问题8155的IO/M引脚的作用是什么?决定8155选口地址的引脚有哪些?基本输入/输出与选通输入/输出有什么区别?8155有几种工作方式?怎样选择?8255A可编程并行I/O接口芯片具有3个8位并行I/O口3种工作方式,可通过编程改变其功能使用灵活方便,通用性强

8255A各端口地址 A1A0 00─A口地址 01─B口地址 10─C口地址 11─控制口地址8255A的工作方式 方式0:基本I/O方式 方式1:选通I/O方式 方式2:双向I/O方式(仅A口)8255A方式控制字6.3并行I/O口的应用与扩展4.8255A应用举例【例6-4】8255A与MCS-51单片机接口电路如图所示,8255A的B口外接8个开关,A口通过反相器接8个发光二极管,各端口均工作在方式0,要求编写程序从B口读入开关的状态,再从A口输出点亮发光二极管6.3并行I/O口的应用与扩展6.3并行I/O口的应用与扩展依题意,8255A各端口工作在方式0,且A口作输出,B口作输入,则8255A方式控制字应如何设置?6.3并行I/O口的应用与扩展根据硬件连接,8255A各端口地址是多少?端口A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

端口地址A口01111111000000007F00HB口01111111000000017F01HC口01111111000000107F02H控制口01111111000000117F03H任取项取0任取项取18255A初始化程序如下:MOVDPTR,#7F03H;DPTR←控制口地址MOVA, #82H ;方式控制字MOVX@DPTR,A ;8255A←控制字本题的8255A初始化程序应如何编写?6.3并行I/O口的应用与扩展源程序 ORG 1000HMAIN: MOVDPTR,#7F03H;DPTR←控制口地址 MOVA, #82H ;方式控制字 MOVX@DPTR,A ;8255A←控制字INPB: MOV DPTR,#7F01H;指向8255的B口 MOVXA,@DPTR ;A←8255的B口 MOVDPTR,#7F00H ;指向8255的A口 MOVX@DPTR,A ;8255的A口←AD100MS:MOVR2, #200 ;延时DEL2: MOV R3, #123 NOP DEL3: DJNZ R3, DEL3 DJNZR2, DEL2 SJMPINPB END练习:如图所示为8255A作显示接口的电路8255A的A口、B口、C口及控制口地址是多少?P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

1×××××××

1×××××××

1×××××××

1×××××××××××××00××××××01××××××10××××××11=8000HA口=8001HB口=8002HC口=8003H控制口任取项取0时任取项取0时根据硬件连接图,可得8255各端口地址如下依题意A口、B口、C口都工作在方式0,且都定义为输出,则控制字是多少?8255A控制字=10000000B=80H该8255A的初始化程序应如何编写?该8255A的初始化程序 ORG 0100H MOV DPTR,#8003H ;指向控制口地址 MOV A, #80H ;控制字送A MOVX@DPTR,A ;写控制字 MOV DPTR,#8000H ;指向A口地址 MOV A, #0F9H MOVX @DPTR,A ;显示“1” INC DPTR ;指向B口 MOV A, #0A4H MOVX @DPTR,A ;显示“2” INC DPTR ;指向C口 MOV A, #0B0H MOVX @DPTR,A ;显示“3” SJMP $ END要让数码管显示1、2、3,必须从A口送出F9H,B口送出A4H,C口送出B0H,请编写程序6.3并行I/O口的应用与扩展三、采用8155扩展并行I/O口8155也是可编程并行I/O接口芯片具有两个8位并行口,一个6位并行口256字节RAM一个14位定时/计数器带地址锁存器,可直接与51单片机的P0口相连6.3并行I/O口的应用与扩展1.8155内部结构和引脚6.3并行I/O口的应用与扩展8155引脚功能AD7~AD0:地址/数据总线ALE:地址锁存信号PA7~PA0:A口I/O引脚PB7~PB0:B口I/O引脚PC5~PC0:C口I/O引脚TIMERIN:定时/计数器输入端。TIMEROUT:定时/计数器输出引脚RESET:复位引脚,高电平有效CE:片选输入信号,低电平有效。RD:从I/O口或内部RAM读选通信号WR:向I/O口或内部RAM写选通信号IO/M:I/O口与存储器选择8155各端口地址:AD2AD1AD0000─8155命令口001─8155的A口010─8155的B口011─8155的C口100─定时器低字节101─定时器高字节6.3并行I/O口的应用与扩展如何选择8155各端口地址?6.3并行I/O口的应用与扩展8155各I/O口及RAM地址分配CEIO/MA7A6A5A4A3A2A1A0所选的端口01×××××000命令/状态寄存器01×××××001A口01×××××010B口01×××××011C口01×××××100计数器低8位01×××××101计数器高6位00××××××××RAM单元6.3并行I/O口的应用与扩展2.8155的命令字和状态字命令字

温馨提示

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

评论

0/150

提交评论