




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,第2章 单片机芯片的硬件结构,2.1 单片机的逻辑结构及信号引脚2.2 单片机的内部存储器2.3 单片机的并行输入/输出口电路2.4 单片机时钟电路与时序2.5 单片机工作方式,内容提要:,2.1 MCS51单片机的逻辑结构及信号引脚2.1.1 MCS-51单片机结构框图 冯.诺依曼结构 单片机以精巧的设计,克服芯片尺寸的制约。 MCS-51单片机的系统逻辑结构如图2.1所示。,输入设备,运算器,输出设备,控制器,存储器,图2.1 MCS-51单片机系统结构框图,由图2.1可以看出,单片机内部主要包含下列几个部件: 一个8位CPU; 一个时钟电路; 4KB程序存储器; 128B数据存储器; 两个16位定时/计数器; 64K扩展总线控制电路; 四个8-bit并行I/O端口; 一个可编程串行接口;五个中断源,其中包括两个优先级嵌套中断,2.1.2 MCS51单片机芯片内部逻辑结构MCS51单片机芯片内部的逻辑结构如图2.2所示。,图2.2 MCS51单片机芯片内部逻辑结构图,P0.0P0.7,P2.0P2.7,EA,1. CPU CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分电路组成。(1)运算器电路 运算器电路包括ALU(算术逻辑单元)、ACC(累加器)、B寄存器、状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。 (2)控制器电路 控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。,2. 定时器/计数器 MCS51单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。3. 存储器 MCS51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。4. 并行I/O口 MCS51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条I/O线都能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口(输出非三态),负载能力为4个TTL门电路。,5. 串行I/O口 MCS51单片机具有一个采用通用异步工作方式的全双工串行通信接口,可以同时发送和接收数据。6. 中断控制系统 8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。分为高级和低级两个优先级别。7. 时钟电路 MCS51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz12MHz,典型取值为6MHz。8. 总线 以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。,2.1.3 MCS-51的信号引脚 图2.3为MCS51系列单片机引脚图及逻辑符号,它们为标准的40脚DIP(双列直插)封装。,图2.3 MCS51系列单片机引脚图及逻辑符号,电源引脚Vcc和Vss Vcc:电源端,接5V。 Vss:接地端。 时钟电路引脚XTAL1和XTAL2 XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。 XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。 地址锁存允许ALE/PROG(编程脉冲) 系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。也可用作外部时钟或外部定时脉冲。,外部程序存储器读选通信号PSEN 是读外部程序存储器的选通信号,低电平有效。 程序存储器地址允许输入端 EA/VPP (编程电压25V) 当为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。当为低电平时,CPU只执行片外程序存储器指令。 复位信号RST/VPD(备用电源引入) 该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。,1. 输入/输出口引脚P0、P1、P2和P3 P0口(P0.0P0.7):该端口为漏极开路的8位准双向口,负载能力位8高LSTTL负载,它为8位地址线和8位数据线的复用端口。 P1口(P1.0P1.7):它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。 P2口(P2.0P2.7):它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,它作存储器的高8位地址线。 P3口(P3.0P3.7):P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,其还具有第二功能 ,其引脚描述如表2-1。,表2-1 P3口特殊功能,2.2 MCS51单片机的存储器 MCS51的存储器结构如图2.4所示。在本节中我们将对单片机的内部数据存储器、内部程序存储器和外部存储器分别作一介绍。,图2.4 MCS51的存储器结构,物理上分为:4个空间,即片内ROM、片外ROM 片内RAM、片外RAM逻辑上分为: 3个空间, 程序存储器(片内、外)统一编址 MOVC 数据存储器(片内) MOV 数据存储器(片外) MOVX相关控制信号:EA、PSEN、WR、RD,物理上分为两大区域:00H 7FH即128B内RAM区 80H FFH即SFR区。,2.2.1 内部数据存储器,1. 内部数据存储器低128单元 在低128字节存储单元中,前32个单元(00H1FH)作为工作寄存器使用,这32个寄存器分作4组,每组由8个通用寄存器(R0R7)组成,组号依次为0、1、2和3。通过对程序状态字中RS1和RS0的设置,可以决定选用哪一组工作寄存器,通常没有选中的单元也可作为一般的数据缓存使用。系统上电复位时,默认选中第0组寄存器。,在工作寄存器后的16个数据单元(20H2FH),它们既可以作为一般的数据单元使用,由可以按位对每个单元进行操作,因此这16个数据单元又称作位寻址区。位寻址区共计128位,其位地址为00H7FH。 在内部RAM的低128个单元中,剩余的80个数据单元即30H7FH为真正的用户RAM区,对于这些区域,用户只能以存储单元的形式来使用,通常在应用中也把堆栈开辟在这段区域。,MCS-51的堆栈操作堆栈是一种数据结构。数据写入堆栈称为入栈(PUSH)。数据从堆栈中读出称之出栈(POP)。数据操作规则:“后进先出”LIFO。(1)堆栈的功用堆栈主要是为子程序调用和中断操作而设立的。其具体功能有两个:保护断点和保护现场。(2)堆栈的开辟堆栈只能开辟在芯片的内部数据存储器中,即所谓的内堆栈形式。(3)堆栈指示器堆栈指示器SP(Stack Pointer)的内容是堆栈栈顶的存储单元地址。SP是一个8位寄存器。,位寻址区(20H2FH)16个字节。16*8=128位,每一位都有一个位地址,范围为:00H7FH,位地址区也可作为一般RAM使用。,位寻址区,说明:系统复位后,SP的内容为07H,但由于堆栈最好在内部RAM的30H7FH单元中开辟,所以在程序设计时应注意把SP值初始化为30H以后。(4)堆栈使用方式堆栈的使用有两种方式。自动方式:即在调用子程序或中断时,返回地址(断点)自动进栈。程序返回时,断点再自动弹回PC。指令方式:即使用专用的堆栈操作指令,进行进出栈操作。其进栈指令为PUSH,出栈指令为POP。例如保护现场就是指令方式进行操作,内部数据存储器中的位地址,2. 内部数据存储器高128单元 内部数据存储器的高128个单元是为专用寄存器提供的,因此该区也称作特殊功能寄存器区(SFR),它们主要用于存放控制命令、状态或数据。除去程序计数器PC(16位,可寻址64KB)外,还有21个特殊功能寄存器,其地址空间为80HFFH。这21个寄存器中有11个特殊功能寄存器具有位寻址能力(共83位),它们的字节地址都刚好能被8整除。51子系列SFR的地址分配及位地址见下页表:,特殊功能寄存器地址及功能表,特殊功能寄存器地址及功能表,注意:1、表中共有3个双字节寄存器。2、PC也为双字节寄存器,但是不在80H FFH 范围内。 3、表中,凡地址能被8整除的寄存器都是可位 寻址的寄存器,共有11个。,各寄存器的名称:1、算术运算寄存器ACC累加器 累加器为8位寄存器,是程序中最常用的专用寄存器,在指令系统中累加器的助记符为A。大部分单操作数指令的操作取自累加器,很多双操作数指令的一个操作数也取自累加器。加、减乘和除等算术运算指令的运算结果都存放在累加器A或AB寄存器中,在变址寻址方式中累加器被作为变址寄存器使用。在MCS51中由于只有一个累加器,而单片机中的大部分数据操作都是通过累加器进行的,故累加器的使用是十分频繁的。累加器自身带有全零标志Z,若A=0则Z=1;若A0则Z0。该标志常用作程序分支的判断条件。,BB寄存器 B寄存器为8位寄存器,主要用于乘除指令中。乘法指令的两个操作数分别取自累加器A和寄存器B,其中B为乘数,乘法结果的高8位存放于寄存器B中。除法指令中,被除数取自A,除数取自B,除法的结果商数存放于A,余数存放于B中。在其它指令中,B寄存器也可作为一般的数据单元来使用。PSW程序状态字寄存器程序状态字是一个8位寄存器,它包含程序的状态信息。在状态字中,有些位状态是根据指令执行结果,由硬件自动完成设置的,而有些状态位则必须通过软件方法设定。PSW中的每个状态位都可由软件读出,PSW的各位定义如表2.2。,表2.2 PSW的各状态位定义,(1)CY或C(PSW.7):进位标志位 在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。在算术运算中它可作为进位标志,在位运算中,它作累加器使用,在位传送、位与和位或等位操作中,都要使用进位标志位。(2) AC:辅助进位标志 进行加法或减法操作时,当发生低四位向高四位进位或借位时,AC由硬件置位,否则AC位被置“0”。在进行十进制调整指令时,将借助AC状态进行判断。,(3)用户标志位F0 该位为用户定义的状态标记,用户根据需要用软件对其置位或清零,也可以用软件测试F0来控制程序的跳转。(4)RS1和RS0:寄存器组选择位 该两位通过软件置“0”或“1”来选择当前工作寄存器区。(5)OV:溢出标志位 当执行算术指令时,由硬件置位或清零来指示溢出状态。在带符号的加减运算中,OV1表示加减运算结果超出了累加器A所能表示的符号数有效范围(128127),即运算结果是错误的,反之,OV0表示运算正确,即无溢出产生。 无符号数乘法指令MUL的执行结果也会影响溢出标志,若置于累加器A和寄存器B的两个数的乘积超过了255,则OV1,反之OV0。由于乘积的高8位存放于B中,低8位存放于A中,OV0则意味着只要从A中取得乘积即可,否则要从BA寄存器对中取得乘积结果。,在除法运算中,DIV指令也会影响溢出标志,当除数为0时,OV1,否则OV0。(6) P:奇偶标志位 每个指令周期由硬件来置位或清零用以表示累加器A中1的个数的奇偶性,若累加器中1的个数为奇数则P1,否则P0。,2、指针寄存器(1)程序计数器PC指明即将执行的下一条指令的地址(程序存储器地址),在物理上独立,复位时PC = 0000H。(2)堆栈指针SP指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H。(3)数据指针DPTR数据指针DPTR为一个16位的专用寄存器,其高位用DPH表示,其低位用DPL表示,它既可以作为一个16位的寄存器来使用,也可作为两个8位的的寄存器DPH和DPL使用。DPTR在访问数据存储器时用来指明访问的数据存储器的单元地址,如MOVX DPTR,A。,3、并行输入/输出端口P0P3P0P3为四个8位的特殊功能寄存器,分别是四个并行I/O端口的锁存器,当I/O端口的某一位用作输入时,对应的锁存器必须先置“1”。4、串行输入/输出端口(1)串行数据缓冲器 SBUF是物理上独立的两个寄存器,共同使用一个地址(99H)。用于存放将要发送或已接收的数据,它由发送缓冲器和接收缓冲器组成,将要发送的数据进入发送缓冲器,反之进入接收缓冲器。(2)串行控制/状态寄存器SCON控制监视串行口的工作状态(3)电源控制寄存器PCON控制单片机的低功耗工作方式及波特率选择。,5、中断系统(1)中断优先级寄存器IP:2级优先,可软件设定(2)中断允许寄存器IE6、定时/计数器(1)定时器方式寄存器:TMOD(2)定时器控制寄存器:TCON(3)计数寄存器:TH0、TL0;TH1、TL1。可用于设定计数初值。在MCS51中,除8032/8052外都只有两个16位定时器/计数器T0和T1,它们由两个相互独立的8位寄存器组成TH和TL,共有四个独立的寄存器TH0、TL0、TH1和TL1,只可对这四个寄存器独立寻址,而不能作为一个16位寄存器来寻址。,2.2.2 外部数据存储器在MCS51中,其片外数据存储器和I/O口统一编址,最大64K,其地址空间0000HFFFFH与片内数据存储器是部分重叠的。在8051单片机中采用MOV和MOVX两种指令来区分片内外RAM空间,其中片内RAM使用MOV指令,片外RAM和I/O口使用MOVX指令。2.2.3 程序存储器 在MCS51系列中,程序存储器被用来存放程序、常数或表格等。在8051中,其片内有4K字节的ROM存储单元,地址为0000H0FFFH。8751有4K字节的EPROM,而8052和8752则有8K字节的片内存储器。8031和8032无片内程序存储器,所以片内程序存储器的有无是区分芯片的主要标志。 在程序存储器中,以下6个单元具有特殊含义:,0000H:单片机复位后,PC0000H,程序从0000H开始执行指令。 0003H:外部中断0入口地址。 000BH:定时器0中断入口地址。 0013H:外部中断1入口地址。 001BH:定时器1中断入口地址。 0023H:串行口中断入口地址。 在系统响应中断之后,将自动跳转到各中断入口地址处执行程序,而中断服务程序一般无法存放于几个单元之内,因此在中断入口地址处往往存放一条无条件转移指令进行跳转,以便执行中断服务程序。,程序存储器寻址范围: 0000H FFFFH 容量64KB,即地址长度:16位,,寻址内部ROM;,,寻址外部ROM。,当PC值超过片内ROM容量时会自动转向 外部存储器空间。,作用: 存放程序及程序运行时所需的常数。,2.3 MCS51单片机并行输入/输出口电路2.3.1 P0口由一个锁存器、两个三态输入缓冲器、一个多路复用开关以及控制电路和驱动电路等组成。 P0口不仅可以作为通用输入输出口,而且在实际应用中它通常作为地址/数据复用总线。,四个端口、双向、每个口包含一个锁存器、一个输出驱动器和二个输入缓冲器。,P0口:地址/数据复用口,G1,G2,通用I / O口1)读(端口外数据 内部寄存器)方式1(读锁存器) Q G2 D 内部总线,(为什么要读锁存器?) 适于“读修改写”类指令方式2(读引脚):P0.x G1 D 内部总线。作为通用I / O使用, 是一个准双向口:“在输入数据时必须先把口置1,使两个FET都截止(以免误读),引脚处于悬浮状态,可作高阻抗输入”2)写(片内数据 端口) 数据 锁存 MUX P0.x,象JBC(逻辑判断)、CPL(取反)、INC(递增)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均属于这类操作。,3)地址/数据总线口(推拉式输出)CPU控制MUX向上写(输出):地址/数据为1,P0x 高 地址/数据为0,P0x 低读(输入):经缓冲器G1读入(此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制信号有效,下面的缓冲器打开,外部数据读入内部总线。),4)负载能力可带8个TTL输入,作通用输出口输出高电平时,需外接上拉电阻。,总结特点:(1)P0口可作通用I / O口使用,又可作地址/数据总线口(2)P0既可按字节寻址,又可按位寻址(3)作通用I / O 口输出使用时:是开漏输出(4)作地址/数据总线口时,P0是一真正双向口,而作通 用I / O口时,只是一个准双向口,2.3.2 P1口 P1口是一个准双向口,只能作为I/O口使用。由于在其输出电路中已有上拉电阻,故可以直接输出而无需外接上拉电阻。,特点:(1)无地址/数据口功能(2)可按字节寻址,也可按位寻址(3)作I / O输入口时:是一准双向口,不是开漏输出。,2.3.3 P2口 P2口为一个准双向口,其位结构与P0口相似。对于8031单片机来说,P2口通常用作地址信号输出。,特点:(1)当P2口作为通用I / O时,是一准双向口。(2)从P2口输入数据时,先向锁存器写“1”。(3)可位寻址,也可按字节寻址(4)可输出地址高8位,与P0一起构成单片机与外电路相连接的扩展端口。通常可以用来扩展存储器和其它总线型连接方式的外设。,P0、P2端口扩展存储器,2.3.4 P3口P3口为双功能口,当P3口作为通用I/O口使用时,它为准双向口,且每位都可定义为输入或输出口,其工作原理同P1口类似。,特点:(1)作通用I / O时,“第二输出功能”应保持高电平,(2)工作于第二功能时,该位锁存器应置1,(3)作输入口时,输出锁存器和第二输出功能端都应 置1(4)第二功能输入信号,取自输入通道第一缓冲器 (G1)输出端,而通用输入信号取自“读引脚”。,小结:1、P0口:地址低8位与数据线分时使用端口2、P1口:按位可编址的输入输出端口3、P2口:地址高8位输出口4、P3口:双功能口。若不用第二功能,也可作通用I / O 口5、按三总线划分:,地址线:P0低八位地址,P2高八位地址;数据线:P0输入输出8位数据;控制线:P3口的8位加上PSEN、ALE共同完成,2.4 时钟电路和时序 单片机内的各种操作都是在一系列脉冲控制下进行的,而各脉冲在时间上是有先后顺序的,这种顺序就称为时序。1. 时钟电路 根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式,如图2.10所示。,(a)内部方式时钟电路 (b)外接时钟电路 图2.10 时钟电路,时钟的产生: XTAL1(19)、XTAL2(18)。 1、内部方式 与作为反馈元件的片外晶体或陶瓷谐振器一起组成 一个自激振荡器。 2、外部方式 CMOS工艺的8031,其XTAL1接外信号,XTAL2 可悬空。HMOS工艺的8031,其XTAL2接外信号, XTAL1接地。,2. 指令时序(1)振荡周期 振荡周期指为单片机提供定时信号的振荡源的周期或外部输入时钟的周期。(2)时钟周期 时钟周期又称作状态周期或状态时钟S,它是振荡周期的两倍,它分为P1拍节和P2拍节,通常在P1拍节完成算术逻辑操作,在P2拍节完成内部寄存器之间的传送操作。(3)机器周期 一个机器周期由6个状态组成,如果把一条指令的执行过程分作几个基本操作,则将完成一个基本操作所需的时间称作机器周期。单片机的单周期指令执行时间就为一个机器周期。,(4)指令周期 指令周期即执行一条指令所占用的全部时间,通常为14个机器周期。,振荡周期Tosc = 1/fosc 一个机器周期 = 12个振荡周期 = 121/fosc 。 例如,若fosc = 12MHz,则一个机器周期 = 1s。,对ALE信号的说明:当ALE(ALE信号为振荡频率6分频)正跳变时,对应单片机进行一次读指令操作。一个机器周期出现二次,在S1P2S2P1及S4P2S5P1期间。有效宽度为一个状态。,下面对几个典型指令的时序进行说明:(1)单字节单周期指令:INC A只需进行一次读指令操作(指令只有一个字节),当第二个ALE有效时,由于PC没有加1,读出的还是原指令。属于一次无效操作。,双字节单周期指令例:ADD A,DATA,(2)双字节单周期指令:ADD A,#dataALE两次读操作都有效,第一次读操作码(指令第一字节),第二次读立即数(指令第二字节)。,(3)单字节双周期指令:INC DPTR两个机器周期共进行四次读指令操作,但其后三次的读操作都是无效的。,单字节双周期指令:INC DPTR,(4)单字节双周期指令:MOVX类指令第一机器周期进行二次读指令操作,第一次读操作码,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗企业布袋管理办法
- 数智时代涉外商事纠纷解决之道
- 厨房配料使用管理办法
- 河南循环包装管理办法
- 1850年以来吴语文献的词汇演变与语法特征研究
- 民航包机乘客管理办法
- 高压变电站主接线系统优化设计研究
- 对话自我与外界:探索个体与社会的互动
- 培训机构抽成管理办法
- 办公利益制度管理办法
- 香港劳工合同保密协议
- 会议活动复盘报告
- 隧道安全运营管理制度
- 2025年银行从业资格考试公共基础知识必考题库及答案(共五套)
- 山东省2024年艺术类本科批美术与设计类第1次志愿投档情况表(公布)
- 2025-2030胶原酶产业发展分析及发展趋势与投资前景预测报告
- 血液净化中心护理工作总结
- 2025年当兵的心理测试题及答案
- 2025年中级管道工(四级)技能认定理论考试指导题库(含答案)
- 头端可弯曲负压吸引鞘在输尿管软镜碎石术处理长径≤2cm上尿路结石中的应用研究
- 重大活动交通保障应急预案
评论
0/150
提交评论