
mcs-51系列单片机的结构和原理剖析.ppt
112页第2章 MCS-51单片机的结构和原理,2.1 MCS-51单片机的基本组成,2.1.1 MCS-51单片机的基本组成,基本型(8051子系列): 8031 8051 89C51 89S51,增强型(8052子系列): 8032 8052 89C52 89S52,MCS-51单片机的基本结构框图,MCS-51单片机的内部结构图,内部结构如下:,,,1. 中央处理器(CPU),(1)运算器 组成: 8位算术逻辑运算单元ALU(Arithmetic Logic Unit)、 8位累加器A(Accumulator)、 8位寄存器B、 程序状态字寄存器PSW(Program Status Word)、 8位暂存寄存器TMP1和TMP2等 功能:完成算术运算和逻辑运算包括运算器和控制器两部分,,运算电路,(2)控制器 组成: 程序计数器PC(Program Counter)、 指令寄存器IR(Instruction Register)、 指令译码器ID(Instruction Decoder)、 堆栈指针SP、数据指针DPTR、定时控制逻辑和振荡器OSC等电路 功能: CPU根据PC中的地址将欲执行指令的指令码从存储器中取出, 存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑 在OSC配合下对ID译码后的信号进行分时,以产生执行本条 指令所需的全部信号。
控制器电路,2、内部程序存储器,8031和8032内部没有ROM; 8051内部有4KB的ROM, 8751内部有4KB的EPROM; 8052内部有8KB的ROM, 8752内部有8KB的EPROM; 8951内部有4KB的Flash ROM, 8952内部有8KB的Flash ROM8031内部无程序存储器ROM; 8051内部设有4K的掩膜ROM, 8751内部为PROM, AT89C51内部为Flash ROM, AT89S51内部则是4K字节的支持ISP的Flash 51增强型产品存储器的存储容量为基本型的一倍, 同时增加了一个定时器T2和一个中断源,,内部程序存储器,3、内部数据存储器(内部RAM),Internal RAM,基本型单片机芯片中共有256个RAM单元,,低128单元:用于存放可读写的数据,供用户使用,高128单元:被专用寄存器占用,增强型的单片机内部共有256个字节的RAM可供用户使用内部数据寄存器,4、定时器/计数器,基本型的单片机内部有两个16位的定时器/计数器 T0、T1,增强型的单片机内部有三个16位的定时器/计数器T0、T1、T2,,定时器/计数器,5、并行I/O口,共有4个8位的I/O口( ),以实现数据 的并行输入输出,,,,,并行I/O口,6、串行口,全双工串行口,实现单片机和其他数据设备之间的串行 数据传送,,,串行口,7、中断控制系统,80C51共有5个中断源: 外中断2个,定时/计数中断2个,串行中断1个,5个中断分为高级和低级共两个优先级别,,,中断控制系统,8、时钟电路,MCS-51芯片的内部有时钟电路,需外接石英晶体和微调电容,时钟电路,,9、位处理器,又称布尔处理器,单片机有较强的位处理功能,用于控制,10、总线,总线把上述部件连接起来,构成一个完整的单片机系统, 用于传送地址信号、数据信号和控制信号,2.1.2 MCS-51单片机的封装与信号引脚 1. 芯片封装形式,双列直插式DIP(Dual In line Package),44引脚方形扁平式QFP(Quad Flat Package),带引线的塑料芯片载体PLCC(Plastic Leaded chip carrier),2. 芯片引脚介绍,(1)分类 主电源引脚VCC和VSS 外接晶振引脚XTAL1 和XTAL2 控制或电源复用引脚 RST/ VPD、 ALE/PROG EA/VPP、PSEN 输入/输出引脚(共32根) P0、P1、P2、P3,=,,0,读外部程序存储器,1,读内部程序存储器,并延续至外部程序存储器,2) XTAL1和XTAL2 外接晶体引线端,当使用内部时钟时,用于外接石英晶体和微调电容 当使用外部时钟时,用于接外部时钟脉冲信号,1) Vss 地线 Vcc 电源线,3)RST 复位信号,当输入的复位信号延续2个机器周期以上高电平时即为有 效,用以完成单片机的复位操作。
7)输入/输出口线,4个8位双向口线,5)ALE 地址锁存控制信号,• 在系统扩展时,用于控制把P0口输出的低8位地址 送入锁存器锁存起来,以实现低位地址和数据的分 时传送• 输出六分之一晶振频率的固定频率输出正脉冲,6) 外部程序存储器读选通信号,3、芯片引脚的第二功能,(1)P3口的第二功能,(2)EPROM存储器程序固化所需要的信号,:编程脉冲,Vpp: 编程电压(25V),(3)备用电源引入,VPD: 当电源发生故障时, 电压降低到下限值时, 备用电源经此端向内 部RAM提供电压,以 保护内部RAM中的信 息不丢失,第一功能与第二功能的区分:,1)P3口线按需要优先选用第二功能,剩下不用的才作为口 线使用,2)对于9、30、31引脚:,由于单片机在不同工作方式的信号,不会发生使用上的 矛盾,2.2 MCS-51单片机并行I/O端口电路,I/O口P0、P1、P2、P3集数据输入缓冲、数据输出驱动及锁 存等多项功能于一体,截 止,0,1,1,1,1.P1口,输出1,内有电阻,输出时无需外接上拉电阻,8位口线的电路完全相同但相互独立,导 通,1,0,0,0,输出0,输入时要区分:,读引脚(P1.x)指令:MOV A, P1 MOV C, P1.x,读端口(Q)指令:ANL P1, #0FH CPL P1.x,导 通,1,0,0,0,读引脚时,当数据线输出为0时可能会读到错误的数据,导通的场效应管则将输入设备的高电平1下拉到低电平0, 严重时还会造成短路,损坏设备,截 止,0,1,1,1,P1口作输入口使用时,先向锁存器写入1,使输出驱动 电路的FET截止,2.P2口,可作通用I/O口使用,也可作地址输出口使用,3. P3口,可作通用I/O口使用,而第二功能更重要,作为一般输出口(第一输出功能)使用时,1,打开,作为一般输出口(第一输出功能)使用时,1,打开,,当选择第二输出功能时,,1,打开,,,作为一般输入口(第一输入功能)使用时,1,1,0,截止,,,作为一般输入口(第一输入功能)使用时 或第二输入功能时,1,1,0,截止,,,,,4.P0口,(1)P0口作为通用的I/O口使用,P0口作通用I/O口输出使用,0,封锁,0,截止,,,,P0口作通用I/O口输出使用,0,封锁,0,截止,,,,1,1,0,0,1,截止,,,,,P0口作通用I/O口输出使用,0,封锁,0,截止,,,,0,0,1,1,0,导通,,,,,P0口作通用I/O口输入使用,0,封锁,0,截止,读 引 脚,,,,,读锁存器,,,,,(2)P0口作为地址/数据总线使用,1,打开,传送地址或数据时,1,打开,1,1,0,导 通,截 止,1,0,传送地址或数据时,1,打开,0,0,1,导 通,截 止,0,1,输入数据信息时,截 止,0,,,,,,,,,负载能力 P0 驱动8个TTL P1、P2、P2 驱动4个TTL,2.3 MCS-51单片机的存储器结构,MCS-51单片机存储器地址空间分配图,内部存储器,,内部数据存储器RAM,内部程序存储器ROM,,低128单元,高128单元,2.3.1 程序存储器(ROM) 类型 腌膜ROM EPROM EEPROM Flash ROM 片内寻址范围 EA=1时: (否则64KB全部限定在片外) 51系列,4KB,0000H 0FFFH 52系列,8KB,0000H 1FFFH 一组特殊单元 RESET 地址: 0000H 中断向量: 0003H 000AH 外部中断(INT0)地址区 000BH 0012H 定时器/计数器中断(T0)地址区 0013H 001AH 外部中断(INT1)地址区 001BH 0022H 定时器/计数器中断(T1)地址区 0023H 002AH 串行中断(Serial)地址区,中断响应后,系统能按中断种类,自动转到各中断区的首 地址去执行程序,但8个单元难以存下一个完整的中断服务程序, 故一般在中断地址区首地址开始存放一条无条件转移指令 JMP、 AJMP以便中断响应后,通过中断地址区,转到 中断服务程序的实际入口地址去,系统复位后,(PC)=0000H 单片机从0000H单元开始取指令执行程序 一般在这三个单元中存放一条无条件转移指令 JMP、 AJMP,2.3.2 数据存储器,MOV指令,MOVX指令,用于存放运算的中间 结果、标志位以及数 据的暂存和缓冲等,1. 基本RAM区,按用途分三个区 通用寄存器区 位寻址区 用户RAM区,(1)工作寄存器区(00~1FH),4组工作寄存器组,地址范围:00H~1FH,共4组, 每组R0~R7。
当前寄存器组选择: 通过设置PSW中的位 RS1、 RS0完成 仅当前R组以寄存器方式 工作,其他组以存储器方式 功能: 存放常用变量,提高访问速度; 在中断或程序调用时使用,可 减少堆栈中的数据保护,(2)位寻址区(16Byte) 地址范围:20H2FH 对应位地址:00H7FH 功能 可进行位操作,设置用户标志 未作位操作单元,可进行字节操作,(3)堆栈/用户数据区 地址范围:30H7FH 功能 程序堆栈区 常选高端连续地址(如:50H7FH) 用户数据区,2.特殊功能寄存器(SFR)高128单元 地址范围:物理地址分布在80HFFH中; 未作定义单元,操作无效 数量:51系列共有SFR 21个,如图; 52系列SFR 26个 操作方式: 访问时,可用寄存器符号或地址; 字节操作 位操作(表中带*号的SFR) 专用寄存器简介,1. 程序计数器 (Program Counter) 16位计数器,寻址范围64KB; 存放下一条要执行的指令的地址; 自动加1,保证指令顺序执行; PC无地址,不能直接操作 2. 累加器A(Acc—Accumulator) 8位寄存器 (The most versatile 使用频率最高 register) 3. B寄存器 8位寄存器,用于乘除运算。
也可作一般数据寄存器 专用寄存器简介,返回本节,4. 数据指针DPTR(Data Pointer) 16位寄存器,寻址范围64KB; 由两个8位寄存器(DPH DPL)组成; 用于存放ROM及片外RAM地址 如:MOV DPTR,#2000H,(无符号数),5 程序状态字(Program Status Word) 8位寄存器,存放指令执行的状态信息堆栈只允许在其一端进行数据插入和数据删除操作的线性表,数据写入堆栈称为插入运算(入栈),PUSH 从堆栈中读出数据称为删除运算(出栈),POP,堆栈的特点:后进先出 LIFO(Last-In Firt-Out),(1)堆栈的功用,堆栈是为子程序调用和中断操作而设立的,功能,,保护断点:调用子程序时或中断服务之前先把主程序 的断点保护起来,保护现场:转子程序或中断服务程序前把有关寄存单 元的内容保存起来,6 堆栈指针 SP(Stack Pointer),(2)堆栈的开辟,堆栈开辟在芯片的内部数据存储器中,即内堆栈,内堆栈优点:操作速度快,缺点:容量有限,(3)堆栈指示器SP(Stack Pointer),8位专用寄存器 SP的内容就是堆栈栈顶的 存储单元地址,系统复位后,SP的内容为07H,07H是R7的地址, 一般用30H~7FH 单元比较好,(4)堆栈类型,两种类型,,向上生长型,向下生长型,进栈操作:先SP加1,后写入数据 出栈操作:先读出数据,后SP。












