单片机第三章.ppt_第1页
单片机第三章.ppt_第2页
单片机第三章.ppt_第3页
单片机第三章.ppt_第4页
单片机第三章.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章单片机的结构及原理 3 1 单片机的结构 3 1 2单片机的引脚定义及功能 3 1 1标准型单片机的组成及结构 Intel公司51系列单片机典型产品 基本型 增强型 8051 8751 80318052 8752 803280C51 87C51 80C3180C52 87C52 80C32 3 1 1 单片机的组成及结构 单片机功能方块图 以AT89S51 S52单片机为例 3 1 1 80C51单片机的组成及结构 3 1 1 80C51单片机的组成及结构 AT89S51单片机的组成 1 中央处理器 CPU 8位字长 是单片机的核心2 内部数据存储器 内部RAM 共256个RAM单元 用户使用前128个 后128个为专用寄存器 3 内部程序存储器 内部ROM 4KB闪存 AT89S528KB闪存4 定时器 计数器 AT89C51共2个16位 5 并行I O口 共4个8位的I O口 6 串行口 共1个全双工可编程串行口 一个ISP串口 7 时钟电路 为单片机产生时钟脉冲序列 8 中断系统 3个内部和2个外部 共5个中断源 AT89S51单片机的内部结构图 3 1 1 80C51单片机的组成及结构 3 1 2 单片机的引脚定义及功能 1 电源引脚VCC和VSSVCC 40脚 电源端 5VVSS 20脚 接地端 GND 2 时钟电路引脚XTAL1 19脚 外接晶振输入引脚 XTAL2 18脚 外接晶振输出引脚 3 控制线引脚RST 9脚 通过外接复位电路实现上电复位或按键复位 必须输入2个机器周期以上高电平才能将单片机复位 3 1 2 89S51单片机的引脚定义及功能 EA VPP 31脚 内外ROM的选择 EPROM编程电源 EA 0 访问外部ROM EA 1 访问内部ROM PC值超过0FFFH 4KB 时 自动转向外ROM VPP 在对片内EPROM编程时 用于施加编程电压 ALE PROG 30脚 地址锁存允许 编程脉冲 ALE 访问片外ROM或RAM时 用来驱动地址锁存器锁存P0口 分时送出的低8位地址 下降沿有效 不访问外存储器时 该端以1 6时钟频率输出正脉冲 可用作为外部时钟 带8个LSTTL门电路 PROG 在固化片内存储器程序时 输入编程脉冲 3 1 2 80C51单片机的引脚定义及功能 PSEN 29脚 读外部ROM选通信号 即该脚有效时 上升沿 外部ROM允许输出 每个机器周期2次有效 从内部ROM取指时不产生 可带8个LSTTL门电路 4 输入 输出引脚P0口 P0 0 P0 7 39 32脚 外接存储器时作地址 数据分时复用口线 不接外部存储器时 可用作为8位双向I O口 P1口 P1 0 P1 7 1 8脚 8位准双向I O口 P2口 P2 0 P2 7 21 28脚 8位准双向I O口 外接存储器时作为高8位地址总线 P3口 P3 0 P3 7 10 17脚 8位准双向I O口 出于芯片引脚数的限制 P3口具有第二输出 输入功能 3 1 2 80C51单片机的引脚定义及功能 3 2 单片机的工作原理 3 2 2CPU的工作原理 3 2 1指令与程序概述 3 2 3单片机执行程序的过程 1 指令是规定计算机执行特定操作 例如加 减等 的命令 2 CPU就是根据指令来指挥和控制计算机各部分协调地动作 完成规定的操作 3 指令是由二进制代码表示的 指令分为操作码和操作数两部分 操作码规定操作的类型 操作数给出参加操作的数据或存放数据的地址 4 指令系统 计算机全部指令的集合 5 程序是根据任务要求有序地编排指令的集合 6 程序设计 程序的编制 7 软件 为了运行和管理计算机所编制的各种程序的总和 3 2 1 指令与程序概述 3 2 2 CPU的工作原理 CPU主要由控制器和运算器组成 1 控制器 控制器的功能是接受来自存储器中的逐条指令 进行指令译码 并通过定时和控制电路 在规定的时刻发出各种操作所需的全部内部控制信息及CPU外部所需的控制信号 完成指令所规定的各种操作 由指令部件 时序部件和微操作控制部件等部分组成 1 指令部件 是一种能对指令进行分析 处理和产生控制信号的逻辑部件 由程序计数器PC 指令寄存器 指令译码器等组成 程序计数器PC Programcounter 程序计数器是16位专用寄存器 用于存放和指示下一条要执行指令的地址 它有自动加1的功能 当一条指令 确切地说是指令字节 按照PC所指的地址从存储器中取出之后 PC就会自动加1 单片机工作过程的实质是 逐条执行人们所编制程序的过程 3 2 2 CPU的工作原理 2 运算器 运算器是用于对数据进行算术运算和逻辑操作的执行部件 包括算术 逻辑部件 ALU 累加器ACC Accumulator 暂存寄存器 TMP1和TMP2 程序状态字寄存器PSW ProgramStatusWord 通用寄存器 专门用于位操作的布尔处理机以及BCD码运算调整电路等组成 算术逻辑单元ALU算术逻辑单元ALU不仅能完成8位二进制数的加 带进位加 减 带借位减 乘 除 加1 减1及BCD加法的十进制调整等算术运算 3 2 2 CPU的工作原理 3 3 80C51的存储器 3 3 2数据存储器 3 3 1程序存储器 3 3 3专用寄存器SFR 普林斯顿结构 程序和数据共用一个存储器逻辑空间 统一编址 哈佛结构 程序与数据分为两个独立存储器逻辑空间 分开编址 程序和数据存储器逻辑空间 物理上4个存储器地址空间 片内 片外程序存储器空间 片内 片外数据存储器空间逻辑上3个存储器地址空间 用户使用角度 64KB程序存储器 256B片内 64KB片外数据存储器 3 3 1 程序存储器 3 3 1 程序存储器 0000H FFFFH ROM 0003H 000BH 0013H 001BH 0023H 复位入口 INT0中断入口 T0中断入口 INT1中断入口 T1中断入口 串口中断入口 3 3 1 程序存储器 工作 寄存器区 位寻址区 通用 RAM区 00H 1FH 30H 7FH 32个字节 16个字节 80个字节 80H FFH SFR区 直接寻址 访问 外部RAM 或I O 64K 0000H FFFFH RD WR 访问片内RAM用 MOV 指令 访问片外RAM用 MOVX 指令 3 3 2 数据存储器 在低128BYTERAM区中 00H 1FH地址为通用工作寄存器区 共分为4组 每组由8个工作寄存器 R0 R7 组成 3 3 2 数据存储器 3 3 2 数据存储器 3 3 2 数据存储器 ACC 累加器AB B寄存器PSW 程序状态字SP 堆栈指针DPTR 数据指针 由DPH和DPL组成 P0 P3 端口0 3IP 中断优先级IE 中断允许TMOD 定时器 计数器方式设置TCON 定时器 计数器控制TH0 1 定时器 计数器0 1 高字节 TL0 1 定时器 计数器0 1 低字节 SCON 串行控制SBUF 串行数据缓冲器PCON 电源控制 3 3 3 专用寄存器SFR 1 程序状态字寄存器PSW 8位 其各位含义为 C CY 进位 借位标志 有进位时C 1 否则C 0 AC 半进位 借位标志 F0 F1 用户标志位 由用户置为或复位 RS1 RS0 当前工作寄存器组选择位 OV 溢出标志位 有溢出时OV 1 否则OV 0 P 奇偶标志位 ACC中有奇数个1时P 1 否则P 0 PSW位地址 字节地址D0H 3 3 3 专用寄存器SFR 补码的运算规则与溢出判别1 补码的运算规则补码的运算规则如下 1 X Y 补 X 补 Y 补该运算规则说明 任何两个数相加 无论其正负号如何 只要对它们各自的补码进行加法运算 就可得到正确的结果 该结果是补码形式 2 X Y 补 X 补 Y 补该运算规则说明 任意两个数相减 只要对减数连同 号求补 就变成 被减数 补与 减数 补相加 该结果是补码形式 3 X 补 补 X 原对于运算产生的补码结果 若要转换为原码表示 则正数的结果 X 补 X 原 负数结果 只要对该补结果再进行一次求补运算 就可得到负数的原码结果 3 3 3 专用寄存器SFR 溢出的判别计算机中判别溢出的方法通常采用双高位判别法 双高位判别法利用符号位 Kn 1位 及最高数值位 Kn 2位 的进位情况来判断是否发生了溢出 为此 需引进两个符号 CS和CP CS 若符号位发生进位 则CS 1 否则CS 0 CP 若最高数值位发生进位 则CP 1 否则CP 0 对计算机而言 补码的引入使带符号数的运算都按加法处理 如果C 和C 的值相等 则表示运算结果正确 没有溢出 运算结果的正与负由符号位决定 如果CS和CP的值不等 则表示运算结果不正确 发生了溢出现象 在计算机中 常用 异或 电路来判别有无溢出发生 即CSCP 1表示有溢出发生 否则无溢出发生 例1 01011001 89 10010010 110 01101100 108 10100100 92 011000101 59 100110110 54 CS 0 CP 1 正溢出CS 1 CP 0 负溢出 例2 00110010 50 11101100 20 01000110 70 11100010 30 001111000 120 111001110 50 CS 0 CP 0 无溢出CS 1 CP 1 无溢出 2 累加器ACC 8位 字节地址 0E0H通过暂存器与ALU相连 用于向ALU提供操作数 许多运算的结果也存放在累加器中 在指令系统中累加器的助记符为A 以下将简称ACC为A 3 寄存器B 8位 字节地址 0F0H主要用于乘 除法运算中暂存数据 乘法指令的两个操作数分别取自A和B 结果再存于BA中 除法指令中的被除数取自A 除数取自B 结果商存于A中 余数存放在B中 也可以作为RAM的一个单元使用 3 3 3 专用寄存器SFR 5 数据指针 用来存放外接的数据存储器和I O接口的16位的地址 1 AT89S51的SRF有2个数据指针寄存器DPTR0 DPTR1 但指令中数据指针只有一种表示方法DPTR 主要通过辅助寄存器AUXR1的DPS位选择 2 DPS 0时 指令中DPTR指的是DPTR0 默认 DPS 1时 指令中DPTR指的是DPTR13 DPTR0 DPTR1 都是由两个8位的寄存器DPH0和DPL0 DPH1和DPL1 组成 间接寻址或变址寻址可访问片外的64KB范围的RAM或ROM数据 3 3 3 专用寄存器SFR 5 堆栈指针SP 8位 地址 81H SP总是指向栈顶 80C51单片机的堆栈常设在30H 7FH这一段RAM中 堆栈操作遵循 后进先出 的原则 入栈操作时 SP先加1 数据再压入SP指向的单元 出栈操作时 先将SP指向的单元的数据弹出 然后 SP再减1 这时SP指向的单元是新的栈顶 堆栈的操作有两种方式 一种是指令方式 即使用堆栈操作指令进行 进 出栈 操作 用户可根据其需要使用堆栈操作指令对现场进行保护和恢复 另一种是自动方式 即在调用子程序或产生中断时 返回地址 断点 自动进栈 程序返回时 断点地址再自动弹回PC 这种堆栈操作不需用户干预 是通过硬件自动实现的 3 3 3 专用寄存器SFR 3 4 输入 输出端口结构 3 4 2P1口 3 4 1P0口 3 4 3P2口 3 4 4P3口 3 4 5端口负载能力和接口要求 P0 X锁存器 D Q Q CL 0 1 MUX VCC 1 P0 X引脚 控制 地址 数据 读锁存器 读引脚 写锁存器 内部总线 T1 T2 3 4 1 P0口 P0口是一个三态双向口 可作为地址 数据分时复用口 也可作为通用I O接口 其1位的结构原理如下图 1 1 0 1 0 1 0 0 P0口由8个这样的电路组成 锁存器起输出锁存作用 8个锁存器构成了特殊功能寄存器P0 场效应管 FET T1 T2组成输出驱动器 以增大带负载能力 三态门1是引脚输入缓冲器 三态门2是用于读锁存器端口 一 当系统不进行片外的ROM扩展 也不进行片外RAM扩展时 P0用作通用I O口 此时 单片机硬件自动使控制C 0 MUX开关接向锁存器的反相输出端 二 当系统进行片外的ROM扩展或进行片外RAM扩展 P0用作地址 数据总线分时复用 此时 单片机内硬件自动使C 1 MUX开关接向地址 数据端 3 4 1 P0口 作输出口时 CPU执行口的输出指令 内部数据总线上的数据在 写锁存器 信号的作用下由D端进入锁存器 经锁存器的反向端送至场效应管T2 再经T2反向 在P0 X引脚出现的数据正好是内部总线的数据 作输入口时 数据可以读自口的锁存器 也可以读自口的引脚 这要根据输入操作采用的是 读锁存器 指令还是 读引脚 指令来决定 CPU在执行 读 修改 写 类输入指令时 如 ANLP0 A 内部产生的 读锁存器 操作信号 使锁存器Q端数据进入内部数据总线 在与累加器A进行逻辑运算之后 结果又送回P0的口锁存器并出现在引脚 读口锁存器可以避免因外部电路原因使原口引脚的状态发生变化造成的误读 3 4 1 P0口 通用输 入输出 CPU在执行 MOV 类输入指令时 如 MOVA P0 内部产生的操作信号是 读引脚 注意 在执行该类输入指令前要先把锁存器写入 1 使场效应管T2截止 使引脚处于悬浮状态 可以作为高阻抗输入 否则 在作为输入方式之前曾向锁存器输出过 0 则T2导通会使引脚箝位在 0 电平 使输入高电平 1 无法读入 所以 P0口在作为通用I O口时 属于准双向口 3 4 1 P0口 通用输入 输出 CPU在执行输出指令时 低8位地址信息和数据信息分时地出现在地址 数据总线上 P0 X引脚的状态与地址 数据线的信息相同 CPU在执行输入指令时 首先低8位地址信息出现在地址 数据总线上 P0 X引脚的状态与地址 数据总线的地址信息相同 然后 CPU自动地使转换开关MUX拨向锁存器 并向P0口写入FFH 同时 读引脚 信号有效 数据经缓冲器进入内部数据总线 可见 P0口作为地址 数据总线使用时是一个真正的双向口 3 4 1 P0口 地址 数据复用 R T P1 X锁存器 D Q Q CL VCC P1 X引脚 读锁存器 读引脚 写锁存器 内部总线 T P1口是一个三态双向口 可作为通用I O接口 其1位的结构原理如下图 3 4 2 P1口 1 0 1 0 1 0 P1口是作通用I O口使用 其输出驱动部分与P0口不同 内部有上拉负载电阻与电源相连 实质上该电阻也是一个FET 称负载场效应管 对应下面的一个FET可称工作场效应管 P1口是通用的准双向I O口 输出高电平时 能向外提供拉电流负载 不必再接上拉电阻 当P1口用作输入时 须向口锁存器写入1 3 4 2 P1口 P2口是一个三态双向口 可作为高8位的地址口 也可作为通用I O接口 其1位的结构原理如下图 3 4 3 P2口 P2用作通用I O口当不需要在单片机芯片外部扩展程序存储器 只需扩展256B的片外RAM时 只用到了地址线的低8位 P2口仍可以作为通用I O口使用 CPU在执行输出指令时 内部数据总线的数据在 写锁存器 信号的作用下由D端进入锁存器 经反相器反相后送至场效应管T 再经T反相 在P2 X引脚出现的数据正好是内部总线的数据 P2口用作输入时 数据可以读自口的锁存器 也可以读自口的引脚 这要根据输入操作采用的是 读锁存器 指令还是 读引脚 指令来决定 3 4 3 P2口 CPU在执行 读 修改 写 类输入指令时内部产生的 读锁存器 操作信号使锁存器Q端数据进入内部数据总线 在与累加器A进行逻辑运算之后 结果又送回P2的口锁存器并出现在引脚 CPU在执行 MOV 类输入指令时 内部产生的操作信号是 读引脚 应在执行输入指令前要把锁存器写入 1 从而使引脚处高阻抗输入状态 所以 P2口在作为通用I O口时 属于准双向口 P2用作地址总线当需要在单片机芯片外部扩展程序存储器或扩展的RAM容量超过256字节时 单片机内硬件自动使控制C 1 MUX开关接向地址线 这时P2 X引脚的状态正好与地址线的信息相同 3 4 3 P2口 P3口是一个三态双向口 可作为通用I O接口 也是多功能口 其1位的结构原理如下图 3 4 4 P3口 P3用作通用I O口时 硬件自动将第二功能输出线置1 作为输出时 锁存器的状态与输出引脚的状态相同 作为输入时 也要先向口锁存器写入1 使引脚处于高阻输入状态 输入的数据在 读引脚 信号的作用下 进入内部数据总线 P3口在作为通用I O口时 属于准双向口 3 4 4 P3口 作为通用输入 输出 P3口作为第二功能使用时 硬件自动将口锁存器的Q端置1 P3 0 RXD 串行口输入 P3 1 TXD 串行口输出 P3 2 INT0 外部中断0输入 P3 3 INT1 外部中断1输入 P3 4 T0 定时器0的外部输入 P3 5 T1 定时器1的外部输入 P3 6 WR 片外数据存储器 写 选通控制输出 P3 7 RD 片外数据存储器 读 选通控制输出 3 4 4 P3口 作为第二功能 3 4 5 端口负载能力和接口要求 P0口的输出级与P1 P3口的输出级在结构上是不同的 没有内部上拉电阻 因此 它们的负载能力和接口要求也各不相同 P1 P3口也被称做准双向口 1 P0口的每一位可驱动8个LSTTL负载 P0既可作I O端口使用 也可作地址总线 数据总线使用 当把它作通用口输出时 输出级是开漏电路 在驱动NMOS或其他拉电流负载时 只有外接上拉电阻 才有高电平输出 作地址总线 数据总线时 无需外接电阻 但此时不能再作I O口使用 2 P1 P3口输出级接有内部上拉负载电阻 每位可驱动4个LSTTL负载 3 P0 P3口都是双向I O口 作输入时 必须先在相应端口锁存器上写 1 使驱动管FET截止 系统复位时 端口锁存器全为 1 3 5 CPU时序及时钟电路 3 5 280C51的指令时序 3 5 1CPU时序及有关概念 3 5 3振荡器和时钟电路 1 时钟周期也称为振荡周期 定义为时钟脉冲频率的倒数 是计算机中最基本的 最小的时间单位 在一个时钟周期内 中央处理器CPU仅完成一个最基本的动作 在80C51单片机中把一个时钟周期定义为一个节拍 用P表示 二个节拍定义为一个状态周期 用S表示 2 机器周期在计算机中 为了便于管理 常把一条指令的执行过程划分为若干个阶段 每一阶段完成一项工作 例如 取指令 存储器读 存储器写等 这每一项工作称为一个基本操作 完成一个基本操作所需要的时间称为机器周期 一般情况下 一个机器周期由若干个S周期组成 80C51单片机的一个机器周期由6个S周期组成 3 5 1 CPU时序基本概念 3 指令周期指令周期是执行一条指令所需要的时间 一般由若干个机器周期组成 指令不同 所需要的机器周期数也不同 几种典型指令的取指时序类型 1 单字节单周期指令 例如INCA 2 双字节单周期指令 例如ADDA data 3 单字节双周期指令 例如INCDPTR 4 双字节双周期指令 例如MOVXA DPTR 3 2 2 3 5 2 80C51的指令时序 例如 外接晶振为12MHz时 80C51单片机的4个时间周期的具体值为 振荡周期 1 12 s 状态周期 1 6 s 机器周期 1 s 指令周期 1 4 s 3 2 2 3 5 2 80C51的指令时序 单字节指令双字节指令 双周期指令时序 单周期指令时序 3 2 2 3 5 2 80C51的指令时序 计算机在执行指令时 通常将一条指令分解为若干基本的微操作 这些微操作所对应的脉冲信号在时间上的先后次序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论