STC单片机的内部RAM容量有限,一般为128~512B,有的扩展到4KB。当内部RAM不够用时,可以选择内部RAM容量更大的单片机或内部集成了Data Flash的单片机。如果系统需要海量存储器时,就必须扩展外部数据存储器。
扩展外部数据存储器可采用并行方式扩展,也可采用串行方式扩展。并行方式扩展时需要消耗很多I/O口线,最大可扩展64KB的外部数据存储器,但这对很多实际应用来说已足够了。串行方式扩展数据存储器,需要使用的I/O口线少,接口电路简单,可扩展的容量也比前者大,但数据读/写速度比前者慢。
对外部并行数据存储器的访问用MOVX指令,采用间接寻址方式,由R0、R1和DPTR作间址寄存器。对外部串行数据存储器采用I2C或SPI总线方式进行访问。
至此,本节已对STC单片机的存储结构进行了详细讲述,现对数据存储器和程序存储器的使用总结如下:
1)地址的重叠性。数据存储器和程序存储器分别编址,编址的64KB空间完全重叠。数据存储器中片内、片外地址是重叠的。虽然它们的地址编码重叠,为什么不会产生数据访问混乱呢?这是因为单片机对不同的存储器空间进行数据访问时,采用了不同的操作指令,这些会选择或自动区分重叠的存储空间,用户不必考虑地址冲突问题。(www.xing528.com)
2)数据存储器(RAM)和程序存储器(ROM)在操作使用上是严格区分的,不同的操作指令不能混用。程序存储器只能存储程序指令及表格常数,除了程序的运行控制外,其操作指令不分片内、片外。程序存储器地址使用MOVC指令。而数据存储器访问,对片内数据RAM的操作使用MOV指令,对片外数据RAM的操作则使用MOVX指令,并用RD、WR信号来控制。
3)位地址空间有2个区域,一个区域是片内基本RAM区中的20H~2FH,共16个单元128位;另一个区域是SFR中的位地址,共有16个寄存器的可位寻址。这些位寻址单元与位指令集,以及PSW中的进位Cy位,构成了位处理器系统。
4)在片外数据存储器空间中,存储单元与外部扩展的I/O端口是统一编址的。因此,在单片机应用系统中,所有外围扩展I/O口的地址均占用RAM地址单元,外部I/O口的访问方法与外部存储器单元的读写方式相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。