单片机原理及应用系统设计
上QQ阅读APP看书,第一时间看更新

2.5.1 程序存储器

程序存储器用来存储程序和数据表。

1)STC片内程序存储器为FLASH存储器,采用ISP技术,通过串行口下载编程,快速简便。

STC89系列的不同型号,片内集成有4KB(89C51)、8KB(89C52)、12KB(89C53)、16KB(89C54)、32KB(89C58)、61KB(89C516)的FLASH存储器。当片内FLASH存储器不够用时,可在片外扩展程序存储器,最多可扩展至64KB程序存储器。

2)程序存储器分片内和片外两部分,访问片内的还是片外的程序存储器,由EA∗脚电平确定。

当EA∗=1时,CPU从片内0000H开始取指令,当程序计数器值大于片内FLASH范围时,自动转向读片外程序存储器空间的程序。

当EA∗=0时,只执行片外程序存储器(0000H~FFFFH)中的程序。不理会片内4 KB FLASH存储器。

3)程序存储器某些固定单元用于各中断源中断服务程序入口。

STC89系列单片机有8个特殊单元,分别对应于8个中断源的中断入口地址,见表2-3。普通的8051单片机只有表中的前5个中断,STC89系列单片机增加了T2、/INT2和/INT3,使用户有了更多的选择。

表2-3 STC89系列中断入口地址

中断入口地址,实际上就是中断服务程序的起始地址。因为两个中断入口间隔仅有8个单元,如果直接存放中断服务子程序,往往不够用。通常汇编指令编程时,在中断入口地址处都放一条跳转指令跳向对应的中断服务子程序,而不是直接存放中断服务子程序。在使用C51语言编程时,用户只需正确书写中断函数即可,C51编译时会自动处理中断程序入口的问题。