文档详情

10-11(2)微机课10(存储扩展2-2)

豆浆
实名认证
店铺
PPT
362.50KB
约14页
文档ID:24936078
10-11(2)微机课10(存储扩展2-2)_第1页
1/14

8.4 静态数据存储器的扩展 在单片机应用系统中,外扩的数据存储器都采用静态数据存储器(SRAM),所以只讨论SRAM与89C51的接口8.4.1 常用的静态RAM(SRAM)芯片 典型型号有:6116、6264、62128、622565V电源供电,双列直插封装,6116为24引脚封装,6264、62128、62256为28引脚封装,引脚如图8-15各引脚功能: A0~A14:地址输入线 D0~D7:双向三态数据线 CE*:片选信号输入对于6264芯片,当26脚(CS)为高电平时,且CE*为低电平时才选中该片 OE*:读选通信号输入线 WE*:写允许信号输入线,低电平有效 Vcc:工作电源+5V GND:地,P.130,图8-15常用SRAM芯片引脚图,P.131,2 KB,16 KB,32 KB,8 KB,译码选通法扩展,如图8-19所示图8-19,P.134,C000H~FFFFH 8000H~BFFFH4000H~7FFFH0000H~3FFFH,A15A14,【全译码】,0000H~3FFFH 4000H~7FFFH 8000H~BFFFH C000H~FFFFH,,16KB,16KB,16KB,16KB,8.4.3 AT89C51与RAM的接口电路设计,图8-13 外扩一片27128的接口电路图,P.129,仅扩展1片可将片选接为始终有效,0000H~3FFFH4000H~7FFFH8000H~BFFFHC000H~FFFFH,,A15、A14未参与选择存储单元的译码【部分译码】存在4个地址重复区,,8.3.3 AT89C51与EPROM的接口电路设计,【部分译码】,,(多个逻辑地址对应一个物理单元),,图8-18为线选法扩展外部数据存储器的电路。

图8-18 线选法扩展外部数据存储器的电路,P.133,0000H~1FFFH4000H~5FFFH8000H~9FFFHC000H~DFFFH,0000H~1FFFH2000H~3FFFH8000H~9FFFHA000H~BFFFH,0000H~1FFFH2000H~3FFFH4000H~5FFFH6000H~7FFFH,,,,,,,地址冲突区,,,,,非冲突区(可用),,每片均有4个地址重复区,【线选译码】,8KB,8KB,8KB,(一个逻辑地址对应多个物理单元),A15A14A13,【例8-3】 采用译码器法扩展2片8KB EPROM,2片8KB RAMEPROM选用2764,RAM选用6264共扩展4片芯片图8-21,A15=0A14A13,6000H~7FFFH 4000H~5FFFH2000H~3FFFH0000H~1FFFH,8KB程存,8KB程存,8KB数存,8KB数存,P.136,【全译码】,8.5 EPROM和RAM的综合扩展8.5.1 综合扩展的硬件接口电路,【例8-2】 采用线选法扩展2片8KB的RAM和2片8KB的EPROMRAM选6264,EPROM选2764。

扩展接口电路见图8-208KB程存,8KB程存,8KB数存,8KB数存,0000H~1FFFH4000H~5FFFH8000H~9FFFHC000H~FFFFH,图8-20,0000H~1FFFH2000H~3FFFH8000H~9FFFHA000H~BFFFH,0000H~1FFFH4000H~5FFFH8000H~9FFFHC000H~FFFFH,0000H~1FFFH2000H~3FFFH8000H~9FFFHA000H~BFFFH,,,,,,,,,P.135,【线选译码】,A15A14A13,,P2.7,A15=0时,A15=1时,程存与数存的地址区域可重叠,因为他们属于不同的空间ORG 0000HLJMP 2030H,,,,EA,,非冲突区,,,若:,在片程存4KB,0000H~0FFFH,8.5.2 外扩存储器电路的工作原理及软件设计2. 单片机片外数据区读/写数据过程 例如:把片外6000H单元的数送到片内RAM 50H单元,程序如下: MOV DPTR,#6000H MOVX A,@DPTR MOV 50H,A 例如:把片内50H单元的数据送到片外4000H单元中,程序如下: MOV A,50H MOV DPTR,#4000H MOVX @DPTR,A,P.137,【例8-1】 编写程序将片外数据存储器中5000H~50FFH单元全部清零方法1:用DPTR作数据地址指针,同时使用字节计数器。

计数控制循环) MOV DPTR,#5000H ;设置数据块指针的初值 MOV R7,#00H ;设置块长度计数器初值 CLR A ;A置写数据00H LOOP: MOVX @DPTR,A ;把当前单元清零 INC DPTR ;地址指针加1 DJNZ R7,LOOP ;减1,若不为0则继续清零HERE: SJMP HERE ;执行完毕,原地踏步,P.134,如果改为对4FA0H~508AH单元写数据D6H ,如上更改4FA0H,EBH,MOV A,#0D6H,例8-1 编写程序将片外数据存储器中5000H~50FFH单元全部清零方法2:用DPTR作为数据区地址指针,但不使用字节计数器,而是比较特征地址 (条件控制循环) MOV DPTR,#5000H ;设置数据块指针的初值 CLR A ;A置写数据00H LOOP:MOVX @DPTR,A ;把当前单元清零 INC DPTR ;地址指针加1 MOV R7,DPL ;取新地址值低字节 CJNE R7,# 0 ,LOOP ;与末地址+1的低字节比较,未完继续HERE:SJMP HERE,P.134,4FA0H,MOV A,#0D6H,8BH,如果改为对4FA0H~508AH单元写数据D6H ,如上更改。

例B4-2】 有一组数据,存放在30H为首地址的内存单元,数据长度为12个试将每一个数取出加1,依序存放到以50H为首地址的单元中ORG 0000H0000 02 00 30 LJMP START00030030 ORG 0030H0030 78 30 START:MOV R0,#30H ;R0指向源数据区首地址0032 79 50 MOV R1,#50H ;R1指向目标数据区首地址0034 7F 0C MOV R7,#12 ;置循环计数初值120036 E6 LOOP:MOV A,@R0 ;取当前源数据0037 04 INC A ;加10038 F7 MOV @R1,A ;送目标数据区当前单元0039 08 INC R0 ;R0指向下一个源数据003A 09 INC R1 ;R1指向下一个目标单元003B DF F9 DJNZ R7,LOOP ;循环计数减1,未完继续003D 80 FE SJMP $ END,【数据块传送程序例】,若题中说明数据个数n存放在2FH单元中?若要求的是个数据取出按BCD码加1后传送?若要求的是数据原样传送?若要求的是依序传送到58H之前的内存单元中?若要求的是与片外数据存储器之间进行数据块传送?,作业五 : P.140 — 4. 6. 7. 8. 11. 13. (对每个答案仔细思考为什么)补充4-4:编写完整的应用程序,将片外数据存储器2A01H开始的24个单字节数据依次传送到片内32H开始的单元中。

补充8-1:请列出详细的地址分析过程,求出下列存储器片选译码电路各输出端所对应的地址区域。

下载提示
相似文档
正为您匹配相似的精品文档