1、8051单片机内部结构和功能
1.中央处理器CPU
(1)运算器
1) 算术逻辑单元ALU(Arithmetic Logic Unit)
2) 累加器ACC (Accumulator)
3) 寄存器B
4) 程序状态字PSW(ProgramStatusWord)
程序状态字PSW是一个8位特殊功能寄存器,它的各位包含了程序运行的状态信息,以供程序查询和判断。PSW程序状态字格式和含义如下:
②AC(PSW.6) 辅助进位(或称半进位)标志。当执行加减运算时,运算结果产生低四位向高四位进位或借位时,AC由硬件置“1”;否则AC位被自动清“0”。
③F0(PSW.5) 用户标志位。用户可根据自己的需要对F0位赋予一定的含义,由用户置位或复位,作为软件标志。
④RSl和RS0(PSW.4,PSW.3) 工作寄存器组选择位。这两位的值决定选择哪一组工作寄存器为当前工作寄存器组。由用户通过软件改变RSl和RS0值的组合,以切换当前选用的工作寄存器组。其组合关系如表2-1所示
⑤OV(PSW.2) 溢出标志位。它反映运算结果是否溢出,溢出时则由硬件将OV位置“1”,否则置“0”。
⑥F1(PSW.1) 用户标志位,同F0(PSW.5)。
⑦P(PSW.0) 此位为奇偶标志位。P标志表明累加器ACC中1的个数的奇偶性。在每条指令执行完后,单片机根据ACC的内容对P位自动置位或复位。若累加器ACC中有奇数个“1”,则P=1;若累加器ACC中有偶数个“1”,则P=0。
5) 布尔处理器
MCS-51的CPU是8位微处理器,它还具有1位微处理器的功能。布尔处理器具有较强的布尔变量处理能力,以位(bit)为单位进行运算和操作。它以进位标志(Cy)作为累加位,以内部RAM中所有可位寻址的位作为操作位或存储位,以P0~P3的各位作为I/O位,同时布尔处理器也有自己的指令系统。
(2)控制器
1) 程序计数器PC
2) 数据指针DPTR
2.定时器/计数器
8051单片机内有两个16位的定时器/计数器:定时器/计数器0和定时器/计数器1。
3.串行口
单片机内部有一个串行数据缓冲寄存器SBUF,它是可直接寻址的特殊功能寄存器,地址为99H。
4.中断系统
2、存储器结构
8051单片机在系统结构上采用哈佛型,其配置如图2所示。
程序存储器用来存放程序代码和常数,分成片内、片外两大部分,即片内ROM和片外ROM。其中,8051内部有4KB的ROM,地址范围为0000H~0FFFH,片外用16位地址线扩充64KB的ROM,两者统一编址。
2.片内数据存储器
数据存储器用来存放运算的中间结果、标志位,以及数据的暂存和缓冲等。它也分为片内和片外两大部分,即片内RAM和片外RAM。8051片内数据存储器最大可寻址256个单元,通常把这256个单元按功能划分为低128单元(单元地址00H~7FH)和高128单元(单元地址80H~0FFH),结构如图2-3。
片外数据存储器,即片外RAM,一般由静态RAM芯片组成。用户可根据需要确定扩展存储器的容量,MCS-51单片机访问片外RAM可用1个特殊功能寄存器——数据指针寄存器DPTR寻址。由于DPTR为16位,可寻址的范围为0~64KB。因此,扩展片外RAM的最大容量是64KB。
4.堆栈及堆栈指针
堆栈是一种数据结构,所谓堆栈就是只允许在其一端进行数据插入和数据删除操作的线性表。