单片机初级教程之《微机原理与接口技术》课件.ppt_第1页
单片机初级教程之《微机原理与接口技术》课件.ppt_第2页
单片机初级教程之《微机原理与接口技术》课件.ppt_第3页
单片机初级教程之《微机原理与接口技术》课件.ppt_第4页
单片机初级教程之《微机原理与接口技术》课件.ppt_第5页
已阅读5页,还剩271页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术 课程地位 1 微机 特别是单片机应用技术 是机电一体化六大关键技术之一 2 机械学院 机电学院的转变中所扮演的角色 3 对本课程对机类学生 电类学生的影响 课程说明 微机原理与接口技术 课程 是全国高校工科 特别是电类与机电类专业的必修课程 许多学校同时将该课程列为研究生入学考试课程 实践中 本课程教学安排上有二种不同方案 二者有诸多相通之处 但偏重点完全不同 希望学习过程及将来参加其它考试时特别予以关注 a 主要讲授8088 8086微型计算机系统原理及其接口技术 b 主要讲授单片微型计算机原理及其接口技术 适用教材 单片机初级教程 单片机基础 2 参考书目 单片微型计算机原理与接口技术 陈光东编华中理工大学出版社 单片机中级教程 原理与应用 何立民主编 张俊谟著北京航空航天大学出版社 单片机原理与应用 李晓荃主编 魏立东等著电子工业出版社 计划学时 55学时 其中讲课46学时 实验6学时 习题 学时 前导课程 数学 电工电子学 计算机语言类等课程后续教学环节 1 微机原理与接口技术 课程设计2 机电一体化相关方向的毕业设计 学习网站 学习软件 实验工具 DVCC系列单片机实验装置 第一章绪论 1 1计算机的发展历程1 1 1按构成计算机的逻辑元件的类型来分类 第一代电子计算机1946年 电子管计算机ENIAC问世 主要用于科学计算 包含18800个电子管 功耗150KW 30吨重 占地150M2第二代电子计算机1958年 晶体管计算机问世 开始用于工业控制第三代电子计算机1960 s年代中期 集成电路计算机问世第四代电子计算机1970 s年代初期 大规模集成电路计算机问世50年来 计算机的性价比提高 速度提高千万倍 存储容量提高千万倍 体积缩小千万倍 软件性能提高百万倍 价格降低为万分之几 1 1 2按计算机的规模 性能 用途和价格分类 巨型机 大型机 中型机 小型机 微型机1 1 3计算机技术的二个重要发展方向 巨功能 功能不断强大 以增强运算能力 位宽 运算次数 主频 存储容量及数据通讯能力 显示能力 接口能力等为主 微型化 体积不断缩小 以增强控制能力 嵌入式应用 超低功耗 低成本 高可靠等为主 1 1 4微型机家族 微处理器 CPU CentrePorcessUnit 是小型或微型计算机的核心 负责数据的运算与控制 微型计算机除微处理器外 还需有存储器 输入输出接口 如键盘 显示器 打印机 等外围电路与之协同工作的一个完整的系统 微型计算机系统统称系统机 以功能的通用性与完整性 及应用的开放性为突出特征 PC机 典型的系统机 PersonalComputer 单片微型计算机简称单片机 以满足一定要求的基本功能或少量的特殊功能部件 包括CPU RAM ROM 定时 计数器 及各种I O接口电路集成于一片芯片上为突出特征 片上系统 SOC 正在发展之中的片上完整系统 1 1 5微型机的发展历程1971年 Intel公司推出4004微处理器 4位机 1974年 Intel公司推出8080微处理器 8位机 同时期产品 Motorola公司的M6800 Zilog公司的Z80 Intel公司的8080A 8085A1978年 Intel公司推出8086微处理器 16位机 同时期产品 Motorola的M68000 Zilog的Z8000 Intel的8088 8位版的8086 1979年 IBM公司进入微型计算机市场 1983年 Intel公司的802861985年以来 Intel公司的80386 80486 Pentium PentiumII PentiumIII PentiumIV 1 2单片机1 2 1单片机的不同称谓单片机 SCM SingleChipMicrocomputer 常用 但不够准确MCUMicrocontrollerUnit 比单片机更准确一些 但不够流行嵌入式微处理器EnbeddedMicroprocesser嵌入式微控制器EnbeddedMicrocontroller 时髦 准确 正在流行 1 2 2单片机的发展1976年 Intel公司推出MCS 48系列单片机 特点 8位CPU 并行I O口 8位定时器 片内小容量的RAM ROM 寻址空间小于4KB 简单的中断处理机制 无串行口1980年 Intel公司推出MCS 51系列单片机 特点 外部总线规范化 16位地址总线 寻址空间64KB 8位数据总线 增加串行总线 控制总线 8位CPU 并行I O口 16位定时器 片内RAM ROM容量增大 多级中断处理机制 位操作功能 片内特殊功能寄存器SFR 建立了外围功能电路的SFR集中管理模式 1982年 Intel公司推出MCS 96系列单片机 特点 16位CPU 增加8路10位A D PWM型D A等同期间 不同厂家同步推出了相应的单片机机型 Motorola公司的M6800系列Zilog公司的Z8系列Rockwell公司的6500系列 1990年 Intel公司公开了8051内核 特点 8051兼容型单片机 形成了百花齐放的局面 成为单片机的发展方向 1 增加片内功能 如存储容量与方式 WDT 程序保密系统 A D D A 电压比较器 LED LCD VFD显示器驱动 I2C CAN USB总线 2 提升性能 CMOS化 提高运行频率 RISC结构运行 低功耗 宽电压 程序串行下载ISP 增大寻址空间 3 降低成本 紧凑型 低价格代表 ATMEL公司的89c51 89c2051 Philips公司的8Xc51WENBOND公司的W78c51 1 2 3单片机的主要应用领域由于单片机有许多优点 因此其应用领域之广 几乎到了无孔不入的地步 单片机应用的主要领域有 1 智能化家用电器 各种家用电器普遍采用单片机智能化控制代替传统的电子线路控制 升级换代 提高档次 如洗衣机 空调 电视机 录像机 微波炉 电冰箱 电饭煲以及各种视听设备等 2 办公自动化设备 现代办公室使用的大量通信和办公设备多数嵌入了单片机 如打印机 复印机 传真机 绘图机 考勤机 电话以及通用计算机中的键盘译码 磁盘驱动等 3 汽车电子产品 现代汽车的集中显示系统 动力监测控制系统 自动驾驶系统 通信系统和运行监视器 黑匣子 等都离不开单片机 4 商业营销设备 在商业营销系统中已广泛使用的电子称 收款机 条形码阅读器 IC卡刷卡机 出租车计价器以及仓储安全监测系统 商场保安系统 空气调节系统 冷冻保险系统等都采用了单片机控制 5 工业自动化控制 工业自动化控制是最早采用单片机控制的领域之一 如各种测控系统 过程控制 机电一体化 PLC等 在化工 建筑 冶金等各种工业领域都要用到单片机控制 6 智能化仪表 采用单片机的智能化仪表大大提升了仪表的档次 强化了功能 如数据处理和存储 故障诊断 联网集控等 7 智能化通信产品 最突出的是手机 当然手机内的芯片属专用型单片机 8 航空航天系统 飞机 飞船 空间站 及其跟踪 监测 生命保障系统等 无一不是人类科技高度集中的产品 大量采用的智能传感器 控制装置中 单片机扮演着重要的角色 9 国防军事 尖端武器等领域 单片机的应用更是不言而喻 单片机应用的意义不仅在于它的广阔范围及所带来的经济效益 更重要的意义在于 单片机的应用从根本上改变了控制系统传统的设计思想和设计方法 以前采用硬件电路实现的大部分控制功能 正在用单片机通过软件方法来实现 以前自动控制中的PID调节 现在可以用单片机实现具有智能化的数字计算控制 模糊控制和自适应控制 这种以软件取代硬件并能提高系统性能的控制技术称为微控技术 随着单片机应用的推广 微控制技术将不断发展完善 1 3本教程的特点取典型机型 学习单片机基本理论硬件与软件学习并举理论教学与实验教学相结合以培养获得从事系统开发的能力为目标 习题 一 为什么说计算机技术的发展是人类20世纪最伟大的发明 二 什么是单片机 它在计算机家族中的地位如何 三 计算机的发展趋势是什么 四 单片机的发展趋势是什么 五 在你身边的什么地方能找到单片机的身影 第二章计算机基础知识 2 1数制与编码2 1 1数制成语 半斤八两 时 分 秒1 数制的基与权基 数制使用的数码的个数权 数制每一位所具有的值1 十进制 Decimal 有0 1 2 3 4 5 6 7 8 9共10个基数码权 1000 100 10 1例 435D 4 102 3 101 5 100 2 二进制 Binary 有0 1共二个基数码权 8 4 2 1例 1011B 1 23 0 22 1 21 1 20 11D3 十六进制 Hexa decimal 有0 1 2 3 4 5 6 7 8 9 a b c d e f共十六个基数码权 4096 256 16 1例 3eH 3 161 14 160 62D 0011 1110B 在计算机内部计算 存储 逻辑运算中 实际上采用的是二进制 具体地 在电路结构中 高电平为1 低电平为0在计算机编程过程中 常采用十六进制数 便于记忆二进制数 2 数制的转换1 二 十六进制数转换为十进制数按权展开后计算2 十进制数转换为二 十六进制数除二取余法 以待转换的十进制数连续地以2去除 直至商为0 再逆序取余数 2 1 2编码计算机能识别的数是二进制数 或十六进制数 问题 1 数字的符号 正数与负数 2 加减法 3 字符的表示方法0 无符号数的编码8位无符号数 可表示0 255 共256个数值 1 有符号数的编码原码 数码的最高位表示符号 0 正数 1 负数8位有符号数原码 可表示 127 127 共255个数反码 由原码求得 正数的反码与原码相同 负数的反码除符号位不变外 其余各位均由1变0 或由0变1 取反 8位有符号数反码 可表示 127 127 共255个数补码 由反码求得 正数的补码与反码相同 负数的补码为反码加18位有符号数补码 可表示 128 127 共256个数 例1 X1 1010101B X1 原 01010101B X1 反 01010101B X1 补 01010101B例2 X2 1010101B X2 原 11010101B X2 反 10101010B X2 补 10101011B注意 X2 补 补 11010101B X2 原 2 有符号数的运算1 日常现象 当前时间为3点 设某表当前指示为10点 该如何拨动 方法1 逆时针方向拨动7格算式 10 7 3方法2 顺时针方向拨动5格算式 10 5 15 12 32 一组概念模 mod 系统量程即能表示的最大的数 上例中 模为12 同余Z nK Y n为自然数 则称Z与Y对模K同余 溢出系统超程 最高位自然丢失 3 有符号数的加减法 符号带在数码中 可将减法转换成 补码的 加法进行计算 例 二进制运算过程 0001 1000B 1111 0101B 1 0000 1101B 此例中 模为28 256 11 0000 1011B 与245 1111 0101同余 补码的理解 负数以有符号数补码表示时 实际上取的是其同余数的无符号数码 3 二 十进制数编码BCD码 BinaryCodedDecimal 作用 便于记忆与阅读 又适于计算机处理特点 1 不能直接在二进制数与BCD码之间进行转换 而必须先经过十进制 再间接进行转换 例 0011 0101BCD 35 0010 0011B2 计算机运算时将其视作为二进制数 程序员必须非常清醒 4 字母与字符的编码常用的为ASCII码 AmericanStandardCodeforInformationInterchange ASCII 美国标准信息交换码 2 2计算机基本组成电路2 2 1常用逻辑电路 1 与门表达式 Y A B图形符号 真值表 2 或门Y A B 3 非门表达式 图形符号 真值表 4 异或门Y A B 5 与非门表达式 图形符号 真值表 6 或非门 2 2 2触发器触发器是计算机记忆装置中的基本单元 一个触发器能存储一位二进制代码 1 R S触发器 2 D触发器 例 74LS74双D触发器 DualPositive Edge TriggeredDFlip Flops 例 74LS113双J K触发器 DualJ KEdge triggeredFlip Flop 3 J K触发器 2 2 3寄存器计算机中的数据是以字节为基本单位来组织的 寄存器就是存放这些数据的物理单元 一个触发器构成寄存器的一个位 根据寄存器在计算机中的作用的不同 可以分为 1 缓冲寄存器2 锁存器3 移位寄存器4 计数器 1 缓冲器 Buffer 锁存器 Latch 用于暂存数据 以便在适当的时机 节拍 或称时序 进行数据的传递 输入缓冲 或输出锁存 图例四位缓冲寄存器 2 移位寄存器 ShiftingRegister 并行的概念 多位多线同时输入 或输出 串行的概念 多位单线 另地线 分时输入 或输出 移位寄存器包括 串入串出 串入并出 并入串出等形式 图例四位串入并出寄存器 3 计数器 Counter 计数的概念 计算脉冲个数 结果以二进制数形式输出 加1计数与减1计数的概念 二进制结果是递增 递减计数的 图例四位减1计数器 图例四位加1计数器 4 三态门 Tri stateBuffer 总线的概念 计算机内部或内部与外部的公共通道 总线的分类 数据总线 地址总线 控制总线 三态门 高电平状态 低电平状态 高阻状态使能端 相当于一个开关 控制三态门输出的允许 禁止 2 2 4常用数据存储器 缓冲器 驱动器单片机的外部总线上 经常连接着多个数据源设备和多个数据负载设备 此时 会遇到这样的问题 1 总线隔离问题多个数据源 数据干扰对策 输入缓冲即 在某一时刻 只允许一个数据源与总线连接 而其它数据源与总线隔离 呈现高阻状态 CPU能通过控制总线 控制这些数据源与总线之间的连接关系与时序 2 总线驱动问题多个数据负载 驱动能力对策 总线驱动即 通过使用驱动能力更大的门电路 输出电流更大 来弥补单片机引脚输出功率不足的问题 注 51单片机吐出电流能力很小 但有一定的吸入电流的能力 3 数据保持问题多个数据负载 数据保持对策 输出锁存即 通过使用数据锁存器 记忆总线输出的状态信息 4 常用芯片1 742448同相三态数据缓冲器 驱动器2 742458总线接收器 发送器3 743738D锁存器 2 3存储器2 3 1名词解释 存储器是由大量缓冲寄存器组成 可以存放程序和数据 1 存储器中每个寄存器称为一个存储单元 存储单元地址 每个存储单元的编号 一个地址码唯一确定一个存储单元 存储单元内容 存储单元中存放的二进制数2 存储单元个数与地址线根数关系 N 地址线根数W 存储单元个数 2 3 2存储器指标1 存储器速度 读或写一个信息所需的时间 一般为几十ns 几百ns2 存储器容量 指一片存储器最多能存储二进制信息量 一般用字节 Byte 表示1kB 1024B1024KB 1MB1024MB 1GB其中 1B 8bit 2 3 3存储器的分类1 RAM RandomAccessMemory 随机存取存储器 主要用来存放各种现场的输入 输出数据 中间计算结果 以及与外存交换信息和作堆栈用 RAM又常称为数据存储器 特点 可随时读写 但掉电后信息丢失 分类 静态SRAM 电源加于存储器 信息可长期保留动态DRAM 每隔一段时间需重新写入一次 动态刷新 可现场改写的非易失存储器 FLASH NVSRAM FRAM 2 ROM ReadOnlyMemory 只读存储器 通常用于存放程序 ROM通常又称为程序存储器 应用 一般用来存放固定程序以及各种表格特点 使用时只读不能写 掉电后信息不丢失分类 掩膜ROM ROM 可编程的ROM PROM 可擦除的PROM EPROM 电可擦除的EPROM EEPROM 2 3 4存储器的寻址原理1 ROM中的信息 实际上是以二极管阵列的存在 表示1 或熔断 表示0 来实现的 2 存储器的寻址 地址代表着一个唯一的存储单元 习题 P29第1 2 3 4 5 6 8 9 11 第三章单片机的结构及原理 3 189S51单片机的结构3 1 1单片机的组成及结构1 80C51功能方框图 89S51新增功能双DPTRWDTISPFlashMemory89S52新增功能T2定时器 2 89s51单片机内部结构图 3 1 289s51单片机的引脚定义及功能1 89s51引脚图2 89s51逻辑符号 3 89s51的外形与封装1 DIP封装有40脚 最常用 42脚二种 2 TQFP封装3 PLCC封装 4 89S51单片机的引脚定义及功能 1 输入 输出引脚 P0 0 P0 7 39 32脚 第一功能 8位漏极开路型双向I O口 第二功能 在访问片外存储器时 它分时提供低8位地址和8位双向数据 P1 0 P1 7 21 28脚 第一功能 带内部上拉的8位双向I O口 第二功能 P1 0 T2 P1 1 T2EX P1 5 MOSI P1 6 MISO P1 7 SCK P2 0 P2 7 21 28脚 第一功能 带内部上拉的8位双向I O口 第二功能 在访问片外存储器时输出高8位地址 P3 0 P3 7 10 17脚 多功能口 主功能 带内部上拉的8位双向I O口 复用功能 2 控制引脚 RST 9脚 复位输入端 高电平有效 ALE 30脚 地址锁存允许 当单片机访问外部存储器时 该引脚控制是否锁存P0口输出的低8位地址 对87C51片内EPROM编程 固化 时 此引脚用于输入编程脉冲 29脚 在访问片外程序存储器时 此端输出负脉冲作为存储器读选通信号 VPP 31脚 当端输入高电平时 CPU从片内程序存储器地址0000H单元开始执行程序 当地址超出4KB 对80C51而言 视片内ROM的容量而定 时 将自动执行片外程序存储器的程序 当端输入低电平时 CPU仅访问片外程序存储器 在对87C51EPROM编程时 此引脚用于施加编程电压VPP 3 主电源引脚 Vss 20脚 接地 Vcc 40脚 主电源 5VDC 4 时钟电路引脚 XTAL1 19脚 接外部晶体的一端 在片内它是振荡电路反向放大器的输入端 在采用外部时钟时 对于HMOS单片机 该端引脚必须接地 对于CHMOS单片机 此引脚作为驱动端 XTAL2 18脚 接外部晶体的另一端 在片内它是一个振荡电路反向放大电路的输出端 振荡电路的频率是晶体振荡频率 若需采用外部时钟电路 对于HMOS单片机 该引脚输入外部时钟脉冲 对于CHMOS单片机 此引脚应悬浮 3 2单片机的工作原理 3 2 1基本概念 1 指令 规定计算机执行特定操作的命令 一般由二进制表示 指令可分为操作码和操作数两部分 2 指令系统 计算机全部指令的集合 3 程序 根据任务要求有序编排指令的集合 4 软件 为了运行和管理计算机所编制的各种程序的总和 3 2 2CPU工作原理 CPU主要是由运算器和控制器这两大部分组成 1 控制器 1 功能 用来统一指挥和控制计算机工作的部件 取指 指令译码 发出控制信号 2 组成 指令部件时序部件微操作控制部件 3 程序计数器 又称为PC指针 是一个16位专用寄存器 作用 用于存放和指示下一条要执行指令的地址 自动加1的功能 每次取指后 PC就会自动加1 2 运算器 1 功能 用于对数据进行算术运算和逻辑操作的执行部件2 组成 算术 逻辑部件ALU累加器ACC Accumulator 暂存寄存器程序状态字寄存器PSW ProgramStatusWord 通用寄存器BCD码运算调整电路等 PSW 3 2 3单片机执行程序的过程 3 3单片机的存储器组织 3 3 1基本概念 1 存储器结构分类 哈佛结构普林斯顿结构2 89S51采用哈佛结构 3 3 2程序存储器 1 分片内程序存储器与片外程序存储器二种 片内 片外程序存储器空间重叠片内或片外的指定 由脚状态决定 64K空间 16位寻址 2 程序存储器低端关键单元的特殊作用 0000H单元 80C51单片机复位后的程序入口0003H单元 外部中断0的中断服务程序入口000BH单元 T0的中断服务程序入口0013H单元 外部中断1的中断服务程序入口001BH单元 T1的中断服务程序入口0023H单元 串行口的中断服务程序入口002BH单元 T2的中断服务程序入口 3 用MOVC指令 采用PC或DPTR变址寻址访问程序存储器 3 3 3数据存储器 1 分 片内数据存储器 与 片外数据存储器 二种 片内 片外数据存储器空间独立片内128B 256B 空间 8位地址寻址片外64K空间 16位寻址 2 片外数据存储器映象 64K片外数据存储器空间 无特殊规定片外I O端口 与RAM统一编址片外数据存储器与片外I O访问 均使用或控制片外数据存储器或I O的访问 均采用MOVX指令片外数据存储器或I O的访问 均通过累加器A进行 3 片内数据存储器映象 1 片内数据存储器的低128B为RAM区最低32B 00H 1FH 为工作寄存器区分为4个工作寄存器组 0组00H 07HRS1 0RS0 01组08H 0FHRS1 0RS0 12组10H 17HRS1 1RS0 03组18H 1FHRS1 1RS0 1每个工作寄存器组包含8个工作寄存器 R7R6R5R4R3R2R1R0 参见P33表3 2 次低16B 20H 2FH 为可位寻址RAM位地址编排 00H 7FH共128位 参见P34表3 3 其余 30H 7FH 为普通的数据存储器 89S52还有80H 0FFH 为只能间接寻址的普通数据存储器 2 片内数据存储器的高128B为SFR区专用寄存器区SFR 称为 特殊功能寄存器 分布图谱 可位寻址的单元特征 地址的低3位为0 或者说 低4位地址为0或8 位地址80H FFH T2CON00000000B T2MODXXXXXX00B TL200000000B TH200000000B RCAP2L00000000B RCAP2H00000000B 与89S52对应的T2定时器 89S51新增的WDT 双DPTR等 80C51有21个特殊功能寄存器 Acc累加器BB寄存器PSW程序状态字SP堆栈指针DPTR数据指针 DPH DPL P0 P3端口P0 P3的印象寄存器IP中断优先级寄存器IE中断允许寄存器TMOD定时器 计数器方式字TCON定时器 计数器控制字TH0T0计数值高8位TL0T0计数值低8位TH1T1计数值高8位TL1T1计数值低8位SCON串行控制字SBUF串行数据缓冲器PCON电源控制字 89S51新增 AUXR1AUXRWDTRSTDP1HDP1L89S52新增 TH2TL2RCAP2HRCAP2LT2CONT2MOD CY 进借位标志在进行加法 或减法 运算时 如果操作结果最高位 位7 有进位 CY置 l 否则清 0 在进行位操作时 CY又作为位操作累加器C 移位指令时 左移D7 Cy右移D0 CyAC 半进位标志加法 或减法 运算时 低半字节 位3 向高半字节进位 或借位 AC置 1 否则清 0 AC亦可用于BCD码调整时的判别位 RS0 RS1 工作寄存器区选择位工作寄存器组选择位 用以选择指令当前工作的寄存器组 OV 溢出标志有符号数运算时 如运算结果超出了数值范围会发生溢出 使OV 1 否则OV 0 在乘法运算中 OV 1表示乘积超过255在除法运算中 OV 1表示除数为0 P 奇偶标志运算结果中如果有奇数个 1 则置P为 1 否则置 0 在80C51的指令系统中 凡是改变累加器A中内容的指令均影响奇偶标志位P F1 F0 用户标志由用户置位或复位 PSW 堆栈的作用 SP初始值为07H用户可修改SP的值SP指向栈顶 SP SP 1 堆栈操作 先入后出原则SP自动加1 压栈时 或自动减1 退栈时 显式操作与隐式操作覆盖的危险性 SP堆栈指针 暂存数据保护现场 双DPTR DPTR的作用89S51新增双DPTR 双DPTR的使用 DPTR0与DPTR1的切换AUXR11 不可位寻址2 仅最低位有定义DPS 1选用DPTR1DPS 0选用DPTR0DPTR的赋值方法1 双DPTR共用一个名称 DPTR 取决于选中哪个2 MOVDPTR 34D3H或MOVDPH 34HMOVDPL 0D3H 书中有错 D0 D7不是位地址 3 4输入输出端口结构 1 P0口 80H 的位结构IO切换读引脚 读锁存器上拉电阻第二功能数据复现问题 2 P1口 90H 的结构IO切换读引脚 读锁存器内部上拉ISP功能T2T2EX 3 P2口 0A0H 的结构IO切换读引脚 读锁存器内部上拉第二功能数据复现问题 4 P3口 0B0H 的结构IO切换读引脚 读锁存器内部上拉第二功能数据复现问题 5 P3口 0B0H 的第二功能 6 I O口的负载能力 1 P0口的输出级与Pl P3口的输出级在结构上是不同的 没有内部上拉电阻 因此 它们的负载能力和接口要求也各不相同 P1 P3口也被称做准双向口 2 P0口的每一位可驱动8个LSTTL负载 P0既可作I O端口使用 也可作地址总线 数据总线使用 当把它作通用口输出时 输出级是开漏电路 在驱动NMOS或其他拉电流负载时 只有外接上拉电阻 才有高电平输出 作地址总线 数据总线时 无需外接电阻 但此时不能再作I O口使用 3 P1 P3口输出级接有内部上拉负载电阻 每位可驱动4个LSTTL负载 4 P0 P3口都是双向I O口 作输入时 必须先在相应端口锁存器上写 1 使驱动管FET截止 系统复位时 端口锁存器全为 1 3 580C51的时序与时钟电路 3 5 1基本概念1 时钟周期T也称振荡周期 为时钟脉冲频率的倒数 2 机器周期完成一个基本操作所需时间 MC 12T3 指令周期执行一条指令所需的时间 一般包括1 4个机器周期 3 5 2时钟电路提供单片机片内各种微操作的时间基准 1 内部时钟方式利用芯片内部的振荡器外接晶体或陶瓷谐振器晶振 典型值是12MHzC1 C2 取值在20pF 100pF 89S51的晶振可达33MHz 2 外部时钟方式利用外部振荡脉冲接入XTAL1或XTAL2 HMOS和CHMOS单片机的外时钟信号接入方式不同 3 680C51的复位电路 复位电路完成单片机的初始化操作 3 6 1复位信号的产生外部复位信号引入RST引脚 内部复位电路每个机器周期采样一次该状态 因此 RST上保持2个机器周期 24个时钟周期 以上的高电平信号 将使CPU进入复位状态 3 6 2复位后的状态复位时 ALE和成输入状态 ALE 1片内RAM不受复位影响 P0 P3 0FFH SP 07HPC 0000H其余SFR为0 3 780C51低功耗方式 作用 节能 PCON 87H 电源控制寄存器 波特率倍增位 掉电操作 待机操作 3 7 1待机方式1 进入 使IDL位为12 结果 1 振荡信号不供给CPU 但其它功能部件正常工作2 内部状态 PSWPCSPACCRAM等 不变3 耗电量降为3mA3 退出 将唤醒CPU1 响应中断或带电硬件复位SFR不变 仅IDL被清0 RAM不变 程序从断点继续执行2 上电硬件复位 全部初始化 置待机方式后的第一条指令不要为写指令 有误操作的可能性 3 7 2掉电方式1 进入 使PD位为12 结果 1 振荡器停振 CPU及其它功能部件停止工作2 内部状态 PSWPCSPACCRAM等 不变3 耗电量降为50 A 电源电压可低至2V3 退出 将唤醒CPU1 带电硬件复位 RAM不变 SFR全部初始化2 上电硬件复位 全部初始化 习题 P68 1 2 3 4 5 6 7 12 第四章80C51指令系统 一组数据 7种寻址方式111条指令二个概念 单字节双字节三字节指令单周期双周期四周期指令 64条 45条 2条 49条 45条 17条 4 180C51指令系统简介 机器码 单字节指令 双字节指令 三字节指令 程序地址地址偏差 寄存器别名字节地址 寻址方式 指在指令代码中用以表示操作数地址的各种规定 寻址方式与计算机的存储器空间结构是密切联系的 寻址方式越多则计算机的功能越强 灵活性亦越大 能更有效地处理各种数据 80C51共有7种寻址方式 4 2寻址方式 RnRi data data16directaddr11 addr16 relbit X X 4 2 1符号注释 Rn 当前选中的工作寄存器R0 R7 n 0 7 Ri 当前选中的工作寄存器组中可作为地址指针的两个工作寄存器R0和R1 i 0或1 data 8位立即数 即包含在指令中的8位常数 data16 16位立即数 即包含在指令中的16位常数 direct 8位片内低128字节RAM单元及SFR的直接地址 addr11 addr16 11位或16位目的地址 rel 8位地址偏移量用于相对转移指令中补码表示 其范围为 128 127 bit 片内RAM或SFR的直接寻址位地址 间接寻址方式中 表示间址寄存器的符号 位操作指令中 表示对该位先取反再参与操作 但不影响该位原值 X 注释时 表示片内RAM的直接地址或寄存器 X 注释时 在直接寻址方式中 表示直接地址X中的内容 注释时 指示指令操作流程 将箭头左边的内容送入箭头右边的单元内 4 2 2寻址方式 1 立即寻址在指令中给出了操作数立即数就是存放在程序存储器中的常数 立即数前用 号表示 MOVA 3AHMOVDPTR 3FA6H 2 直接寻址指令中给出了操作数的地址 在80C51单片机中 直接寻址能用来访问1 特殊功能寄存器 也只有这一种寻址方式 2 低128字节内部RAM3 位地址空间 MOVA 3AHMOVPSW 50H 3 寄存器寻址以通用寄存器的内容为操作数通用寄存器包括 1 累加器A2 通用寄存器B 与A连用 3 地址寄存器DPTR4 R0 R7 工作寄存器组的选择由PSW中的RS1和RS0来确定 MOVA R2INCDPTR 4 寄存器间接寻址寄存器中存放操作数的地址能用寄存器间接寻址的寄存器 R0 R1 DPTR SP寻址空间1 用R0 R1间接寻址 访问片内RAM2 用SP 进行堆栈操作 其中 高128字节只能用这二种寻址方式 3 用DPTR R0 R1间接寻址 访问片外数据存储器 MOVA R0MOVXA DPTR 5 变址寻址 基址寄存器 变址寄存器间接寻址 以DPTR或PC为基址寄存器 累加器A为变址寄存器 变址寻址时 把两内容相加 所得到的结果作为操作数的地址 A中的数据为无符号数寻址空间 程序存储器 MOVCA A DPTR 93H 下一条指令 ALU 2040H 2041H 20EOH 操作码 目标地址 PC 20E0H 0H 20H 00H DPL DPH 47H 47H 例 MOVCA A DPTR 6 相对寻址将程序计数器PC中的当前内容与指令第二个字节所给出的数相加 其结果作为跳转指令的转移地址只用于修改PC值偏移量为补码数 范围 128 127 JC03H 80H 下一条指令 ALU 54H rel 54H 2000H 2001H 2002H 2056H 操作码 PC当前值 2002H 修正后转移 目标地址 PC 2056H 例 SJMP2056H 7 位寻址对片内RAM或SFR的位寻址区进行位操作时的寻址方式 SETB20HCLRC 是最常用 最基本的一类指令 一般传送类指令是把源操作数传送到目的操作数 指令执行后 源操作数不变 目的操作数修改为源操作数 交换型传送指令不丢失目的操作数 它只是将源操作数和目的操作数交换了存放单元 传送类指令一般不影响标志位只有堆栈操作可以直接修改程序状态字PSW传送目的操作数为ACC的指令将影响奇偶标志P 4 3数据传送类指令 4 3 1内部RAM数据传送指令 1 累加器A为目的操作数的指令MOVA data data AMOVA direct direct AMOVA Rn Rn AMOVA Ri Ri A 4 3 1内部RAM数据传送指令 2 以寄存器Rn为目的操作数的指令MOVRn data data RnMOVRn direct direct RnMOVRn A A Rn 例1A 5BH R1 10HR2 20H R3 30H 30H 4FH执行指令 MOVR1 A A R1MOVR2 30H 30H R2MOVR3 83H 83H R3执行后 R1 5BH R2 4FH R3 83H 4 3 1内部RAM数据传送指令 3 16位数据传送指令MOVDPTR DATA16该指令在译成机器码时 是高字节在前 低字节在后 如 MOVDPTR 1234H 其机器码是90 12 34 4 3 1内部RAM数据传送指令 4 以直接地址为目的操作数的指令MOVdirect data data direct MOVdirect direct direct direct MOVdirect A A direct MOVdirect Rn Rn direct MOVdirect Ri Ri direct 4 3 1内部RAM数据传送指令 5 以间接地址为目的操作数的指令MOV Ri A A Ri MOV Ri direct direct Ri MOV Ri data data Ri 例2已知R0 60H 60H 50H执行如下指令 MOV40H R0 R0 40H 该指令执行过程如图1 10所示 执行结果是40H单元中为50H 4 3 2外部RAM数据传送指令 只有这四条 MOVXA DPTR DPTR AMOVX DPTR A A DPTR MOVXA Ri Ri AMOVX Ri A A Ri 例3把外部数据存储器2040H单元中的数取出 传送到2230H单元中去 根据题意可编程序如下 MOVDPTR 2040H 2040H DPTRMOVXA DPTR DPTR AMOVDPTR 2230H 2230H DPTRMOVX DPTR A A DPTR 4 3 3查表指令 在80C51指令系统中 有两条极有用的查表指令 其数据表格放在程序存储器中 MOVCA A十PC PC十1 PC A十PC AMOVCA A十DPTR A十DPTR A PUSHdirect SP十1 SP direct SP POPdirect SP direct SP 1 SP 4 3 4堆栈操作指令 使用堆栈时 一般需重新设定SP的初始值 由于压入堆栈的第一个数必须存放在SP十1存储单元 故实际栈顶是在SP十1所指出的单元 另外 要注意留出足够的存储单元作栈区 因为栈顶是随数据的弹入和弹出而变化的 如栈区设置不当 则可能发生数据重叠 这样会引起程序混乱 以至无法运行 一般情况 执行此指令不影响标志 但若目标操作数为PSW 则有可能使一些标志改变 这也是通过指令强行修改标志的一种方法 4 3 5交换指令 XCHA Rn A RnXCHA direct A direct XCHA Ri A Ri XCHDA Ri A 3 A 0 Ri 3 Ri 0 SWAPA A 3 A 0 A 7 A 4 4 4算术运算类指令 包括 1 加法类 减法类 乘法类 除法类2 自加1 自减1类3 BCD码调整类关键点 1 影响标志位2 加 减 乘 除法均通过A来完成 功能 把源操作数所指出的内容加到累加器A 其结果存在A中 4 4 1加法指令 ADDA Rn A十Rn AADDA direct A十 direct AADDA Ri A十 Ri AADDA data A十data A 如果位7有进位 CY位置 1 否则清 0 如果位3有进位 AC位置 1 否则清 0 有符号数相加 还要判断OV位 若OV为 1 表示和数溢出 功能 把源操作数所指出的内容及进位位内容 加到累加器A 其结果存在A中 4 4 2带进位加法指令 ADDCA Rn A十Rn Cy AADDCA direct A十 direct Cy AADDCA Ri A十 Ri Cy AADDCA data A十data Cy A 1 对标志位的影响与加法指令相同2 常用于多字节加法运算例 MOVA R1ADDA R0MOV R1 AINCR0INCR1MOVA R1ADDCA R0 先清Cy位 功能 将累加器A中的数 减去源操作数所指出的内容及进位位 其结果存在A中 4 4 3带进位减法指令 SUBBA Rn A Rn C ASUBBA direct A direct C ASUBBA Ri A Ri C ASUBBA data A data C A 如果位7有借位 CY位置 1 否则清 0 如果位3有借位 AC位置 1 否则清 0 有符号数相减 还要判断OV位 若OV为 1 表示差数溢出 先清Cy位 4 4 4乘法指令 MULAB A B BA对PSW的影响 Cy 0若乘积大于FFH 则OV置 1 否则清 0 也影响奇偶标志位 4 4 5除法指令 DIVAB A B的商 A 余数 B对PSW的影响 执行本指令后 标志CY和OV均复位 B 0时 A和B中的内容为不变 OV标志置 1 说明除法溢出 此指令影响奇偶标志位P 不影响除奇偶校验位外的其它标志位 INCA A 1 AINCRn Rn 1 RnINCdirect direct 1 direct INC Ri Ri 1 Ri INCDPTR DPTR 1 DPTR 4 4 6加1指令 4 4 7减1指令 不影响除奇偶校验位外的其它标志位 DECA A 1 ADECRn Rn 1 RnDECdirect diret 1 direct DEC R1 Ri 1 Ri 没有 DECDPTR指令 4 4 8十进制加法调整指令DAABCD码加法运算时使用跟在ADD和ADDC指令之后用于对BCD码加法运算结果自动进行修正 对BCD码调整过程 A0 3 9或AC 1时 低4位加6调整A4 7 9或Cy 1时 高4位加6调整 1 清除标志位2 只能跟在加法指令之后 4 5逻辑运算与移位类指令 执行这些指令时一般不影响程序状态字寄存器PSW 仅当目的操作数为ACC时对奇偶标志位P有影响 逻辑运算 与 或 异或 取反 清零等移位 A中内容逐位左移 右移等 4 5 1逻辑 与 指令ANLA Rn A Rn AANLA direct A direct AANLA Ri A Ri AANLA data A data AANLdirect A direct A direct ANLdirect data direct data direct 常用于屏蔽某些位 使某些位为0 例1已知A 8FH 40H 96H执行指令 ANLA 40H 结果 A 86H 40H 96H P 1 4 5 2逻辑 或 指令ORLA Rn A Rn AORLA rect A direct AORLA Ri A Ri AORLA data A data AORLdirect A direct A direct ORLdirect data direct data direct 常用于置位某些位 使某些位为1 例2 已知A 1AH R0 45H 45H 39H执行指令ORLA R0结果 A 3BH R0 45H 45H 39H P 1 4 5 3逻辑 异或 指令XRLA Rn A Rn AXRLA direct A direct AXRLA Ri A Ri AXRLA data A data AXRLdirect A direct A direct XRLdirect data direct data direct 作用 使某些位取反 例3已知A 87H 32H 77H执行指令XRL32H A结果 A 87H 32H F0H P 0 4 5 4取反和清 0 指令取反指令CPLA A清 0 指令CLRA 0 A例4 已知A 01011010B执行CPLA后 A 10100101B执行CLRA后 A 00H 4 5 5循环移位指令左移RLARLCA右移RRARRCA 4 6控制转移类指令 有条件或无条件地控制程序从原顺序执行的地址 转移到其它指令地址上 原顺序执行的地址 PC指向下一条指令首址转移 向前 向后转移局部 区域 全局转移条件转移无条件转移调用 4 6 1无条件转移指令长转移指令LJMPADDR16短转移指令AJMPADDR11 又称绝对转移指令 相对转移指令SJMPrel 相对转移指令 2字节 可以转移到ROM中以PC指向的下一条指令的首址为起点 128 127的范围 长转移指令 3字节 可以转移到ROM中64K的任意位置 短转移指令 2字节 可以转移到ROM中同一页 2K 的任意位置 注 PC指向下一条指令的首址 例 当前PC 1245H则下一条指令首址1247HPC 0001 0010 0100 0111B执行后 程序转移到PC 0001 0XXX XXXX XXXXB 4 6 2条件转移指令判零转移 2字节 JZrel A 0 pc 2 rel pc A 0 pc 2 pcJNZrel A 0 pc 2 rel pc A 0 pc 2 pc 4 6 2条件转移指令比较转移 3字节 CJNEA direct rel A direct PC 3 PC 0 C A direct PC 3 rel PC 0 C A direct PC 3 rel PC 1 CCJNEA data rel A data PC 3 PC 0 C A data PC 3 rel PC 0 C A data PC 3 rel PC 1 CCJNERn data rel Rn data PC 3 P 0 C Rn data PC 3 rel PC 0 C Rn data PC 3 rel PC 1 CCJNE Ri data rel Ri data PC 3 PC 0 C Ri data PC 3 rel PC 0 C Ri data PC 3 rel PC l C 4 6 2条件转移指令减1转移 3字节 DJNZRn rel Rn 1 Rn Rn 0 PC 2 rel PC Rn 0 PC 2 PCDJNZdirect rel direct 1 direct direct 0 PC 3 rel PC direct 0 PC 3 PC 4 6 3间接转移指令 散转 JMP A DPTR 指令执行过程对DPTR A和标志位均无影响多出口转移 4 6 4调用子程序及返回程序LCALLaddr16 PC 3 PC SP 1 SP PC 7 PC 0 SP SP 1 SP PC 15 PC 8 SP addr16 PCACALLaddr11 PC 2 PC SP 1 SP PC 7 PC 0 SP SP 1 SP PC 15 PC 8 SP addr11 PC 10 PC 0RET SP PC 15 PC 8 SP 1 SP SP PC 7 PC 0 SP 1 SPRETI 除具有RET指令的功能外 还将清除优先级状态寄存器 4 6 5空操作指令NOP功能 1周期指令 不进行任何实质性操作常用于 操作时间间隔调整软件陷阱 4 7位操作类指令 位地址的表达方式有如下几种 1 直接 位 地址方式 如D4H 2 点操作符号方式 如PSW 4 DOH

温馨提示

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

评论

0/150

提交评论