3. 2. 2. 3 8031程序存储器
MCS-51系列单片机的内部ROM是不同的,8051有4K的ROM,而8751则是4K光可擦写EPROM,而我们所采用的8031则没有片内的ROM,但是无论那种型号的芯片都可以在片外扩展多达64K的片外程序存储器,外部程序存储器扩展的大小以满足系统要求即可,或有特殊要求或为了以后升级方便采用大容量的片外程序存储器。当外接程序存储器的时候,单片机通过P2口和P0口输出16位的地址,即可寻址的外部程序存储器单元的地址,使用ALE作为低8位地址锁存器信号,再由P0口读回指令的代码,用PSEN非作为外部程序存储器的选通信号。
单片机有一个程序计数器PC,它始终存着CPU要读取的机器码的所在地址,单片机工作时,PC自动加一,此时程序开始顺序执行,因为单片机程序 访问空间是64K,故需要16条地址线,当 接“0”则8031在片外程序存储器中读取指令,此时片外程序存储器从0000H开始编址,因为8031无片内程序存储器,故在此系统中 必须接地使CPU到外部ROM中去寻址。
在程序存储器中有优个单元有特定的含义:
0000H单元:单片机复位后,PC=0000H即从此处开始执行指令。
0003H单元:外部中断0入口地址。
000BH单元:定时器0溢出中断入口地址。
0013H单元:外部中断1入口地址。
001BH单元:定时器溢出中断入口地址。
0023H单元:串行口中断入口地址。
使用时常在这些入口外安放一条绝对跳转指令,使程序跳转到拥护安排的中断处理程序的起始地址,或从0000H外执行一跳转指令,跳转到用户设计的初始程序入口。
3. 2. 2. 4 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口写入或读出数据。写时用 ,读时用 做外部数据存储器的选通信号
3. 2. 2. 5 特殊功能寄存器SFR
8031有21个专用寄存器,他们是用来管理CPU和I/O口以及内部逻辑部件的,在指令中专用寄存器是以存储单元方式被读写的,专用寄存器虽有名称,但寻址时都做专用寄存器用,它们的地址是与片内RAM的地址相连的。下面就专用寄存器作以简单的介绍:
累加器A:在绝大多数情况下它参与运算的一方并存放运算的结果。
寄存器B:进行乘除运算时,寄存器B有特定的用途,在乘时存放一个乘数以及积的最高位,A中存放另一个乘数以及积的低位。除法时,B中存放除数及余数,而在A中存放被除数和商,其他情况可作为普通寄存器用。
堆栈指针SP:在子程序调用或中断时,用来暂存数据和地址,它按先进后出的原则存储数据,它是一个八位寄存器它指出堆栈顶部在片内RAM中的位置,系统复位后,SP变成07H,使堆栈从00单元开始。;
数据指针DPTR:由两个字节组成,DPH字地址由83H,DPL由82H,存放一个16位的二进制数做地址用。
程序状态字PSW:七位用来表征各种标志,另一位无意义。
C AC FO RS1 RS0 OV -- P
C:进位标志位,用于表示加减运算时最高位有无进位和借位,在加法运算中,若累加器最高位有进位则CY=1,否则CY=0,在减法时则有借位CY=1,否则CY=0,在执行算术逻辑运算时可以被硬件或软件置位或清除,CPU在进行移位操作也会影响该位。
AC:当进行加法或减法运算时并产生由低四位向高四位的进位或借位时,AC置1,否则清0。若AC=0时则在加减过程中A3没有向A4进位或借位,否则正好相反。
F0:F0常不是由机器来指令执行中形成的,而是用户根据程序的需要进行设置的,这个位一经确定就可通过软件测试来决定用户程序的流向。
RS1,RS0:8031有四个8位工作寄存器R0~R7,用户可以改变RS1和RS0的状态来决定R0~R7的物理地址。
OV:用以指示运算是否发生溢出,由机器执行指令自动形成,若机器在执行指令过程中累加器A超过8位,则OV=1否则为0。
P:用来来表示累加器A中的值为1的二进制位的奇偶数,若‘1’的个数为奇
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页