mcs51单片机的详细组成Word文档格式.docx
- 文档编号:19492695
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:26
- 大小:174.66KB
mcs51单片机的详细组成Word文档格式.docx
《mcs51单片机的详细组成Word文档格式.docx》由会员分享,可在线阅读,更多相关《mcs51单片机的详细组成Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
八、重要功能
(1)可以寻址64KB的片外ROM和64KB的片外RAM;
(2)具有位操作功能(逻辑处理)的位寻址功能。
2-2CPU的结构
CPU是单片机的核心,它由两大部分所组成:
运算器和控制器。
一、运算器
1、算术/逻辑部件:
(1)完成算术运算。
如:
加、减、乘、除运算;
(2)完成逻辑运算。
与、或、非、异或等;
(3)将运算结果的特征量,作为下一步操作指令的依据。
2、累加器A:
(8位寄存器)
(1)在算/逻运算中用于存放操作数或结果
(2)与外部存储器交换信息时要经过A;
(3)与I/O接口交换信息时也要经过A。
3、寄存器B:
(1)做乘法运算时,用来寄存乘数或积的高位字节;
(2)做除法运算时,用来寄存除数或余数;
(3)不做上述运算时,可做通用寄存器使用。
4、
程序状态标志寄存器PSW:
(1)进位标志位Cy(D7位):
做加、减运算时,若运算结果在最高位有进位或借位时,Cy被硬件自动置“1”,反之则自动置“0”。
(2)辅助进位标志位AC:
(半进位标志位,D6位)
①做加、减运算时,若低4位有向高4位进位或借位时,AC被硬件自动置“1”,反之则自动置“0”。
②CPU常根据AC的状态对BCD码的运算结果进行调整。
(3)用户标志位F0(D5位):
用户可用软件对F0位,置“1”或置“0”,以决定程序的走向。
(4)工作寄存器组选择标志位RS1、RS0(D4、D3位):
用户通过软件改变RS1和RS0的组合内容,来选择片内RAM中4组工作寄存器组之一。
RS1
RS0
选定的当前使用的
工作寄存器组(区)
片内RAM地址
通用寄存器
名称
第0组
00H~07H
R0~R7
1
第1组
08H~0FH
第2组
10H~17H
第3组
18H~1FH
(5)溢出标志位OV(D2位):
当运算的结果超过8位二进制数的允许范围时,OV由硬件自动置“1”,反之置“0”。
(6)空缺位(D1位):
此位未定义。
(7)奇偶校验标志位P(D0位):
MCS-51采用偶校验,当A累加器中1的个数为奇数时,P被硬件置为“1”,反之被置为“0”。
二、控制器
控制器主要由定时控制逻辑电路和各种控制寄存器组成,它们严格按照定时电路的各种译码指令完成规定的操作。
1、指令寄存器IR和指令译码器ID(8位)
IR主要用于寄存指令代码,并通过ID将指令代码译出由控制电路产生相应的控制信号。
2、程序计数器PC
是一个十六位的寄存器,专门用于寄存CPU将要执行的指令地址(即下一条指令的地址),所以PC会自动加1。
PC可寻址64KB范围的ROM。
注意PC本身没有地址,因此用户无法对其进行读写,但可以通过相应的指令改变其内容,实现程序的转移。
3、堆栈指针(寄存器)SP(8位)
堆栈:
只有一个数据进/出端口且按照“先进后出”原则管理的存储器。
栈底:
堆栈存储器的底部。
此时的堆栈指针为SP。
栈顶:
存储器的数据入口处。
空栈时,栈顶的地址等于栈底的地址(两者重合)。
随着数据的不断进栈,栈顶的地址也不断的增加(上浮)。
数据进栈的操作:
首先SP+1,送入SP,然后再向堆栈存储器写入数据;
数据出栈的操作:
首先从堆栈存储器读出数据,然后SP-1,送入SP。
堆栈指针(寄存器)SP:
就是专门用于寄存指示堆栈存储器地址的寄存器。
4、数据指针(地址)寄存器DPTR(16位)
是一个十六位的专用寄存器,它由两个8位的寄存器DPH(高8位)和DPL(低8位)组成。
专门用来寄存片外RAM及扩展I/O口进行数据存取用的地址。
三、寄存器和特殊功能寄存器R
1、工作寄存器
MCS-51共有32个工作寄存器(在片内RAM的00H~1FH的地址单元中),分为四个组(区),每个组(区)
有8个寄存器,分别用R0、R1、R2、R3、R4、R5、R6、R7表示。
(由前面的表中可以看出)每个时刻只有一个区工作,而且由程序状态标志寄存器RS1、RS0来决定。
当RS1RS0=00时,选定的当前的工作器组为第0组(区),它们的地址分别为00H~07H,对应的通用寄存器的名称分别为R0~R7。
注意:
R0、R1不仅做工作寄存器用外,还经常用于做间接寻址的地址指针。
2、特殊功能寄存器SFR(专用寄存器)
MCS-51共有21个特殊功能寄存器(除PC外),离散地分布在片内RAM的80H~0FFH的地址单元中,共占据了128个存储单元,构成了SFR存储块。
将其地址由大到小排列如下(关于寻址方式将在下一章讨论)
特殊功能寄存器功能名称地址单元内复位后初态是否可以位寻址
B寄存器F0H00H可以
A累加器E0H00H可以
PSW程序状态D0H00H可以
标志寄存器
IP中断优先级B8HXXX00000B可以
控制寄存器
P3P3口数据寄存器B0HFFH可以
IE中断允许A8H0XX00000B可以
P2P2口数据寄存器A0HFFH可以
SBUF串行口发送/接收99H不定不可以
数据缓冲寄存器
SCON串行口控制寄存器98H00H可以
P1P1口数据寄存器90HFFH可以
TH1T1计数器8DH00H不可以
高8位寄存器
TH0T0计数器8CH00H不可以
TL1T1计数器8BH00H不可以
低8位寄存器
TL0T0计数器8AH00H不可以
低8位寄存器
TMOD定时器/计数器89H00H不可以
方式控制寄存器
TCON定时器控制寄存器88H00H可以
PCON电源控制寄存器87H00H不可以
DPH地址寄存器高8位83H00H不可以
DPL地址寄存器低8位82H00H不可以
SP堆栈指针寄存器81H07H不可以
P0P0口数据寄存器80HFFH可以
以上21个特殊功能寄存器,它们的地址能被8整除的都可以位寻址。
上面已介绍了B、A、PSW、SP及DPTR,其它的将在以后的章节中分别读者讨论。
2—3MCS-51单片机存储器
存储器是存放程序和数据的器件。
MCS-51单片机一共有四个物理存储器:
1、内部程序存储器(ROM);
2、外部程序存储器(ROM);
⑴内/外程序存储器统一编址,片外地址从0000H~FFFFH有64KB,片内地址从0000H~0FFFH有4KB,重叠处由
信号来控制。
①当
时,从0000H~0FFFFH片内到片外;
②当
时,内部地址无效,外部地址从0000H~0FFFFH。
⑵0000H为系统复位后程序的入口地址;
⑶0000H~0002H内存放一条无条件转移指令,转至主程序的入口地址;
⑷0003H~002AH单元均匀分为5段(每段8个单
元),存放5个中断源入口地址及对应的中断服务程序;
①从0003H开始存放外部中断0(
)地址;
②从000BH开始存放定时器0溢出中断地址;
③从0013H开始存放外部中断1(
④从001BH开始存放定时器1溢出中断地址;
⑤从001BH开始存放串行中断口地址。
⑸从002BH以后开始存放主程序;
⑴片内数据存储空间区:
地址00H~7FH,共有128B个存储单元:
分配如下——
1工作寄存器组(区):
地址00H~1FH,共有
四个组(区),每个组(区)8个单元;
②位寻址区:
地址20H~2FH,共有16个单元,每个单元又有8位,每一位都有一个位地址,共有128个位地址。
(见教材P11的128位地址单元分配表)
③用户RAM区(数据缓冲区):
地址30H~7FH,共有80个单元,主要用于存放随机数据、运算的中间结果和作堆栈工作区。
⑵专用寄存器区(特殊功能寄存器SFR):
地址80H~0FFH,共有12B个存储单元。
主要存放21个特殊功能的寄存器组成SFR块。
(前面已讲述)
3、内部数据存储器;
(独立编址)
4、外部数据存储器。
由于单片机内部数据存储器不够用,则在片外扩展数据存储器,地址从0000H~0FFFFH,共有64KB个存储单元。
⑴内/外数据存储器的地址有重叠,但由于操作的指令不同,因此单片机可以正确地访问内/外数据存储器;
⑵访问片内的数据存储器用MOV指令;
⑶访问片外的数据存储器用MOVX指令;
⑷外部存储器的16位地址,用数据指针寄存器DPTR来寄存。
2—4时钟电路及时序
单片机本身就是一个复杂的同步时序电路,为了确保同步工作方式的执行,电路应在唯一的时钟信号的控制下严格地按时序进行工作。
⑴、XTAL1端和XTAL2端将晶振、电容C1和C2与内部的反相放大器连接起来组成并联谐振电路;
⑵、振荡频率范围在2~12MHz,一般常用6MHz或12MHz;
⑶、C1、C2取31PF,对频率有微调作用;
⑷、产生的振荡信号送入内部的时钟电路再二分频构成了单片机的时钟;
⑸、最后向CPU提供P1、P2两相时钟信号。
一、时钟电路
1、内部方式时钟电路:
倒相器
晶振
2、
外部方式时钟电路:
(8051型单片机)
⑴、由外部振荡器产生振荡信号;
⑵、经电平转换电路接至XTAL2端;
⑶、XTAL1端接低电平。
外部
振荡器
二、时序
CPU在执行指令时,各控制信号在时间顺序上的关系称时序。
CPU发出的时序信号有两类:
①一类是用于片内各功能部件的控制,基本于用户无关;
(不讨论)
②另一类用于片外存储器、扩展的I/O端口的控制,非常重要。
(要掌握)
1、基本概念:
⑴振荡周期
晶体振荡器直接产生的振荡信号的周期。
⑵时钟周期(状态周期)S
一个时钟周期等于两个振荡周期,换句话说就是对振荡频率进行2分频的振荡信号。
一个时钟周期S分为P1和P2两个节拍:
1P1节拍完成算术逻辑运算;
2P2节拍完成内部寄存器间数据的传送。
⑶机器周期
完成一个基本操作所需的时间称为机器周期。
一个机器周期由6个时钟周期(分别用S1~S6来表示)即12个振荡周期(分别用S1P1、S1P2、S2P1、S2P2、S3P1、……S6P2)组成。
⑷指令周期
执行一条指令所需的全部时间称为指令周期。
MCS-51单片机的指令周期一般需要1~4个机器周期。
[例]已知晶振频率分别为:
6MHz、12MHz,
试计算出它们的机器周期和指令周期。
解:
①当晶振频率为6MHz时:
振荡周期=1/振荡频率=1/6(μs)
时钟周期=2×
振荡周期=2/6(μs)
机器周期=6×
时钟周期=2(μs)
指令周期=(1~4)×
机器周期=2~8(μs)
②当晶振频率为12MHz时:
振荡周期=1/振荡频率=1/12(μs)
振荡周期=2/12(μs)
时钟周期=1(μs)
机器周期=1~4(μs)
※由此可见:
单片机在晶振频率为12MHz时,执行一条指令最多需要1~4(μs)。
2、几种典型的MCS-51单片机取指/执行时序
单片机的每条指令的执行过程都要包括两个阶段,即取指阶段和执行阶段。
⑴、指令存放在内部ROM区域,指令本身是访问内部RAM的时序
①地址锁存信号ALE(单片机的输出信号)在每一个机器周期内有效两次。
即:
S1P2~S2P1、S4P2~S5P1,有效宽度为一个S状态周期(图中第四行波形)。
ALE信号每有效一次,单片机就进行一次读指令的操作。
(图中第2行波形)
②单字节单机器周期指令
INCA(这是一条累加器A加1指令)属于单字节指令,所以只进行一次取指操作,其完整过程是:
当ALE第一次有效(即S1)时,从ROM中读出上指令并送至指令寄存器IR中开始执行,在执行过程中CPU一方面在第二次ALE有效(即S4)时封锁PC加1,使第二次读操作成为假读,另一方面完成指令的执行。
(图中第3行波形)
③双字节单机器周期指令
如:
ADDA,#data(这是一条将累加器A中的内容与data数据相加的加法指令)属于双字节指令,其对应ALE的两次取指操作都是有效的,其完整过程是:
第一次读指令的操作码,经译码器译码后得知是双字节指令,CPU一方面使PC+1,继续第二次读指令的操作数,另一方面等两个字节全读出后,便完成了指令的执行。
(图中第4行波形)
④单字节双机器周期指令
INCDPTR(这是一条数据指针DPTR加1指令)属于单字节指令,但用了两个机器周期,共进行了4次读指令操作。
其完整过程是:
当第一次读指令的操作码后,经译码器译码得知是单字节双机器周期指令,CPU一方面自动封锁后面的读操作(PC不加1),使后3次读操作全成为假读,另一方面在第2个机器周期结束时完成指令的执行。
(图中第5行波形)
⑵、指令存放在内部ROM区域,指令本身是访问外部RAM的时序
MOVXA,@DPTR(这也是一条单字节的数据传送指令),只要是访问外部RAM的指令都是双机器周期指令,它与前述的单字节双机器周期指令不同。
其完整的过程如下:
①在第一个机器周期中第一次ALE有效时(即S1)读操作码,在第二次ALE有效(即S4)时封锁PC加1,使第二次读操作成为假读,在S5的状态开始时送出外部RAM单元的地址,进行数据的读写;
②在第二个机器周期中,因CPU在读/写数据,所以ALE信号全部丢失,在S1、S4时不产生取指操作,在S6P2时完成指令的全部执行。
(图中第6行波形)
2—5输入/输出端口
MCS-51单片机有32条I/O线,分属于4个(P0、P1、P2、P3)8位I/O双向并行接口,每个接口均由锁存器、输出驱动电路和输入缓冲器组成。
一、P0口
P0口有8位,每1位由一个锁存器、两个三态输入缓冲器、控制电路和驱动电路组成。
(见下图)
1、P0口作通用I/O口
P0口既可作输入口,也可作输出口(每1位都可以作),其工作原理如下:
⑴P0口作输入口:
1在地址/数据和控制信号的作用下,使MUX接
端;
2为保证数据正确输入,必须使T2管处于截止状态,因此应先对锁存器写“1”,然后再写入数据;
3外部信号通过P0.X进入2号三态缓冲器,三态缓冲器打开,数据输入到内部总线。
4锁存器一方面通过
端到MUX控制T2的状态,另一方面通过1号三态缓冲器维持输入的状态。
⑵P0口作输出口:
2内部数据通过内部总线并在写脉冲的控制下写入锁存器;
3内部信号通过
端到MUX控制T2的状态,使T2的输出保持与内部数据的同相;
※P0口的I/O是分时使用,所以称它为准双向口。
2、作分时复用的地址/数据总线(第二功能)
MCS-51单片机没有单独的地址/数据总线。
当接RAM时,它的16位地址和8位数据分别由P0口和P2口共同完成,
P2口负责传送高8位地址,P0口负责传送低8位地址和8位双向数据。
(这就是所谓分时复用技术)其工作原理如下:
⑴从P0口输出地址或数据:
1在地址/数据(假若为“1”)和控制信号的作用下,使MUX接上面的触点,此时T1导通,T2截止,输出为“1”,完成了地址/数据信号的正确传送;
2在地址/数据(假若为“0”)和控制信号的作用下,使MUX接上面的触点,此时T1截止,T2导通,输出为“0”,完成了地址/数据信号的正确传送。
⑵从P0口输入数据:
输入数据直接通过2号三态缓冲器进入内部总线,无需先对锁存器写“1”,此工作由CPU自动完成。
是一个真正的双向端口。
二、P1口
P1口是一个专用的准双向I/O口,每1位都由一个锁存器、两个三态输入缓冲器和驱动电路组成。
它与P0口有两点不同:
1、没有电子开关MUX,所以工作时必须先对该位的锁存器写“1”,然后再输入数据;
2、在驱动电路部分,用内部的上拉电阻取代了场效应管。
※其工作原理与P0口相同,只是不能复用(无第二功能),是一个准双向口。
三、P2口
P2口是一个8位的准双向口,每1位由一个锁存器、两个三态输入缓冲器、控制电路和驱动电路组成。
1、作通用I/O口,与P0口的功能类似;
2、可以作扩展系统的高8位地址总线,然后与P0口传送的低8位地址一起组成16位地址总线。
(第二功能)
四、P3口
P3口也是一个8位准双向口,每1位都由一个锁存器、两个三态输入缓冲器和驱动电路组成。
1、P3口作一般输出口使用时与P1口的功能类同,均可以作为通用的I/O口使用。
第二功能输出端(与非门的输入端)要保持高电平,以维持锁存器到输出端的数据畅通。
2、P3口最重要的功能是第二功能。
当P3工作在第二功能时,锁存器的Q端要保持高电平,以维持第二功能(与非门的另一端)输出的数据畅通。
在P3口工作在第二功能时,它的每1位都具有不同的功能。
(见下表)
P3口引脚
第二功能
P3-0
RXD串行数据输入口
P3-1
TXD串行数据输出口
P3-2
外部中断0
P3-3
外部中断1
P3-4
T0定时/计数器0外部计数脉冲输入端
P3-5
T1定时/计数器1外部计数脉冲输入端
P3-6
片外RAM写选通信号输出端
P3-7
片外RAM读选通信号输出端
五、P0口~P3口有使用中的特点
1、P0口的输出级的每一位可驱动8个TTL门,但它驱动NMOS门时需外加上拉电阻;
而作地址/数据总线(复用)时,无须外接上拉电阻。
2、P1口~P3口输出级的每一位可驱动4个TTL门,无须外接上拉电阻。
3、P0口~P3口若是由CMOS电路组成,当它驱动普通晶体管的基极时,应在端口和晶体管之间串入一个电阻,来限制高电平的输出电流。
4、P0口一般可用作8位的数据总线的输入/输出。
5、P0口在第二功能时和P2口构成16位地址总线中的低8位。
6、P1口通常用于数据的输入/输出。
(无第二功能)
7、P2口一般可用作8位的数据总线的输入/输出。
8、P2口在第二功能时和P0口构成16位地址总线中的高8位。
9、P3口可以用作8位的数据总线的输入/输出。
10、P3口通常用于第二功能的输入/输出。
11、系统复位后,P0口~P3口的32个管脚均输出高电平(0FFH)。
(注意与外设的配合)
12、可以规定并行口的一部分管脚为输入脚,另一部分脚为输出脚,没有使用的脚可以悬空。
2—6MCS-51单片机的引脚功能
MCS-51型系列单片机是具有40个引脚的双列直插式封装的器件,其中许多引脚具有第二功能,一共分为
四大类。
(不同的芯片略有不同)见下引脚图:
一、电源类引脚
1、
(40脚):
芯片工作电源的输入端,+5V。
2、
(20脚):
电源的接地端。
二、时钟振荡电路引脚
XTAL1(19脚)和XTAL2(18脚)的内部是一个振荡电路。
1、当使用内部振荡电路时,在这两个管脚上外接石英晶体和微调电容;
2、当使用外部时钟时,XTAL2接外部振荡信号,XTAL1接低电平。
三、输入/输出引脚
1、P0口(32~39脚):
是一个8位漏极开路型的双向I/O口;
访问外部RAM时,分时提供低8位地址,并用作8位数据总线。
2、P1口(1~8脚):
是一个带内部提升电阻的8位准双向I/O口。
3、P2口(21~28脚):
是一个带内部提升电阻的8位准双向I/O口;
访问外部RAM时,分时提供高8位地址。
4、P3口(10~17脚):
四、控制类引脚
(9脚,两功能)
1RST为复位信号输入端:
只要给RST端两个机器周期的高电平,就可以复位;
2
为内部的备用电源(+5V)的输入端:
若
突然掉电,可保护内部RAM的信息不丢失。
(30脚,两功能)
1ALE地址锁存信号输出端:
(a)在访问外部RAM时,ALE用来锁存P0的扩展地址低8位;
(b)不访问外部RAM时,ALE以时钟频率的1/6的固定频率输出;
(给外部定时用)
(c)ALE能驱动8个TTL逻辑门。
②
编程脉冲输入端:
仅用于8751型单片机内部EPROM编程的脉冲输入(低电平有效)。
3、
(29脚)
外部程序ROM的读选通信号输出端:
当访问外部程序ROM时,
定时产生一个负脉冲作选通信号,即每个机器周期内的效两次。
若访问外部RAM或片内的ROM,
不会有输出(为高电平)。
4、
(31脚,两功能)
①
访问内/外程序存储器的控制信号输出端:
(a)当
时,限定访问外部的程序ROM,地址从0000H~FFFFH;
若某单片机(如:
8031型)无内部程序ROM,则应将
端接地。
(b)当
时,先访问片内的程序ROM(有4KB),若超出时自动切换到外部RAM去访问。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mcs51 单片机 详细 组成