李朝青单片机原理及接口技术 (第3版)ppt课件.ppt_第1页
李朝青单片机原理及接口技术 (第3版)ppt课件.ppt_第2页
李朝青单片机原理及接口技术 (第3版)ppt课件.ppt_第3页
李朝青单片机原理及接口技术 (第3版)ppt课件.ppt_第4页
李朝青单片机原理及接口技术 (第3版)ppt课件.ppt_第5页
已阅读5页,还剩1102页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理及接口技术 单击此处添加标题 目录 第1章微机基础知识第2章89C51单片机硬件结构和原理第3章指令系统第4章汇编语言程序设计知识第5章中断系统第6章定时器及应用第7章89C51串行口及串行通信技术第8章单片机小系统及扩展第9章应用系统配置及接口技术第10章系统实用程序 第一章微机基础知识 1 1微处理器 微机和单片机的概念 1 2常用数制和编码 1 3数据在计算机中的表示 1 489C51单片机 1 5思考题与习题 1 1微处理器 微机和单片机的概念 Back 1 1 2存储器和输入输出接口 1 1 1微处理器 机 的组成 概念 1 微处理器 3 单片机 2 微型计算机 微处理器 Microprocessor 是小型计算机或微型计算机的控制和处理部分 又称中央处理单元CPU CentralProcessingUnit 微型计算机 Microcomputer 简称微机MC 是具有完整运算及控制功能的计算机 包括 微处理器 CPU 如图1 1所示 存储器 接口适配器 输入输出接口电路 输入 输出 I O 设备 图1 1微机的组成 微处理器由控制器 运算器和若干个寄存器组成 设备与微处理器的连接需要通过接口适配器 即 接口 存储器是指微机内部的存储器 RAM ROM和EPROM等芯片 单片机 Single ChipMicrocomputer 是将微处理器 一定容量RAM和ROM以及I O口 定时器等电路集成在一块芯片上 构成单片微型计算机 微处理器RAMROMI O口定时器 单片微型计算机 Back 1 1 1微处理器 机 的组成 Back 1 运算器 2 控制器 3 CPU中的主要寄存器 计算机的模型 微处理单元与存储器及I O接口组成的计算机模型如图1 2所示 图中只画出CPU主要的寄存器和控制电路 并且假设所有的计数器 寄存器和总线都是8位宽度 ALU 计数器 寄存器和控制部分除在微处理器内通过内部总线相互联系以外 还通过外部总线和外部的存储器和输入 输出接口电路联系 外部总线一般分为数据总线 地址总线和控制总线 统称为系统总线 存储器包括RAM和ROM 微计算机通过输入 输出接口电路可与各种外围设备联接 图1 2一个计算机模型 1 运算器 Back 1 组成 2 作用 3 ALU的两个主要的输入来源 4 运算器的两个主要功能 1 运算器的组成 算术逻辑单元 简称ALU Back 运算器 累加器 寄存器 2 运算器的作用 是把传送到微处理器的数据进行运算或逻辑运算 举例 ALU可对两个操作数进行加 减 与 或 比较大小等操作 最后将结果存入累加器 ALU执行不同的运算操作是由不同控制线上的信息所确定的 Back 例如 两个数 7和9 相加 在相加之前 操作数9放在累加器中 7放在数据寄存器中 执行两数相加运算的控制线发出 加 操作信号 ALU即把两个数相加并把结果 16 存入累加器 取代累加器前面存放的数9 Back 3 ALU的两个主要的输入来源 输入来源 数据寄存器 累加器 Back 4 运算器的两个主要功能 1 执行各种算术运算 2 执行各种逻辑运算 并进行逻辑测试 如零值测试或两个值的比较 Back 2 控制器 1 控制器的组成 2 控制器的作用 3 控制器的主要功能 Back Back 控制器的组成 程序计数器 指令寄存器 指令译码器 时序产生器 操作控制器 1 控制器的组成 2 作用 它是发布命令的 决策机构 即协调和指挥整个计算机系统的操作 Back 3 控制器的主要功能 对指令进行译码或测试 并产生相应的操作控制信号 以便启动规定的动作 指挥并控制CPU 内存和输入 输出设备之间数据流动的方向 从内存中取出一条指令 并指出下一条指令在内存中的位置 Back 3 CPU中的主要寄存器 1 累加器 A 2 数据寄存器 DR 3 指令寄存器 IR 4 指令译码器 ID 6 地址寄存器 AR 5 程序计数器 PC Back 1 累加器 A Back 在算术和逻辑运算时 它具有双重功能 运算前 用于保存一个操作数 运算后 用于保存所得的和 差或逻辑运算结果 累加器是微处理器中最繁忙的寄存器 2 数据寄存器 DR 数据 缓冲 寄存器 DR 是通过数据总线 DBUS 向存储器 M 和输入 输出设备I O送 写 或取 读 数据的暂存单元 Back 3 指令寄存器 IR 指令寄存器用来保存当前正在执行的一条指令 当执行一条指令时先把它从内存取到数据寄存器中 然后再传送到指令译码器中 Back 4 指令译码器 ID 指令分为操作码和地址码字段 由二进制数字组成 当执行任何给定的指令 必须对操作码进行译码 以便确定所要求的操作 指令寄存器中操作码字段的输出就是指令译码器的输入 操作码一经译码后 即可向控制器发出具体操作的特定信号 Back 5 程序计数器 PC 通常又称为指令地址计数器 在程序开始执行前 必须将其起始地址 即程序的第一条指令所在的内存单元地址送到PC 当执行指令时 CPU将自动修改PC的内容 使之总是保存将要执行的下一条指令的地址 由于大多数指令都是按顺序执行的 所以修改的过程通常是简单的加1操作 Back 6 地址寄存器 AR 地址寄存器用来保存当前CPU所要访问的内存单元或I O设备的地址 因为内存 I O设备 和CPU之间存在着速度上的差别 所以必须使用地址寄存器来保存地址信息 直到内存 I O设备 读 写操作完成为止 Back 1 1 2存储器和输入输出接口 1 存储器 2 I O接口及外设 Back 1 存储器 如图1 4所示 地址总线 数据总线和若干控制线把存储器和微处理器连接起来 存储器从CPU接收控制信号 以确定存储器执行读 写操作 地址总线将8位地址信息送入地址译码器 地址译码器的输出可以确定唯一的存储单元 数据总线用来传送存储器到CPU或CPU到存储器的数据信息 Back 图1 4随机存取存储器 2 I O接口及外设 每个外设与微处理器的连接必须经过接口适配器 I O接口 每个I O接口及其对应的外设都有一个固定的地址 在CPU的控制下实现对外设的输入 读 和输出 写 操作 Back 1 2常用数制和编码 Back 1 2 1数制及数制间转换 1 2 2计算机中常用编码 1 2 1数制及数制间转换 Back 1 数制 计数的进位制2 不同数制之间的转换 1 数制 计数的进位制 Back 1 二进制 是 0 和 1 这样的数 逢2进位 按权展开时权的基数为2 用后缀字母 B 表示 如 1001 1 23 0 22 0 21 1 20 9 十进制数 2 十进制 是 0 9 之间的数 逢10进位 按权展开时权的基数为10 用后缀字母 D 表示 如 1135 1 103 1 102 3 101 5 1003 十六进制 是 0 9 A B C D E F 之间的数 逢16进位 按权展开时权的基数为16 用后缀字母 H 表示 如 1C5H 1 162 12 161 5 160 453D 2 不同数制之间的转换 Back 1 二进制 十六进制转化成十进制 将二 十六进制数按权展开相加即为相应的十进制数 如 1101 1 23 1 22 0 21 1 20 13D如 1FH 1 161 15 160 31D2 十进制转换成二进制数 将十进制数除2取余 商为0止余数倒置 如 11D 1011B3 十进制转换成十六进制数 将十进制数除16取余 商为0止余数倒置 如 100D 64H4 二进制转换成十六进制数 将二进制数以小数点为界四位一分 不足补0 用一位十六进制数代替四位二进制数 如 100111100B 000100111100B 13CH5 十六进制转换成二进制数 将十六进制数以小数点为界 用四位二进制数代替一位十六进制数 如 D4EH 110101001110B 1 2 2计算机中常用编码 Back BCD BinaryCodedDecimal 码 二十进制码ASCII AmericanStandardCodeforInformationInterchange 码 1 BCD BinaryCodedDecimal 码 二十进制码 Back BCD码是一种二进制形式的十进制码 也称二十进制码 它用4位二进制数表示1位十进制数 最常用的是8421BCD码 见表1 2 8421BCD码用0000H 1001H代表十进制数0 9 运算法则是逢十进一 8421BCD码每位的权分别是8 4 2 1 故得此名 例如 1649的BCD码为0001011001001001 表1 28421BCD码表 Back 2 ASCII AmericanStandardCodeforInformationInterchange 码 Back ASCII码是一种字符编码 是美国信息交换标准代码的简称 见表1 3 它由7位二进制数码构成 共有128个字符 ASCII码主要用于微机与外设通信 当微机与ASCII码制的键盘 打印机及CRT等连用时 均以ASCII码形式进行数据传输 例如 当按微机的某一键时 键盘中的单片机便将所按的键码转换成ASCII码传入微机进行相应处理 Back 表1 3ASCII码字符表 1 3数据在计算机中的表示 Back 1 3 1有符号数 1 3 2无符号数 1 3 1有符号数 有符号的8位二进制数用最高位D7表示数的正或负 0代表 1代表 D7称为符号位 D6 D0为数值位 Back 上述的8位带符号二进制数又有3种不同表达形式 即原码 反码和补码 在计算机中 所有有符号数都是以补码形式存放的 Back 1 原码一个二进制数 用最高位表示数的符号 其后各位表示数值本身 这种表示方法称为原码 原码的表示范围是 127 127例如 X 1011010B X 原 01011010B X 1011010B X 原 11011010B2 反码正数的反码与原码相同 符号位一定为0 其余位为数值位 负数的反码符号位为1 数值位将其原码的数值位逐位求反 反码的表示范围是 127 127例如 X 1011010B X 原 11011010B X 反 10100101B 3 补码正数的补码与原码相同 负数的补码符号位为1 数值位将其原码的数值位逐位求反后加1 即负数的反码加1 补码的表示范围是 128 127例如 X 1011010B X 补 10100110B通常计算机中的数用补码表示 用补码进行运算 一个很明显的优点是减法可以用补码的加法来运算 这里还要特别提示 溢出 的概念 溢出与进位不同 溢出是指有符号数的运算结果超出了数 128 127的表示范围 破坏了符号位 Back 4 机器数与真值机器数 计算机中以二进制形式表示的数 真值 机器数所代表的数值 例如 机器数10001010B 它的真值为138 无符号数 10 原码 117 反码 118 补码 例15 怎样根据真值求补码 或根据补码求真值 答 只有两种求补码的方法 一是求负数的补码 用绝对值 取反加1 来求补码 二是求负数 补码 的真值 可先将该补码数用 取反加1 的方法得到其绝对值 再在绝对值前添加一负号 Back 无符号的8位二进制数没有符号位 从D7 D0皆为数值位 所以8位无符号二进制数的表示范围是0 255 8位二进制数码的不同表达含义见表1 4 Back 1 3 2无符号数 Back 表1 4数的表示方法 Back Back 1 489C51单片机 Back 51系列单片机有多种型号的产品 如普通型 51子系列 80C51 80C31 87C51和89C51等 增强型 52子系列 80C32 80C52 87C52和89C52等 它们的结构基本相同 其主要差别反映在存储器的配置上 80C31片内没有程序存储器 80C51内部设有4KB的掩膜ROM程序存储器 87C51是将80C51片内的ROM换成EPROM 89C51则换成4KB的闪速E2PROM 51增强型的程序存储器容量为普通型的2倍 通常以8 C51代表这一系列的单片机 其中 0 掩膜ROM 7 EPROM OTPROM 9 FlashROM Back 1 489C51单片机 Back 89系列单片机已经在片内增加4KB或8KB的FlashROM 而且整个89C51 89C52芯片比87C51便宜得多 所以现在已经没有人使用80C31或87C51开发产品了 单片机是典型的嵌入式系统 从体系结构到指令系统都是按照嵌入式应用特点专门设计的 能最好地满足面对控制对象 应用系统的嵌入 现场的可靠运行以及非凡的控制品质要求 因此 单片机是发展最快 品种最多 数量最大的嵌入式系统 嵌入式系统与单片机已深入到国民经济众多技术领域 从天上到地下 从军事 工业到家庭日常生活 在人类进入信息时代的今天 难以想像 没有单片机的世界将会怎样 本教程以ATMEL PHILIPS和SST等公司的89系列单片机中的AT89C51 P89C51 SST89E554 以下简称为89C51 为典型机 讲述单片机的硬件结构 原理 接口技术 编程及其应用技术 舍弃80C31扩展EPROM的传统模式 而依据目标任务选择所需不同档次 片内不同存储器容量 的89系列单片机 Back 1 5思考题与习题 Back 1 什么是微处理器 CPU 微机和单片机 2 单片机有哪些特点 3 微型计算机怎样执行一个程序 4 将下列各二进制数转换为十进制数及十六进制数 11010B 110100B 10101011B 11111B5 将下列各数转换为十六进制数及ASCII码 129D253D01000011BCD00101001BCD6 将下列十六进制数转换成二进制数和十进制数 5AH 0AE7 D2H 12BEH 0A85 6EH7 将下列十进制数转换成8421BCD码 22 986 71 1234 678 95 Back 1 5思考题与习题 Back 8 什么叫原码 反码及补码 9 已知原码如下 写出其补码和反码 其最高位为符号位 X 原 01011001 X 原 00111110 X 原 11011011 X 原 1111110010 当微机把下列数看成无符号数时 它们相应的十进制数为多少 若把它们看成是补码 最高位为符号位 那么相应的十进制数是多少 10001110 10110000 00010001 01110101 1 李朝青 单片机原理及接口技术 简明修订版 北京 北京航空航天大学出版社 19992 李朝青 单片机学习辅导测验及解答讲义 北京 北京航空航天大学出版社 20033 李朝青 单片机 DSP外围数字IC技术手册 北京 北京航空航天大学出版社 20024 何立民 单片机高级教程 北京 北京航空航天大学出版社 19995 何立民 I2C总线应用系统设计 北京 北京航空航天大学出版社 20046 张俊谟 单片机中级教程 北京 北京航空航天大学出版社 19997 张迎新 等 单片机初级教程 北京 北京航空航天大学出版社 19998 余永权 Flash单片机原理及应用 北京 电子工业出版社 19979 潘琢金 等 C8051F 高速SOC单片机原理及应用 北京 北京航空航天大学出版社 200210 李刚 AD C8 系列单片机原理与应用技术 北京 北京航空航天大学出版社 200211 李群芳 等 单片微型计算机与接口技术 北京 电子工业出版社 200112 朱定华 等 单片微机原理与应用 北京 清华大学出版社 北京 北方交通大学出版社 200313 李维祥 单片机原理与应用 天津 天津大学出版社 200114 肖洪兵 等 跟我学用单片机 北京 北京航空航天大学出版社 200215 钱逸秋 单片机原理与应用 北京 电子工业出版社 2002 参考资料 2 189C51单片机芯片内部结构及特点 2 289C51单片机引脚及其功能 2 389C51单片机存储器配置 2 4时钟电路及89C51CPU时序 2 5复位操作 2 689C51单片机的低功耗工作方式 返回 第2章89C51单片机的结构和原理 2 7输出 输入端口结构 2 189C51单片机芯片内部结构及特点 2 1 189C51单片机的基本组成 2 1 289C51单片机芯片内部结构 返回 2 1 189C51单片机的基本组成 一 组成 二 89C51系列单片机的性能 返回 一 组成 89C51单片机结构框图如图2 1所示 返回 89C51单片机结构框图 89C51CPU 振荡器和时序OSC 64KB总线扩展控制器 数据存储器256BRAM SFR 2 16位定时器 计数器 可编程I O 程序存储器4KBFLASHROM 可编程全双工串行口 外中断 内中断 控制 并行口 串行通信 外部时钟源 外部事件计数 返回 一 组成 1 一个8位的微处理器CPU 返回 用以存放可以读 写的数据 如运算的中间结果 最终结果以及欲显示的数据等 2 片内数据存储器 RAM128B 256B 用以存放程序 一些原始数据和表格 3 片内4kB程序存储器FlashROM 4KB 4 四个8位并行I O 输入 输出 接口P0 P3 每个口可以用作输入 也可以用作输出 一 组成 返回 每个定时 计数器都可以设置成计数方式 用以对外部事件进行计数 也可以设置成定时方式 并可以根据计数或定时的结果实现计算机控制 5 两个或三个定时 计数器 可实现单片机与单片机或其它微机之间串行通信 6 一个全双工UART的串行I O口 但需外接晶振和电容 7 片内振荡器和时钟产生电路 8 五个中断源的中断控制系统 9 具有节电工作方式 休闲方式及掉电方式 二 89C51系列单片机的性能 89C51单片机与8051相比 具有节电工作方式 即休闲方式及掉电方式 以上各个部分通过片内8位数据总线 DBUS 相连接 另外89C51是用静态逻辑来设计的 其工作频率可下降到0Hz 并提供两种可用软件来选择的省电方式 空闲方式 IdleMode 和掉电方式 PowerDownMode 在空闲方式中 CPU停止工作 而RAM 定时器 计数器 串行口和中断系统都继续工作 此时的电流可降到大约为正常工作方式的15 在掉电方式中 片内振荡器停止工作 由于时钟被 冻结 使一切功能都暂停 故只保存片内RAM中的内容 直到下一次硬件复位为止 这种方式下的电流可降到15 A以下 最小可降到0 6 A 89C51单片机还有一种低电压的型号 即89LV51 除了电压范围有区别之外 其余特性与89C51完全一致 89C51 LV51是一种低功耗 低电压 高性能的8位单片机 它采用了CMOS工艺和高密度非易失性存储器 NURAM 技术 而且其输出引脚和指令系统都与MCS51兼容 片内的FlashROM允许在系统内改编程序或用常规的非易失性存储器编程器来编程 因此89C51 LV51是一种功能强 灵活性高 且价格合理的单片机 可方便地应用在各种控制领域 返回 2 1 289C51单片机芯片内部结构 一 结构图 二 结构组成 返回 一 结构图 由中央处理单元 CPU 存储器 ROM及RAM 和I O接口组成 89C51单片机内部结构如图2 2所示 返回 P0驱动器 P2驱动器 P0锁存器 P2锁存器 RAM地址寄存器 128BRAM 4KBROM B寄存器 暂存器1 暂存器2 ACC SP 程序地址寄存器 缓冲器 PC增1 PC DPTR 中断 串行口和定时器 PSW P1锁存器 P1驱动器 P3锁存器 P3驱动器 定时控制 指令寄存器 指令译码器 OSC ALU P0 0 P0 7 P2 0 P2 7 P3 0 P3 7 P1 0 P1 7 XTAL1XTAL2 PSENALEEARESET 89C51单片机内部结构图 返回 运算器 控制器 存储器 I O接口 P0驱动器 P2驱动器 P0锁存器 P2锁存器 RAM地址寄存器 128BRAM 4KBROM B寄存器 暂存器1 暂存器2 ACC SP 程序地址寄存器 缓冲器 PC增1 PC DPTR 中断 串行口和定时器 PSW P1锁存器 P1驱动器 P3锁存器 P3驱动器 定时控制 指令寄存器 指令译码器 OSC ALU P0 0 P0 7 P2 0 P2 7 P3 0 P3 7 P1 0 P1 7 XTAL1XTAL2 PSENALEEARESET 89C51单片机内部结构图 返回 运算器 控制器 存储器 I O接口 二 结构组成 一 中央处理单元 CPU 二 存储器 三 I O接口 返回 1 中央处理单元 89C51CPU 1 运算器 返回 2 控制器 1 运算器 1 8位的ALU 返回 2 8位累加器ACC A 3 8位程序状态寄存器PSW 4 8位寄存器B 5 布尔处理器 6 2个8位暂存器 1 运算器 可对4位 8位 16位数据进行操作 返回 1 8位的ALU 1 运算器 2 8位累加器ACC A 它经常作为一个运算数经暂存器2进入ALU的输入端 与另一个来自暂存器1的运算数进行运算 运算结果又送回ACC 返回 1 运算器 指示指令执行后的状态信息供程序查询和判别用 3 8位程序状态寄存器PSW 返回 1 运算器 4 8位寄存器B 在乘除运算时 用来存放一个操作数也用来存放运算后的一部分结果 如不能做乘除运算时 作为通用寄存器 返回 1 运算器 5 布尔处理器 专门用于处理位操作的 以PSW中的C为其累加器 返回 1 运算器 6 2个8位暂存器 ALU的两个入口处 返回 2 控制器 1 程序计数器PC 16位 2 指令寄存器IR及指令译码器ID 3 振荡器和定时电路 返回 1 程序计数器PC 16位 由两个8位计数器PCH PCL组成 PC是程序的字节地址计数器 PC内容为将要执行的指令地址 改变PC内容 改变执行的流向 PC可对64KB的ROM直接寻址 也可对89C51片内RAM寻址 返回 2 指令寄存器IR及指令译码器ID 由PC中的内容指定ROM地址取出来的指令经IR送至ID由ID对指令译码产生一定序列的控制信号 以执行指令所规定的操作 返回 3 振荡器和定时电路 89C51单片机片内有振荡电路 只需外接石英晶体和频率微调电容 2个30pF左右 其频率范围为1 2MHz 12MHz 该信号作为89C51工作的基本节拍即时间的最小单位 返回 2 存储器 1 程序存储器 ROM 2 数据存储器 RAM 返回 1 程序存储器 ROM 89C51片内为4KBFlashROM 地址从0000H开始 用于存放程序和表格常数 返回 2 数据存储器 RAM 89C51RAM均为128B 地址为00H 7FH 用于存放运算的中间结果 数据暂存以及数据缓冲等 这128B的RAM中有32个字节单元可指定为工作寄存器 片内还有21个特殊功能寄存器 SFR 它们同128字节RAM统一编址 地址为80H FFH 后面详细介绍 返回 3 I O接口 89C51有四个8位并行I O接口P0 P3 它们都是双向端口 每个端口各有8条I O线 P0 P3口四个锁存器同RAM统一编址 可作为SFR来寻址 返回 2 289C51单片机引脚及其功能 2 2 189C51单片机引脚 2 2 289C51单片机引脚功能 返回 2 2 189C51单片机引脚 图2 3是89C51 LV51的引脚结构图 有双列直插封装 DIP 方式和方形封装方式 返回 图2 389C51 LV51的引脚结构 2 2 289C51单片机引脚功能 一 电源引脚 Vcc和Vss二 时钟电路引脚 XTAL1和XTAL2三 控制信号引脚RST ALE PSEN和EA四 I O端口P0 P1 P2和P3 返回 一 电源引脚 Vcc和Vss 1 Vcc 40脚 电源端 为 5V 2 Vss 20脚 接地端 返回 二 时钟电路引脚 XTAL1和XTAL2 XTAL2 18脚 接外部晶体和微调电容的一端 在89C51片内它是振荡电路反向放大器的输出端 振荡电路的频率就是晶体固有频率 若需采用外部时钟电路时 该引脚输入外部时钟脉冲 89C51正常工作时 该引脚应有脉冲信号输出 XTAL1 19脚 接外部晶体和微调电容的另一端 在片内它是振荡电路反向放大器的输入端 在采用外部时钟时 该引脚接地 二 时钟电路引脚 XTAL1和XTAL2 返回 三 控制信号引脚 RST ALE PSEN和EA RST VPD 9脚 RST 复位信号输入端 高电平有效 当此输入端保持两个机器周期的高电平时 就可以完成复位操作 RST VPD 9脚 VPD RST引脚的第二功能 备用电源输入端 当主电源Vcc发生故障 降低到低电平规定值时 将 5V电源自动接入该引脚 为RAM提供备用电源 以保证RAM中的信息不丢失 使得复位后能继续正常运行 三 控制信号引脚 RST ALE PSEN和EA ALE PROG 30脚 ALE 地址锁存允许信号端 正常工作时 该引脚以振荡频率的1 6固定输出正脉冲 CPU访问片外存储器时 该引脚输出信号作为锁存低8位地址的控制信号 它的负载能力为8个LS型TTL负载 三 控制信号引脚 RST ALE PSEN和EA ALE PROG 30脚 PROG 是对片内带有4KBFlashROM的89C51编程写入时的编程脉冲输入端 三 控制信号引脚 RST ALE PSEN和EA PSEN 29脚 程序存储器允许信号输出端 在访问片外ROM时 定时输出负脉冲作为读片外ROM的选通信号 接片外ROM的OE端 它的负载能力为8个LS型TTL负载 三 控制信号引脚 RST ALE PSEN和EA EA Vpp 31脚 EA 外部程序存储器地址允许输入端 当该引脚接高电平时 CPU访问片内ROM并执行片内程序存储器中的指令 但当PC值超过0FFFH 片内ROM为4KB 时 将自动转向执行片外ROM中的程序 当该引脚接低电平时 CPU只访问片外ROM并执行外部程序存储器中的程序 三 控制信号引脚 RST ALE PSEN和EA EA Vpp 31脚 Vpp 对89C51片内FlashROM固化编程时 编程电压输入端 12 21V 三 控制信号引脚 RST ALE PSEN和EA 返回 四 I O端口P0 P1 P2和P3 1 准双向2 P0口3 P1口4 P2口5 P3口 返回 1 准双向 当I O口作为输入时 应先向此口锁存器写入全1 此时该口引脚浮空 可作高阻抗输入 返回 2 P0口 漏极开路的8位准双向I O口 每位能驱动8个LS型TTL负载 P0口可作为一个数据输入 输出口 在CPU访问片外存储器时 P0口为分时复用的低8位地址总线和8位数据总线 返回 3 P1口 带内部上拉电阻的8位准双向I O端口 每位能驱动4个LS型TTL负载 返回 4 P2口 P2口 带内部上拉电阻的8位准双向I O端口 每位能驱动4个LS型TTL负载 在CPU访问片外存储器时 它输出高8位地址 返回 5 P3口 带内部上拉电阻的8位准双向I O端口 每位能驱动4个LS型TTL负载 P3口除作为一般I O口外 每个引脚都有第二功能 返回 表2 1P3端口引脚与复用功能表 2 389C51存储器配置 2 3 189C51存储器分类 2 3 2程序存储器地址空间 2 3 3数据存储器地址空间 返回 2 3 189C51存储器分类 一 物理结构 哈佛结构 二 用户角度 返回 片内程序存储器 片外程序存储器 片内数据存储器 片外数据存储器 一 物理结构 哈佛结构 89C51存储器 程序存储器ROM 数据存储器RAM 返回 二 用户角度 返回 如图2 4所示 二 用户角度 1 片内 外统一编址的64K程序存储器地址空间 CPU访问片内 片外ROM指令用MOVC 返回 二 用户角度 2 64K的片外数据存储器地址空间 访问片外RAM指令用MOVX 返回 二 用户角度 3 256字节的片内数据存储器地址空间 访问片内RAM指令用MOV 返回 上述三个存储空间地址是重叠的 89C51的指令系统采用不同的数据传送指令符号 2 3 2程序存储器地址空间 一 用途 二 编址 三 寻址方式 返回 一 用途 用于存放编好的程序和表格常数 返回 二 编址 89C51片内FlashROM的容量为4KB 地址为0000H 0FFFH 片外最多可扩至64KBROM EPROM 地址为1000H FFFFH 片内外统一编址 返回 三 寻址方式 1 当EA 1 时 89C51的PC在0000 0FFFH范围内执行片内ROM中的程序 当指令地址超过0FFFH后就自动转向片外ROM中取指令 三 寻址方式 2 当EA 0 时 89C51片内ROM不起作用 CPU只能从片ROM EPROM中取指令 可以从0000H开始寻址 由于8031片内不带ROM 所以使用时必须EA 0 三 寻址方式 3 89C51从片内ROM和片外ROM取指的速度相同 三 寻址方式 4 程序存储器的保留存储单元 如表2 2所示 返回 表2 2保留的存储单元 返回 三 寻址方式 1 0000H 0002H三个单元 用作89C51上电复位后引导程序的存放单元 因为复位后PC的内容为0000H CPU总是从0000H开始执行程序 将转移指令存放到这三个单元 程序就被引导到指定的程序存储器空间去执行 返回 三 寻址方式 2 0003H 002AH单元 均分为五段 用作五个中断服务程序的入口 中断矢量地址表如表2 3所示 返回 表2 3中断矢量表 返回 2 3 3数据存储器地址空间 一 用途 二 片外RAM 三 片内RAM 返回 一 用途 用于存放运算的中间结果 数据暂存和缓冲 标志位等 返回 二 片外RAM 地址 0000H FFFFH寻址 用MOVX指令 返回 三 片内RAM 一 片内RAM地址空间 二 低128字节RAM 00H 7FH 三 高128字节RAM 80H FFH 特殊功能寄存器SFR区 返回 一 片内RAM地址空间 寻址 用指令MOV最大可寻址256个单元 返回 低128B 00H 7FH 真正RAM区 高128B 80H FFH 特殊功能寄存器 SFR 区 地址 00H FFH 如图2 5所示 二 低128字节RAM 00H 7FH 1 工作寄存器区 00H 1FH 2 位寻址区 20H 2FH 3 用户RAM区 30H 7FH 返回 1 工作寄存器区 00H 1FH 由四组 32个 工作寄存器组成 每组8个寄存器 R0 R7 共占32个单元 见表2 4 通过程序状态寄存器PSW中RS1 RS0两位设定来选择CPU的当前工作寄存器组 复位时 第0组为当前的工作寄存器 若不需要四组 则其余可作为一般RAM单元 返回 表2 4工作寄存器地址表 返回 2 位寻址区 20H 2FH 位寻址区有16个单元 每个单元8位 共128位 位地址为00H 7FH 可用位寻址方式访问其各位 RAM位寻址区位地址表如表2 5所示 这些可寻址位 通过执行指令可直接对某一位操作 如置1 清0 判断转移等 位寻址是89C51的一个重要特点 返回 表2 5RAM位寻址区位地址表 返回 3 用户RAM区 30H 7FH 用于堆栈和数据缓冲 返回 三 高128字节RAM 80H FFH 返回 有21个特殊功能功能寄存器 见表2 6地址分布在80H FFH的RAM空间 只能用直接寻址方式 有11个具有位寻址能力 11个SFR的字节地址正好能被8整除 特殊功能寄存器的地址见表2 7 部分特殊功能寄存器介绍 表2 7特殊功能寄存器地址表 返回 表2 689C51系列单片机的特殊功能寄存器表 返回 部分特殊功能寄存器介绍 累加器ACC E0H 用A作为ACC的助记符 用于存放第一个操作数及运算结果 返回 部分特殊功能寄存器介绍 寄存器B F0H 在乘法指令中 B用于存放乘数和乘积的高8位 在除法指令中用于存放除数和余数 在其它指令中用作一般的寄存器或RAM单元 返回 部分特殊功能寄存器介绍 PSW程序状态寄存器 D0H PSW包含了程序执行后的状态信息 供程序查询或判断用 PSW的格式PSW各位的含义 返回 返回 PSW的格式如下 AC CY P OV RS0 RS1 F0 PSW D0H D7D6D5D4D3D2D1D0 PSW各位的含义 1 CY位 PSW 7 进 借 位标志位 执行加法 减法 运算指令时 如运算结果最高位 D7 向前有进位 借位 CY 1 否则 CY 0 在位操作指令中 CY位是布尔累加器 用C表示 返回 PSW各位的含义 2 AC位 PSW 6 半进位标志位 辅助进位标志 执行加法 减法 运算指令时 如运算结果的低半字节 D3 向高半字节有进位 借位 AC 1 否则 AC 0 返回 PSW各位的含义 3 FO位 PSW 5 用户标志 由用户自己定义 置位 复位 以作为软件标志 返回 PSW各位的含义 4 RS0 RS1位 PSW 3和PSW 4 工作寄存器组选择控制位 由用户用软件改变RS0和RS1的值 以切换当前选用的工作寄存器组 RS0 RS1的组合关系如表2 8所示 上电复位时 RS0 RS1 0 CPU自然选择第0组为当前工作寄存器组 返回 表2 8RS0 RS1的组合关系 返回 PSW各位的含义 5 OV位 PSW 2 溢出标志位 如有溢出 即运算结果超出 128 127的范围时 OV 1 无溢出时 OV 0 返回 PSW各位的含义 6 P位 PSW 0 奇偶检验位 每条指令执行后 A中 1 的个数为奇数 则P 1 否则 P 0 返回 PSW各位的含义 7 PSW 1 为保留位 返回 部分特殊功能寄存器介绍 堆栈指针SP 81H 堆栈 在片内RAM中 开辟的一个按 先进后出 的结构方式处理数据的区域 SP的内容可指向片内RAM00H 7FH的任何单元 系统复位时 SP初始化为07H 堆栈的操作 如图2 6所示 返回 部分特殊功能寄存器介绍 返回 数据指针DPTR 83H 82H DPTR是一个16位的特殊功能寄存器 由DPH 83H DPL 82H 组成 DPH DPL可以单独使用 部分特殊功能寄存器介绍 返回 I O端口P0 P1 P2 P3 80H 90H A0H B0H 分别为四个并行端口的锁存器 每一个口锁存器还有位地址 所以每一条I O线可独立输入或输出 输出时 可以锁存 输入时 可以缓冲 2 4时钟电路及89C51CPU时序 2 4 1片内时钟信号的产生 返回 2 4 2CPU取指 执指时序 2 4 1片内时钟信号的产生 返回 89C51芯片内部有一个高增益反相放大器 用于构成振荡器 反相放大器的输入端为XTAL1 输出端为XTAL2 两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器 电容器 和 通常取30pF左右 可稳定频率并对振荡频率有微调作用 振荡脉冲频率范围为fOSC 0 24MHz 晶体振荡器的频率为fOSC 振荡信号从XTAL2端输入到片内的时钟发生器上 如图2 12所示 图2 1289C51的片内振荡器及时钟发生器 2 4 1片内时钟信号的产生 1 节拍与状态周期 2 机器周期和指令周期 3 基本时序定时单位 返回 1 节拍与状态周期 时钟发生器是一个2分频的触发器电路 它将振荡器的信号频率fOSC除以2 向CPU提供两相时钟信号P1和P2 时钟信号的周期称为机器状态周期S STATE 是振荡周期的2倍 在每个时钟周期 即机器状态周期S 的前半周期 相位1 P1 信号有效 在每个时钟周期的后半周期 相位2 P2 节拍2 信号有效 每个时钟周期 以后常称状态S 有两个节拍 相 P1和P2 CPU就以两相时钟P1和P2为基本节拍指挥89C51单片机各个部件协调地工作 返回 2 机器周期和指令周期 二 指令周期 一 机器周期 返回 计算机的一计算机的一条指令由若干个字节组成 执行一条指令需要多长时间则以机器周期为单位 一个机器周期是指CPU访问存储器一次所需的时间 例如 取指令 读存储器 写存储器等等 一个机器周期包括12个振荡周期 分为6个S状态 S1 S6 每个状态又分为两拍 称为P1和P2 因此 一个机器周期中的12个振荡周期表示为S1P1 S1P2 S2P1 S6P1 S6P2 若采用6MHz晶体振荡器 则每个机器周期为多少 机器周期 如图所示 返回 返回 设 晶体振荡器频率fosc 6MHz 则 振荡周期 1 fosc 1 6 s 微秒 因为 一个机器周期包括12个振荡周期 所以 一个机器周期 12 1 6 s 微秒 2 s 微秒 问 如果fosc 12MHz 一个机器周期为多少 答案 1 s 微秒 机器周期 每条指令都由一个或几个机器周期组成 指令周期 执行一条指令所需的时间 每条指令由一个或若干个字节组成 有单字节指令 双字节指令 多字节指令等 字节数少则占存储器空间少 每条指令的指令周期都由一个或几个机器周期组成 有单周期指令 双周期指令 和四周期指令 机器周期数少则执行速度快 其指令周期各为多少 指令周期 如图所示 返回 例如 指令周期 设振荡周期为6MHz 则一个机器周期为2 s 微秒 单周期指令 指令周期为2 s 微秒 双周期指令 指令周期为4 s 微秒 四周期指令 指令周期为8 s 微秒 如果振荡周期为12MHz 则其指令周期分别为1 s 2 s和4 s 返回 单字节指令 如 INCA 机器码格式 00000100B 双字节指令 如 MOVA data 机器码格式 01110100Bdata 返回 3 基本时序定时单位 综上所述 89C51或其他80C51单片机的基本时序定时单位有如下4个 振荡周期 晶振的振荡周期 为最小的时序单位 状态周期 振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期 因此 一个状态周期包含2个振荡周期 机器周期 MC 1个机器周期由6个状态周期即12个振荡周期组成 是计算机执行一种基本操作的时间单位 指令周期 执行一条指令所需的时间 一个指令周期由1 4个机器周期组成 依据指令不同而不同 见附录A 返回 4种时序单位中 振荡周期和机器周期是单片机内计算其他时间值 例如 波特率 定时器的定时时间等 的基本时序单位 下面是单片机外接晶振频率12MHz时的各种时序单位的大小 振荡周期 1 fOSC 1 12MHz 0 0833 s状态周期 2 fOSC 2 12MHz 0 167 s机器周期 12 fOSC 12 12MHz 1 s指令周期 1 4 机器周期 1 4 s4个时序单位从小到大依次是节拍 振荡脉冲周期 1 fOSC 状态周期 时钟周期 机器周期和指令周期 如图2 13所示 返回 图2 1389C51单片机各种周期的相互关系 2 4 2CPU取指 执指时序 每条指令的执行都可以包括取指和执指两个阶段 在取指阶段 CPU从内部或外部ROM中取出指令操作码及操作数 然后再执行这条指令 单字节和双字节的指令都可能是单机器周期或双周期 而三字节指令都是双周期的 只有乘 除指令占四周期 CPU取指 执指时序如图2 14所示 返回 图2 1489C51单片机的取指 执行时序 2 5复位操作 2 5 1复位操作的主要功能 2 5 2复位信号及其产生 2 5 3复位电路 返回 2 5 1复位操作的主要功能 一 复位是单片机的初始化操作 二 主要功能 三 寄存器的复位状态 返回 复位操作主要功能 程序地址指针PC初始化为0000H 使单片机从0000H单元开始执行程序当由于程序运行出错或操作错误使系统死锁状态时 为摆脱困境 也需要按复位键重新启动 返回 表2 8各特殊寄存器的复位值 返回 2 5 2复位信号及其产生 一 复位信号 RST引脚为复位信号输入端 当RST引脚为高电平 且有效时间持续24个振荡周期以上 才能复位 二 产生复位信号的电路逻辑图 如图2 15所示 返回 图2 15复位电路逻辑图 返回 2 5 3复位电路 1 上电自动复位 是通过外部复位电路的电容充电实现 如图2 16 a 所示 2 手动复位 按键电平复位方式 如图2 16 b 所示 按键脉冲复位方式 如图2 12 c 所示 返回 图2 16 a 上电复位电路 只要Vcc的上升时间不超过1ms 就自动上电复位 即接通电源就完成了系统复位 返回 图2 16 b 按键电平复位电路 通过使复位端经电阻与VCC电源接通而实现 返回 2 689C51单片机的低功耗工作方式 89C51属于CHMOS的单片机 运行时耗电少 而且还提供两种节电工作方式 即空闲 等待 待机 方式和掉电 停机 工作方式 以进一步降低功耗 图2 17所示为实现这两种方式的内部电路 由图2 17可见 若IDL 0 则89C51将进入空闲运作方式 在这种方式下 振荡器仍继续运行 但IDL封锁了去CPU的 与 门 故CPU此时得不到时钟信号 而中断 串行口和定时器等环节却仍在时钟控制下正常运行 掉电方式下 PD 0 振荡器冻结 返回 2 689C51单片机的低功耗工作方式 返回 图2 17空闲和掉电方式控制电路 图2 17中 PD和IDL均为PCON中PD和IDL触发器的输出端 2 6 1方式的设定 返回 图2 18电源控制寄存器PCON 空闲方式和掉电方式是通过对SFR中的PCON 地址87H 相应位置1而启动的 图2 18所示为89C51电源控制寄存器PCON各位的分布情况 HMOS器件的PCON只包括一个SMOD位 其他4位是CHMOS器件独有的 3个保留位用户不得使用 因为硬件没有做出安排 可能在今后的MCS51新产品中代表某特定的功能 2 6 1方式的设定 返回 图2 18电源控制寄存器PCON 图2 18中各符号的名称和功能如下 SMOD 波特率倍频位 若此位为1 则串行口方式1 方式2和方式3的波特率加倍 GF1和GF0 通用标志位 PD 掉电方式位 此位写1即启动掉电方式 由图217可见 此时时钟冻结 IDL 空闲方式位 此位写1即启动空闲方式 这时CPU因无时钟控制而停止运作 如果同时向PD和IDL两位写1 则PD优先 89C51中PCON的复位值为0 0000B 2 6 2空闲 等待 待机 工作方式 返回 当CPU执行完置IDL 1 PCON 1 的指令后 系统进入空闲工作方式 这时 内部时钟不向CPU提供 而只供给中断 串行口 定时器部分 CPU的内部状态维持 即包括堆栈指针SP 程序计数器PC 程序状态字PSW 累加器ACC所有的内容保持不变 端口状态也保持不变 ALE和PSEN保持逻辑高电平 2 6 2空闲 等待 待机 工作方式 返回 进入空闲方式后 有两种方法可以使系统退出空闲方式 一是任何的中断请求被响应都可以由硬件将PCON 0 IDL 清0而中止空闲工作方式 当执行完中断服务程序返回到主程序时 在主程序中 下一条要执行的指令将是原先使IDL置位指令后面的那条指令 PCON中的通用标志位GF1和GF0可以用来指明中断是在正常操作还是在待机方式期间发生的 在待机方式时 除用指令使IDL 1外 还可先用指令使GF1或GF0置1 当由于中断而停止待机方式时 在中断服务程序中可以检查这些标志位 说明是从待机方式进入中断的 2 6 2空闲 等待 待机 工作方式 返回 另一种退出空闲方式的方法是硬件复位 由于在空闲工作方式下振荡器仍然工作 因此硬件复位仅需2个机器周期便可完成 而RST端的复位信号直接将PCON 0 IDL 清0 从而退出空闲状态

温馨提示

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

评论

0/150

提交评论