文章目录
- 前言
- 一、CPU
- 二、存储器
- 1.存储器结构
- 2.物理上有4个存储器地址空间
- 3.逻辑上有3个存储器地址空间
- 4.程序存储器
- 5.程序存储器中的几个特殊地址的使用
- 三、外部数据存储器
- 四、内部数据存储器
- (1)内部RAM——寄存器区(地址为0~1FH的前32个单元)
- (2)内部RAM——位寻址区
- (3)内部RAM——用户RAM区
- (4)堆栈区
- 五、特殊功能寄存器
- 六、时钟电路
- 七、单片机的时序单位
- 八、复位电路
- (1)复位的作用
- (2)几个重要的复位状态:
- 九、引脚功能
- 总结
前言
51系列单片机包括下列部件
1个8位CPU
1个片内振荡器及时钟电路
4KB ROM程序存储器
128B RAM数据存储器
可寻址64KB外部数据存储器和64KB外部程序存储器的控制电路
32条可编程的I/O线(4个8位并行I/O接口)
两个16位的定时/计数器
1个可编程全双工串行接口
5个中断源和两个优先级嵌套中断结构
一、CPU
CPU是单片机的核心部件。它由运算器和控制器等部件组成。
-
运算器
运算器的功能是进行算术运算:加、减、乘、除、加1、减1、比较、BCD码十进制调整等
逻辑运算:与、或、异或、求反、循环等逻辑操作
位操作:内部有布尔处理器,它以进位标志位C为位累加器,用来处理位操作。可对位置 “1”、对位清零 、位判断等。
操作结果的状态信息送至状态寄存PSW。2.程序计数器PC(注:PC是不可以被用户寻址) 程序计数器PC是16位的寄存器,用来存放即将要执行的指令地址,可对64KB程序存储器直接寻址。执行指令时,PC内容的低8位经P0口输出,高8位经P2口输出。
3.指令寄存器 指令寄存器中存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送入指令存储器,经指令译码器译码后由定时与控制电路发出相应的控制信号,完成指令功能。
二、存储器
1.存储器结构
MCS-51的储存器结构与常见的微型计算机的配置方法不同,主要特点是:程序存储器和数据存储器的寻址空间是分开的,各有自己的寻址方式、控制信号和功能。
前面我们讲到了51单片机有64KB的程序存储器,其中呢有4KB的程序存储器0000H~0FFFH的4KB地址范围是在单片机的片内还是片外,由EA引脚决定
存储器映像图。
程序存储器用来存放程序和始终要保留的常数。
数据存储器存放程序运行中所需要的常数和变量。
程序计数器PC是16位的寄存器,用来存放即将要执行的指令地址,可对64KB程序存储器直接寻址。执行指令时,PC内容的低8位经P0口输出,高8位经P2口输出。
2.物理上有4个存储器地址空间
3.逻辑上有3个存储器地址空间
4.程序存储器
程序存储器用来存放编制好的始终保留的固定程序和表格常数。程序储存器以程序计数器 PC 作为地址指针,通过16位地址总线,可寻址的地址空间为64KB。
对于内部无ROM的单片机,如8031单片机,必须外部扩展程序存储器,地址从0000H~FFFFH都是外部程序存储空间,/EA 应始终接地。
对于内部有ROM的单片机,/EA引脚可接高电平,使程序从内部ROM开始执行。当PC值超出内部ROM的容量时,会自动转向外部程序存储器空间。外部程序存储器地址空间为1000H~FFFFH;/EA引脚也可接低电平,此时内部ROM将不起作用。
5.程序存储器中的几个特殊地址的使用
三、外部数据存储器
用于存放随机读写的数据。
MCS-51单片机的外部数据存储器和外部I/O口实行统一编址,最多可扩展64KB外部数据存储器。
四、内部数据存储器
前面我们说到,51单片机有128B 的数据存储器,即128个字节的数据存储器
那么让我们来看看是怎么区分的
内部数据存储器是使用最多的地址空间,存放随机读写的数据,分为:通用寄存器区、堆栈区、运算操作数存放区
那么有同学就有疑问了,51不是只有128B的内部数据存储器,哪来的高128单元,原因是我们现在是用的52即增强型的了,所以讲的也是52的了
注: 对51基本型单片机只有00H-7FH单元128字节的RAM区。对52增强型的单片机还有80H-FFH组成的高128字节RAM区(共256字节RAM )。
(1)内部RAM——寄存器区(地址为0~1FH的前32个单元)
内部RAM的前32个单元,共分为4组,每组含8个寄存器,在组中按R7~R0编号,地址从00H~1FH。
CPU使用哪一组寄存器,由程序状态字中的RS0、RS1的设置来决定。
初始化时或复位时,自动选中0组。
一旦选中一组,其它三组只能作为数据存储器使用,而不能作为寄存器使用。
设置多组寄存器可以方便保护现场。
(2)内部RAM——位寻址区
片内20H~2FH字节单元,即可作为一般的RAM区使用进行字节操作,也可以对单元中的每一位进行位操作,共有16个字节寻址单元,按位计算有128位,位地址为:00H~7FH
例:清除位地址00H单元
CLR 00H ;对某位清0
MOV 20H, #00H ;
或 AND 20H, #0FEH
(3)内部RAM——用户RAM区
除选中的寄存组以外的存储器均可以作为通用RAM区。
单元地址为30H~7FH。共80个字节单元。
注意:对于用户RAM区,只能以存储单元(字节地址)的形式来使用,一般用作堆栈区。
(4)堆栈区
8XX51单片机的堆栈设在内部RAM区,深度不大于128字节,初始化时SP指向07H。
注: 对51基本型单片机只有00H-7FH单元128字节的RAM区。对52增强型的单片机还有80H-FFH组成的高128字节RAM区(共256字节RAM )。
五、特殊功能寄存器
专用寄存器:做为专门规定的、有特定的用途寄存器。也就是用于存放相应部件的控制命令、状态、或者数据的寄存器,共22个专用寄存器,其中有21个为可寻址的 。 特殊功能寄存器用英文缩写SFR (Special Fuction Register)表示。 具体见下表,表中标注了各SFR的名称、字节地址、可寻址位的位地址和位名称。
21个特殊功能寄存器的名称及主要功能介绍如下,详细的用法见后面各节的内容。
A—累加器,自带有全零标志Z,A=0则Z=1;A≠0则Z=0。该标志常用于程序分支转移的判断条件。
B—寄存器,常用于乘除法运算。
PSW—程序状态字。主要起着标志寄存器的作用,其8位定义如下。
CY:进/借位标志
反映最高位的进位借位情况,加法为进位、减法为借位。
CY=1,有进/借位 ; CY=0,无进/借位。
AC:辅助进/借位标志
反映高半字节与低半字节之间的进/借位,
AC=1有进/借位; AC=0无进/借位 。
FO:用户标志位。可由用户设定其含义。
RS1,RS0:工作寄存器组选择位。
OV:溢出标志
反映补码运算的运算结果有无溢出
有溢出 OV=1,无溢出OV=0。
(计算机中设立了溢出标志位OV,通过最高位的进位(符号位的进位CY和次高位的进位CY-1异或产生))
例如
溢出OV:两个补码数相加时结果超出补码表示范围而产生
进位CY:当运算结果超出计算机位数的限制(8位,16位),会产生进位,他是由最高位计算产生的,在加法中表现为进位,在减法中表现为借位。
-:无效位。
P:奇偶标志
运算结果有奇个“1”,P=1;运算结果有偶个“1”,P=0。
SP—堆栈指针。8XX51单片机的堆栈设在片内RAM,
对堆栈的操作包括压入(PUSH)和弹出(POP)两种方式,并且遵循先进后出、后进先出的原则,同时,SP指向的存储内容总是有用的,地址的生产方向是向上(高地址)生成,操作时先修改SP,后压栈或出栈,并按字节进行操作。
DPTR——数据指针寄存器
用来存放16位地址值,以便用间接寻址或变址寻址片外存储器。DPTR可分成DPL和DPH两个8位寄存器分别使用。
P0、P1、P2、P3——I/O端口寄存器
是四个并行I/O端口映射入SFR中的寄存器。通过对该寄存器的读/写,可实现从相应I/O端口的输入/输出。
例如:
指令 MOV P1,A 实现了把A累加器中的内容从P1端口输出的操作;
指令MOV A,P3 实现了把P3端口线上的信息输入到A中的操作。
此外还有如下寄存器,它们将在后面章节介绍:
IP——中断优先级控制寄存器。
IE——中断允许控制寄存器。
TMOD——定时器/计数器方式控制寄存器。
TCON——定时器/计数器控制寄存器。
TH0、TL0——定时器/计数器0。
TH1、TH1——定时器/计数器1。
SCON——串行端口控制寄存器。
SBUF——串行数据缓冲器。
PCON——电源控制寄存器。
注: 在52子系列中,高128字节RAM和SFR的地址是重叠的,究竟访问哪一块可通过不同的寻址方式加以区分,访问高128字节RAM采用寄存器间址,****访问SFR则只能采用直接寻址(易错),访问低128字节RAM时,两种寻址均可采用。
六、时钟电路
单片机的时钟信号用来提供单片机内各种微操作时间基准,8XX51单片机的时钟信号通常有两种电路形式:
内部振荡方式和外部振荡方式。
★电容器C01、C02起稳定振荡频率、快速起振的作用。电容值一般为 5~30PF。
外部振荡方式是把已有的时钟信号引入单片机。这种方式适宜用于使单片机的时钟与外部信号保持一致。外部振荡方式如图1-4所示。
七、单片机的时序单位
单片机的时序单位有:
振荡周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。单片机工作的基本频率信号,是单片机内的最高频率,由单片机振荡电路产生或外部振荡电路提供;
振荡周期(或时钟周期):Tosc=1/fosc
状态周期:振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2个振荡周期。
状态时间:S=2Tosc
机器周期(MC):1个机器周期由6个状态周期及12个振荡周期组成。是计算机执行一种基本操作的时间单位。
机器周期=12Tosc
指令周期:指令周期是执行一条指令所需要的时间,指令周期是以机器周期的倍数来表示。如单周期、双周期和四周期指令等
例:单片机外接晶振频率12MHZ时的各种时序单位:
振荡周期=1/fosc=1/12MHZ=0.0833us
状态周期=2/fosc=2/12MHZ=0.167us
机器周期=12/fosc=12/12MHZ=1us
指令周期=(1~4)机器周期=1~4us
八、复位电路
复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。复位操作通常有2种基本形式:上电复位 和 开关复位
上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行过程中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择
C=10uf
(1)复位的作用
①得到一个可知的上电状态;
②工作时可随时重新初始化硬件,重新开始;
③协调多个器件同步工作;
④电源稳定后再工作,靠复位来确定单片机开始工作;
⑤在上电后控制程序开始的准确时间;
(2)几个重要的复位状态:
PC = 0000H
P0、P1、P2、P3 = 0FFH
PSW= 00H
SP = 07H
九、引脚功能
8XX51单片机有44引脚的
方形封装形式和40个引脚的双
列直插式封装形式,最常用的
40个引脚封装,见图1-6.
总结
本章我们讲到了,51单片机的结构,这也是最基本的知识,毕竟硬件决定物理世界,有哪些硬件决定能实现哪些功能,只有了解底层的硬件结构,才能让我们更好地编写代码。所以说本章可以说是重中之重,知识点也多,注意辨析。把这一章看懂了,说明51单片机入门了。