《第7章单片机系统扩展.ppt》由会员分享,可在线阅读,更多相关《第7章单片机系统扩展.ppt(34页珍藏版)》请在第壹文秘上搜索。
1、扩展使用的三总线扩展使用的三总线地址总线:地址总线:P0低8位 P2高8位数据总线:数据总线:P0控制总线控制总线:RD、WR、ALE、PSEN (读、读、写、写、地址锁存允许、地址锁存允许、外部外部ROM读选通读选通)程序存储器的扩展程序存储器的扩展 在在8051单片机外部扩展单片机外部扩展8K字节程序存储器字节程序存储器2764的连接图的连接图数据存储器扩展数据存储器扩展在在8051单片机外部扩展一片单片机外部扩展一片8K字节数据存储器字节数据存储器6264的连接图的连接图系统扩展选址方法系统扩展选址方法1 1、线选法:、线选法:利用单片机的一根空闲高位地址线(通常采用P2的某根口线)选中
2、一个外部扩展I/O端口芯片,若要选中某个芯片工作,将对应芯片的片选信号端设为低电平,其它未被选中芯片的片选信号端设为高电平,从而保证只选中指定的芯片工作。优点:不需要地址译码器,可以节省器件,减小 体积,降低成本 缺点:可寻址的器件数目受到很大限制,而且地 址空间不连续,这些都会给系统设计带来 不便。线选法进行外部扩展举例线选法进行外部扩展举例 6264的地址范围:的地址范围:高高8位位地址变化范围地址变化范围 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1 1 0 低低8位位地址变化范围:地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0
3、.2 P0.1 P0.0 由此可得由此可得6264的地址范围为:的地址范围为:C000HDFFFH。8255的地址范围:的地址范围:高高8位地址变化范围位地址变化范围:P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1 0 1 1 1 1 1 1低低8位地址变化范围:位地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1 1 1 1 1 1 由此可得由此可得8255的地址范围为:的地址范围为:BFFCHBFFFH。0832的地址:的地址:高高8位地址变化范围:位地址变化范围:P2.7 P2.6 P2.5 P2.4 P2
4、.3 P2.2 P2.1 P2.0 0 1 1 1 1 1 1 1 低低8位地址变化范围:位地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1 1 1 1 1 1 1 1由此可得由此可得0832的地址为:的地址为:7FFFH。2 2、地址译码法、地址译码法 对于容量较大的存储器或I/O端口较多的单片机应用系统进行外部扩展,当芯片所需要的片选信号多于可利用的高位地址线时,就需要采用地址译码法。地址译码法必须采用地址译码器,常用的地址译码器有3-8译码器74LS138、双2-4译码器74LS139等。扩扩 展展 器器 件件片内字节地址数片内字节地址数地
5、址编码地址编码626462648K8K0000H0000H1FFFH1FFFH825582554 43FFCH3FFCH3FFFH3FFFH083208321 17FFFH7FFFH825582554 49FFCH9FFCH9FFFH9FFFH地址译码进行外部扩展举例地址译码进行外部扩展举例 并行并行I/OI/O端口扩展芯片端口扩展芯片一.8255可编程并行I/O接口扩展芯片二.8155可编程并行I/O接口扩展芯片82558255可编程并行可编程并行I/OI/O接口扩展芯片接口扩展芯片(1 1)82558255内部结构及引脚功能内部结构及引脚功能 数据总线缓冲器B组控制A组端口A(8)A组端口
6、C上半部(4)B组端口C下半部(4)B组端口B(8)A组控制读写控制逻辑RDWRA0A1RESETCSD7D0I/OPA7PA0I/OPC7PC4I/OPC3PC0I/OPB7PB0(2 2)端口)端口 PA0PA7、PB0PB7、PC0PC7共24条端口线。3个口皆为锁存/缓冲寄存器,A口、B口有锁存功能,C口无锁存功能。A、B、C 3口的工作方式由程序设置。(3 3)数据线)数据线 8255是8位芯片,有8位数据线D0D7。数据线接于8051单片机的P0接口,(3 3)控制线)控制线 控制线控制控制线控制82558255的读的读RDRD:、写:、写WRWR、复位、复位RESETRESET及
7、片选及片选CSCS等。等。(4)地址线)地址线 A1 A0 选择口 0 0 A口 0 1 B口 1 0 C口 1 1 控制口82558255方式选择及方式控制字方式选择及方式控制字 方式选择控制字方式选择控制字D7D6D5D4D3D2D1D0C口下半部B口控制位B组方式控制位,D2=1方式1,反之方式0C口上半部控制位A口控制位A组方式控制 D6D5=00 方式0 01 方式1 1X 方式2总控制选择位 D7=1 选择A、B、C口工作方式 D7=0 C口进行位操作82558255接口扩展举例接口扩展举例(1 1)82558255与单片机连接图与单片机连接图(2 2)82558255初始化初始化
8、 例如,若要求8255PA口按方式1输入,PB口按方式0输出,PC口高4位按方式1输入,PC口低4位安方式0输出,则只要作如下初始化编程:MOV DPTR,#7FFFH ;8255控制口地址 MOV A,#0B8H ;满足以上要求的控制字 MOVX DPTR,A ;控制字送入8255控制口 8155 8155可编程并行可编程并行I/OI/O接口扩展芯片接口扩展芯片(1 1)81558155内部结构及引脚功能内部结构及引脚功能(2 2)81558155的控制字格式的控制字格式XTIMINTEBBBFINTRBINTEAABFINTRAA口 中 断 请 求 标 志A口 缓 冲 器 满/空 标 志允
9、 许 A口 中 断 标 志B口 中 断 请 求 标 志B口 缓 冲 器 满/空 标 志D7D6D5D4D3D2D1D0允 许 B口 中 断 标 志定 时 器 中 断 标 志,计 数 满 该 位 置“1”中 断 请 求,复 位 后 为“0”空(3 3)81558155的状态字格式的状态字格式 8155片内可编程定时/计数器由两个8位寄存器组成,低8位和高6位存放计数初值,最高2位控制定时器的工作方式(4 4)81558155的定时器使用的定时器使用M2M1 T13 T12 T11 T10 T9T8D7D6D5D4D3D2D1D0M2M1 T13 T12 T11 T10 T9T8D7D6D5D4D
10、3D2D1D0定时方式计数初值高6位计数初值低8位(5 5)81558155的端口地址分配的端口地址分配AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0选选 中中 的的 寄寄 存存 器器 0 0 0 0 0 0命令命令/状态寄存器状态寄存器 0 0 1 0 0 1PAPA口口 0 1 0 0 1 0PBPB口口 0 1 1 0 1 1PCPC口口 1 0 0 1 0 0定时计数器的低定时计数器的低8 8位寄存器位寄存器 1 0 1 1 0 1定时计数器的高定时计数器的高6 6位寄存器及位寄存器及工作方式字工作方式字(2
11、(2位位)81558155接口扩展举例接口扩展举例(1 1)82558255与单片机连接图与单片机连接图 81558155的端口地址编码为:的端口地址编码为:命令/状态寄存器地址:7F00H,片内RAM字节地址:7E00H7EFFH,PA口地址:7F01H,PB口地址:7F02H,PC口地址:7F03H,定时计数器低位地址:7F04H,定时计数器高位地址:7F05H。若要求若要求81558155的的PAPA、PBPB作为基本输出口,作为基本输出口,PCPC作为基本输作为基本输入口,不允许中断,不启动定时计数器,则命令字为入口,不允许中断,不启动定时计数器,则命令字为03H03H,初始化编程下:
12、,初始化编程下:MOV DPTR,#7F00H MOV DPTR,#7F00H ;81558155命令口地址命令口地址 MOV A,#03H MOV A,#03H MOVX DPTR,A MOVX DPTR,A ;写入命令字;写入命令字(2 2)81558155初始化初始化 I2C总线是PHILIPS公司开发的一种简单、双向二线制同步串行总线,它只需要两根线(串行时钟线和串行数据线)即可在连接于总线上的器件之间传送信息。主要特性如下:总线只有两根线:串行时钟线和串行数据线;每个连到总线上的器件都可由软件以唯一的地址寻址,并建立简单的主/从关系,主器件既可作为发送器,也可作为接收器;它是一个真正
13、的多主总线,带有竞争检测和仲裁电路,可使多主机任意同时发送而不破坏总线上的数据;同步时钟允许器件通过总线以不同的波特率进行通信;同步时钟可以作为停止和重新启动串行口发送的握手方式;连接到同一总线的集成电路数只受400PF的最大总线电容的限制。利用利用I2CI2C总线进行系统扩展总线进行系统扩展 I2C总线接口的电气结构如图所示,组成I2C总线的串行数据线SDA和串行时钟线SCL 必须经过上拉电阻Rp接到正电源上,连接到总线上的器件的输出级必须为“开漏”或“开集”的形式,以便完成“线与”功能。SDA和SCL都为双向I/O口线,总线空闲时皆为高电平。总线上数据传送最高速率可达100Kbit/s。I
14、2CI2C总线的电气结构总线的电气结构 I2C总线可以构成多主数据传送系统,但只有带CPU的器件可以成为主器件。主器件发送时钟、启动位、数据工作方式,从器件则接收时钟及数据工作方式。接收或发送则根据数据的传送方向决定。I2C总线上数据传送时的启动、结束和有效状态都由SDA、SCL的电平状态决定,在I2C总线规程中启动和停止条件规定如下:启动条件:在SCL为高电平时,SDA出现一个下降沿则启动I2C总线。停止条件:在SCL为高电平时,SDA出现一个上升沿则停止使用I2C总线。在启动和停止条件之间可转送的数据不受限制,但每个字节必须为8位,先传送最高位,在每个字节之后必须跟一个响应位。主器件收发每
15、个字节后产生一个时钟应答脉冲,在这期间,发送器必须保证 SDA为高,由接收器将SDA拉低,称为应答信号(ACK)。主器件为接收器时,在接收了最后一个字节之后不发应答信号,也称为非应答信号(NOT ACK)。I2CI2C总线的数据传输总线的数据传输 总线中每个器件都有自己唯一确定的地址,启动条件后主机发送的第一个字节就是被读写的从器件地址,其中第8位为方向位,“0”(W)表示主器件发送,“1”(R)表示主器件接收。总线上每个器件在启动条件后都把自己的地址与前7位相比较,如相同则器件被选中,产生应答,并根据读写位决定在数据传送中是接收还是发送。在主发送方式下,由主器件先发出启动信号(S),接着 发
16、从器件的7 位地址(SLA)和表明主器件发送的方向位“0”(W),即这个字节为SLA+W。被寻址的从器件在收到这个字节后,返回一个应答信号(A),在确定主从握手应答正常后,主器件向从器件发送字节数据,从器件每收到一个字节数据后都要返回一个应答信号,直到全部数据都发送完为止。在主接收方式下,主器件先发出启动信号(S),接着发从器件的7位地址(SLA)和表明主器件接收的方向位“1”(R),即这个字节为SLA+R。在发送完这个字节后,P1.6(SCL)继续输出时钟,通过P1.7(SDA)接收从器件发来的串行数据。主器件每接收到一个字节后都要发送一个应答信号(A)。当全部数据都发送或接收完毕后,主器件应发出停止信号(P)。I2C总线是一种串行通信总线,它与并行总线不同,并行总线中有地址总线,CPU 可通过地址总线来选择所需要器件的地址。I2C总线只有一根数据线和一根时钟线,没有专门的地址线,而是利用数据传送中的头几个字节来传送地址信息。I2C总线的寻址方式有主器件的节点寻址和通用呼叫寻址两种,具体实现方法是由主器件在发出启动位S 后紧接着发送从器件的7位地址码,即S+SLA,在节点地址寻址中S