资源描述
n系统扩展的含义系统扩展的含义nI/OI/O口的扩展口的扩展n利用利用I/OI/O接口芯片:接口芯片:82C5182C51、81C5181C51的的I/OI/O口扩展口扩展n系统扩展的含义系统扩展的含义n在单片机芯片外加相应的芯片、电路,使得有关功能得以扩在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,称为系统扩展。充,称为系统扩展。n系统扩展包括:外部存储器扩展,系统扩展包括:外部存储器扩展,I/OI/O接口扩展,总线扩展接口扩展,总线扩展等等n系统扩展分类系统扩展分类n单一功能的扩展单一功能的扩展n综合功能的扩展综合功能的扩展n扩展扩展I/OI/O接口电路的功能:接口电路的功能:n速度协调速度协调n输出数据锁存输出数据锁存n输入数据三态缓冲输入数据三态缓冲n数据转换数据转换为什么要扩展为什么要扩展I/OI/O口口n单片机本身接口功能有限单片机本身接口功能有限n单片机控制应用中的复杂接口要求单片机控制应用中的复杂接口要求n常用编址方法有:常用编址方法有:独立编址独立编址和和统一编址统一编址。nMCS51单片机采用与外部单片机采用与外部RAM统一编址方法,即每一个统一编址方法,即每一个扩展的扩展的I/O口相当于一个扩展的口相当于一个扩展的RAM单元;单元;n访问外部访问外部I/O口的指令同访问外部数据存储器指令。口的指令同访问外部数据存储器指令。例如:例如:MOVXMOVXDPTR,ADPTR,AMOVXMOVXA,DPTR A,DPTR MOVXMOVXRI,ARI,AMOVXMOVXA,RI A,RI ;其中,其中,DPTRDPTR、RIRI中装中装I/OI/O对应的地址对应的地址(1)无条件传送方式n无条件传送也称为同步程序传送。无条件传送也称为同步程序传送。n只有那些能一直为数据只有那些能一直为数据I/OI/O传送作好准备的设备,才能使用传送作好准备的设备,才能使用无条件传送方式。因为在进行无条件传送方式。因为在进行I/OI/O操作时,不测试设备的状操作时,不测试设备的状态,可以根据需要随时进行数据传送操作。态,可以根据需要随时进行数据传送操作。n该方式适用于两类设备的数据输入输出:该方式适用于两类设备的数据输入输出:u 具有常驻的数据信号具有常驻的数据信号u 变化缓慢的数据信号的设备。变化缓慢的数据信号的设备。无条件传送接口逻辑示于图无条件传送接口逻辑示于图8-18-1图图8-1 8-1 无条件传送的接口逻辑无条件传送的接口逻辑n在在I/O操作之前,要先检浏设备的操作之前,要先检浏设备的状态,以了解设备是否已为数据状态,以了解设备是否已为数据I/O作好了准备;作好了准备;n只有在确认设备已只有在确认设备已“准备好准备好”的情的情况下,单片机才能执行数据况下,单片机才能执行数据I/O操操作。操作流程见图作。操作流程见图8-2n为了实现查询方式的数据传送,需为了实现查询方式的数据传送,需要由接口电路提供设备状态,并以要由接口电路提供设备状态,并以软件方法进行状态测试。这是一种软件方法进行状态测试。这是一种软硬件方法结合的数据传送方式。软硬件方法结合的数据传送方式。n程序查询方式,电路简单,查询软程序查询方式,电路简单,查询软件也不复杂,而且通用性强。件也不复杂,而且通用性强。图图8-2 8-2 查询传送流程查询传送流程n中断方式又称程序中断方式、它与查询方式的主要区别在于中断方式又称程序中断方式、它与查询方式的主要区别在于知何知道设备是否为数据传送作好了准备,查询方式是单片知何知道设备是否为数据传送作好了准备,查询方式是单片机的主动形式,而中断方式则是单片机等待通知(中断请求机的主动形式,而中断方式则是单片机等待通知(中断请求)的被动形式。)的被动形式。n采用中断方式进行数据传送时,当设备为数据传送作好准备采用中断方式进行数据传送时,当设备为数据传送作好准备之后,就向单片机发出中断请求;之后,就向单片机发出中断请求;n单片机接收到中断请求之后,即作出响应,暂停正在执行的单片机接收到中断请求之后,即作出响应,暂停正在执行的原程序,而转去为设备的数据输入输出服务原程序,而转去为设备的数据输入输出服务n待服务完成之后,程序返回,单片机再继续执行被中断的原待服务完成之后,程序返回,单片机再继续执行被中断的原程序。中断传送逻辑见图程序。中断传送逻辑见图8-38-3。图图8-3 8-3 中断方式数据传送逻辑中断方式数据传送逻辑n利用锁存器、缓冲器进行并行口简单扩展利用锁存器、缓冲器进行并行口简单扩展n用可编程并行接口芯片进行扩展用可编程并行接口芯片进行扩展I/OI/O接口扩展常用芯片接口扩展常用芯片n5151单片机常用单片机常用I/OI/O扩展芯片示于表扩展芯片示于表8-18-1。表表8-1 MCS-518-1 MCS-51单片机单片机I/OI/O扩展常用芯片扩展常用芯片8.2.1 简单接口常用锁存器、缓冲器芯片nI/OI/O口的简单扩展口的简单扩展p输出口输出口-利用锁存器扩展利用锁存器扩展p输入口输入口-利用缓冲器扩展利用缓冲器扩展n74LS37774LS377、74LS27374LS273、74LS24474LS244、74LS24574LS245(1)74LS273n74LS27374LS273是一种带清除功能的是一种带清除功能的8D8D触发器触发器n其内部结构如图其内部结构如图8-48-4所示所示n引脚分布如图引脚分布如图8-58-5所示所示n真值表见表真值表见表8-28-2所示所示1D1D8D8D为数据输入端为数据输入端1Q1Q8Q8Q为数据输出端,正脉冲触发,低电平清除,常用作为数据输出端,正脉冲触发,低电平清除,常用作8 8位地址锁存器位地址锁存器。表表8-2 74LS2738-2 74LS273真值表真值表图图8.4 74LS2738.4 74LS273内部结构图内部结构图图图8-5 74LS2738-5 74LS273封装图封装图 n74LS373是一种带有三态输出门的是一种带有三态输出门的8D触发器触发器n其内部结构如图其内部结构如图8-6所示所示n引脚分布如图引脚分布如图8-7所示所示数据输入由允许端数据输入由允许端G G控制控制数据输出由数据输出控制端控制数据输出由数据输出控制端控制各触发器仅输出单一状态各触发器仅输出单一状态D1D1D8D8为数据输入端为数据输入端Q1Q1Q8Q8为数据输出端为数据输出端n触发器的功能如表触发器的功能如表8-3所示所示n常用作数据常用作数据/地址锁存器地址锁存器图图8-6 74LS3738-6 74LS373内部结构图内部结构图表表8-3 74LS3738-3 74LS373真值表真值表图图8-7 74LS3738-7 74LS373引脚功能图引脚功能图n74LS24474LS244是三态八缓冲器是三态八缓冲器/线驱动器线驱动器/线接收器线接收器(3S(3S,两组控,两组控制制)n内部结构逻辑图(见图内部结构逻辑图(见图8-88-8):图图8-8 74LS2448-8 74LS244引脚功能图引脚功能图n引出端符号引出端符号:1A11A41A11A4,2A12A42A12A4:输入端输入端1G#,2G#1G#,2G#:三态允许端三态允许端(低电平有效低电平有效)1Y11Y41Y11Y4,2Y12Y42Y12Y4:输出端输出端n真值表真值表:(见表(见表8-48-4)表表8-4 74LS2448-4 74LS244真值表真值表n74LS245:874LS245:8位双向位双向3 3态缓冲电路,主要用在数据的双向缓冲态缓冲电路,主要用在数据的双向缓冲n内部结构逻辑见图内部结构逻辑见图8-98-9图图8-9 74LS2458-9 74LS245引脚功能图引脚功能图n74LS24574LS245的真值表见表的真值表见表8-58-5表表8-5 74LS2458-5 74LS245真值表真值表n 简单输入口扩展图图8-10 74LS2448-10 74LS244扩展输入接口电路扩展输入接口电路n 简单输出口扩展图图8-11 74LS3778-11 74LS377扩展输出接口电路扩展输出接口电路n 简单并行口扩展应用举例 图图8-12 74LS8-12 74LS系列扩展输入系列扩展输入/输出接口电路输出接口电路n【例例8-18-1】如图如图8-128-12所示为一个利用所示为一个利用74LS24474LS244和和74LS27374LS273芯片芯片,将,将P0P0口扩展成简单的输入口扩展成简单的输入/输出口的电路。输出口的电路。74LS24474LS244和和74LS27374LS273的工作受的工作受AT89S51AT89S51的的、RD#RD#、WR#WR#3 3条控制线控制。条控制线控制。74LS24474LS244作为扩展输入口,作为扩展输入口,8 8个输入端分别接个输入端分别接8 8个按钮开关。个按钮开关。74LS27374LS273是是8D8D锁存器扩展输出口,接锁存器扩展输出口,接8 8个个LEDLED发光二极管,以显示发光二极管,以显示8 8个按钮开个按钮开关状态。关状态。当某条输入口线的按钮开关按下时,该输入口线为低电平,读入单片机后当某条输入口线的按钮开关按下时,该输入口线为低电平,读入单片机后,其相应位为,其相应位为“0”0”,然后再将口线的状态经,然后再将口线的状态经74LS27374LS273输出,某位低电平时输出,某位低电平时二极管发光,从而显示出按下的按钮开关的位置。二极管发光,从而显示出按下的按钮开关的位置。简单并行口扩展应用举例 n该电路的工作原理如下该电路的工作原理如下当当P2.0=0P2.0=0,RD#=0RD#=0(WR#=1WR#=1)时,选中时,选中74LS24474LS244芯片,此时若无按钮开关按芯片,此时若无按钮开关按下,输入全为高电平。当某开关按下时则对应位输入为下,输入全为高电平。当某开关按下时则对应位输入为“0 0”,74LS24474LS244的的输入端不全为输入端不全为“1 1”,其输入状态通过,其输入状态通过P0P0口数据线被读入口数据线被读入AT89S51AT89S51片内。片内。当当P2.0=0P2.0=0,WR#=0WR#=0(RD#=1RD#=1)时,选中时,选中74LS27374LS273芯片,芯片,CPUCPU通过通过P0P0口输出数据口输出数据锁存到锁存到74LS27374LS273,74LS27374LS273的输出端低电平位对应的的输出端低电平位对应的LEDLED发光二极管点亮。发光二极管点亮。总之,在图总之,在图8-128-12中只要保证中只要保证为为“0”0”,其他地址位或,其他地址位或“0”0”或或“1”1”即可。即可。如地址用如地址用FEFFHFEFFH(无效位全为(无效位全为“1”1”),或用),或用0000H0000H(无效位全为(无效位全为“0”0”)都)都可。可。【例8-1】分析输入程序段:输入程序段:MOV MOV DPTRDPTR,#0FEFFH#0FEFFH;I/OI/O地址地址DPTRDPTRMOVX MOVX A A,DPTR DPTR;RD#RD#为低,为低,74LS24474LS244数据被读入数据被读入A A中中输出程序段:输出程序段:MOV MOV A A,#data#data;数据;数据#dataA#dataAMOV MOV DPTRDPTR,#0FEFFH#0FEFFH;I/OI/O地址地址#0FEFFHDPTR#0FEFFHDPTRMOVXMOVXDPTRDPTR,A A;WR#WR#为低,数据经为低,数据经74LS27374LS273口输出口输出【例8-1】输入、输出程序程序如下:程序如下:DDISDDIS:MOV MOV DPTRDPTR,#0FEFFH#0FEFFH;输入口地址;输入口地址DPTRDPTRLPLP:MOVX MOVX A A,DPTRDPTR;按钮开关状态读入;按钮开关状态读入A A中中 MOVX MOVX DPTRDPTR,A A;A A中数据送显示输出口中数据送显示输出口 SJMP LP SJMP LP ;反复连续执行;反复连续执行由程序可看出,对于扩展接口的输入由程序可看出,对于扩展接口的输入/输出就像从外部输出就像从外部RAMRAM读读/写数据一样写数据一样方便。图方便。图8-128-12仅仅扩展了两片,如果仍不够用,还可扩展多片仅仅扩展了两片,如果仍不够用,还可扩展多片74LS24474LS244、74LS27374LS273之类的芯片。但作为输入口时,一定要求有三态功能,否则将影之类的芯片。但作为输入口时,一定要求有三态功能,否则将影响总线的正常工作。响总线的正常工作。【例8-1】程序编写程序把按钮开关状态通过图8-12的发光二极管显示出来。n串口的串口的方式方式0 0用于用于I/OI/O扩展扩展。方式方式0 0为为同步移位寄存器同步移位寄存器工作方工作方式,波特率为式,波特率为f foscosc/12/12。数据由数据由RXDRXD端()输入端()输入,同步移位时,同步移位时钟由钟由TXDTXD端()端()输出。输出。用74LS165扩展并行输入口n如图如图8-138-13,用,用5151单片机的串口单片机的串口扩展两个扩展两个8 8位并行输入口。位并行输入口。74LS16574LS165是是8 8位并行输入串行输出的寄存器。当位并行输入串行输出的寄存器。当74LS16574LS165的的S/L#S/L#端由高到低端由高到低跳变,并行输入端的数据被置入寄存器;跳变,并行输入端的数据被置入寄存器;当当S/L#=1S/L#=1,且时钟禁止端(,且时钟禁止端(1515脚)为低时,允许脚)为低时,允许TXDTXD()()移位时钟输入,移位时钟输入,在该脉冲作用下,数据由右向左方向移动。在该脉冲作用下,数据由右向左方向移动。TXDTXD与所有与所有74LS16574LS165的的CPCP相连;相连;RXDRXD与与74LS16574LS165的串行输出端的串行输出端QHQH相连;与相连;与 S/L#S/L#相连,控制相连,控制74LS16574LS165的串行移位或并行输入;的串行移位或并行输入;1515脚接地,允许时钟输入。脚接地,允许时钟输入。当扩展多个当扩展多个8 8位输入口时,相邻两芯片的首尾(位输入口时,相邻两芯片的首尾(Q QH H与与SINSIN)相连。)相连。图图8-13 8-13 利用利用74LS16574LS165扩展扩展1616位并行输入口位并行输入口MOVMOVR7R7,#05H#05H;设置读入组数;设置读入组数 MOVMOVR0R0,#20H#20H;设置内部;设置内部RAMRAM数据区首址数据区首址STARTSTART:CLRCLRP1.0P1.0;并行置入数据,;并行置入数据,S/L#=0S/L#=0SETBSETBP1.0P1.0;允许串行移位,;允许串行移位,S/L#=1S/L#=1MOVMOVR2R2,#02H#02H;设每组字节数,即;设每组字节数,即74LS16574LS165的个数的个数RXDATARXDATA:MOVMOVSCONSCON,#00010000H#00010000H;设置串口方式;设置串口方式0 0,允许,允许;接收,启动接收过程;接收,启动接收过程WAITWAIT:JNBJNBRIRI,WAITWAIT;未接收完一帧,循环等待;未接收完一帧,循环等待 CLRCLRRIRI;RIRI标志清标志清“0”0”,准备下次接收,准备下次接收 MOVMOVA A,SBUFSBUF;读入数据;读入数据 MOVMOVR0R0,A A;送至;送至RAMRAM缓冲区缓冲区 INCINCR0R0;指向下一个地址;指向下一个地址 DJNZDJNZR2R2,RXDATARXDATA;未读完一组数据,;未读完一组数据,继续继续 DJNZDJNZR7R7,STARTSTART;5 5组数据未读完重新并行置入组数据未读完重新并行置入 ;对数据进行处理;对数据进行处理串行接收过程采用查询等待的方式,如必要,可改中断方式。串行接收过程采用查询等待的方式,如必要,可改中断方式。n图图8-148-14为为5151单片机的串口外接两片单片机的串口外接两片74LS16474LS164(8 8位串入并出位串入并出移位寄存器)扩展两个移位寄存器)扩展两个8 8位并行输出口的接口电路。位并行输出口的接口电路。图图8-14 8-14 利用利用74LS16474LS164扩展扩展1616位并行输出口位并行输出口当串口工作在方式当串口工作在方式0 0的发送,串行数据由(的发送,串行数据由(RXDRXD)送出,移位时钟由()送出,移位时钟由(TXDTXD)送出。)送出。注意,由于注意,由于74LS16474LS164无并行输出控制端,在串行输入中,其输出端的状态无并行输出控制端,在串行输入中,其输出端的状态会不断变化,故某些场合,在会不断变化,故某些场合,在74LS16474LS164输出端应加接输出三态门控制,以输出端应加接输出三态门控制,以便保证串行输入结束后再输出数据。便保证串行输入结束后再输出数据。用74LS164扩展并行输出口STARTSTART:MOVMOVR7R7,#02H#02H;设置要发送的字节个数;设置要发送的字节个数 MOV MOV R0R0,#30H#30H;设置地址指针;设置地址指针 MOV MOV SCONSCON,#00H#00H;设置串行口为方式;设置串行口为方式0 0SENDSEND:MOV MOV A A,R0R0 MOV MOV SBUFSBUF,A A;启动串行口发送过程;启动串行口发送过程WAITWAIT:JNBJNBTITI,WAITWAIT;一帧未发完,等待;一帧未发完,等待 CLR CLR TITIINC INC R0R0;取下一个数;取下一个数DJNZ R7DJNZ R7,SEND SEND ;未发完,继续,从子程序返回;未发完,继续,从子程序返回RETRET【例例8-38-3】将内部将内部RAMRAM单元单元30H30H、31H31H的内容经串行口由的内容经串行口由74LS16474LS164并并行输出的子程序。行输出的子程序。8.4.1 利用可编程并行接口芯片8255的I/O扩展n 常用的外围常用的外围I/OI/O接口芯片:接口芯片:82C5582C55:可编程通用并行接口(:可编程通用并行接口(3 3个个8 8位位I/OI/O口)。口)。81C5581C55:可编程的:可编程的IO/RAMIO/RAM扩展接口电路(扩展接口电路(2 2个个8 8位位I/OI/O口,口,1 1个个6 6位位I/OI/O口,口,256RAM256RAM单元,单元,1 1个个1414位的减法计数器)。位的减法计数器)。n 都可以和都可以和AT89S51AT89S51直接连接,接口逻辑简单。直接连接,接口逻辑简单。图图8-15 82558-15 8255的内部结构框图的内部结构框图图图8-16 82558-16 8255的扩展逻辑电路图的扩展逻辑电路图nMCS-51MCS-51单片机可以和单片机可以和82558255直接连接,图直接连接,图8-168-16给出了一种扩展电路。给出了一种扩展电路。【例例8-48-4】82558255与与80318031连接如图连接如图8-178-17所示,要求:所示,要求:n试确定试确定8255A8255A的端口地址的端口地址n欲使欲使A A口口:方式方式0 0,输出口;,输出口;B B口口:方式方式1 1,输入口;,输入口;上上C C口口:方式方式0 0,输出。编写初始化程序,输出。编写初始化程序n欲使欲使80518051内部内部RAM30HRAM30H的内容从的内容从PAPA口口输出,试编程。输出,试编程。欲使欲使PC7PC7向外输出一个正脉冲信号,试编程。向外输出一个正脉冲信号,试编程。图图8-17 82558-17 8255与与80318031连接图连接图【例例8-48-4】解答解答P2P2 P0 P0 0 0,0 00 0 A A口:口:7FFCH(0000H)7FFCH(0000H)0 0,0 10 1B B口:口:7FFDH(0001H)7FFDH(0001H)0 0,1 01 0C C口口:7FFEH(0002H)7FFEH(0002H)0 0,1 11 1控制口:控制口:7FFFH(0003H)7FFFH(0003H)MOVMOVDPTR,#7FFFHDPTR,#7FFFH;控制口地址;控制口地址MOVMOVA,#86HA,#86H;方式字:;方式字:10000110B=86H10000110B=86HMOVXMOVXDPTR,A DPTR,A 初始化编程初始化编程确定地址确定地址 程序段程序段MOVMOVA,30HA,30HMOVMOVDPTR,#7FFCHDPTR,#7FFCHMOVXMOVXDPTR,ADPTR,A 程序段程序段MOVMOVDPTR,#7FFFHDPTR,#7FFFHMOVMOVA,#86HA,#86H;设工作方式;设工作方式MOVXMOVXDPTR,ADPTR,AMOVMOVA,#0EHA,#0EH;C C口置位字,口置位字,PC7=0PC7=0MOVXMOVXDPTR,ADPTR,AACALLACALLDELAY1DELAY1;延时;延时MOVMOVA,#0FHA,#0FH;C C口置位字,口置位字,PC7=1PC7=1MOVXMOVXDPTR,A DPTR,A ACALLACALLDELAY1DELAY1;延时;延时DECDECA A;C C口置位字,口置位字,PC7=0PC7=0MOVX MOVX DPTR,ADPTR,AACALL ACALL DELAY2DELAY2;延时;延时【例例8-48-4解答解答】【例例8-58-5】设单片机通过设单片机通过82558255来控制一顺序控制过程,该系统连来控制一顺序控制过程,该系统连接如图接如图8-188-18,A A口输出口输出6 6路顺序控制信号,以指示灯指示,路顺序控制信号,以指示灯指示,6 6道工道工序,每道工序时间为序,每道工序时间为1010秒。秒。PC0PC0输入启动信号,输入启动信号,PC7PC7输入停止信号,输入停止信号,分别与分别与SA1SA1和和SA2SA2相连。试编写此应用程序。相连。试编写此应用程序。图图8-18 8255A8-18 8255A的应用举例的应用举例(2 2)端口的工作方式为方式)端口的工作方式为方式0 0,A A口为输出口,口为输出口,C C口为输入口,口为输入口,82558255的控制字为的控制字为89H89H。(1 1)82558255四个端口的地址:四个端口的地址:,0000,00B A00B A口地址:口地址:FCFCHFCFCH,0000,01B B01B B口地址:口地址:FCFDHFCFDH,0000,10B C10B C口地址:口地址:FCFEHFCFEH,0000,11B 11B 控制口地址:控制口地址:FCFFHFCFFH【例例8-58-5】解答解答ORG 0100HORG 0100HMAMA:MOVMOVDPTRDPTR,#0FCFFH#0FCFFH;控制寄存器地址;控制寄存器地址MOVMOVA A,#89H#89H ;控制字;控制字MOVXMOVXDPTRDPTR,A A ;控制字送控制寄存器;控制字送控制寄存器MOVMOVDPTRDPTR,#0FCFEH#0FCFEH ;C C口地址口地址QDQD:MOVXMOVXA A,DPTR DPTR ;读;读C C口口,QD QD ;判断有无启动信号;判断有无启动信号LOOPLOOP:MOV MOV DPTRDPTR,#0FCFCH#0FCFCH ;A A口地址口地址MOVMOVA A,#01H#01H ;第一路控制信号;第一路控制信号LOOP1LOOP1:MOVX MOVX DPTRDPTR,A A ;输出第一路控制信号;输出第一路控制信号ACALLACALLDELAY DELAY ;延迟;延迟1010秒秒RLRLA A ;下一路控制信号;下一路控制信号,LOOP1 LOOP1 ;判断;判断6 6路控制信号有无输出完路控制信号有无输出完MOVMOVDPTRDPTR,#0FCFEH#0FCFEH;C C口地址口地址MOVXMOVXA A,DPTR DPTR ;读;读C C口口,TZ TZ ;判断有无停止信号;判断有无停止信号JMPJMPLOOP LOOP ;无停止信号则进行下一轮控制;无停止信号则进行下一轮控制TZTZ:MOVMOVDPTRDPTR,#0FCFCH#0FCFCH ;有停止信号则使;有停止信号则使A A口输出清零口输出清零CLRCLRA AMOVXMOVXDPTRDPTR,A ASJMPSJMP$ORGORG1000H 1000H ;延时子程序;延时子程序DELAYDELAY:MOVMOV22H22H,#50H#50HL1L1:MOV MOV 21H21H,#100H#100HL2L2:MOVMOV20H20H,#250H#250HL3L3:NOPNOPNOPNOPDJNZDJNZ20H20H,L3L3DJNZDJNZ21H21H,L2L2DJNZDJNZ22H22H,L1L1RETRETn 8155的结构n8155芯片内部逻辑由三部分组成:芯片内部逻辑由三部分组成:存储单元为存储单元为256256字节静态字节静态RAMRAM三个可编程三个可编程I/OI/O口:口:PAPA口,口,8 8位位PBPB口,口,8 8位位PCPC口,口,6 6位位1414位二进制减法计数器位二进制减法计数器图图8-19 81558-19 8155芯片的内部结构芯片的内部结构n81558155芯片芯片4040引脚,采引脚,采用双列直插式封装,如用双列直插式封装,如图图8-208-20所示。所示。n81558155芯片的引脚功能芯片的引脚功能见表见表8-68-6图图8-20 81558-20 8155芯片的引脚芯片的引脚PA0PA7PA0PA7端口端口A A的的I/OI/O线(线(8 8位,接外设)位,接外设)PB0PB7PB0PB7端口端口B B的的I/OI/O线(线(8 8位,接外设)位,接外设)PC0PC5PC0PC5端口端口C C的的I/OI/O线(线(6 6位,接外设)位,接外设)AD0AD7AD0AD7三态地址三态地址/数据复用线(数据复用线(8 8位,一般接单片机位,一般接单片机P0P0口)口)CPUCPU与与81558155之间的地址、数据、命令、状态等信号通过它来传送之间的地址、数据、命令、状态等信号通过它来传送IO/M#IO/M#端口端口/存储器存储器 选择控制:选择控制:“0”0”选择片内选择片内RAMRAM;“1”“1”选择片内选择片内I/OI/O口口TIMER INTIMER IN81558155片内定时器片内定时器/计数器的计数脉冲输入引脚计数器的计数脉冲输入引脚TIMER OUTTIMER OUT81558155片内定时器片内定时器/计数器的计满回零输出引脚计数器的计满回零输出引脚RD#RD#、WR#WR#分别是对分别是对81558155片内的片内的RAMRAM或或I/OI/O口的的读、写控制信号口的的读、写控制信号ALEALE地址锁存引脚地址锁存引脚CE#CE#选片选片RESETRESET复位信号。复位后复位信号。复位后A A口、口、B B口和口和C C口均为数据输入方式口均为数据输入方式n81558155各引脚功能如下各引脚功能如下p地址地址/数据线数据线AD7AD7AD0AD0,与与AT89S51AT89S51单片机的单片机的P0P0口相连,用于分时传送地址口相连,用于分时传送地址/数据信息。数据信息。pI/OI/O总线(总线(2222条)条)PA7PA7PA0PA0为通用为通用I/OI/O线,数据传送方向由写入线,数据传送方向由写入81C5581C55的命令字决定(的命令字决定(图图9-139-13););PB7PB7PB0PB0为通用为通用I/OI/O线,用于传送线,用于传送PBPB口上的外设数据,数据传送方向也由口上的外设数据,数据传送方向也由写入写入81C5581C55的控制字决定。的控制字决定。PC5PC5PC0PC0为数据为数据/控制线,共有控制线,共有6 6条,在通用条,在通用I/OI/O方式下,用作传送方式下,用作传送I/OI/O数据数据;在选通;在选通I/OI/O方式下,用作传送命令方式下,用作传送命令/状态信息(见表状态信息(见表9-39-3)。)。8155的引脚功能p控制引脚控制引脚RESETRESET:复位输入线,在复位输入线,在RESETRESET线上输入一个大于线上输入一个大于600ns600ns宽的正脉冲时,宽的正脉冲时,81C5581C55即可处于复位状态,即可处于复位状态,PAPA、PBPB、PCPC三口也定义为输入方式。三口也定义为输入方式。CE#CE#:片选线,若片选线,若CE#=0CE#=0,则,则AT89S51AT89S51单片机选中本单片机选中本81C5581C55工作,否则,本工作,否则,本81C5581C55未被选中。未被选中。IO/M#IO/M#:I/OI/O端口或端口或RAMRAM存储器选择线。若存储器选择线。若IO/M#=0IO/M#=0,则,则AT89S51AT89S51单片机选中单片机选中81C5581C55片内的片内的RAMRAM存储器;若存储器;若IO/M#=1IO/M#=1,则,则AT89S51AT89S51单片机选中单片机选中81C5581C55的某一的某一I/OI/O端口。端口。RD#RD#:读控制。当读控制。当RD#=0RD#=0且且WR#=1WR#=1时,时,81C5581C55为读出数据状态;为读出数据状态;WR#WR#:写控制。当写控制。当WR#=0WR#=0且且RD#=0RD#=0时,时,81C5581C55为写入数据状态。为写入数据状态。8155的引脚功能p控制引脚控制引脚ALEALE:允许地址输入线,高有效。若允许地址输入线,高有效。若ALE=1ALE=1,则,则81C5581C55允许允许AT89S51AT89S51通过通过AD7AD7AD0AD0线发出地址锁存到线发出地址锁存到81C5581C55片内片内“地址锁存器地址锁存器”;否则,;否则,81C5581C55地址锁存器地址锁存器处于封锁状态。处于封锁状态。81C5581C55的的ALEALE常和常和AT89S51AT89S51的的ALEALE相连。相连。TIMERINTIMERIN:计数器脉冲输入线,输入的脉冲上跳沿用于对计数器脉冲输入线,输入的脉冲上跳沿用于对81C5581C55片内的片内的1414位位计数器减计数器减1 1。TIMEROUTTIMEROUT:计数器输出线,当计数器输出线,当1414位计数器减为位计数器减为0 0时就可以在该引线上输出脉时就可以在该引线上输出脉冲或方波,输出脉冲或方波与所选的计数器工作方式有关。冲或方波,输出脉冲或方波与所选的计数器工作方式有关。p电源线电源线VCCVCC为为+5V+5V电源输入线电源输入线VSSVSS接地。接地。8155的引脚功能n8155 8155 的的RAM RAM 单元地址单元地址81558155有有256256个个RAMRAM单元,使用单元,使用AD7AD7AD0AD0,共共8 8位地址线进行编址;位地址线进行编址;RAMRAM地址:地址:(当(当IO/M#IO/M#加低电平加低电平)此时)此时AD0AD0AD7AD7上得到的编码值即是上得到的编码值即是81558155的某一的某一RAMRAM单元的地址,地址范围是单元的地址,地址范围是00H00HFFHFFH。n81558155共有共有6 6 个可编址的个可编址的I/OI/O端口,这端口,这 6 6 个端口是:个端口是:命令状态寄存器;命令状态寄存器;PA PA口;口;PB PB口;口;PCPC口;口;定时器计数定时器计数器低器低8 8位;位;定时器计数器高定时器计数器高8 8位位当当IO/M#IO/M#加高电平加高电平,选中,选中I/OI/O端口。端口。81558155只使用只使用AD2AD2AD0AD0对对I/OI/O端口编址。端口编址。81558155的的I/OI/O端口地址编码见表端口地址编码见表8-78-7表表8-7 81558-7 8155的端口地址编码的端口地址编码ADAD7 7ADAD6 6ADAD5 5ADAD4 4ADAD3 3ADAD2 2ADAD1 1ADAD0 0对应端口对应端口0 00 00 0命令命令/状态寄存器状态寄存器0 00 01 1A A口口0 01 10 0B B口口0 01 11 1C C口口1 10 00 0定时器定时器/计数器低计数器低8 8位位1 10 01 1定时器定时器/计数器高计数器高8 8位位(1)8155内部RAM的使用:当当IO/M#IO/M#加低电平加低电平时,对片内时,对片内256B RAM256B RAM单元进行读单元进行读/写。与一般外部数据写。与一般外部数据存储器的使用基本一样,唯一区别是事先要使存储器的使用基本一样,唯一区别是事先要使IO/M#IO/M#为低电平。为低电平。(2)8155的I/O口的使用:当当IO/M#IO/M#加高电平加高电平时,对时,对I/OI/O口访问。口访问。81558155的的3 3个个I/OI/O口,分别称为口,分别称为PAPA口口、PBPB口口和和PCPC口口。PAPA口口和和PBPB口口是是8 8位通用数据口,主要用于数据传送。位通用数据口,主要用于数据传送。PCPC口口为为6 6位口,既可作为位口,既可作为数据数据I/OI/O口口,还可作为,还可作为控制口控制口,用于传送控制信,用于传送控制信号和状态信号,对号和状态信号,对PAPA和和PBPB的的I/OI/O操作进行控制;操作进行控制;PAPA、PBPB、PCPC各端口可工作于不同的工作方式,它们靠设置工作命令字来各端口可工作于不同的工作方式,它们靠设置工作命令字来确定,使用前要进行初始化(写命令字到命令口)。确定,使用前要进行初始化(写命令字到命令口)。n81558155的的I/OI/O口可以用基本口可以用基本I/OI/O方式和选通(或中断)方式和选通(或中断)I/OI/O方式方式传送数据。传送数据。p基本基本I/OI/O(即无条件传送)方式。(即无条件传送)方式。在该方式下无须联络信号,在该方式下无须联络信号,PAPA、PBPB、PCPC三口均可独立当数据口,输入三口均可独立当数据口,输入/输输出数据。出数据。p选通选通I/OI/O方式(或中断方式)方式(或中断方式)PAPA口和口和PBPB口可工作于选通(或中断)方式传送数据,此时口可工作于选通(或中断)方式传送数据,此时PCPC口为联络口口为联络口,提供联络信号。,提供联络信号。pPCPC口四种工作方式:口四种工作方式:方式方式1 1(ALTALT1 1):):PAPA口和口和PBPB口基本输入口基本输入/输出,输出,PCPC口输入口输入方式方式2 2(ALT2ALT2):PAPA口和口和PBPB口基本输入口基本输入/输出,输出,PCPC口输出口输出方式方式3 3(ALT3ALT3):PAPA口选通输入口选通输入/输出,输出,PBPB口基本输入口基本输入/输出输出方式方式4 4(ALT4ALT4):PAPA口和口和PBPB口选通输入口选通输入/输出输出p当以基本当以基本I/OI/O方式传送数据时,无需联络信号,此时,方式传送数据时,无需联络信号,此时,PAPA、PBPB、PCPC皆可进行数据的输入皆可进行数据的输入/输出;输出;p当当PAPA或或PBPB以选通(中断)方式进行数据传送时,所需的联络以选通(中断)方式进行数据传送时,所需的联络信号由信号由 PC PC 提供:提供:*PCPC2 2PCPC0 0是为是为PAPA口提供;口提供;PCPC5 5PCPC3 3是为是为PBPB口提供口提供p联络信号共有三个:联络信号共有三个:*INTRINTR:中断请求信号(输出),高电平有效,送给:中断请求信号(输出),高电平有效,送给C51C51的外中断请求。的外中断请求。*BFBF:缓冲器满信号(输出),高电平有效。:缓冲器满信号(输出),高电平有效。*STB#STB#:选通信号(输入),低电平有效。数据输入时,:选通信号(输入),低电平有效。数据输入时,STB#STB#是外设送来是外设送来的选通信号;数据输出时,的选通信号;数据输出时,STB#STB#是外设送来的应答信号。是外设送来的应答信号。*以上各信号由以上各信号由PCPC口的引脚承担,其的信号定义见表口的引脚承担,其的信号定义见表8-88-8基本基本I/OI/O方式方式选通选通I/OI/O方式方式方式方式1 1(ALTALT1 1)方式方式2 2(ALTALT2 2)方式方式3 3(ALTALT3 3)方式方式4 4(ALTALT4 4)PC0PC0输入输入输出输出A A口中断请求口中断请求(AINTR)AINTR)A A口中断请求口中断请求(AINTR)AINTR)PC1PC1输入输入输出输出A A口缓冲器满口缓冲器满(ABFABF)A A口缓冲器满口缓冲器满(ABFABF)PC2PC2输入输入输出输出A A口选通口选通(ASTB#ASTB#)A A口选通口选通(ASTB#ASTB#)PC3PC3输入输入输出输出输出输出B B口中断请求口中断请求(BINTR)BINTR)PC4PC4输入输入输出输出输出输出B B口缓冲器满口缓冲器满(BBFBBF)PC5PC5输入输入输出输出输出输出B B口选通口选通(BSTB#)BSTB#)设备数据线设备数据线设备数据线设备数据线至中断请求输入线至中断请求输入线至设备至设备来自设备来自设备至中断请求输入线至中断请求输入线至设备至设备来自设备来自设备AINTRBINTRABFBBFASTBBSTBPAPB8155PC0PC1PC2PC3PC4PC5图图8-21 81558-21 8155在方式在方式4 4时时PCPC口各引脚信号定义口各引脚信号定义n 选通选通I/OI/O方式说明方式说明p选通选通I/OI/O方式又可分为选通方式又可分为选通I/OI/O数据输入和选通数据输入和选通I/OI/O数据输出数据输出两种方式。两种方式。选通选通I/OI/O数据输入数据输入PAPA口和口和PBPB口都可设定为本方式。本工作方式和口都可设定为本方式。本工作方式和82C5582C55的选通的选通I/OI/O输入情况输入情况类似,如图类似,如图8-228-22(a a)所示。)所示。选通选通I/OI/O数据输出数据输出PAPA口和口和PBPB口都可设定为本方式。选通口都可设定为本方式。选通I/OI/O数据的输出过程也和数据的输出过程也和82C5582C55的选的选通通I/OI/O输出情况类似,图输出情况类似,图8-228-22(b b)所示为选通)所示为选通I/OI/O数据输出的示意图。数据输出的示意图。图图8-22 8-22 选通选通I/OI/O方式示意图方式示意图n定时器计数器的计数结构定时器计数器的计数结构 8155 8155 的定时器计数器是一个的定时器计数器是一个 14 14 位的减法计数器,由两个低位的减法计数器,由两个低8 8位计数位计数器器TLTL(04H04H)和高)和高8 8为计数器为计数器THTH(05H05H)构成。)构成。计数器的格式如图计数器的格式如图8-238-23所示。其中,所示。其中,T13T13T0T0为计数器的计数位;为计数器的计数位;M2M2、M1M1用来设置计数器的输出方式。用来设置计数器的输出方式。D7D6D5D4D3D2D1D0T7T6T5T4T3T2T1T0D7D6D5D4D3D2D1D0M2M1T13T12T11T10T9T8输出方式输出方式计数器高计数器高6位位TH(05H)低低8位计数器位计数器TL(04H)图图8-23 81558-23 8155计数器格式计数器格式81C5581C55计数器的计数器的4 4种工作方式及对应的引脚输出波形如图种工作方式及对应的引脚输出波形如图8-248-24所示。所示。图图8-24 81C558-24 81C55的定时器的定时器/计数器的输出方式定义与引脚输出波形计数器的输出方式定义与引脚输出波形8155 8155 的定时器计数器是减法计数;的定时器计数器是减法计数;8155 8155 的定时器计数器则只有一种固定的工作方式,即的定时器计数器则只有一种固定的工作方式,即 14 14 位计数,通位计数,通过软件方法进行计数值加载;过软件方法进行计数值加载;8155 8155 的定时器计数器,由外部提供计数脉冲,信号引脚是的定时器计数器,由外部提供计数脉冲,信号引脚是 TIMER INTIMER IN;8155 8155 的定时器计数器,计数溢出时向芯片外边输出一个信号(的定时器计数器,计数溢出时向芯片外边输出一个信号(TIMER TIMER OUT OUT)。这一信号有脉冲和方波两种形式,供用户进行选择,具体由)。这一信号有脉冲和方波两种形式,供用户进行选择,具体由 M2M2、M1 M1 两位定义。两位定义。n8155内部有一个内部有一个8位地址锁存器,无需外接锁存器;位地址锁存器,无需外接锁存器;n8155的许多信号与的许多信号与MCS-51单片机兼容,可以直接连接。表单片机兼容,可以直接连接。表8-5列出了这些信号的对应关系。列出了这些信号的对应关系。n在二者的连接中,在二者的连接中,8155的地址译码即片选端可以采用线选法的地址译码即片选端可以采用线选法、全译码等方法;、全译码等方法;nIO/M#的连接的连接可用或非门产生可用或非门产生使用高位地址使用高位地址8155MCS-518155MCS-51AD0AD7P0口RD#RD#ALEALEWR#WR#RESETRST表表8-9 81558-9 8155与与MSC-51MSC-51的兼容信号的兼容信号图图8-25(a)8-25(a)或非门产生或非门产生IO/M#IO/M#信号信号图图8-25(b)8-25(b)高位地址作高位地址作IO/M#IO/M#信号信号图图8-26 AT89S518-26 AT89S51单片机与单片机与81C5581C55的接口电路的接口电路表表8-10 81558-10 8155的各的各端口及端口及RAMRAM单元地址单元地址在图在图8-268-26中,单片机中,单片机P0P0口输出的低口输出的低8 8位地址不需要另外加锁存器(位地址不需要另外加锁存器(81558155片内片内集成有地址锁存器),而直接与集成有地址锁存器),而直接与81558155的的AD0AD0AD7AD7相连,既可作为低相连,既可作为低8 8位地址位地址总线,又可作为数据总线,地址锁存控制直接用总线,又可作为数据总线,地址锁存控制直接用AT89S51AT89S51发出的发出的ALEALE信号。信号。81C5581C55的的CE#CE#端接,端接,IO/M#IO/M#端与相连。当端与相连。当P2.7=0P2.7=0时,若时,若P2.0=0P2.0=0,则访问,则访问81558155的的RAMRAM单元。由此可得到图单元。由此可得到图8-238-23中中81558155的各端口以及的各端口以及RAMRAM单元的地址编码,见单元的地址编码,见表表8-108-10。n命令字命令字用于设置端口及定时器计数器的工作方式用于设置端口及定时器计数器的工作方式;命令寄存器只能写不能读。命令寄存器只能写不能读。命令字格式如图命令字格式如图8-278-27n状态字状态字用于寄存各端口及定时器计数器的工作状态用于寄存各端口及定时器计数器的工作状态状态字只能读不能写状态字只能读不能写状态字格式如图状态字格式如图8-288-28*命令字、状态字共用一个端口地址命令字、状态字共用一个端口地址81558155通过对命令字的设和读状态字来控制输入通过对命令字的设和读状态字来控制输入/输出输出TM1TM2IEBIEAPC2 PC1PAPAPBA A 口方式口方式B B 口口A A 口口计数器计数器方式方式0000:空操作:空操作0101:停止计数:停止计数1010:计满后停止:计满后停止1111:启动计数:启动计数0 0:输入:输入1 1:输出:输出0 0:禁止中断:禁止中断1 1:允许中断:允许中断0000010110101111方式方式 1 1:A A、B B口基本口基本I/OI/O;C C口输入口输入方式方式 2 2:A A、B B口基本口基本I/OI/O;C C口输出口输出方式方式 3 3:A A口选通口选通I/OI/O ,B B口基本口基本I/OI/O方式方式 4 4:A A、B B口选通口选通I/OI/OB B 口方式口方式C C口口方方式式图图8-27 81558-27 8155的命令字格式的命令字格式A A口中断请求标志:口中断请求标志:0:0:无;无;1:1:有有定时器中断标志定时器中断标志:1 1:有定时器溢出中断:有定时器溢出中断0 0:读状态字后或硬件复位后:读状态字后或硬件复位后INTEBTIMERBBFINTRBINTEAINTRAABFA A口中断允许:口中断允许:0:0:禁止;禁止;1:1:允许允许B B口缓冲器:口缓冲器:0:0:空;空;1:1:满满B B口中断请求标志:口中断请求标志:0:0:无;无;1:1:有有A A口缓冲器:口缓冲器:0:0:空;空;1:1:满满B B口中断允许:口中断允许:0:0:禁止;禁止;1:1:允许允许图图8-28 81558-28 8155的状态字格式的状态字格式p8155 8155 定时器计数器的工作方式由命令字中的高两位定时器计数器的工作方式由命令字中的高两位 DD7 7D D6 6(M(M2 2MM1 1)进行控制。进行控制。D D7 7D D6 60000:不影响计数器工作。:不影响计数器工作。D D7 7D D6 6 0101:停止计数。如计数器未启动则无操作,如计数器正运行则停:停止计数。如计数器未启动则无操作,如计数器正运行则停止计数。止计数。D D7 7D D6 6 1010:达到计数值(计数器减为:达到计数值(计数器减为 0 0)后停止。)后停止。D D7 7D D6 6 1111:启动。如计数器没运行,则在装入计数值后开始计数;如计:启动。如计数器没运行,则在装入计数值后开始计数;如计数器已运行,则在当前计数值计满后,再以新的计数值进行计数。数器已运行,则在当前计数值计满后,再以新的计数值进行计数。任何时候都可设置计数器长度和工作方式,将控制字写入控制寄存器。任何时候都可设置计数器长度和工作方式,将控制字写入控制寄存器。如果计数器正在计数,只有在写入启动命令后,计数器才接收新计数长如果计数器正在计数,只有在写入启动命令后,计数器才接收新计数长度并按新的工作方式计数。度并按新的工作方式计数。p8155 8155 定时器计数器的工作方式由命令字中的高两位定时器计数器的工作方式由命令字中的高两位 DD7 7D D6 6(M(M2 2MM1 1)进行控制。进行控制。若写入计数器的初值为奇数,若写入计数器的初值为奇数,引脚的方波输出是不对称的。例如,初值引脚的方波输出是不对称的。例如,初值为为9 9时,计数器的输出,在时,计数器的输出,在5 5个计数脉冲周期内为高电平,个计数脉冲周期内为高电平,4 4个计数脉冲周个计数脉冲周期内为低电平,如图期内为低电平,如图8-298-29所示。所示。图图8-29 8-29 计数长度为奇数时的不对称方波输出(长度为计数长度为奇数时的不对称方波输出(长度为9 9)p8155 8155 定时器计数器的工作方式由命令字中的高两位定时器计数器的工作方式由命令字中的高两位 DD7 7D D6 6(M(M2 2MM1 1)进行控制。进行控制。注意,注意,81C5581C55的计数器初值不是从的计数器初值不是从0 0开
展开阅读全文