8051单片机系统扩展本节介绍8051单片机系统扩展技术,主要介绍一下2点:1、存储器的扩展2、I/O接口扩展电路设计扩展使用的三总线地址总线:P0-低8位P2-高8位数据总线:P0控制总线:RD、WR、ALE、PSEN(读、写、地址锁存允许、外部ROM读选通)程序存储器的扩展在8051单片机外部扩展8K字节程序存储器2764的连接图数据存储器扩展在8051单片机外部扩展一片8K字节数据存储器6264的连接图系统扩展选址方法1、线选法:利用单片机的一根空闲高位地址线(通常采用P2的某根口线)选中一个外部扩展I/O端口芯片,若要选中某个芯片工作,将对应芯片的片选信号端设为低电平,其它未被选中芯片的片选信号端设为高电平,从而保证只选中指定的芯片工作。优点:不需要地址译码器,可以节省器件,减小体积,降低成本缺点:可寻址的器件数目受到很大限制,而且地址空间不连续,这些都会给系统设计带来不便。线选法进行外部扩展举例6264的地址范围:高8位地址变化范围P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0110×××××低8位地址变化范围:P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0××××××××由此可得6264的地址范围为:C000H~DFFFH。8255的地址范围:高8位地址变化范围:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.010111111低8位地址变化范围:P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0111111××由此可得8255的地址范围为:BFFCH~BFFFH。0832的地址:高8位地址变化范围:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.001111111低8位地址变化范围:P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.011111111由此可得0832的地址为:7FFFH。2、地址译码法对于容量较大的存储器或I/O端口较多的单片机应用系统进行外部扩展,当芯片所需要的片选信号多于可利用的高位地址线时,就需要采用地址译码法。地址译码法必须采用地址译码器,常用的地址译码器有3-8译码器74LS138、双2-4译码器74LS139等。扩展器件片内字节地址数地址编码62648K0000H~1FFFH825543FFCH~3FFFH083217FFFH825549FFCH~9FFFH地址译码进行外部扩展举例并行I/O端口扩展芯片一.8255可编程并行I/O接口扩展芯片二.8155可编程并行I/O接口扩展芯片8255可编程并行I/O接口扩展芯片(1)8255内部结构及引脚功能数据总线缓冲器B组控制A组端口A(8)A组端口C上半部(4)B组端口C下半部(4)B组端口B(8)A组控制读写控制逻辑RDWRA0A1RESETCSD7~D0I/OPA7~PA0I/OPC7~PC4I/OPC3~PC0I/OPB7~PB0(2)端口PA0~PA7、PB0~PB7、PC0~PC7共24条端口线。3个口皆为锁存/缓冲寄存器,A口、B口有锁存功能,C口无锁存功能。A、B、C3口的工作方式由程序设置。(3)数据线8255是8位芯片,有8位数据线D0~D7。数据线接于8051单片机的P0接口,(3)控制线控制线控制8255的读RD:、写WR、复位RESET及片选CS等。(4)地址线A1A0选择口00A口01B口10C口11控制口8255方式选择及方式控制字方式选择控制字D7D6D5D4D3D2D1D0C口下半部B口控制位B组方式控制位,D2=1方式1,反之方式0C口上半部控制位A口控制位A组方式控制D6D5=00方式001方式11X方式2总控制选择位D7=1选择A、B、C口工作方式D7=0C口进行位操作8255接口扩展举例(1)8255与单片机连接图(2)8255初始化例如,若要求8255PA口按方式1输入,PB口按方式0输出,PC口高4位按方式1输入,PC口低4位安方式0输出,则只要作如下初始化编程。MOVDPTR,#7FFFH;8255控制口地址MOVA,#0B8H;满足以上要求的控制字MOVX@DPTR,A;控制字送入8255控制口对8255的3个端口的工作方式预先设定。设置控制字经控制口写入。8155可编程并行I/O接口扩展芯片(1)8155内部结构及引脚功能(2)8155的控制字格式XTIMINTEBBBFINTRBINTEAABFINTRAA口中断请求标志A口缓冲器满/空标志允许A口中断标志B口中断请求标志B口缓冲器满/空标志D7D6D5D4D3D2D1D0允许B口中断标志定时器中断标志,计数满该位置“1”中断请求,复位后为“0”空(3)8155的状态字格式8155片内可编程定时/计数器由两个8位寄存器组成,低8位和高6位存放计数初值,最高2位控制定时器的工作方式(4)8155的定时器使用M2M1T13T12T11T10T9T8D7D6D5D4D3D2D1D0M2M1T13T12T11T10T9T8D7D6D5D4D3D2D1D0定时方式计数初值高6位计数初值低8位(5)8155的端口地址分配AD7AD6AD5AD4AD3AD2AD1AD0选中的寄存器×××××000命令/状态寄存器×××××001PA口×××××010PB口×××××011PC口×××××100定时计数器的低8位寄存器×××××101定时计数器的高6位寄存器及工作方式字(2位)8155接口扩展举例(1)8255与单片机连接图8155的端口地址编码为:命令/状态寄存器地址:7F00H,片内RAM字节地址:7E00H~7EFFH,PA口地址:7F01H,PB口地址:7F02H,PC口地址:7F03H,定时计数器低位地址:7F04H,定时计数器高位地址:7F05H。若要求8155的PA、PB作为基本输出口,PC作为基本输入口,不允许中断,不启动定时计数器,则命令字为03H,初始化编程下:MOVDPTR,#7F00H;8155命令口地址MOVA,#03HMOVX@DPTR,A;写入命令字(2)8155初始化