
第六章-80C51单片机的系统扩展.doc
2页第六章 80C51 单片机的系统扩展6·1 在 80C51 扩展系统中,片外程序存储器和片外数据存储器用相同的编制方法,是否会在数据总线上出现总线无争现象?为什么?答: 在既有片外程序存储器又有片外数据存储器的扩展系统中,程序存储器和数据存储器都由 P2 口提供高 8 位地址,P0 口提供低 8 位地址和 8 位数据或指令,并公用一个地址锁存器但是程序存储器由读选通信号 PSEN 控制,而数据存储器的读和写由 RD 和 WR 信号控制正是由于控制信号的不同,程序存储器和数据存储器的空间在逻辑上是严格分开的,所以在访问它们时不会发生总线冲突6·2 设以 80C31 为主机的系统,拟扩展 8KB 的片外数据存储器,请以并行方式和 串行方式选择合适的芯片,并分别给出电路原理图请指出过两种电路各有什么特点,各运用于什么情况,并给出串行方式时读取一个字节数据的程序 答:①以 80C31 为主机的系统,以并行方式和串行方式扩展 8KB 的片外数据存储器,电路原理图示于题图 6-1其中,并行方式时如题图 6-1(a)所示,采用的芯片有:8KB 存储器6264、地址锁存器 74HC373; 串行方式时如题图 6-K(b)所示,采用的芯片有:8KB E2PROM芯片 24LC64。
②从题图 6-1 可以看出这两种电路的特点是:并行方式扩展时,使用的是 80C51 所提供的并行扩展总线占用的系统资源有:P0口、P2 口、ALE 信号线以及相应的控制线 RD、WR; 除此而外,还要提供地址锁存器芯片74HC373但是访问存储器 6264 时,只需使用 MOVX 指令,无需另外的软件开销这种扩展方式对于以 80C31 为主机的系统还是有利的,因为在这种系统中,必须扩展片外程序存储器,所以 P0 口、P2 口、ALE 信号线以及地址锁存器芯片并不是为片外数据存储器单独开销串行方式扩展时,只使用 80C31 的两根口线 P1.6(SCL)和 P1.7(SDA)仅就数据存储器的扩展来说是节省了系统资源的占用,但是在以 80C31 为主机的系统,仍然必须外扩程序存储器,因而 P0 口、P2 口、ALE 信号线以及地址锁存器的开销是不可避免的串行扩展时,访问数据存储器的开销将大大增加,访问速度降低③串行方式扩展时,单字节接收子程序:从 SDA 线上读一个字节的数据,存人累加器 ACC 中SDA EQU P1.7 SCL EQU P1.6;RDBYT: MOV R7,#8 ;接收 8 位RDBYT1:SETB SDA ;P1.7 为输入状态STEB SCL ;时钟脉冲开始MOV C,SDA ;读 SDA 线MOV A,R6 ;取回暂存结果RLC A ;移入新接收位MOV R6,A ;将结果暂存 R6CLR SCL ;时钟脉冲结束DJNZ R7,RDBYT1 ;未读完 8 位,转 RDBYT1RET ;读完 8 位,返回。
