程序存储器由只读存储器ROM、EPROM或Flash组成,是存储单片机应用程序和表格常数的存储空间。单片机工作时,从程序存储器中取出一条指令执行。为了有序地执行程序,设置了一个16位专用寄存器(PC程序计数器),用来存储将要执行的指令地址。因此,可寻址的地址空间为64KB。程序存储器起始地址从0000H开始编址,最大地址可至FFFFH。程序存储器的使用应注意以下三点:
1)STC15W4K32S4系列单片机的程序存储器使用Flash,其容量比较大,程序存储空间只能在片内,不能扩展片外程序存储器,CPU只能访问片内的程序存储器。
2)IAP15W4K32S4单片机的Flash程序存储器空间主要存放用户的应用程序,但多余的空间也可用作E2PROM数据存储器(即Data Flash),通过IAP在线应用可编程功能实现对程序存储器空间的数据参数的修改。
3)中断向量地址。单片机至少有21个中断向量地址,规定在程序存储器0000H~00AFH地址之间有21个特殊地址被固定用于21个中断源的中断服务程序入口地址。
当单片机复位后,程序存储器PC的内容为0000H,引导系统从0000H开始读取指令执行程序。程序存储器中的0000H地址是单片机系统的启动地址。因此,为了不错误闯入中断向量地址,在0000H地址应存储一条绝对跳转指令,以便转入到系统主程序的入口地址开始执行程序,这点要牢记。部分中断服务程序入口地址见表2-2。(www.xing528.com)
表2-26 种中断源的中断服务程序入口地址
实际应用中,在这些中断入口地址上要存储一条绝对跳转指令,以便转入到中断服务子程序的入口地址,而不是存储中断服务子程序。因为在两个中断入口地址之间只相隔8个地址单元,一般不够存储中断服务子程序。这样,才不至于影响其他中断子程序的设置。当然,如果中断服务子程序很短(只有几字节),也可以直接将中断子程序从固定的中断入口地址开始存储。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。