2.3.1 80C51单片机的程序存储器配置
MCS-51系列的80C51单片机在芯片内部有4 KB的掩模ROM,87C51单片机在芯片内部有4 KB的EPROM,而80C31在芯片内部没有程序存储器,应用时要在单片机外部配置一定容量的EPROM。
1.芯片内、外程序存储器的选择
80C51单片机利用EA引脚信号来确定是运行片内ROM中的程序还是运行片外ROM中的程序。
(1)引脚接高电平
引脚接高电平时,对于基本型单片机,CPU将首先访问片内ROM,当指令地址超过0FFFH时,自动转向片外ROM取指令。片外ROM的地址从1000H开始编制,如图2-10所示。
图2-10 引脚接高电平
对于增强型单片机,CPU将首先访问片内ROM,当指令地址超过1FFFH时,自动转向片外ROM取指令。
(2)引脚接低电平
引脚接低电平时(接地),CPU只能访问片外ROM(对于80C31单片机,由于其芯片内部无程序存储器,只能采用这种接法)。芯片外部程序存储器的地址从0000H开始编址,如图2-11所示。
图2-11 引脚接低电平
2.程序存储器的几个特殊单元
程序存储器的一些地址被固定地用作特定的入口地址,如图2-12所示。
这些单元及用途如下。
0000H:单片机复位后的入口地址。
0003H:外部中断0中断服务子程序入口地址。
000BH:定时器/计数器T0溢出中断服务子程序入口地址。
0013H:外部中断1中断服务子程序入口地址。
001BH:定时器/计数器T1溢出中断服务子程序入口地址。
0023H:串行口中断服务子程序入口地址。
对于增强型单片机,002BH为定时器/计数器T2溢出或T2EX负跳变中断服务子程序入口地址。
0000H地址作为复位入口,通常放入一条转移指令,单片机复位后首先执行该指令,并进入主程序,如图2-13所示。执行主程序时,如果某一中断被允许,且CPU开放了中断,当该中断事件发生时,就会暂停主程序的执行,转去执行中断服务子程序。编程时,通常在该中断入口地址开始的两个或三个单元中放入一条转移指令,使相应的中断服务与实际分配的程序存储器区域中的程序段相对应(仅在中断服务程序较短时,才可以将中断服务程序直接放在相应的入口地址开始的几个单元中)。
图2-12 ROM低端的入口地址
图2-13 基本程序结构