《【单片机课程设计】第06章MCS-51单片机存储器扩展与并行IO接口扩展.ppt》由会员分享,可在线阅读,更多相关《【单片机课程设计】第06章MCS-51单片机存储器扩展与并行IO接口扩展.ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、并行并行I/O口的应用与扩展口的应用与扩展 I/O接口技术概述接口技术概述存储器的扩展存储器的扩展第6章 存储器扩展与并行I/O接口扩展第6章 存储器扩展与并行I/O接口扩展第一节 51单片机存储器扩展6.1.1 6.1.1 存储器概述存储器概述内存内存由半导体由半导体存储器组成存储器组成,速度快、但造速度快、但造价高、容量小,价高、容量小,用来存放当前用来存放当前运行的程序运行的程序存储器分类存储器分类外存外存由由硬硬盘盘或或光盘存储器等光盘存储器等构成构成,造价低、,造价低、容量大、信息容量大、信息可长期保存,可长期保存,但速度慢但速度慢第6章 存储器扩展与并行I/O接口扩展第一节 51单
2、片机存储器扩展只读存储器只读存储器ROMROM,正常工,正常工作时只能读出作时只能读出不能写入,断不能写入,断电后信息可长电后信息可长期保存期保存半导体存储器半导体存储器随机读写随机读写RAMRAM,工作中既可,工作中既可读出数据也可读出数据也可写入数据,但写入数据,但断电后其中的断电后其中的信息将会丢失信息将会丢失只读存储只读存储器器ROM第6章 存储器扩展与并行I/O接口扩展PROM:用户自行写入:用户自行写入程序,但只能写一次程序,但只能写一次EPROM:用户可多次编程,:用户可多次编程,用紫外灯照射可擦除信息用紫外灯照射可擦除信息EEPROM:通过加电信号:通过加电信号可直接擦除其中的
3、信息可直接擦除其中的信息掩膜掩膜ROM:其中的信息在制:其中的信息在制造时由掩膜工艺固化进去造时由掩膜工艺固化进去第一节 51单片机存储器扩展随机读写随机读写RAM第6章 存储器扩展与并行I/O接口扩展动态动态RAM:用电容上的电量用电容上的电量来表示信息,电路简单,集来表示信息,电路简单,集成度高。但要定时刷新成度高。但要定时刷新静态静态RAM:用触发器存储:用触发器存储信息,集成度低,容量小,信息,集成度低,容量小,但无需刷新但无需刷新第一节 51单片机存储器扩展1 1)存储容量)存储容量存储容量是指存储器所能存储的二进制信存储容量是指存储器所能存储的二进制信息的总量。息的总量。存储器容量
4、存储器容量=单元数单元数数据线位数数据线位数例如:例如:51285128,10248=1KB10248=1KB,2KB2KB,64KB64KB第6章 存储器扩展与并行I/O接口扩展半导体存储器的指标第一节 51单片机存储器扩展2 2)存取速度)存取速度 指从指从CPUCPU给出有效的存储器地址到存储给出有效的存储器地址到存储器给出有效数据所花费的时间。存取时间器给出有效数据所花费的时间。存取时间越小,存储器的存取速度就越快。通常,越小,存储器的存取速度就越快。通常,半导体存储器的最大存取时间从几十到几半导体存储器的最大存取时间从几十到几百毫微秒百毫微秒第6章 存储器扩展与并行I/O接口扩展第一
5、节 51单片机存储器扩展第6章 存储器扩展与并行I/O接口扩展6.1.2 6.1.2 程序存储器及其扩展程序存储器及其扩展1.Intel 27系列EPROM芯片第一节 51单片机存储器扩展型号型号容量容量地址线数地址线数27162 KB1127324 KB1227648 KB132712816 KB142725632 KB152751264 KB16第6章 存储器扩展与并行I/O接口扩展2764引脚功能第一节 51单片机存储器扩展A0A12:地址线引脚,可寻址:地址线引脚,可寻址213=8192=8KD7D0:数据线引脚,用于传送数据:数据线引脚,用于传送数据CE:片选输入端,低电平允许本芯片
6、工作:片选输入端,低电平允许本芯片工作OE:输出允许:输出允许PGM:编程控制端:编程控制端VCC:工作电源:工作电源VPP:编程电源:编程电源GND:直流地:直流地第6章 存储器扩展与并行I/O接口扩展2764的工作方式第一节 51单片机存储器扩展工作方式工作方式引引 脚脚CEOEPGMVPPVCCD7D0读出读出低低低低高高VCCVCC输出输出维持维持高高VCCVCC高阻高阻编程编程低低高高编程负脉冲编程负脉冲VPPVCC输入输入编程校验编程校验低低低低高高VPPVCC输出输出禁止编程禁止编程高高VPPVCC高阻高阻 存储器扩展的关键问题是地址总线、存储器扩展的关键问题是地址总线、数据总线
7、和控制总线这三类总线的连接。数据总线和控制总线这三类总线的连接。MCS-51单片机由于受引脚数目的限制,数单片机由于受引脚数目的限制,数据线和低据线和低8位地址线复用,为了将它们分离位地址线复用,为了将它们分离出来,需要外加地址锁存器出来,需要外加地址锁存器74LS373第6章 存储器扩展与并行I/O接口扩展2.单片程序存储器的扩展第一节 51单片机存储器扩展第6章 存储器扩展与并行I/O接口扩展第一节 51单片机存储器扩展第6章 存储器扩展与并行I/O接口扩展第一节 51单片机存储器扩展根据硬件连接,该27128的地址范围 P2.7P2.6P2.5P2.1P2.0P0.7P0.6P0.3P0
8、.2P0.1P0.0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1=0000H=3FFFH 多片存储器扩展的关键问题仍然是地址多片存储器扩展的关键问题仍然是地址总线、数据总线和控制总线这三类总线的总线、数据总线和控制总线这三类总线的连接。为了区分连接。为了区分CPU是访问哪一片是访问哪一片EPROMEPROM,可以利用译码器进行片选,这种片选方法可以利用译码器进行片选,这种片选方法称为称为译码法译码法第6章 存储器扩展与并行I/O接口扩展3.多片程序存储器的扩展第一节 51单片机存储器扩展第6章 存储器扩展与并行I/O接口扩展第一节 5
9、1单片机存储器扩展8031单片机扩展四片27128第6章 存储器扩展与并行I/O接口扩展第一节 51单片机存储器扩展各片27128的地址范围27128编编号号A15A14A13A12 A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 地址范围地址范围(Y0=0)0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 10000H3FFFH(Y1=0)0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14000H7FFFH(Y2=0
10、)1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 18000HBFFFH(Y3=0)1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1C000HFFFFH第6章 存储器扩展与并行I/O接口扩展第一节 51单片机存储器扩展6.1.3 6.1.3 数据存储器及其扩展数据存储器及其扩展1.Intel 62系列SRAM型号型号容量容量地址线地址线数数61162 KB1162648 KB136212816 KB146225632 KB15第6章 存储器扩
11、展与并行I/O接口扩展6264引脚功能第一节 51单片机存储器扩展A0A12:地址线引脚,可寻址:地址线引脚,可寻址213=8192=8KD7D0:数据线引脚,用于传送读写数据:数据线引脚,用于传送读写数据CS和和CS1:片选端,同时有效允许本芯片工作:片选端,同时有效允许本芯片工作OE:输出允许:输出允许WE:写允许信号写允许信号,低电平写入,高电平读出,低电平写入,高电平读出VCC:工作电源:工作电源GND:直流地:直流地第6章 存储器扩展与并行I/O接口扩展6264的工作方式第一节 51单片机存储器扩展工作方式工作方式CSCS1WEOE功功 能能读出读出0110从从6264读出数据到读出
12、数据到D7D0写入写入0101将将D7D0数据写入数据写入6264未选通未选通11输出高阻输出高阻 数据存储器扩展与程序存储器扩展的连数据存储器扩展与程序存储器扩展的连接方法基本相同。不同的只是控制信号不接方法基本相同。不同的只是控制信号不一样。在程序存储器扩展中,单片机使用一样。在程序存储器扩展中,单片机使用PSEN作为读选通信号,而在数据存储器扩作为读选通信号,而在数据存储器扩展中,单片机则使用展中,单片机则使用RD和和WR分别作为读分别作为读和写的选通信号和写的选通信号第6章 存储器扩展与并行I/O接口扩展2.数据存储器的扩展第一节 51单片机存储器扩展第6章 存储器扩展与并行I/O接口
13、扩展第一节 51单片机存储器扩展采用线选法扩展三片6264第6章 存储器扩展与并行I/O接口扩展第一节 51单片机存储器扩展各片6264的地址范围6264编号编号A15A14A13A12 A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0地址范围地址范围IC16264(P2.5=0)1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1C000HDFFFHIC26264(P2.6=0)1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1
14、 1 1A000HBFFFHIC36264(P2.7=0)0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16000H7FFFH 8031单片机内部没有程序存储器,必单片机内部没有程序存储器,必须外接。而内部须外接。而内部RAM很少,很少,经常经常也需要也需要外接数据存储器。外接数据存储器。下面下面给出利用给出利用74LS138译码器同时扩展二片译码器同时扩展二片2764和二片和二片6264的的电路电路第6章 存储器扩展与并行I/O接口扩展3.同时扩展程序存储器和数据存储器第一节 51单片机存储器扩展第6章 存储器扩展
15、与并行I/O接口扩展第一节 51单片机存储器扩展采用译码法同时扩展ROM和RAM第6章 存储器扩展与并行I/O接口扩展第一节 51单片机存储器扩展各片ROM和RAM的地址范围存储芯片存储芯片A15A14A13A12 A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0地址范围地址范围IC12764(Y0=0)0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 10000H1FFFHIC22764(Y1=0)0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
16、 1 1 1 1 1 1 12000H3FFFHIC36264(Y2=0)0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 14000H5FFFHIC46264(Y3=0)0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16000H7FFFH第6章 存储器扩展与并行I/O接口扩展第二节 I/O接口技术概述6.2.1 I/O6.2.1 I/O接口的作用接口的作用I/O接接口作用口作用输出数据锁存输出数据锁存输入数据缓冲输入数据缓冲速度匹配速度匹配数
17、据转换数据转换1234第6章 存储器扩展与并行I/O接口扩展第二节 I/O接口技术概述6.2.2 I/O6.2.2 I/O接口的编址接口的编址外设端口单独外设端口单独编址编址:I/O寄寄存器地址空间存器地址空间和存储器地址和存储器地址空间分开编址空间分开编址I/O接口编址接口编址外设端口与存外设端口与存储器统一编址储器统一编址:直接使用访问直接使用访问数据存储器的数据存储器的指令进行指令进行I/O操作操作第6章 存储器扩展与并行I/O接口扩展第二节 I/O接口技术概述6.2.3 I/O6.2.3 I/O数据的传送方式数据的传送方式I/OI/O数据数据数据数据传送方式传送方式传送方式传送方式查询
18、传送方式查询传送方式中断传送方式中断传送方式DMA传送方式传送方式无条件传送方式无条件传送方式第6章 存储器扩展与并行I/O接口扩展第二节 I/O接口技术概述6.2.4 I/O6.2.4 I/O接口的类型接口的类型并行并行I/O接口接口:用于并行传送用于并行传送I/O数据,速数据,速度快、效率高,度快、效率高,适用于近距离适用于近距离传送传送I/O接口类型接口类型串行串行I/O接口接口:用于串行传送用于串行传送I/O数据,成数据,成本低但速度慢,本低但速度慢,适用于远距离适用于远距离传送传送第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展6.3.1 MCS-516.3.1
19、 MCS-51单片机单片机I/OI/O口的直接应用口的直接应用P0口口在扩展片外存储器时作地址数据分时在扩展片外存储器时作地址数据分时复用总线,在不进行扩展时作一般准双向输复用总线,在不进行扩展时作一般准双向输入入/输出口使用。输出口使用。P1口口为通用准双向输入为通用准双向输入/输输出接口。出接口。P2口口在扩展片外存储器时作高在扩展片外存储器时作高8位位地址总线,在无扩展时可用作通用准双向地址总线,在无扩展时可用作通用准双向I/O接口。接口。P3口口除了作为通用准双向除了作为通用准双向I/O使用外,使用外,还具有第还具有第2功能功能第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口
20、的应用与扩展1.MCS-51单片机I/O端口的操作方式 1)输出数据方式)输出数据方式 CPU通过以端口为目的操作数的指令就通过以端口为目的操作数的指令就可以把数据写到可以把数据写到P0P3的端口锁存器,然的端口锁存器,然后通过输出驱动电路送到端口的引脚线。后通过输出驱动电路送到端口的引脚线。因此,凡是以端口为目的操作数的指令都因此,凡是以端口为目的操作数的指令都能达到从端口引脚上输出数据的目的能达到从端口引脚上输出数据的目的MOVP0,R2MOVP1,AMOVP2,#dataMOVP3,A第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展 2)读修改写方式)读修改写方式
21、读端口锁存器方式实际上并不从外部读端口锁存器方式实际上并不从外部引脚读入数据,而只是把端口锁存器中的引脚读入数据,而只是把端口锁存器中的内容读到内部总线,按指令要求进行运算内容读到内部总线,按指令要求进行运算和变换后,再写回到锁存器和变换后,再写回到锁存器属于这类操作的指令通常是ANL、ORL、XRL等“读修改写”指令,例如:ORLP0,#0FH第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展 3)读引脚方式)读引脚方式 当端口做输入使用时,若要读取端口当端口做输入使用时,若要读取端口引脚上的信号,要先向其锁存器写入引脚上的信号,要先向其锁存器写入“1”,使得该输出驱动电
22、路的场效应管,使得该输出驱动电路的场效应管截止,然后再执行输入指令,才能真正把截止,然后再执行输入指令,才能真正把外部引脚的状态读入外部引脚的状态读入例如要读取P1口低4位引脚上信号的指令如下:MOVP1,#0FH ;使P1口低4位锁存器置“1”MOVA,P1 ;读P1口低4位引脚信号送A第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展2.I/O口用作输出 当当I/O口用作输出时,每个口用作输出时,每个I/O引脚输出引脚输出高电平时的拉电流应控制高电平时的拉电流应控制在在1mA之内。之内。P1、P2和和P3口每个口每个I/O引脚输出低电平时的引脚输出低电平时的灌电流一般应
23、控制灌电流一般应控制在在3mA之内,而之内,而P0口每口每个个I/O引脚的灌电流允许引脚的灌电流允许到到5mA第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展【例【例6-1】如图所示,如图所示,P1口的口的P1.0P1.7分别分别通过反相器接通过反相器接8个发光二极管。要求编写程个发光二极管。要求编写程序,每隔序,每隔1s循环点亮循环点亮1只发光二极管,一直循只发光二极管,一直循环下去,已知系统的晶振频率为环下去,已知系统的晶振频率为6MHz解:用软件延时实现每隔1s循环点亮1只发光管 设计设计0.1s延时子程序延时子程序因为因为fosc6MHz,所以机器周期,所以机器周
24、期m12/fosc2s 0.1s的延时子程序宜采用双重循环结构的延时子程序宜采用双重循环结构,如下所示,如下所示:DEL1:MOV R2,#200;1DEL2:MOV R3,#X;1 NOP;1DEL3:DJNZ R3,DEL3;2 DJNZ R2,DEL2;2 RET则延时时间则延时时间(X24)2002s100000s解得:解得:X123 主程序连续主程序连续10次调用次调用0.1s延时子程序,则总延时时延时子程序,则总延时时 间就达到了间就达到了1s主程序如下:主程序如下:ORG 0000HSTART:MOV A,#01H LOOP:MOV P1,AMOV R1,#10 DELAY:LC
25、ALL DEL1;10次调用延时子程序次调用延时子程序DJNZ R1,DELAYRLALJMP LOOP第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展3.I/O口用作输入 当当I/O口用作输入时,每个口用作输入时,每个I/O脚的脚的拉电拉电流、灌流、灌电流电流一般应控制在一般应控制在1mA之内。如果之内。如果I/O脚的电流脚的电流太大太大时,在单片机与输入设时,在单片机与输入设备之间应该用限流电阻予以隔离。需要特备之间应该用限流电阻予以隔离。需要特别注意的是,当别注意的是,当I/O口作为输入使用时,口作为输入使用时,必须先向必须先向I/O口锁存器的相应位写口锁存器的相应
26、位写“1”,然后再读,才能正确读入引脚上的输入信然后再读,才能正确读入引脚上的输入信号号第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展【例例6-2】如图所示,如图所示,P1口外接口外接8个开关,要个开关,要求将开关的状态输入到片内求将开关的状态输入到片内RAM 30H单元单元第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展ORG0100HRDP1:MOVP1,#0FFH;先向P1口送1MOVA,P1;读入开关状态MOV30H,A;送指定单元NOPSJMPRDP1;反复再读END为了能正确读入为了能正确读入P1口引脚的输入信号,口引脚的输入信号,必须
27、要先向必须要先向P1口送口送“1”,然后再读,然后再读 第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展6.3.2 6.3.2 采用采用8255A8255A扩展并行扩展并行I/OI/O口口8255A是是Intel公司生产的可编程并行公司生产的可编程并行I/O接口接口芯片,具有芯片,具有3个个8位并行位并行I/O口,口,3种工作方式,种工作方式,可通过编程改变其功能,因而使用灵活方便,可通过编程改变其功能,因而使用灵活方便,通用性强,可作为单片机与多种外围设备连通用性强,可作为单片机与多种外围设备连接时的接口电路接时的接口电路第6章 存储器扩展与并行I/O接口扩展第三节 并
28、行I/O口的应用与扩展1.8255A内部结构和引脚第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展D7D0:三态双向数据线,传送数据以及控制字PA7PA0:A口输入/输出线。PB7PB0:B口输入/输出线。PC7PC0:C口输入/输出线。CS:片选信号线,低电平有效,表示本芯片被选中RD:读出信号线,低电平有效,控制从8255A读WR:写入信号线,低电平有效,控制向8255A写入A1、A0:地址线,用来选择8255A内部的4个端口RESET:复位线,高电平有效。Vcc:+5V电源。8255A引脚功能第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展地址
29、线A1、A0与端口的对应关系8255A各端口地址各端口地址A1 A0 0 0 A口地址口地址 0 1 B口地址口地址 1 0 C口地址口地址 1 1 控制口地址控制口地址第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展8255A各端口工作状态与控制信号的关系CSA1A0RDWR工工 作作 状状 态态00001读读端口端口A:A口数据口数据数据数据总线总线00101读读端口端口B:B口数据口数据数据数据总线总线 01001读读端口端口C:C口数据口数据数据数据总线总线00010写端口写端口A:总线总线数据数据A口口00110写端口写端口B:总线总线数据数据B口口01010写
30、端口写端口C:总线总线数据数据C口口01110写控制字:写控制字:总线总线数据数据控制字口控制字口1数据数据总线为总线为三三态态第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展2.8255A控制字 8255A有两个控制字:有两个控制字:方式控制字方式控制字和和C口置复位字口置复位字。用户通过程序可以把这两。用户通过程序可以把这两个控制字写到个控制字写到8255A的控制字寄存器,以的控制字寄存器,以设定设定8255A的工作方式和的工作方式和C口各位的状态口各位的状态第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展8255A方式控制字第6章 存储器扩展与
31、并行I/O接口扩展第三节 并行I/O口的应用与扩展C口置复位控制字第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展8255A8255A的的的的工作方式工作方式工作方式工作方式方式方式1:选通选通I/O方式方式方式方式2:双向双向I/O方式方式(仅仅A口口)方式方式0:基本基本I/O方式方式3.8255A的工作方式第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展【例例6-3】要求要求8255A各端口工作于方式各端口工作于方式0,A口作输出,口作输出,B口作输入,口作输入,C口高口高4位作输出,位作输出,C口低口低4位作输入,写出位作输入,写出8255A
32、的方式控制字的方式控制字第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展4.8255A应用举例【例例6-4】8255A与与MCS-51单片机接口电路单片机接口电路如图所示,如图所示,8255A的的B口外接口外接8个开关,个开关,A口口通过反相器接通过反相器接8个发光二极管,各端口均工个发光二极管,各端口均工作在方式作在方式0,要求编写程序从,要求编写程序从B口读入开关的口读入开关的状态,再从状态,再从A口输出点亮发光二极管口输出点亮发光二极管第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应
33、用与扩展依题意,依题意,8255A各端口工作在方式各端口工作在方式0,且,且A口作输出,口作输出,B口作输入,根据口作输入,根据8255A方方式控制字各个位的定义,应作如下设置式控制字各个位的定义,应作如下设置第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展根据硬件连接,可得根据硬件连接,可得8255A各端口地址如各端口地址如下下端口端口A15A14A13A12 A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 端口地址端口地址A口口0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 07F00HB口口0 1 1 1 1 1 1 1 0 0
34、 0 0 0 0 0 17F01HC口口0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 07F02H控制口控制口0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 17F03H第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展源 程 序ORG1000HMAIN:MOV DPTR,#7F03H;DPTR控制口地址MOV A,#82H;方式控制字MOVX DPTR,A;8255A控制字INPB:MOVDPTR,#7F01H;指向8255的B口MOVX A,DPTR;A 8255的B口MOV DPTR,#7F00H;指向8255的A口MOVX DPTR,A;8
35、255的A口 AD100MS:MOV R2,#200;延时DEL2:MOV R3,#123NOP DEL3:DJNZ R3,DEL3DJNZ R2,DEL2SJMP INPB END第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展6.3.3 6.3.3 采用采用81558155扩展并行扩展并行I/OI/O口口8155也是也是Intel公司生产的可编程并行公司生产的可编程并行I/O接口接口芯片,具有芯片,具有3个并行个并行I/O口(其中两个为口(其中两个为8位口,位口,一个为一个为6位口),还提供了位口),还提供了256字节的字节的SRAM以及一个以及一个14位定时位定时/
36、计数器。计数器。8155内置有地内置有地址锁存器,其地址线可直接与址锁存器,其地址线可直接与MCS-51单片单片机的机的P0口相连,无须外接地址锁存器口相连,无须外接地址锁存器第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展1.8155内部结构和引脚第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展 AD7AD0:地址/数据总线ALE:地址锁存信号PA7PA0:A口I/O引脚PB7PB0:B口I/O引脚PC5PC0,C口I/O引脚TIMERIN:定时/计数器输入端。TIMEROUT:定时/计数器输出引脚RESET:复位引脚,高电平有效CE:片选输入信号
37、,低电平有效。RD:从I/O口或内部RAM读选通信号,低电平有效WR:向I/O口、命令寄存器或内部RAM写选通信号IO/M:I/O口与存储器选择8155引脚功能第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展8155各端口地址分配CEIO/MA7A6A5A4A3A2A1A0所所选选的端口的端口01000命令命令/状状态态寄存器寄存器01001A口口01010B口口01011C口口01100计计数器低数器低8位位01101计计数器高数器高6位位00RAM单单元元第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展2.8155的命令字和状态字 命令字命令字存
38、放在存放在8155的命令寄存器中,的命令寄存器中,它只能写入,不能读出,用于选择它只能写入,不能读出,用于选择8155的的I/O口的工作方式以及对中断和定时口的工作方式以及对中断和定时/计数计数器的控制。器的控制。状态字状态字存放在存放在8155的状态寄存的状态寄存器中,它只能读出,不能写入,用于存放器中,它只能读出,不能写入,用于存放A口和口和B口的工作状态口的工作状态第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展8155命令字第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展3.8155的工作方式存储器方式存储器方式(IO/M=0)对对8155内
39、的内的RAM进行读写进行读写I/O方式方式(IO/M=1)基本基本I/O方式方式选通选通I/O方式方式定时器方式定时器方式第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展4.8155应用举例【例例6-4】8155与与MCS-51单片机接口电路如单片机接口电路如图所示,试编写程序将图所示,试编写程序将8155内部内部40H存储单存储单元中的数从元中的数从8155的的B口输出口输出 8155内部有地址锁存器,可将内部有地址锁存器,可将8155芯芯片的地址片的地址/数据引脚数据引脚AD7AD0直接连到直接连到MCS-51单片机的单片机的P0口,当口,当ALE有效时,有效时,P0
40、口发出的地址信号被口发出的地址信号被8155锁存锁存第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展依题意,依题意,8155的的B口工作在基本口工作在基本I/O方方式,且做输出用,其他口没有要求,式,且做输出用,其他口没有要求,也按基本也按基本I/O方式设置,定时器没有用方式设置,定时器没有用到。到。8155命令字如下设置:命令字如下设置:第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展根据硬件连接,可得根据硬件连接,可得8155各各端口地址如端口地址如下下I/O口及口及RAMA1
41、5A14A13A12 A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0地址地址命令口命令口0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 07F00HA口口0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 17F01HB口口0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 07F02HC口口0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 17F03H内部内部RAM0 1 1 1 1 1 1 0 7E007EFFH第6章 存储器扩展与并行I/O接口扩展第三节 并行I/O口的应用与扩展源 程 序ORG2000HMOVDPTR,#7F00H;指向命令口MOVA,#02H;命令字送AMOVX DPTR,A;命令字写到8155命令口MOVDPTR,#7E40H;指向8155内部40H单元MOVX A,DPTR;从8155内部的40H单元读数MOVDPTR,#7F02H;指向8155的B口MOVX DPTR,A;将数据从8155的B口输出SJMP$END