您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 单片机原理及应用 (1)
第二章MCS—51系列单片机芯片结构2.1MCS—51系列单片机的结构原理2.1.1MCS-51单片机逻辑结构MCS-51单片机的系统结构框图如图2.1所示。振荡器及定时电路4KB程序存储器128KB数据存储器2个16位定时器/事件计数器CPU64KB总线扩展控制可编程串行口可编程I/O中断中断频率基准源计数器串行输入串行输出并行I/O口控制图2.1MCS-51单片机的系统结构框图由图2.1可以看出,单片机内部主要包含下列几个部件:u一个8位CPU;u一个时钟电路;u4Kbyte程序存储器;u128byte数据存储器;u两个16位定时/计数器;u64Kbyte扩展总线控制电路;u四个8-bit并行I/O端口;u一个可编程串行接口;五个中断源,其中包括两个优先级嵌套中断2.1.2MCS-51单片机内部结构MCS-51单片机芯片内部结构框图如图2.2所示。端口0驱动器端口2驱动器RAM(128×8)端口0锁存器端口2锁存器ROM(4K×8)程序地址寄存器缓冲器PC加1寄存器程序计数器PC数据指针DPTR堆栈指示器SPPCONSCONTMODTCONTH0TL0TH1TL1SBUF(TX)SBUF(RX)IE中断、串行口和定时器RAM地址寄存器ACCB寄存器ALU状态寄存器暂存器2暂存器1定时与控制指令寄存器端口1锁存器端口3锁存器端口1驱动器端口3驱动器XTAL1XTAL2P0.0~P0.7P2.0~P2.7P1.0~P1.7P3.0~P3.7ALERSTPSENEAVccVss(+5V)图2.2MCS-51单片机芯片内部结构框图1.CPUCPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分电路组成。(1)运算器电路运算器电路包括ALU(算术逻辑单元)、ACC(累加器)、B寄存器、状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。(2)控制器电路控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。2.定时器/计数器MCS-51单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。3.存储器MCS-51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。4.并行I/O口MCS-51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条I/O线都能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口,负载能力为4个TTL门电路。5.串行I/O口MCS-51单片机具有一个采用通用异步工作方式的全双工串行通信接口,可以同时发送和接收数据。6.中断控制系统8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。7.时钟电路MCS-51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz~12MHz,典型取值为6MHz。8.总线以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。2.1.3引脚信号图2.3为MCS-51系列单片机引脚图及逻辑符号,它们为标准的40脚DIP封装。2.3/0PINT6.3/PWR3.3/1PINT0.1P1.1P2.1P3.1P4.1P5.1P6.1P7.1PPDVRST/0.3/PRXD1.3/PTXD4.3/0PT5.3/1PT7.3/PRD2XTAL1XTALVss1234567891011121314151617181920Vcc0.0P1.0P2.0P3.0P4.0P5.0P6.0P7.0PVppEA/PROGALE/PSEN7.2P6.2P5.2P4.2P3.2P2.2P1.2P0.2P2122232425262728293031323334353637383940803180518751VccVssPDVRST/1XTAL2XTALVppEA/PSENPROGALE/P3口第二功能P0口P1口P2口地址数据总线地址总线803180518751图2.3MCS-51系列单片机引脚图及逻辑符号电源引脚Vcc和VssVcc:电源端,接+5V。Vss:接地端。时钟电路引脚XTAL1和XTAL2XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。地址锁存允许ALE系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。外部程序存储器读选通信号是读外部程序存储器的选通信号,低电平有效。程序存储器地址允许输入端/VPP当为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。当为低电平时,CPU只执行片外程序存储器指令。复位信号RST该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。1.输入/输出口引脚P0、P1、P2和P3P0口(P0.0~P0.7):该端口为漏极开路的8位准双向口,负载能力位8高LSTTL负载,它为8位地址线和8位数据线的复用端口。P1口(P1.0~P1.7):它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。P2口(P2.0~P2.7):它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,它作存储器的高8位地址线。P3口(P3.0~P3.7):P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,其还具有特殊功能。2.2MCS—51单片机的存储器MCS-51的存储器结构如图2.4所示。在本节中我们将对单片机的内部数据存储器、内部程序存储器和外部存储器分别作一介绍。外部FFFF1000内部(=1)外部(=0)0FFF00000FFF0000专用寄存器内部RAMFF807F00FFFF0000程序存储器内部数据存储器外部数据存储器图2.4MCS-51的存储器结构如2.2.1内部数据存储器用户区位寻址区(位地址00~7F)工作寄存器区3(R0~R7)工作寄存器区2(R0~R7)工作寄存器区1(R0~R7)工作寄存器区0(R0~R7)7FH30H2FH20H1FH00H.........图2.5MCS-51片内RAM的空间分配1.内部数据存储器低128单元在低128字节存储单元中,前32个单元(00H~1FH)作为工作寄存器使用,这32个寄存器分作4组,每组由8个通用寄存器(R0~R7)组成,组号依次为0、1、2和3。通过对程序状态字中RS1和RS0的设置,可以决定选用哪一组工作寄存器,通常没有选中的单元也可作为一般的数据缓存使用。系统上电复位时,默认选中第0组寄存器。在工作寄存器后的16个数据单元(20H~2FH),它们既可以作为一般的数据单元使用,由可以按位对每个单元进行操作,因此这16个数据单元又称作位寻址区。位寻址区共计128位,其位地址为00H~0FH。在内部RAM的低128个单元中,剩余的80个数据单元即30H~7FH为真正的用户RAM区,对于这些区域,用户只能以存储单元的形式来使用,通常在应用中也把堆栈开辟在这段区域。2.内部数据存储器高128单元内部数据存储器的高128个单元是为专用寄存器提供的,因此该区也称作特殊功能寄存器区(SFR),它们主要用于存放控制命令、状态或数据。除去程序计数器PC外,还有21个特殊功能寄存器,其地址空间为80H~FFH。这21个寄存器中有11个特殊功能寄存器具有位寻址能力,它们的字节地址刚好能被8整除。下面将对部分专用寄存器作简要介绍。累加器ACC累加器为8位寄存器,是程序中最常用的专用寄存器,在指令系统中累加器的助记符为A。大部分单操作数指令的操作取自累加器,很多双操作数指令的一个操作数也取自累加器。加、减乘和除等算术运算指令的运算结果都存放在累加器A或AB寄存器中,在变址寻址方式中累加器被作为变址寄存器使用。在MCS-51中由于只有一个累加器,而单片机中的大部分数据操作都是通过累加器进行的,故累加器的使用是十分频繁的。B寄存器B寄存器为8位寄存器,主要用于乘除指令中。乘法指令的两个操作数分别取自累加器A和寄存器B,其中B为乘数,乘法结果的高8位存放于寄存器B中。除法指令中,被除数取自A,除数取自B,除法的结果商数存放于A,余数存放于B中。在其它指令中,B寄存器也可作为一般的数据单元来使用。程序状态字PSW程序状态字是一个8位寄存器,它包含程序的状态信息。在状态字中,有些位状态是根据指令执行结果,由硬件自动完成设置的,而有些状态位则必须通过软件方法设定。PSW中的每个状态位都可由软件读出,PSW的各位定义如表2.1。表2.1PSW的各状态位定义(1)CY:进位标志位在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。在算术运算中它可作为进位标志,在位运算中,它作累加器使用,在位传送、位与和位或等位操作中,都要使用进位标志位。(2)AC:辅助进位标志进行加法或减法操作时,当发生低四位向高四位进位或借位时,AC由硬件置位,否则AC位被置“0”。在进行十进制调整指令时,将借助AC状态进行判断。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位标志CYACF0RS1RS0OV/P(3)用户标志位该位为用户定义的状态标记,用户根据需要用软件对其置位或清零,也可以用软件测试F0来控制程序的跳转。(4)RS1和RS0:寄存器区选择控制位该两位通过软件置“0”或“1”来选择当前工作寄存器区。(5)OV:溢出标志位当执行算术指令时,由硬件置位或清零来指示溢出状态。在带符号的加减运算中,OV=1表示加减运算结果超出了累加器A所能表示的符号数有效范围(-128~+127),即运算结果是错误的,反之,OV=0表示运算正确,即无溢出产生。无符号数乘法指令MUL的执行结果也会影响溢出标志,若置于累加器A和寄存器B的两个数的乘积超过了255,则OV=1,反之OV=0。由于乘积的高8位存放于B中,低8位存放于A中,OV=0则意味着只要从A中取得乘积即可,否则要从BA寄存器对中取得乘积结果。在除法运算中,DIV指令也会影响溢出标志,当除数为0时,OV=1,否则OV=0。(6)P:奇偶标志位每个指令周期由硬件来置位或清零用以表示累加器A中1的个数的奇偶性,若累加器中1的个数为奇数则P=1,否则P=0。l数据指针DPTR数据指针DPTR为一个16位的专用寄存器,其高位用DPH表示,其低位用DPL表示,它即既可以作为一个16位的寄存器来使用,也可作为两个8位的的寄存器DPH和DPL使用。DPTR在访问外部数据存储器时既可用来存放16位地址,也可作地址指针使用。如MOVX@DPTR,A。lI/O端口P0~P3P0~P3为四个8位的特殊功能寄存器,分别是四个并行I/O端口的锁存器,当I/O端口的某一位用作输入时,对应的锁存器必须先置“1”。l定时器/计数器在MCS-51中,除8032/8052外都只有两个16位定时器/计数器T0和T1,它们由两个相互独立的8位寄存器组成TH和TL,共有四个独立的寄存器TH0、TL0、TH1和TL1,只可对这四个寄存器独立寻址,而不能作为一个16位寄存器来寻址。l串行数据缓冲寄存器串行数据缓冲器SBUF用于存放将要发送或已接收的数据,它由发送缓冲器和接收缓冲器组成,将要发送的数据被送入SBUF时进入发送缓冲器,反之进
本文标题:单片机原理及应用 (1)
链接地址:https://www.777doc.com/doc-3138534 .html