当前位置:文档之家› 单片机内部主要部件

单片机内部主要部件

1.2 单片机内部主要部件单片机内部电路比较复杂,MCS-51系列的8051型号单片机的内部电路根据功能可以分为CPU、RAM、ROM/EPROM、并行口、串行口、定时/计数器、中断系统及特殊功能寄存器(SFR)等8个主要部件,如图1-2-1所示。

这些部件通过片内的单一总线相连,采用CPU加外围芯片的结构模式,各个功能单元都采用特殊功能寄存器集中控制的方式。

其他公司的51系列单片机与8051结构类似,只是根据用户需要增加了特殊的部件,如A/D转换器等。

在设计程序过程中,寄存器的使用非常频繁。

本节内容在了解单片机内部的组成机构基础上,重点介绍单片机内部常用的寄存器的作用。

图1-2-1 MCS-51架构1.2.1中央处理器(CPU)中央处理器是单片机的核心,主要功能是产生各种控制信号,根据程序中每一条指令的具体功能,控制寄存器和输入/输出端口的数据传送,进行数据的算术运算、逻辑运算以及位操作等处理。

MCS-51系列单片机的CPU字长是8位,能处理8位二进制数或代码,也可处理一位二进制数据。

单片机的CPU从功能上一般可以分为运算器和控制器两部分。

一、控制器控制器由程序计数器PC、指令寄存器、指令译码器、定时控制与条件转移逻辑电路等组成。

其功能是对来自存储器中的指令进行译码,通过定时电路,在规定的时刻发出各种操作所需的全部内部和外部的控制信号,使各部分协调工作,完成指令所规定的功能。

各部分功能部件简述如下。

1.程序计数器PC(Program Counter)程序计数器是一个16位的专用寄存器,用来存放下一条指令的地址,具有自动加1的功能。

当CPU要取指令时,PC的内容送地址总线上,从存储器中去取出一个指令码后,PC 内容自动加1,指向下一个指令码,以保证程序按顺序执行。

PC是用来指示程序的执行位置,在顺序执行程序时,单片机每执行一条指令,PC就自动加1,以指示出下一条要取的指令的存储单元的16位地址。

也就是说,CPU总是把PC 的内容作为地址,根据该地址从存储器中取出指令码或包含在指令中的操作数。

因此,每当取完一个字节后,PC的内容自动加1,为取下一个字节做好准备。

由于51系列单片机的寻址范围为64K,所以,PC中数据的编码范围为0000H~FFFFH,共64K。

单片机上电或复位时,PC自动清0,即装入地址0000H,这就保证了单片机上电或复位后,程序从0000H 地址开始执行。

2.指令寄存器IR(Instruction Register)指令寄存器是一个8位寄存器用于暂存待执行的指令,等待译码。

3.暂存器TMP用于暂存进入运算器之前的数据。

4.指令译码器ID(Instruction Decoder)指令译码器是对指令寄存器中的指令进行译码,将指令变为执行此指令所需要的电信号。

根据译码器的输出信号,再经定时电路定时产生执行该指令所需要的各种控制信号。

5.数据指针DPTR(Data Pointer)数据指针是一个16位的专用地址指针寄存器,主要用来存放16位地址,作间址寄存器,访问片外64K字节的数据存储器和I/O端口及程序存储器。

由两个独立的特殊功能寄存器组成,分别为DPH(高8位)和DPL(低8位),占据83H和82H两个地址。

DPTR与PC不同,DPTR有自己的地址,可以进行读写操作,而PC没有地址,不能对它进行读写操作,但可以通过转移、调用、返回编程操作改变其内容,从而实现程序的转移。

二、运算器运算器主要进行算术和逻辑运算。

运算器由算术逻辑单元ALU、累加器ACC、程序状态字PSW、BCD码运算电路、通用寄存器B和一些专用寄存器及位处理逻辑电路等组成。

1.算术逻辑单元ALU(Arithmetic Logic Unit)ALU由加法器和其他逻辑电路等组成,完成数据的算术逻辑运算、循环移位、位操作等,参加运算的两个操作数,一个由A通过暂存器2提供,另外一个由暂存器1提供,运算结果送回A,状态送PSW。

2.累加器ACC(Accumulator)累加器是一个8位特殊功能寄存器,简称A,通过暂存器与ALU传送信息,用来存放一个操作数或中间结果。

3.程序状态字PSW(Program Status Word)PSW也是一个8位的特殊功能寄存器,用于存储程序运行过程中的各种状态信息。

4.其他部件暂存器用来存放中间结果,B寄存器用于乘法和除法时,提供一个操作数,对于其他指令,只用作暂存器。

5.位处理器单片机能处理布尔操作数,能对位地址空间中的位直接寻址,进行清零、取反等操作,这种功能提供了把逻辑式(随机组合逻辑)直接变为软件的简单明了的方法,不需要过多的数据传送、字节屏蔽和测试分支,就能实现复杂的组合逻辑功能。

位处理器是单片机的一个特殊组成部分,具有相应的指令系统,可提供17条位操作指令。

硬件上有自己的“累加器”和自己的位寻址RAM、I/O口空间,是一个独立的位处理器,位处理器和8位处理器形成完美的组合。

1.2.2存储器单片机内部包含随机存取存储器RAM和程序存储器ROM,RAM用于保存单片机运行的中间数据;单片机的ROM不只是用来装载程序,增强51系列也可以在单片机运行过程中利用程序把数据存贮在ROM的部分空间内。

51系列单片机在系统结构上采用哈佛结构(Harvard architecture),即程序存储器和数据存储器的寻址空间是分开管理的。

它共有4个物理上独立的存储器空间,即内部和外部程序存储器及内部和外部数据存储器。

从用户的角度看,单片机的存储器逻辑上分为三个存储空间,见图1-2-2所示,即统一编址的64KB的程序存储器地址空间(包括片内ROM和外部扩展ROM),地址从0000H—FFFFH;256B 的片内数据存储地址空间(包括128B的片内RAM和特殊功能寄存器的地址空间);64KB 的外部扩展的数据存储器地址空间。

图中EA是单片机的程序扩展控制引脚。

一、单片机的RAM51单片机芯片中共有256个字节的RAM单元,但其中128个字节被专用寄存器占用,能作为存储单元供用户使用的只是前128B,用于存放可读写的数据。

因此通常所说的内部数据存储器就是指前128B,简称片内RAM。

在程序比较复杂,且运算变量较多而导致51内部RAM不够用时,可根据实际需要在片外扩展,最多可扩展64KB,但在实际应用中如需要大容量RAM时,往往会利用增强型的51单片机而不再扩展片外RAM。

增强型的51系列单片机如52和58子系列分别有256 B和512B的RAM。

00H7FH80H0000HFFFFH地址地址图1-2-2 51单片机的存储器空间分布51单片机片内128B RAM根据功能又划分为工作寄存器区(地址00H—1FH),位寻址区(地址20H—2FH),一般RAM区(地址30H—7FH)和堆栈区(地址2FH以后),其中位寻址区共16字节128个单元。

51单片机共有21个特殊功能寄存器(Special Function Register,SFR),它是片内RAM 的一部分。

特殊功能寄存器用于对片内各功能模块进行监控和管理,是一些控制寄存器和状态寄存器,与片内RAM单元统一编址。

二、内部程序存储器(内部ROM)51单片机共有4 KB的ROM,单片机的生产商不同,内部程序存储器可以是EEPROM 或Flash ROM。

可根据实际需要在片外扩展,最多可扩展64KB。

增强型的51单片机内部ROM空间可以达到64KB,在使用时不须再扩展片外ROM。

数据存储器、程序存储器以及位地址空间的地址有一部分是重叠的,但在具体寻址时,可由不同的指令格式和相应的控制信号来区分不同的地址空间,因此不会造成冲突。

1.2.3 单片机的其它部件51单片机还有定时器/计数器,并行I/O口,串行口,中断系统,时钟电路等部件。

51单片机有两个16位的定时/计数器,具有4种工作方式,以实现定时或计数功能,并以其定时或计数结果对系统进行控制;51单片机共有4个8位的I/O口(P0、P1、P2、P3口),表现在单片机外部共有32条引脚,内部与寄存器连接,以实现数据的并行输入/输出。

51单片机有一个全双工的串行口,具有4种工作方式,以实现单片机和其它设备之间的串行数据传送。

该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。

为满足控制应用的需要,51单片机共有5个中断源,即外部中断两个,定时/计数中断两个,串行口中断一个。

全部中断分为高级和低级两个优先级别。

时钟电路为单片机产生时钟脉冲序列。

51单片机芯片的内部有时钟电路,但石英晶体和微调电容需外接,系统常用的晶振频率一般为6 MHz或12 MHz。

从上面的介绍可以看出,51系列单片机虽然只是一个芯片,但作为计算机应该具有的基本部件它都包含,实际上单片机就是一个基本的微型计算机系统。

增强型51系列与51系列单片机完全兼容,但内部资源在51基础上有所增加,如52子系列片内ROM从4 KB增加到8 KB,片内RAM从128 B增加到256 B,定时/计数器从2个增加到3个,中断源从5个增加到6个,功能的增强大大拓展了8位单片机的应用空间。

STC8951RC系列为增强51系列单片机,表1-2-1给出了STC89系列常用的几种单片机内部资源,由于此类型单片机支持串口在线下载,并且有低功耗、速度快、稳定可靠性、价格低等优点,因此本书实例将重点以STC8951为例说明。

表1-2-1 STC89系列单片机内部资源1.2.4特殊功能寄存器特殊功能寄存器(Special Function Register)是通过专门规定而且具有特定用途的RAM 部分,它是单片机内部很重要的部件。

特殊功能寄存器能综合反映单片机系统内部的工作状态和工作方式,其中一部分作内部控制用,如定时器/计数器和串行口的控制,如果改变控制寄存器的状态就可以改变其功能,使得单片机内部硬件的控制以可编程的形式体现51系列单片机内部堆栈指针SP、累加器A、程序状态字PSW以及I/O锁存器、定时器、计数器以及控制寄存器和状态寄存器等都是特殊功能寄存器,和片内RAM统一编址,分散占用80~FFH单元,共有21个,增强型的52系列单片机则有26个,表1-2-2列出了单片机的特殊功能寄存器名称、标识符和对应的字节地址,其中含有52系列的寄存器T2,T2CON 等。

在单片机C语言编程应用中,单片机的特殊功能寄存器标识符经常用到。

下面只介绍其中部分寄存器,一些控制寄存器会在单片机内部资源编程应用中详细介绍。

表1-2-2 特殊功能寄存器一、累加器ACC/A(Accumulator)累加器A为8位寄存器,是最常用的专用寄存器,功能较多,使用最为频繁。

它既可用于存放操作数,也可用来存放运算的中间结果。

51系列单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。

相关主题