或有特殊要求或为了以后升级方便采用大容量的片外程序存储器。当外接程序存储器的时候,单片机通过P2口和P0口输出16位的地址,即可寻址的外部程序存储器单元的地址,使用ALE作为低8位地址锁存器信号,再由P0口读回指令的代码,用PSEN非作为外部程序存储器的选通信号。单片机有一个程序计数器PC,它始终存着CPU要读取的机器码的所在地址,单片机工作时,PC自动加一,此时程序开始顺序执行,因为单片机程序访问空间是64K,故需要16条地址线,当接“0”则8031在片外程序存储器中读取指令,此时片外程序存储器从0000H开始编址,因为8031无片内程序存储器,故在此系统中必须接地使CPU到外部ROM中去寻址。在程序存储器中有六个单元有特定的含义:0000H单元:单片机复位后,PC0000H即从此处开始执行指令;0003H单元:外部中断0入口地址;000BH单元:定时器0溢出中断入口地址;0013H单元:外部中断1入口地址;001BH单元:定时器溢出中断入口地址;0023H单元:串行口中断入口地址。
f(3)8031数据存储器数据存储器用于存放运算中间的结果、数据暂存、缓冲、标志位、待测程序等功能。片内的128B的RAM地址为00H~7FH,供用户做RAM用,但是在这中间的前32单元,00H~1FH即引用地址寻址做用户RAM用,常常做工作寄存器区,分做四组,每组由8个单元组成通用寄存器R0~R7,任何时候都由其中一组作为当前工作寄存器,通过RS0,RS1的内容来决定选择哪一个工作寄存器。低128字节中的20H~2FH共16字节可用位寻址方式访问各位,共128个位地址,30H~7FH共80个单元为用户RAM区,作堆栈或数据缓冲用,片内RAM不够用时,须扩展片外数据存储器。此时单片机通过P2口和P0口选出6位地址,使用ALE作低8位的锁存信号,再由P0口写入或读出数据。写时用,读时用做外部数据存储器的选通信号。(4)特殊功能寄存器SFR8031有21个专用寄存器,他们是用来管理CPU和IO口以及内部逻辑部件的,在指令中专用寄存器是以存储单元方式被读写的,专用寄存器虽有名称,但寻址时都做专用寄存器用,它们的地址是与片内RAM的地址相连的。下面就专用寄存器作以简单的介绍:累加器A:在绝大多数情况下它参与运算的一方并存放运算的结果。寄存器B:进行乘除运算时,寄存器B有特定的用途,在乘时存放一个乘数以及积的最高位,A中存放另一个乘数以及积的低位。除法时,B中存放除数及余数,而在A中存放被除数和商,其他情况可作为普通寄存器用。堆栈指针SP:在子程序r