首页 理论教育 STC15W4K32S4单片机扩展RAM的应用及接口技术

STC15W4K32S4单片机扩展RAM的应用及接口技术

时间:2023-11-02 理论教育 版权反馈
【摘要】:STC15W4K32S4单片机内部包含有4KB数据存储器,除了基本RAM和扩充RAM共256B外,还有3840个扩展RAM单元,编址范围为000H~0EFFH。图4-2 STC15W4K32S4单片机内部扩展RAM和外部扩展RAM若要读出内部3FFH单元,先用寄存器指针DPTR指向3FFH,然后用MOVX指令读出: 如果要将片内RAM地址100H单元的数据复制到片内200H单元中,程序指令如下:因为内部扩展RAM地址最大为0EFFH,所以当寄存器指针DPTR指向的地址大于0EFFH时,系统会自动访问外部扩展RAM。

STC15W4K32S4单片机扩展RAM的应用及接口技术

STC15W4K32S4单片机内部包含有4KB数据存储器,除了基本RAM和扩充RAM共256B外,还有3840个扩展RAM单元,编址范围为000H~0EFFH。下面介绍这段空间的访问方法。

1.内部扩展RAM的访问

由于内部扩展RAM与外部扩展RAM地址重叠,寻址方式也相同,容易造成读/写错误。为了防止访问冲突,单片机设计了一个AUXR辅助寄存器来加以控制和区分。

AUXR辅助寄存器的字节地址为8EH,可位寻址,AUXR的格式如下:

978-7-111-51881-5-Chapter04-16.jpg

其中,EXTRAM位(即AUXR.1)控制片内扩展RAM和外部扩展RAM的访问。当EX-TRAM=0,允许访问内部扩展RAM;当EXTRAM=1,允许访问外部扩展RAM。

访问内部扩展RAM和外部扩展RAM都必须使用外部间接寻址方式,使用MOVX指令。

因此,利用设置辅助寄存器的AUXR.1位,可以选择当前是对内部或外部RAM的读/写操作控制。系统复位后AUXR.1=0,默认为访问内部扩展RAM。如图4-2所示,内部扩展RAM和外部扩展RAM最大访问地址均可达64KB(0000H~FFFFH)。

978-7-111-51881-5-Chapter04-17.jpg

图4-2 STC15W4K32S4单片机内部扩展RAM和外部扩展RAM

若要读出内部3FFH单元,先用寄存器指针DPTR指向3FFH,然后用MOVX指令读出:

978-7-111-51881-5-Chapter04-18.jpg

【例4-3】 如果要将片内RAM地址100H单元的数据复制到片内200H单元中,程序指令如下:

978-7-111-51881-5-Chapter04-19.jpg

因为内部扩展RAM地址最大为0EFFH,所以当寄存器指针DPTR指向的地址大于0EFFH时,系统会自动访问外部扩展RAM。(www.xing528.com)

2.双数据指针DPTR的使用

STC15单片机对于无外部数据/地址总线芯片,数据指针只有一个DPTR寄存器。

对于拥有外部数据/地址总线的单片机,内部设计了2个16位数据指针DPRT0和DPTR1,它们物理空间不同,但在逻辑操作时,只使用同一个DPTR寄存器作数据指针。也就是说,这2个数据指针使用同一个地址,可通过设置辅助寄存器AUXR1或P_SW1的DPS位来选择。

AUXR1(P_SW1)辅助寄存器的字节地址为0A2H,可位寻址,AUXR1的格式如下:

978-7-111-51881-5-Chapter04-20.jpg

其中,DPS位(即P_SW1.0)数据寄存器指针选择:当DPS=0时,选择使用DPRT0;DPS=1时,选择使用DPTR1。例如:

978-7-111-51881-5-Chapter04-21.jpg

AUXR1不可位寻址,但因为DPS在辅助寄存器的最低位,所以可通过对AUXR1寄存器自加1指令(INC)操作修改DPS位的值:当DPS为0时,对AUXR1自加1操作后DPS变为1;当DPS为1时,对AUXR1自加1操作后DPS变为0。操作指令为:INC AUXR1。

【例4-4】 内部数据存储器的诊断编程应用。

数据存储器每个字节的每一位都应该可以任意读/写,诊断的方法就是使每一位进行写“0”操作和写“1”的操作,并读取结果,验证是否写入成功。数据存储器的诊断有破坏性诊断与非破坏性诊断两种,非破坏性诊断可以在完成诊断任务的同时不破坏原有数据,以便随时进行。下面对内部扩展RAM的000H~EFFH地址空间进行非破坏性诊断,程序如下:

978-7-111-51881-5-Chapter04-22.jpg

978-7-111-51881-5-Chapter04-23.jpg

实际上,单片机上电复位后,系统默认EXTRAM=0,DPS=0。上述程序执行后,若F0=0则通过,若F0=1则有问题,表明内部单元地址已损坏。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈