内容简介 本书以 Proteus 为仿真软件, 以汇编语言和 C 语言为编程语言, 结合趣味应用实例, 系统介绍 MCS-51 单片机的组织结构 工作原理 指令系统 程序设计 中断 定时 / 计数器 串行通信 系统扩展 接口技术 应用系统设计等内容 每章的例题 习题都用 Proteus 仿真实现,

Size: px
Start display at page:

Download "内容简介 本书以 Proteus 为仿真软件, 以汇编语言和 C 语言为编程语言, 结合趣味应用实例, 系统介绍 MCS-51 单片机的组织结构 工作原理 指令系统 程序设计 中断 定时 / 计数器 串行通信 系统扩展 接口技术 应用系统设计等内容 每章的例题 习题都用 Proteus 仿真实现,"

Transcription

1 普通高等教育电气信息类应用型规划教材 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 李林功编著 北 京

2 内容简介 本书以 Proteus 为仿真软件, 以汇编语言和 C 语言为编程语言, 结合趣味应用实例, 系统介绍 MCS-51 单片机的组织结构 工作原理 指令系统 程序设计 中断 定时 / 计数器 串行通信 系统扩展 接口技术 应用系统设计等内容 每章的例题 习题都用 Proteus 仿真实现, 每章的练习题也可以作为实践教学内容, 体现 理论联系实际, 学中做 做中学 的工程教育理念, 使教学内容有声 有色 有滋味 本书可作为高等学校电子信息工程 通信工程 电气工程 自动化 计算机应用 机械工程 机电一体化等专业的 单片机原理与应用 课程教学用书, 也可作为工程技术人员 单片机爱好者的技术参考书 图书在版编目 (CIP) 数据单片机原理与应用 : 基于实例驱动和 Proteus 仿真 / 李林功编著. 2 版. 北京 : 科学出版社,2013 ( 普通高等教育电气信息类应用型规划教材 ) ISBN Ⅰ.1 单 Ⅱ.1 李 Ⅲ.1 单片微型计算机 - 高等学校 - 教材 Ⅳ.1TP368.1 中国版本图书馆 CIP 数据核字 (2012) 第 号责任编辑 : 陈晓萍 / 责任校对 : 耿耘责任印制 : 吕春珉 / 封面设计 : 耕者设计工作室 科学出版社发行各地新华书店经销 * 2013 年 2 月第二版开本 : / 年 2 月第一次印刷印张 :19 字数 : 定价 :34.00 元 ( 如有印装质量问题, 我社负责调换 双青 ) 销售部电话 编辑部电话 版权所有, 侵权必究举报电话 : ; ;

3 前 言 随着科学技术的飞速发展, 物联网技术 智慧城市理念已经逐渐走进寻常百姓的生 活, 这使得信息技术的应用深度和广度不断拓展, 也为单片机技术的发展和应用开拓了新的应用空间 单片机种类繁多, 性能各异, 但由于 8 位单片机资源丰富 性价比高, 目前应用最为广泛 单片机技术简单易学, 应用广泛, 掌握单片机的工作原理及应用方法是电类专业学生的基本素质 本书将以 MCS-51 单片机为例介绍单片机的工作原理及应用技术 本书是作者们多年教学 科研经验和集体智慧的结晶, 具有鲜明特色 1. 易学易用 本书主要面向单片机初学者, 内容安排遵循由简到繁 循序渐进 实用 有趣 易学 易懂 易用的原则, 重点讲述单片机的基础知识, 培养学生的单片机应用基本方法和基本能力 相关的扩展内容 扩展实例 扩展应用都放在单片机课程网站上, 所有读者均可随时下载使用 体现强化基础 强调应用 内容开放 适合不同读者需求的教学理念 2. Proteus 仿真 书中所有例题 习题都用 Proteus 仿真实现, 教学过程中, 随时可以展示仿真过程和仿真结果 既培养学生的仿真能力, 加深学生对教学内容的理解和掌握程度, 又提高学生的单片机应用系统分析 设计能力和工程实践能力 3. 双语言编程 书中例题 习题都用汇编语言和 C 语言两种语言编程, 方便不同需求的学生学习 应用, 既培养学生的程序设计方法, 提高学生对教学内容的理解 掌握程度, 又方便学生实践应用 使教学内容更加接近工程实践 4. 实用有趣 教学内容, 特别是例题 习题紧密结合学生生活实际和生产应用实际, 既体现单片机的基本工作原理, 又体现单片机应用系统的设计方法, 有效提高了教学内容的实用性和趣味性, 师生可以边讲 边学 边做, 充分体现 学中做 做中学 的工程教育理念 书中每章的练习题, 既可作为学生的练习作业, 也可作为实验内容, 一书两用, 方便实用 5. 例题丰富 书中习题少而精, 但每一道习题, 都是开放的 可以无限扩展的, 追求 做一件事, 做好一件事 的教学理念 学习有困难的学生可以完成例题 习题的基本要求 ; 普通学生可以在现有例题 习题基础上, 根据自己的需求实现自主扩展或扩充 ; 优秀学生可以创新应用, 实现超越 教学内容适合所有学生的所有需求 6. 网络支持 教材为师生提供基本的教学内容 ; 课程网站为师生提供丰富的扩展内容 应用资料 ; 课程 QQ 群为师生提供互相学习 及时交流的平台, 随时问, 及时答, 有问必答 及时解决学生学习过程中遇到的问题, 培养好习惯, 增强自信心 7. 有声 有色 有滋味 绝大部分教学内容, 特别是例题 习题, 通过趣味实例呈

4 ii 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 现, 且通过 Proteus 仿真 ; 仿真结果通过不同颜色的 LED 数码管显示, 通过扬声器或蜂鸣器发声 所有教学内容都是无限开放的, 学生可以根据自己的理解和爱好在基础内容上进行扩展, 可以根据自己的实际需求, 选择一个或几个题目进行深入研究 如从点亮一个 LED 开始, 逐步到 LED 闪烁 流水灯 交通灯 彩灯等, 步步升级, 慢慢体会单片机应用的真实滋味, 真正实现让学生喜欢学 有条件学 学得会 用得上的教学目标 使教学内容有声 有色 有滋味, 使单片机教学像玩升级游戏一样趣味横生 其乐无穷 全书共分 12 章, 第 1 章介绍单片机的发展 特点和应用 ; 第 2 章介绍 MCS-51 单片机的内部结构 引脚功能 存储器结构 端口结构等内容 ; 第 3 章介绍 MCS-51 单片机的寻址方式和 111 条指令 ; 第 4 章介绍常用伪指令 汇编语言程序的基本结构和设计方法 ; 第 5~7 章分别介绍 MCS-51 单片机的中断 定时器 / 计数器 串行通信功能 ; 第 8~ 11 章分别介绍单片机应用系统中的按键与显示技术 A-D 转换技术 D-A 转换技术 存储器扩展技术 输入 / 输出端口扩展技术 ; 第 12 章介绍单片机应用系统的设计方法 书后附有 ASCII 表 MCS-51 单片机指令详解表 Proteus 使用简介 C51 简介等内容, 以便读者查阅使用 本书在参编者共同讨论 编写的基础上, 由浙江大学宁波理工学院李林功统编 统写 统校完成 参加修改编写的有浙江大学宁波理工学院吴飞青 丁晓 裘君, 山东建筑大学于复生, 防灾科技学院马洪蕊, 浙江工商职业技术学院叶香美, 浙江万里学院吕昂 郑子含, 浙江树人大学阮越, 宁波大红鹰学院裴佳利, 河南师范大学杨豪强 王长清, 德州学院张福安, 河南财经政法大学袁泽明, 郑州华信学院宋东亚 褚新建, 河南工程学院陶春鸣, 广东石油化工学院张翼成 左敬龙等 本书配有 PPT 课件 习题解答 全部例题和习题 Proteus 仿真资料 欢迎广大教师向科学出版社 (cxp666@yeah.net) 索取 使用 在本书编写 出版过程中, 参阅 借鉴了许多优秀教材和技术专家的宝贵经验 技术资料和研究成果, 得到了科学出版社的大力支持, 在此深表感谢 由于作者水平有限, 书中错误和不妥之处在所难免, 敬请读者不吝指正 李林功 2012 年 10 月

5 目 录 第 1 章概述 单片机基本结构 单片机的发展 位单片机 位单片机 位单片机 位单片机 单片机的发展方向 单片机的特点 单片机的应用 5 思考题 6 第 2 章硬件基础 体系结构 引脚功能 输入 / 输出端口结构 P0 口 P1 口 P2 口 P3 口 存储器体系结构 程序存储器 数据存储器 时钟电路 指令时序 复位电路 低功耗模式 27 思考题 28 练习题 28 第 3 章指令系统 指令格式 寻址方式 30

6 iv 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 3.3 数据传送类指令 算术运算类指令 逻辑运算类指令 控制转移类指令 位操作类指令 50 思考题 52 练习题 52 第 4 章汇编语言程序设计 汇编语言程序设计方法 常用伪指令 顺序程序设计 分支程序设计 循环程序设计 子程序设计 70 思考题 73 练习题 73 第 5 章中断 中断源 中断控制 中断过程 中断请求 中断响应 中断处理 中断返回 外部中断源扩展 82 思考题 89 练习题 89 第 6 章定时与计数 定时器 / 计数器结构 定时器 / 计数器工作方式及应用 工作方式 工作方式 工作方式 工作方式 思考题 107 练习题 107

7 目录 v 第 7 章串行通信 串行通信基础 异步通信 同步通信 串行通信模式 MCS-51 单片机串行通信接口 串行通信控制寄存器 电源控制寄存器 串行通信工作方式及应用 工作方式 工作方式 工作方式 工作方式 多机通信 121 思考题 126 练习题 127 第 8 章按键与显示 按键的抖动 独立式按键 矩阵式键盘 查询扫描方式 中断扫描方式 发光二极管 LED 数码管 LED 数码管静态显示 LED 数码管动态显示 液晶显示 LCD1602 液晶显示模块 LCD1602 应用举例 155 思考题 159 练习题 160 第 9 章 A-D 与 D-A 转换 A-D 转换 ADC0809 结构与引脚 ADC0809 与单片机的接口 ADC0809 应用举例 串行 A-D 转换 167

8 vi 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 9.2 D-A 转换 DAC0832 引脚 DAC0832 逻辑结构及工作方式 直流电动机控制 178 思考题 181 练习题 181 第 10 章存储器扩展 存储器扩展方法 程序存储器扩展 程序存储器的扩展方法 程序存储器扩展举例 数据存储器扩展 数据存储器扩展方法 数据存储器扩展举例 194 思考题 196 练习题 196 第 11 章输入 / 输出接口扩展 输入 / 输出接口的功能 简单 I/O 接口扩展 用串行口扩展并行口 用串行口扩展并行输入口 用串行口扩展并行输出口 用可编程接口芯片扩展接口 206 思考题 206 练习题 206 第 12 章应用系统设计 单片机应用系统的构成 单片机应用系统设计方法 需求分析 可行性分析 系统体系结构设计 硬件设计 软件设计 综合调试 温度监控系统设计 需求分析 可行性分析 系统体系结构 216

9 目录 vii 硬件设计 软件设计 综合调试 243 思考题 244 练习题 244 附录 245 附录 A ASCII 表 245 附录 B MCS-51 单片机指令系统表 246 附录 C Proteus 使用简介 251 C.1 电路原理图设计 252 C.2 C 语言程序设计 257 C.3 Proteus 和 Keil 联调 262 C.4 流水灯 C 语言参考程序 265 C.5 汇编语言程序调试 265 C.6 流水灯 汇编语言参考程序 268 附录 D 单片机 C 语言程序设计 268 D.1 汇编语言与 C 语言 268 D.2 C51 基本元素 270 D.3 C51 运算符和表达式 275 D.4 C51 语句和控制结构 280 D.5 C51 函数 286 参考文献 289

10 第 1 章概 述 随着科学技术的迅速发展, 单片机的功能越来越强大 体积越来越小 功耗越来越小 价格越来越便宜 学习越来越简单 使用越来越方便 应用越来越广泛 从手机 电视到火箭 飞船, 从精细农业 现代化工业到医疗卫生 军事 航空, 无处没有单片机的踪迹, 可以说, 单片机的应用无处不在 学习 掌握单片机技术是对电类专业学生的基本要求 1.1 单片机基本结构 单片机是单片微型计算机 (Single Chip Microcomputer) 的简称, 又称微控制器 (Microcontroller), 它是将中央处理器 (Central Processing Unit,CPU) 存储器 中断系统 定时器 / 计数器 输入 / 输出 (Input/Output,I/O) 端口 总线等部件做在一个芯片上的集成电路芯片, 如图 1.1 所示 在现代应用系统中, 单片机常被作为控制器件嵌入其中, 所以也被称为嵌入式微控制器或嵌入式单片微机 图 1.1 单片机的逻辑结构 中央处理器是单片机的核心部件, 它由运算器和控制器组成, 主要完成算术运算 逻辑运算和逻辑控制等功能

11 2 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 存储器是具有记忆功能的电子部件, 分为只读存储器 (Read Only Memory,ROM) 和随机存储器 (Random Access Memory,RAM) 两类 只读存储器用于存储程序 表格 等相对固定的信息 ; 随机存储器用于存储程序运行期间所需要的数据和产生的结果 输入 / 输出端口是单片机与外界进行信息交换的通道, 其主要功能是协调 匹配单片 机与外部设备的工作 并行口传输并行信息, 速度快, 但需要的引脚数目多, 适合近距离快速传送 串行口传送串行信息, 速度慢, 但需要的引脚数目少, 适合远距离传送 定时器 / 计数器用于实现系统定时或事件计数, 并以定时或计数结果对操作对象进行控制 中断控制系统是单片机为满足各种实时控制而设置的功能部件, 是重要的输入 / 输出机制 输入 / 输出端口 中断控制系统 定时器 / 计数器是单片机重要的内部资源, 为单片机控制外部设备, 实现信息交流提供了强有力的支持 时钟电路主要由振荡器和分频器组成, 为系统各工作部件提供时钟 总线 (Bus) 是各工作部件之间传送信息的公共通道 总线按照其功能可分为数据总线 (Data Bus,DB) 地址总线(Address Bus,AB) 和控制总线 (Control Bus,CB) 三类, 分别传送数据信息 地址信息和控制信息 1.2 单片机的发展 1971 年英特尔 (Intel) 公司的霍夫 (Hoff) 博士研制成功了世界上第一块 4 位微处理器芯片 Intel 4004, 这标志着微型计算机时代从此开始 位单片机 4 位单片机主要是在 1974~1976 年期间发展起来的 典型产品有美国国家半导体 (National Semiconductor,NS) 公司的 COP402 系列, 日本松下 (Panasonic) 公司的 MN1400 系列等 4 位单片机有一个 4 位 CPU, 一次可以直接处理 4 位二进制信息 内部设有多个通用功能模块 ( 如并行口 定时器 / 计数器 中断控制系统等 ), 还可配备专用接口 ( 如打印机 键盘 显示器 音箱等 ) 4 位单片机的特点是体积小, 功能简单, 片内程序存储器一般为 2~8KB, 数据存储器一般为 128 4~512 4 位 4 位单片机广泛应用于家用电器 计算器 电子玩具等产品中 位单片机 1976 年 9 月, 美国 Intel 公司首先推出了 MCS-48 系列 8 位单片机 从此, 单片机发展进入了一个崭新的阶段 但在 1978 年以前, 各厂家生产的 8 位单片机, 由于受集成电路技术的限制, 一般没有串行接口, 并且寻址范围也比较小 ( 小于 8KB), 从性能上看属于低档 8 位单片机 随着集成电路工艺水平的提高, 在 1978~1983 年期间集成电路的集成度提高到几万只管 / 片, 因而一些高性能的 8 位单片机相继问世 例如,1978 年摩托

12 第 1 章概述 3 罗拉 (Motorola) 公司推出的 MC6801 系列,Zilog 公司推出的 Z8 系列,1979 年 NEC 公司推出的 upd78xx 系列,1980 年 Intel 公司推出的 MCS-51 系列等, 寻址能力都能达到 64KB, 片内 ROM 容量为 4~8KB, 片内除带有并行 I/O 口外, 还有串行 I/O 口, 某些还有 A-D 转换器 通常把这类单片机称为高档 8 位单片机 随着应用需求的不断增长, 各生产厂家在高档 8 位单片机的基础上, 又相继推出了超 8 位单片机 如 Intel 公司的 8X252,Zilog 公司的 SUPER8,Motorola 公司的 MC68HC 等 它们不但进一步扩大了片内 ROM 和 RAM 的容量, 同时还增加了通信功能 DMA 传输功能以及高速 I/O 功能等 自 1985 年以后, 各种高性能 大存储容量 多附加功能的超 8 位单片机不断涌现, 它们代表了单片机的发展方向之一, 在单片机应用领域中发挥着越来越重要的作用 8 位单片机由于功能强, 价格适中, 软硬件资源丰富, 被广泛应用于工业控制 智能仪器仪表等领域, 是目前单片机应用的主要机型 位单片机 1983 年以后, 集成电路的集成度可达十几万只管 / 片,16 位单片机逐渐问世 这一阶段的代表产品有 Intel 公司推出的 MCS-96/98 系列, 美国国家半导体公司推出的 HPC 系列,Motorola 公司推出的 M68HC16 系列,NEC 公司推出的 783XX 系列等 16 位单片机在功能上又上了一个新的台阶, 如 MCS-96 系列单片机的集成度为 12 万只管 / 片, 片内含有 16 位 CPU 五个 8 位并行 I/O 口 四个全双工串行口 四个 16 位定时器 / 计数器 八级中断处理系统 高速输入 / 输出 HSIO 脉冲宽度调制(Pulse Width Modulation, PWM) 输出 特殊用途的监视定时器等 16 位单片机功能强大, 常用于高速复杂的控制系统 位单片机随着集成电路技术的不断发展和实际应用需要的快速增长, 许多生产厂家相继推出高性能 32 位单片机 如 Motorola 公司推出的 M68300 系列, 日立公司推出的 SH 系列等 这些单片机中不仅包含有存储器和 I/O 端口, 而且还包含有专门的通信链路接口, 能按计算方法的特点直接连成各种阵列, 满足快速响应的要求 32 位单片机常用于信号处理 图像处理 高速控制 通信等领域 单片机的发展方向随着单片机功能的不断提高和应用需求的迅速增加, 单片机正朝着多功能 高速度 低功耗 低价格 大存储容量等方向发展 1) 多功能 把应用系统中经常需要的存储器 液晶显示 (Liquid Crystal Display, LCD) 驱动器 模拟 - 数字 (Analog-Digital,A-D) 转换 数字 - 模拟 (Digital-Analog, D-A) 转换 多路模拟开关 采样 / 保持器等都集成到单片机芯片中, 从而成为名副其实的单片微机 2) 高性能 为了提高速度和执行效率, 在单片机中使用精简指令集计算机 (Reduced

13 4 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) Instruction Set Computer,RISC) 体系结构 并行流水线操作等设计技术, 使单片机的指 令运行速度得到大大提高, 电磁兼容性得到明显改善 3)CMOS(Complementary Mental Oxide Semiconductor) 工艺 单片机采用两种半 导体工艺生产 一种是 HMOS(High Performance Mental Oxide Semiconductor) 工艺, 即高密度短沟道 MOS 工艺, 它具有高速度和高密度等特点 另一种是互补金属氧化物 (Complementary HMOS,CHMOS) 工艺, 这种工艺除具有 HMOS 的优点外, 还具有 CMOS 工艺的低功耗特点 如 8051(HMOS) 的功耗为 630mW, 而 80C51(CHMOS) 的功耗 仅为 120mW 从第三代单片机开始淘汰非 CMOS 工艺 目前, 数字逻辑器件也已普遍 采用 CMOS 工艺了 4) 串行总线 串行总线可以显著减少引脚数量, 简化系统结构 随着串行外围器件 的迅速发展, 单片机的串行接口的普遍化 高速化趋势越来越明显, 许多公司都推出了串行总线单片机, 极大地丰富了单片机的应用领域 5) 大存储容量 由于集成电路集成度的不断提高, 有的单片机的寻址能力已突破 64KB 的限制,8 位 16 位单片机的寻址能力已可达到 1MB 16MB 这给单片机用户带来很大方便 1.3 单片机的特点 单片机种类多 型号多 生产厂家多, 每个厂家生产的不同型号的单片机都有自己独特的优势和特色, 它们普遍具有以下特点 1. 种类多, 型号全 单片机生产厂家为了适应市场需求, 都推出丰富的系列产品, 使系统开发工程师有广泛的选择余地, 并且大部分产品具有较好的兼容性, 使产品容易进行升级换代 2. 体积小, 价格低 单片机集成度高, 功能丰富, 能方便地构成各种智能化的设备和仪器, 这也使得单片机的销售量不断增加, 价格不断降低, 应用的领域不断扩大 3. 面向控制 单片机的硬件结构和指令系统都带有强烈的控制色彩, 这使得用单片机完成各类控制任务变得简单方便 4. C 语言开发环境, 易于开发 大多数单片机提供基于 C 语言的开发平台, 并提供大量的实用函数库, 这使产品的开发周期 代码可读性 可移植性都大大提高

14 第 1 章概述 5 5. 网络功能使用单片机可以方便地构成多机或分布式控制系统, 使应用系统的效率和可靠性大为提高, 也可以将单片机作为互联网的网络终端 6. 扩展能力强在单片机内部的各种功能部件不能满足应用需要时, 均可在外部进行扩展 ( 如扩展 ROM RAM I/O 接口 定时器 / 计数器 中断控制系统等 ), 由于单片机与许多通用的接口芯片兼容, 给应用系统设计带来极大的方便 7. 抗干扰能力强为了满足各种复杂应用需求, 单片机芯片是按工业测试环境要求设计的 产品在 120 温度条件下经 44h 老化处理, 又通过电气测试及质量检验, 以适应各种恶劣的工作环境 1.4 单片机的应用 由于单片机具有功能强 价格低 体积小 使用方便等特点, 在工农业生产 航空航天 日常生活等各个领域, 都得到了广泛应用 1. 工业 农业 军事 航空单片机作为控制器广泛用于工业测控 航空航天 尖端武器 机器人 船舶 精细农业等实时控制系统中 单片机的实时数据处理能力和控制功能, 可使系统保持在最佳状态, 有效提高系统的工作效率和产品质量 2. 仪器仪表目前单片机应用最多 最活跃的是在仪器仪表领域 由于单片机具有体积小 功耗低 控制功能强 扩展灵活 使用方便等优点, 结合不同类型的传感器, 可方便实现诸如电压 功率 频率 湿度 温度 流量 速度 厚度 角度 长度 硬度 元素 压力等物理量的测量 使用单片机, 可以使仪器仪表数字化 智能化 微型化, 可以提高测量的自动化程度和精度, 简化仪器仪表的硬件结构, 提高性价比 3. 计算机外部设备与智能接口目前, 大部分计算机的外部设备包含有单片机 如微型打印机内部采用 8031 单片机控制, 带有小型汉字库, 能打印汉字, 可与一般的 4 位或 8 位微机配接, 通信方式简单, 使用方便 软盘驱动器采用 8048 单片机, 存储多种速度值, 片内 RAM 中有磁道寄存器 制动计数器, 能控制寻道和定位

15 6 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 4. 电子商务设备 在电子商务设备中, 如自动售货机 电子收款机等设备中都有单片机的踪迹 5. 家用电器 在家用电器中, 如洗衣机 电冰箱 电视机 收录机 照相机 摄像机等家用电器配上单片机后, 增加了功能, 提高了性能, 简化了操作, 备受人们的喜爱 6. 医疗器械 为了有效提高医疗器械的智能化 自动化水平, 普遍采用单片机 如医用呼吸机 血液分析仪 生理体征监护仪 超声诊断设备 病床呼叫系统等, 都是单片机的典型应用 7. 汽车电子 单片机在汽车电子中的应用越来越广泛, 例如, 汽车中的发动机控制器 GPS 导航系统 ABS 防抱死系统 制动系统等都由单片机控制 8. 网络及通信 在比较复杂的系统中, 常采用分布式结构, 单片机在这种系统中往往作为一个终端, 安装在系统的某些节点上, 对现场信息进行实时测量和控制, 大大提高了系统的工作效率和灵活性 思考题 1. 单片机主要由哪些功能模块构成? 各模块的主要功能是什么? 2. 举例说明你身边的单片机应用

16 第 2 章硬件基础 目前, 单片机种类繁多, 性能各异, 但其工作原理是相通的, 学会了一种, 对其他种类的单片机也就基本理解了 本书将以目前最流行的 MCS-51 系列单片机为例介绍单片机的基本结构 工作原理和应用方法 2.1 体系结构 MCS-51 单片机主要由运算器 控制器 定时器 / 计数器 程序存储器 ROM 数据存 储器 RAM 串行 I/O 端口 并行 I/O 端口 中断控制系统 时钟电路和总线等工作部件 组成, 如图 2.1 所示 图 2.1 MCS-51 单片机内部结构

17 8 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 1. 运算器 运算器包括算术逻辑单元 (Arithmetic and Logic Unit,ALU) 累加器 (Accumulator, ACC) B 寄存器 状态寄存器 (Program Status Word,PSW) 暂存器 1 和暂存器 2 等 部件, 主要完成算术 逻辑运算功能 2. 控制器 控制器包括程序计数器 (Program Counter,PC) 指令寄存器 (Instruction Register, IR) 指令译码器 (Instruction Decoder,ID) 数据指针 (Data Pointer,DPTR) 堆栈指 针 (Stack Pointer,SP) 缓冲器以及定时与控制矩阵等, 主要控制 协调单片机各功能 部件正确工作 3. 定时器 / 计数器 定时器 / 计数器常用于定时控制 延时等待以及对外部事件的计数和检测等场合 MCS-51 单片机片内有两个 16 位的定时器 / 计数器 4. 存储器 MCS-51 单片机采用程序存储器和数据存储器互相独立的哈佛 (Harvard) 结构 MCS-51 单片机片内配有 4KB 程序存储器, 用于存储程序 表格等信息, 如果不够用, 外部可以扩展到 64KB MCS-51 单片机片内配有 256B 数据存储器, 主要用于存放程序 执行过程中所用到的数据和产生的结果, 如果不够用, 外部可以扩展 64KB 5. 并行 I/O 端口 MCS-51 单片机共有四个并行 I/O 端口 (P0 P1 P2 P3), 每个端口都有八个 I/O 引脚, 每一个 I/O 引脚都能独立用做输入或输出 部分引脚有第二功能 6. 串行 I/O 端口 MCS-51 单片机有一个串行通信接口, 可以用四种方式串行发送和接收数据 7. 中断系统 MCS-51 单片机共有五个中断源, 外部中断两个 内部中断三个 设有中断屏蔽寄 存器 IE 和中断优先权管理寄存器 IP, 可以方便地实现多级中断管理 8. 时钟电路 MCS-51 单片机内部有时钟电路, 但晶体振荡器和微调电容必须外接 时钟电路为 单片机产生时钟脉冲序列, 控制单片机各工作部件协调工作

18 第 2 章硬件基础 9 9. 总线总线是各个工作部件之间进行信息交流的公共通道 单片机的各组成部件都是通过总线连接并互相通信的 通常把总线按照功能分为地址总线 (Address Bus,AB) 数据总线 (Data Bus,DB) 和控制总线 (Control Bus,CB), 也称为三总线 采用总线结构有效提高了单片机应用系统构成的灵活性和维护的方便性 2.2 引脚功能 单片机的封装形式多种多样, 如双列直插式封装 (Dual In-line Package,DIP) 贴片封装 (Lead Chip Carrier,LCC) 扁平封装(Quad Flat Package,QFP) 等 但由于采用 DIP 封装的 IC 芯片有两排引脚, 通常是插入具有 DIP 结构的芯片插座上工作, 适合在印制电路板 (Printed Circuit Board,PCB) 上穿孔焊接, 且插拔操作十分方便 所以, 大部分新产品开发 试验产品 教学实验室采用 DIP 芯片 MCS-51 单片机的 DIP 封装形式及逻辑结构如图 2.2 所示 MCS-51 单片机的 DIP 封装为 40 引脚, 下面介绍各引脚的主要功能 图 2.2 单片机封装形式及逻辑结构 1. 电源和晶振 VCC(40): 接 +5V 电源正端 VSS(20): 接电源地端 XTAL1(19): 接外部石英晶体的一端 在单片机内部, 它是一个反相放大器的输入端, 这个放大器构成了片内振荡器 XTAL2(18): 接外部石英晶体的另一端 在单片机内部, 它是反相放大器的输出端

19 10 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 2. I/O 端口 P0 口 (32~39):P0 口包括 P0.0~P0.7 在不接片外存储器与不扩展 I/O 端口时, 可作为准双向 I/O 口 在接有片外存储器或扩展 I/O 端口时,P0 口分时复用 ( 不同时刻 用途不同 ) 为低 8 位地址总线和双向数据总线 P1 口 (1~8):P1 口包括 P1.0~P1.7, 可作为准双向 I/O 口使用 P2 口 (21~28):P2 口包括 P2.0~P2.7, 在不接片外存储器 不扩展 I/O 端口时, 可作为准双向 I/O 口使用 在接有片外存储器或扩展 I/O 口时,P2 口用做高 8 位地址总线 P3 口 (10~17):P3 口包括 P3.0~P3.7 除作为准双向 I/O 口使用外, 还有第二功能 3. 控制线 ALE/ PROG (30): 地址锁存有效信号输出端 / 编程脉冲输入端 ALE 在每个机器周 期内输出两个脉冲 在访问片外存储器期间, 下降沿用于锁存 P0 口输出的低 8 位地址 对于片内含有 EPROM 的机型, 在编程期间, 该引脚用做编程脉冲 PROG 的输入端, 低 电平有效 PSEN (29): 片外程序存储器读选通信号, 低电平有效 在从外部程序存储器读取 指令或常数期间有效, 在每个机器周期, 该信号两次有效, 以便通过数据总线 P0 口读取 指令或常数 RST/VPD(9): 复位 / 备用电源 该引脚为单片机的上电复位或掉电保护端 当单片 机振荡器工作时, 该引脚上出现持续两个机器周期的高电平, 就可实现复位操作, 使单片机恢复到初始状态 上电时, 考虑到振荡器有一定的起振时间, 该引脚上高电平必须持续 10ms 以上才能保证有效复位 当系统发生故障,VCC 降低到低电平规定值或掉电时, 该引脚可接备用电源 VPD(+5V), 为内部 RAM 供电, 以保证 RAM 中的数据不丢失 EA /VPP(31):EA 为片外程序存储器选用端 该引脚有效 ( 低电平 ) 时, 即 EA =0 时, 单片机读取片外程序存储器 ; 当 EA =1 时, 单片机读取片内程序存储器, 当片内程序存储器空间不够用时, 自动转向片外程序存储器 对于片内含有 EPROM 的机型, 编程时,VPP 接 21V 编程电压 2.3 输入 / 输出端口结构 MCS-51 单片机共有四个 8 位的并行双向口, 共计有 32 根输入 / 输出引脚 各端口的每一位均有锁存器 输出驱动器和输入缓冲器 但由于它们在结构上有一定的差异, 所以各端口的性质和功能也各不相同, 如表 2.1 所示

20 第 2 章硬件基础 11 表 2.1 端口性能 端口 P0 P1 P2 P3 位数 字节地址 80H 90H A0H B0H 位地址 80H~87H 90H~97H A0H~A7H B0H~B7H 灌电流 ( 引脚 ) 10mA 10mA 10mA 10mA 拉电流 ( 引脚 ) 50μA 50μA 50μA P3 第二功能 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, 外部数据存储器读选通信号输出端, 低电平有效 P0 口 P0 口是一个三态双向口, 可作为地址 / 数据分时复用口, 也可作为普通 I/O 口 其一位结构如图 2.3 所示 在图中, 锁存器起输出锁存作用, 场效应晶体管 VT1 VT2 组成输出驱动器, 以增大带负载能力 ; 三态门 1 是引脚输入缓冲器 ; 三态门 2 用于控制读 D 锁存器操作 ; 与门 3 反相器 4 及多路开关 MUX 构成了输出控制电路 图 2.3 P0 口的一位结构 P0 口的工作过程 : 当输出 地址 / 数据 时, 控制 信号被置成高电平 1, 反相器 4 与 VT1 接通 当 地址 / 数据 为 1 时,VT1 截止, 与门 3 输出高电平 1,VT2 导通, P0.x 引脚为高电平 1; 当 地址 / 数据 为 0 时,VT1 导通,VT2 截止, 与门 3 输出低电平 0,P0.x 引脚为低电平 0 当 P0 口作为 I/O 口使用时, 控制 信号被置成低电平 0,D 锁存器反相输出端与

21 12 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) VT1 接通 由于 控制 信号为低电平,VT2 截止,VT1 漏极开路输出 当 D 锁存器反相输出端输出 0 时,VT1 截止, 这个时候, 需要在 P0.x 引脚上外接上拉电阻, 使得 P0.x 引脚为高电平 1; 当 D 锁存器反相输出端输出 1 时,VT1 导通,P0.x 引脚为低电平 0 当从 P0.x 引脚输入时, 为保证电路的安全及正确输入引脚信号, 必须先向 D 锁存器输出 1, 使 VT1 截止, 即置端口为高阻态,P0.x 引脚内容才能通过输入缓冲器 1 正确输入到内部总线 例 2.1 P0 口驱动 LED 电路如图 2.4 所示,XTAL1 XTAL2 接石英晶体 X1 和振荡电容 C1 C2, 构成单片机外部振荡电路, 产生时钟脉冲 电阻 R1 和电容 C3 组成上电复位电路, 按键 K1 电阻 R1 R2 组成手动复位电路 按键 K2 闭合,LED 闪烁 ; K2 断开,LED 点亮 变阻器 RH1 既可以调节 LED 亮度, 又是 P0.0 引脚的上拉电阻 C 语言参考程序如下 : #include<reg51.h> sbit key = P3^0; sbit led = P0^0; void delay(unsigned char x) { unsigned char i; 图 2.4 P0 口驱动 LED // 预处理命令, 定义 SFR 的头文件 //key 为 P3.0 引脚 //LED 为 P0.0 引脚 // 延时函数, 无返回值,x 为无符号字符型参数 // 变量 i 为无符号字符型变量 while(x--) //x 0 循环,x 自减 1 { } for(i=0; i<123; i++){;} // 延时循环

22 第 2 章硬件基础 13 } void main(void) { while(1) { if(key==0) { led = 0; delay(130); led = 1; delay(130); } Else led = 1; } } // 主函数, 无参数, 无返回值 // 死循环 // 按下按键,LED 闪烁 //led 置 0, 熄灭 LED // 延时 // 点亮 LED // 延时 // 按键放开,LED 点亮 // 点亮 LED P1 口 P1 口的一位结构如图 2.5 所示 P1 口的输出驱动部分由场效应晶体管 VT1 与内部 上拉电阻组成, 可以直接驱动拉电流负载, 不必像 P0 口那样需要外接上拉电阻 图 2.5 P1 口一位结构 P1 口的工作过程 : 内部总线输出高电平 1 时,D 锁存器反相输出端输出低电平 0, VT1 截止,P1.x 引脚通过上拉电阻输出高电平 1; 内部总线输出低电平 0 时,D 锁存器反相输出端输出高电平 1,VT1 导通,P1.x 引脚输出低电平 0 作为输入端口使用时, 应先向 D 锁存器输出 1, 使 VT1 截止,P1.x 引脚电平通过输入缓冲器 1 输入内部总线 例 2.2 P1 口驱动蜂鸣器 电路如图 2.6 所示 HA1 为蜂鸣器, 三极管 VT 为蜂鸣器提供功率 当 P1.7 输出高电平 1 时, 晶体管导通, 蜂鸣器发声

23 14 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 图 2.6 P1 口驱动蜂鸣器 C 语言参考程序如下 : P2 口 #include<reg51.h> // 预处理命令, 定义 SFR 的头文件 sbit beep = P1^7; // 蜂鸣器连接 P1.7 引脚 void delay(unsigned char x) // 延时函数,x 为无符号字符型参数 { unsigned char i; // 变量 i 为无符号字符类型变量 while(x--) //x 0 循环,x 自减 1 { for(i=0; i<123; i++){;} // 延时循环 } } void main() // 主函数, 无参数, 无返回值 { while(1) // 死循环 { { beep = ~beep; // 蜂鸣器端口取反 delay(100); // 延时 } } } P2 口的一位结构如图 2.7 所示 从图中可以看出, 它在结构上与 P1 的区别在于多

24 第 2 章硬件基础 15 了一个多路转换开关和反相器, 它具有通用 I/O 端口和高 8 位地址总线输出两种功能 图 2.7 P2 口一位结构 P2 口的工作过程 : 当作为通用 I/O 口使用时, 控制 信号使转换开关接向 D 锁存器,D 锁存器 Q 端经反相器 3 接 VT, 其工作原理与 P1 口相同 当作为外部扩展存储器的高 8 位地址总线使用时, 控制 信号使转换开关接向 地址 线, 程序计数器 PC 的高 8 位地址 PCH, 或数据指针 DPTR 的高 8 位地址 DPH 经反相器 3 和 VT 原样呈现在 P2 口的引脚上, 输出高 8 位地址 A8~A15 信息 例 2.3 P2 口驱动共阳极数码管, 电路如图 2.8 所示 P2.0~P2.6 口接数码管的 abcdefg 段, 控制数码管显示内容, 数码管公共端接高电平 图 2.8 P2 口驱动数码管

25 16 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 在数码管上循环显示 的 C 语言参考程序如下 : #include<reg51.h> // 预处理命令, 定义 SFR 的头文件 unsigned char tab[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; // 定义数码管显示代码表 void delay(unsigned int x) // 延时函数,x 为无符号整型参数, 无返回值 { unsigned char i; // 变量 i 为无符号字符类型变量 while(x--) //x 0 循环,x 自减 1 { for(i=0; i<123; i++){;} // 延时循环 } } void main() // 主函数, 无返回值, 无参数 { unsigned char s; //s 为无符号字符型变量, 用于查表 while(1) // 死循环 { P2 = tab[s]; // 在 P2 口显示数字 delay(1000); // 延时 s++; // 变量 s 加 1 if(s==10) // 判断计数值是否为 10 { s=0; // 若 s=10,0~9 显示完毕, 清零 } } } P3 口 P3 口是一个多功能口, 其一位结构如图 2.9 所示 它的输出驱动由与非门 3 和 VT 组成 输入电路比其他端口多一个缓冲器 4 图 2.9 P3 口一位结构 P3 口工作过程 : 当作为通用 I/O 口使用时, 第二功能输出 端置 1,D 锁存器的输 出数据经过与非门 3 和 VT 传送到引脚 P3.x, 其工作状态和 P1 口类似

26 第 2 章硬件基础 17 当使用第二功能时,D 锁存器输出高电平 1, 第二功能输出 信号经过与非门 3 和 VT 传送到引脚 P3.x P3 口的第二功能如表 2.1 所示 端口输入时, 使 D 锁存器输出高电平 1, 和 第二功能输出 的高电平相与, 使 VT 截止, 外部引脚信号经读引脚缓冲器输入 若是第二功能信号输入, 则经缓冲器 4 输入 例 2.4 P3 口驱动电磁继电器, 电路如图 2.10 所示 晶体管 VT1 为继电器提供电流,VD1 为续流二极管, 在继电器断开的瞬间, 提供泄放电流通路 L 为白炽灯, 交流电源 S 为 L 提供能量 当 P3.0 为高电平 1 时,VT1 导通, 继电器闭合,L 点亮 ; 当 P3.0 为低电平 0 时,VT1 截止, 继电器断开,L 灭 C 语言参考程序如下 : 图 2.10 P3 口驱动继电器 #include<reg51.h> // 预处理命令, 定义 SFR 的头文件 sbit jidianqi = P3^0; //P3.0 引脚驱动继电器 void delay(unsigned int x) // 延时函数,x 为无符号整型参数, 无返回值 { unsigned char i; // 变量 i 为无符号字符类型 while(x--) //x 0 循环,x 自减 1 { for(i=0; i<123; i++){;} // 延时循环 } } void main() // 主函数, 无返回值, 无参数 { while(1) // 死循环 {

27 18 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) } } jidianqi = 0; delay(1500); jidianqi = 1; delay(1500); // 继电器断开, 灯灭 // 延时 // 继电器闭合, 灯亮 // 延时 2.4 存储器体系结构 MCS-51 单片机的存储器体系采用哈佛 (Harvard) 结构, 即程序存储器与数据存储器独立设置的结构, 如图 2.11 所示 这种结构对于单片机面向控制的应用特点是十分有利的 从图 2.11 中可以看出, 物理上分成四个存储器空间, 即片内程序存储器 片外程序存储器 片内数据存储器 片外数据存储器 ; 逻辑上分成三个地址空间, 即片内 片外统一编址的 64KB 程序存储器空间, 片内 256B 的数据存储器地址空间, 片外 64KB 的数据存储器空间 程序存储器 图 2.11 MCS-51 单片机存储器映像图 MCS-51 单片机的程序存储器 (Read Only Memory,ROM) 结构如图 2.11(a) 所示 物理上可分为片内程序存储器 片外程序存储器两个空间 ; 但逻辑上只有一个 64KB 程序存储器空间 即无论程序存储器从片内开始 ( EA =1), 还是从片外开始 ( EA =0), 都是一个连续的 64KB 空间 程序存储器主要用于存放程序和常数表格 由于 MCS-51 单片机采用 16 位的程序计数器 (Program Counter,PC) 和 16 位的地址总线, 因而程序存储器可扩展的地址空间为 64KB

28 第 2 章硬件基础 19 程序存储器物理上可分为片内和片外两部分, 访问时由 EA 引脚来控制 当 EA =1 时, 单片机从片内程序存储器 0000H 单元开始执行程序, 当地址范围超过片内程序存储器地址的最大值 (51 子系列为 0FFFH) 时, 将自动转到片外程序存储器执行 当 EA =0 时, 单片机将直接从片外程序存储器 0000H 单元开始执行程序 对于无片内程序存储器的 单片机, EA 引脚一定要接低电平 对于有片内程序存储器的单片机, 若 EA 接低电平, 将强制从片外程序存储器开始执行程序 当单片机读片外程序存储器时,PSEN 引脚有效, 用于控制片外程序存储器的读操作 MCS-51 单片机程序存储器中有六个具有特殊用途的地址是专门保留给系统专用的, 而且是固定不变的, 用户不能更改 这些入口地址如表 2.2 所示 表 2.2 MCS-51 单片机复位 / 中断入口地址 入口地址名称 0000H 0003H 000BH 0013H 001BH 0023H 程序计数器 PC 起始地址外部中断 0 INT0 中断入口地址定时器 / 计数器 T0 溢出中断入口地址外部中断 1 INT1 中断入口地址定时器 / 计数器 T1 溢出中断入口地址串行口接收 / 发送中断入口地址 0000H 是所有程序的起始地址, 即当单片机启动或复位时,PC 的值为 0000H 有一句话叫 一切从 0 开始, 就是这个意思 一般在 0000H 单元中存放一条跳转指令, 转移到应用程序 0003H 000BH 0013H 001BH 0023H 对应五个中断源的中断入口地址 即每一个中断源都有一个固定的中断入口地址,CPU 响应中断后, 就根据不同的中断源, 转入相应的中断入口, 从这些固定的入口处再转移到中断服务程序 通常也是在这些固定中断入口处存放一条转移指令, 跳转到相应的中断服务程序 数据存储器 MCS-51 单片机的数据存储器 (Random Access Memory,RAM) 分为片内数据存储器和片外数据存储器两部分 片内 RAM 的地址空间分布如图 2.12 所示 片内 RAM 共有 256B, 地址范围为 00H~FFH, 它又分为两大部分 : 低 128B(00H~7FH) 为真正的 RAM 区, 高 128B(80H~ FFH) 为特殊功能寄存器区 (Special Function Register, SFR) 片内 RAM 的低 128B, 按功能可分为四个区域 : 工图 2.12 片内 RAM 地址空间分布作寄存器区 位寻址区 数据缓冲区和特殊功能寄存器区

29 20 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 1. 工作寄存器区地址为 00H~1FH 的单元为工作寄存器区, 也称通用寄存器区 工作寄存器分成四组, 每组八个, 用 R0~R7 表示 每个时刻只能用一组作为当前工作寄存器组, 使用哪一组作为当前工作寄存器组, 由程序状态寄存器 (Program Status Word,PSW) 中的 PSW.4 (RS1) 和 PSW.3(RS0) 两位来选择, 其对应关系如表 2.3 所示 表 2.3 工作寄存器组 RS1 RS0 工作寄存器组 ( 地址 ) 组 (00H~07H) 组 (08H~0FH) 组 (10H~17H) 组 (18H~1FH) 通过软件设置 RS0 和 RS1 两位的状态, 可以改变当前工作寄存器组 未被选用的寄存器可用做缓冲器 单片机启动时, 或复位后, 默认 0 组为当前工作寄存器组 2. 位寻址区 20H~2FH 单元是位寻址区, 如表 2.4 所示 这 16 个单元 ( 共计 16 8 位 =128 位 ) 的每一位都有一个位地址 字节地址范围为 20H~2FH, 位地址范围为 00H~7FH 位寻 址区的每一位都可当做一个软件触发器使用 通常可以把各种程序状态标志 位控制变 量保存于位寻址区内 字节地址 表 2.4 位寻址区字节地址与位地址的关系 位地址 D7 D6 D5 D4 D3 D2 D1 D0 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 71H 70H 2DH 6FH 6EH 6DH 6CH 6BH 6AH 69H 68H 2CH 67H 66H 65H 64H 63H 62H 61H 60H 2BH 5FH 5EH 5DH 5CH 5BH 5AH 59H 58H 2AH 57H 56H 55H 54H 53H 52H 51H 50H 29H 4FH 4EH 4DH 4CH 4BH 4AH 49H 48H 28H 47H 46H 45H 44H 43H 42H 41H 40H 27H 3FH 3EH 3DH 3CH 3BH 3AH 39H 38H 26H 37H 36H 35H 34H 33H 32H 31H 30H 25H 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 24H 27H 26H 25H 24H 23H 22H 21H 20H 23H 1FH 1EH 1DH 1CH 1BH 1AH 19H 18H 22H 17H 16H 15H 14H 13H 12H 11H 10H 21H 0FH 0EH 0DH 0CH 0BH 0AH 09H 08H 20H 07H 06H 05H 04H 03H 02H 01H 00H

30 第 2 章硬件基础 数据缓冲区字节地址为 30H~7FH 的区域是数据缓冲区, 即用户 RAM 区, 共 80 个字节单元, 通常用做临时数据存储 堆栈通常也设置在这个区域 由于工作寄存器区 位寻址区 数据缓冲区统一编址, 使用同样的指令访问 这三个区域内的存储单元既有自己独特的功能, 又可统一调度使用 因此, 任何没有被使用的单元都可作为用户 RAM 单元使用, 以便充分发挥片内 RAM 的作用 应当注意, 通常也将堆栈设置在用户 RAM 区 堆栈是一块按 先进后出 或 后进先出 原则组织的存储空间 并且有特殊的数据传输指令 (PUSH POP), 还有一个专门为堆栈操作服务的堆栈指针 (Stack Pointer,SP) 开机或复位时,SP 的初始值为 07H, 这样就使堆栈从 08H 单元开始操作 而 08H~ 1FH 区域是 MCS-51 单片机的第二 三 四工作寄存器区, 经常要被使用, 这就会造成数据的混乱 为此, 用户在初始化程序中要根据片内 RAM 各功能区的使用情况给 SP 赋一个合适的初值, 以规定堆栈的起始位置 实际上, 内部 RAM 里没有专门的区域指定给堆栈, 通常需要人为地把堆栈放在内部 RAM 的合适区域里 如在程序开始时, 用一条 MOV SP,#5FH 指令, 把堆栈设置在从内部 RAM 单元 60H 开始的区域 4. 特殊功能寄存器区 MCS-51 单片机片内 RAM 的 80H~FFH 中分布了 21 个特殊功能寄存器 SFR, 包括四个端口 中断控制 定时器 / 计数器控制 串行控制 SP DPTR PSW 等, 如表 2.5 所示 表 2.5 SFR 字节地址和位地址 寄存器符号 MSB 位地址 / 位定义 LSB 字节地址 *B F7 F6 F5 F4 F3 F2 F1 F0 F0H *ACC E7 E6 E5 E4 E3 E2 E1 E0 E0H *PSW *IP *P3 *IE *P2 SBUF *SCON D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P BF BE BD BC BB BA B9 B8 PS PT1 PX1 PT0 PX0 B7 B6 B5 B4 B3 B2 B1 B0 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 AF AE AD AC AB AA A9 A8 EA ES ET1 EX1 ET0 EX0 A7 A6 A5 A4 A3 A2 A1 A0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 9F 9E 9D 9C 9B 9A SM0 SM1 SM2 REN TB8 RB8 TI RI D0H B8H B0H A8H A0H 99H 98H

31 22 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 寄存器符号 MSB 位地址 / 位定义 LSB 字节地址 *P1 TH1 TH0 TL1 TL P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 TMOD GATE C/T M1 M0 GATE C/T M1 M0 89H *TCON 8F 8E 8D 8C 8B 8A TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 PCON SMOD GF1 GF0 PD IDL 87H DPH DPL SP *P P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 要访问 SFR 单元, 要用直接寻址方式来访问 有些还可以位寻址 ( 字节地址末位为 0 或 8 的单元 ) 还有一些是保留单元, 用户不能对这些单元进行读 / 写操作, 若对其进行 访问, 将得到一个不确定的随机数, 没有意义 复位时, 多数 SFR 都有固定的初值 如 SP=07H,P0~P3=FFH,SBUF 为随机数, 其他均为 00H (1) 程序计数器 PC 程序计数器 (Program Counter,PC) 是一个 16 位计数器, 用来存放下一条要执行 的指令地址, 它控制着程序的运行轨迹 当单片机开始执行程序时,PC=0000H, 每取出 一个指令字节,PC 的内容就会自动加 1, 以指向下一指令字节的地址, 使指令能顺序执 行 当程序遇到转移指令 子程序调用指令时,PC 按转移地址转到指定的存储器地址 PC 物理上是独立的, 它不属于 SFR, 也没有地址 但因其地位重要, 故在此一并介绍 (2) 累加器 A 累加器 A(Accumulator) 为 8 位寄存器, 是算术运算和数据传送中使用频率最高的 寄存器 常用于存放被操作数和运算结果 (3) 寄存器 B 寄存器 B 主要用在乘 除运算中 做乘法时, 用于存放乘数 积的高 8 位 ; 做除法 时, 用于存放除数 余数 也可作为通用寄存器使用 (4) 程序状态字 程序状态字 (Program Status Word,PSW) 是一个 8 位的标志寄存器, 它保存指令执 行结果的特征信息, 以供程序查询和判别使用 它的格式及各位的意义如下 : 续表 90H 8DH 8CH 8BH 8AH 88H 83H 82H 81H 80H MSB LSB CY AC F0 RS1 RS0 OV P

32 第 2 章硬件基础 23 进位 CY(PSW.7): 当最高位有进位 ( 加法 ) 或有借位 ( 减法 ) 时,CY=1, 否则 CY=0, 也可由软件置位或清零 辅助进位 ( 或称半进位 ) AC(PSW.6): 当两个 8 位数运算时, 若 D3 位向 D4 位有进位 ( 或借位 ) 时,AC=1, 否则 AC=0 在 BCD 码运算时, 要用 AC 标志进行十进制调整 用户自定义 F0(PSW.5): 用户可根据自己的需要对 F0 赋予一定的含义 工作寄存器组选择位 RS1 RS0(PSW.4 PSW.3): 可用软件置位或清零, 用于指定当前工作寄存器组使用四组中的某一组 溢出 OV(PSW.2): 做加 减法时 OV= C7 C6 其中 C7 为 D7 位向更高位的进位 ( 借位 ),C6 为 D6 位向 D7 位的进位 ( 借位 ) OV=1 反映运算结果超出了累加器可以表示的符号数数值范围 乘法 : 积 >255 时,OV =1, 否则 OV =0 除法 :B 中除数为 0,OV=1, 否则 OV=0 奇偶 P(PSW.0): 若累加器 A 中 1 的个数为奇数, 则 P=1, 否则 P=0 该标志可用于形成奇偶校验标志 (5) 数据指针数据指针 (Data Pointer,DPTR) 是一个 16 位的专用寄存器, 其高字节寄存器用 DPH 表示, 低字节寄存器用 DPL 表示 它既可作为一个 16 位寄存器 DPTR 来用, 也可作为两个独立的 8 位寄存器 DPH 和 DPL 来用 DPTR 主要用来存放 16 位地址, 可通过它访问 64KB 外部数据存储器或外部程序存储器空间 (6) 堆栈指针堆栈是用户在单片机内部 RAM 中开辟的 遵循 先进后出 原则的一个存储区 堆栈操作时, 用堆栈指针 (Stack Pointer,SP) 来间接指示堆栈中数据存取的位置 堆栈指针 SP 的初始值称为栈底, 在堆栈操作过程中,SP 始终指向堆栈的栈顶有效单元 将数据压入堆栈操作 (PUSH) 时首先将 SP 的当前值自动加 1, 使 SP 指向新的存储单元, 然后再把数据压入由 SP 指示的最新单元中 ; 数据出栈操作 (POP) 时, 首先将当前栈顶的内容 (SP 指示的存储单元 ) 弹出到相应位置, 然后把 SP 的值自动减 1, 指向下一个有效单元 其他特殊功能寄存器将在后续章节陆续介绍 MCS-51 单片机的外部数据存储器是一块最大可扩展到 64KB 的连续空间, 地址范围为 0000H~FFFFH 单片机通过 MOVX 指令, 用间接寻址方式, 访问外部数据存储器 R0 R1 和 DPTR 都可以作为间接寄存器, 用 R0 R1 间接寻址的范围为 256B, 用 DPTR 则可寻址的范围为 64KB 外部 RAM 和扩展的 I/O 接口统一编址, 即所有扩展的 I/O 口占用的地址都是 64KB 外部 RAM 地址的一部分

33 24 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 2.5 时钟电路 单片机工作时, 是在统一的时钟脉冲控制下有序进行的, 这个脉冲是由时钟电路产 生的 时钟电路由振荡器和分频器组成, 如图 2.13 所示 振荡器产生基本的振荡信号, 然后进行分频, 得到相应的时钟 振荡电路有两种方式 : 内部振荡和外部振荡 1. 内部振荡方式 图 2.13 时钟电路 MCS-51 单片机片内有一个用于构成振荡器的高增益反相放大器, 引脚 XTAL1 是此 放大器的输入端,XTAL2 是输出端 把放大器与晶体振荡器 振荡电容连接, 就构成了 自激振荡器, 其输出就是时钟脉冲, 其电路如图 2.14 所示 石英晶体作为感性元件, 与 电容构成振荡回路 2. 外部振荡方式 外部振荡方式是把外部已有的时钟信号引入单片机内部 对于 HMOS 型单片机, 其 电路如图 2.15 所示 对于 CHMOS 型单片机,XTAL1 接片外振荡脉冲输入端,XTAL2 悬空 图 2.14 内部振荡电路 图 2.15 外部振荡电路

34 第 2 章硬件基础 指令时序 单片机执行指令是在时钟脉冲控制下一步一步进行的, 由于不同指令的功能各不相 同, 指令执行所需的时间也不一样 描述 MCS-51 单片机执行指令快慢程度的时间单位 有四个, 从小到大依次是振荡周期 状态周期 机器周期和指令周期, 如图 2.16 所示 图 2.16 指令时序振荡周期 : 晶体振荡器输出的振荡信号周期 状态周期 : 振荡信号经二分频后形成的时钟脉冲信号周期, 用 S 表示 一个状态周期包含两个振荡周期, 分别称为节拍 P1 和节拍 P2 通常 CPU 在 P1 期间完成算术逻辑运算, 在 P2 期间进行数据传输 机器周期 :MCS-51 单片机的一个机器周期包含六个状态周期, 用 S1,S2,,S6 表示 ; 共 12 个振荡周期, 或 12 个节拍, 依次可表示为 S1P1,S1P2,S2P1,S2P2,, S6P1,S6P2 单片机的一条指令包含若干个基本功能, 一个机器周期完成指令的一个基本功能 指令周期 : 执行一条指令所需要的时间为一个指令周期 显然, 指令不同, 对应的指令周期也不一样 一个指令周期通常含有 1~4 个机器周期 MCS-51 系列单片机除了乘法 除法指令是四个机器周期外, 其余都是单周期指令或双周期指令 另外, 在每一个机器周期内, 地址锁存信号 ALE 出现两次有效信号, 即两次高电平信号 第一次出现在 S1P2 和 S2P1 期间, 第二次出现在 S4P2 和 S5P1 期间 此信号既可用于锁存 P0 口提供的低 8 位地址, 也可作为其他工作部件的时钟信号 任何一条指令都是在时钟脉冲的控制下, 从程序存储器中取出指令, 在 CPU 中分析执行, 一步一步完成指定功能的, 有关时序的详细内容此处不再赘述, 感兴趣的读者可以参阅相关资料 2.7 复位电路 复位是单片机的初始化操作, 它的主要功能是把单片机恢复到初始状态 表 2.6 给出了 MCS-51 单片机的复位状态 除单片机在开机时要复位外, 在运行过程中, 当由于程序出错或操作错误使系统死机时, 也可以按复位键重新启动, 使机器进入复位状态

35 26 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 表 2.6 复位后特殊功能寄存器的状态 特殊功能寄存器 复位状态 特殊功能寄存器 复位状态 A 00H TMOD 00H B 00H TCON 00H PSW 00H TH0 00H SP 07H TL0 00H DPL 00H TH1 00H DPH 00H TL1 00H P0~P3 FFH SBUF B IP 0000B SCON 00H IE B PCON 0 B 要使 MCS-51 单片机有效复位, 则需要在它的 RST 引脚上产生并保持 24 个振荡脉 冲周期 ( 两个机器周期 ) 以上的高电平, 即在 RST 引脚上输入脉宽超过两个机器周期的 正脉冲复位信号 上电复位时, 考虑到振荡器有一定的起振时间,RST 引脚上高电平必 须持续 10ms 以上才能保证有效复位 产生复位信号的电路叫做复位电路 MCS-51 单片 机通常采用上电自动复位和按键手动复位两种方式, 如图 2.17 所示 图 2.17 复位电路 图 2.17(a) 所示是上电自动复位电路, 利用电容器充电来实现复位 当加电时, 电 容上的电压不能突变,RST 引脚为高电平, 开始复位 ; 电容 C 不断充电, 电阻 R 上的压 降逐步下降, 当电容 C 充电到一定程度, 电阻上的电位下降到相当于低电平时, 复位结 束 可见复位的时间与充电的时间常数有关, 充电时间常数越大, 复位时间越长 增大电容或电阻都可以增加复位时间 图 2.17(b) 所示是按键手动复位电路 它的上电复位功能与图 2.17(a) 相同, 但它还可以通过按键实现复位 当按下按键后, 通过两个电阻分压, 使 RST 端产生高电平 按键按下的时间决定了复位的时间

36 第 2 章硬件基础 低功耗模式 MCS-51 单片机有两种低功耗模式 : 待机 ( 休眠 ) 模式和掉电保护模式, 它们是由 电源控制寄存器 PCON(97H) 中的 PD IDL 两位来控制的, 如图 2.18 所示 图 2.18 低功耗模式 PCON 控制寄存器的格式如下 : SMOD GF0 GF1 PD IDL SMOD: 波特率倍增位, 在串行通信时使用 若使用定时器 T1 产生波特率且该位置为 1 时, 则在串行口工作于方式 时波特率加倍 GF1: 通用 GF0: 通用 PD: 掉电方式位 PD=1 时, 进入掉电方式 IDL: 待机方式位 IDL=1 时, 进入待机方式 执行一条使 PCON.0(IDL) 置位的指令便可使单片机进入待机工作状态, 单片机进入待机模式后,CPU 时钟被切断, 但中断系统 定时器和串行口的时钟信号继续保持, 所有 SFR 保持进入待机工作方式前的状态 退出待机模式有两种方法 : 第一种是中断退出 由于在待机方式下, 中断系统还在工作, 所以任何中断的响应都可以使 IDL 位由硬件清零, 从而退出待机工作方式, 进入中断服务程序 第二种是硬件复位退出 复位时, 各个专用寄存器都恢复默认状态, 电源控制寄存器 PCON 也不例外, 复位使 IDL 位清零, 退出待机工作方式 执行一条使 PCON.1(PD) 置位的指令便可使单片机进入掉电状态, 此时振荡器停止工作, 芯片的所有功能均停止, 但片内 RAM 和 SFR 的内容保持不变 掉电电压可以降到 V CC =2V 退出掉电方式的唯一方法是硬件复位

37 28 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 思考题 1. MCS-51 单片机 DIP 封装有 40 条引脚, 说明各引脚的功能 2. MCS-51 单片机的位寻址区的字节地址范围是多少? 位地址范围是多少? 3. MCS-51 单片机有几组工作寄存器? 怎样设置当前工作寄存器组? 4. MCS-51 单片机的片内用户 RAM 区的字节地址范围是多少? 主要用途是什么? 5. MCS-51 单片机 P0 P1 P2 P3 端口的字节地址是多少? 练习题 1. 阅读附录 C 附录 D 的内容, 完成例 2.1~ 例 2.4 的 Proteus 仿真 2. 按照自己的理解, 对例 2.1~ 例 2.4 进行组合或功能扩展, 并用 Proteus 仿真

38 第 3 章指令系统 所谓指令, 是指规定单片机完成一个特定功能的命令, 每一条指令都明确规定了从哪里取操作数, 进行什么操作, 运算结果存放到哪里等操作 单片机可以执行的全部指令的集合叫做指令系统 指令系统是反映单片机性能的重要因素, 它的格式与功能直接影响单片机应用程序的体系结构和单片机的适用范围 不同种类的单片机, 指令的种类和数目也不相同 MCS-51 单片机指令系统有 111 条指令, 按指令所占的字节数, 可分为单字节指令 (49 条 ) 双字节指令(46 条 ) 和三字节指令 (16 条 ) 按指令的执行时间, 可分为单周期指令 (65 条 ) 双周期指令(44 条 ) 和四周期指令 (2 条 ) 按指令的功能, 可分为数据传送类指令 (29 条 ) 算术运算类指令(24 条 ) 逻辑运算类指令 (24 条 ) 控制转移类指令(17 条 ) 和位操作类指令 (17 条 ) 3.1 指令格式 为了清楚地表达指令的含义和功能, 所有单片机的指令都有固定的格式 MCS-51 单片机指令格式如下 : [ 标号 :] 操作码助记符 [ 目的操作数 ][, 源操作数 ] [; 注释 ] 标号是一条指令的代号, 是可选字段, 与操作码之间用 : 隔开 ; 设置标号的目的是为了方便调用或转移 标号的选择应遵从下列规定 1) 标号由 1~8 个字母或数字组成, 也可以使用一个下画线符号 _ 2) 第一个字符必须是字母 3) 指令助记符或系统中保留使用的字符串不能作为标号 4) 标号后面需要有一个冒号 5) 一条语句可以有标号, 也可以没有标号, 取决于程序中其他语句是否需要访问这条语句 操作码规定指令的功能, 是一条指令的必备字段, 如果没有操作码, 就不能成为指令 操作码与操作数用 空格 隔开 操作数是指令操作的对象 分为目的操作数和源操作数两类, 它们之间用, 分开 操作数是可选字段 一条指令可以有 个操作数 注释是对指令功能的说明, 以 ; 开始 为了清晰 准确地表述指令的格式及功能, 下面对 MCS-51 单片机指令系统中常用的符号作一些规定

39 30 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 1)A 累加器, 用于存放被操作数 运算结果 (A) 表示 A 中的内容 2)B 专用寄存器, 主要用于乘法和除法运算 (B) 表示 B 中的内容 3)C 进位或借位标志, 或布尔处理机中的累加位 4)DPTR 数据指针, 用于存储 16 位地址信息 5)Rn(n=0~7) 当前寄存器组中的 8 个工作寄存器 R0~R7 中的一个 (Rn) 表示 (Rn) 中的内容 6)Ri(i=0 或 1) 当前寄存器 R0 或 R1, 用于间接寻址 7)#data 8 位立即数, 即出现在指令中 可以直接参与操作的数据 8)#data16 16 位立即数 9)rel 以补码形式表示的 8 位相对偏移量, 范围为 -128~127, 主要用在相对寻 址指令中 10)addr16 和 addr11 分别表示 16 位直接地址和 11 位直接地址, 即存放操作数 的存储器地址 11)direct 单片机片内 RAM 地址或特殊功能寄存器 SFR 的地址 对 SFR 而言, 既可使用它的物理地址, 也可直接使用它的名称 12)bit 表示单片机片内 RAM 和 SFR 中的某些具有位寻址功能的位地址 13)@ 间接寻址中工作寄存器的前缀符号 14)(X) X 单元中的内容 15)((X)) 以 X 单元的内容为地址的存储器单元内容, 即 (X) 作为地址, 该地址 单元的内容用 ((X)) 表示 16)(Ri) Ri 中的内容为存储单元地址 17)((Ri)) Ri 中的内容为地址的存储单元的内容 18)$ 当前指令的首地址 19)/ 取反操作, 但不影响该位的原值 20) 操作流程 21) 若用十六进制表示地址或数据, 且第一个符号是字母时, 则需在其前面加 0, 如 0B4H 3.2 寻址方式 所谓寻址方式, 就是指寻找操作数的方法 寻址方式是否灵活方便是衡量指令系统 好坏的重要指标 MCS-51 单片机共有立即寻址 寄存器寻址 寄存器间接寻址 直接 寻址 变址寻址 相对寻址和位寻址等七种寻找方式 1. 立即寻址 立即寻址方式是指操作数包括在指令中, 紧跟在操作码的后面, 作为指令的一部分 与操作码一起存放在程序存储器中 在指令执行过程中, 可以立即得到并执行, 不需要

40 第 3 章指令系统 31 经过别的途径去寻找, 故称为立即寻址 在一个数的前面冠以 # 作为前缀, 就表示该 操作数为立即数 例如 : MOV A, #52H ; A 52H, 该指令的机器码为 74H 52H, 功能是把数据 52H 送到 A 中 MOV DPTR, #5678H ; DPTR 5678H, 该指令的机器码为 90H 56H 78H, 功能是把数据 5678H 送到 DPTR 中 指令的机器码是指将这条指令翻译成机器语言代码的十六进制表达形式 上述指令的执行过程如图 3.1 所示 2. 寄存器寻址 图 3.1 立即寻址 指令指出寄存器的名字, 寄存器的内容为操作数, 此即寄存器寻址 例如 : MOV A,R0 ; A R0 该指令的功能是把寄存器 R0 中的内容传送到累加器 A 中, 如 R0 中的内容为 30H, 则执行该指令后 A 的内容也为 30H,R0 中的内容不变 可用于寄存器寻址的寄存器有如下几种 1) 四组工作寄存器 R0~R7 共 32 个 但每次只能使用当前寄存器组中的 8 个 2) 部分特殊功能寄存器 :A B SP DPTR 等 3. 寄存器间接寻址指令指定寄存器的名称, 寄存器的内容为操作数的存储器地址, 操作数在存储器中, 此即寄存器间接寻址 符号 不同的存储空间要用不同的寄存器间接寻址, 规定如下 : 片内低 128B 范围内间接寻址用 Ri, 片外 64KB 间接寻址用 DPTR, 片外 256B 但 P2 必须有固定的值 例如 : MOV DPTR,#3456H MOVX A,@DPTR ; DPTR 3456H ; A ((DPTR)) 把 DPTR 寄存器的内容作为地址, 从这个地址指示的存储单元中取出内容传送给 A,

41 32 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 假设 (3456H)=99H, 则指令运行后 A 的内容为 99H 注意 : 堆栈操作 (PUSH,POP) 为隐含的 SP 间接寻址 4. 直接寻址直接寻址是指指令直接给出操作数的存储器地址, 操作数在存储器中 例如 : MOV A,52H ; A (52H) 指令中 52H 为操作数的存储器地址 该指令的功能是把片内 RAM 地址为 52H 的存 储器单元的内容送到 A 中 该指令的机器码为 E5H 52H 直接寻址的指令执行过程如图 3.2 所示 图 3.2 直接寻址 直接寻址可访问片内 RAM 的低 128 个单元 (00H~7FH), 同时也是访问特殊功能寄存器 SFR 的唯一方法 要访问 SFR, 可在指令中直接使用 SFR 的名字, 或使用 SFR 寄存器的地址 如 MOV A,80H 与 MOV A,P0 是等效的, 因为 P0 口的地址为 80H 5. 变址寻址 变址寻址是以数据指针 DPTR 或程序计数器 PC 作为基址寄存器, 以累加器 A 作为变址寄存器, 并以两者的内容相加形成的 16 位地址作为操作数的有效地址 变址寻址有以下三个特点 1) 指令指明基地址寄存器为数据指针 DPTR 或程序计数器 PC,DPTR 或 PC 中应预 先存放有操作数的基地址 2) 指令指明累加器 A 为变址寄存器 累加器 A 中应预先存放有操作数存放地址相 对基地址的偏移量, 该偏移量应是一个 00H~0FFH 范围内的无符号数 3) 在执行变址寻址指令时, 单片机先把基地址和偏移地址相加, 以形成操作数的有 效地址 MCS-51 单片机共有三条变址指令 : MOVC MOVC ; A ((A+PC)) ; A ((A+DPTR)) ; PC (A+DPTR) 前两条指令是在程序存储器中查表取操作数 ; 第三条指令实现程序的转移 例如 : MOV A, #22H MOV DPTR, #63A0H MOVC ; A 22H ; DPTR 63A0H ; A ((A+DPTR))

42 第 3 章指令系统 33 指令执行过程如图 3.3 所示 图 3.3 变址寻址 6. 相对寻址相对寻址是以程序计数器 PC 的当前值作为基地址, 与指令中给出的相对偏移量 rel 相加, 把所得之和作为程序的转移地址 在使用相对寻址时要注意以下两点 1) 当前 PC 值是指相对转移指令的存储地址加上该指令的字节数 如 JZ rel 是一条累加器 A 为零就转移的双字节指令 若该指令的存储器首地址为 2050H, 则执行该指令时 PC 的当前值应为 2052H, 即当前 PC 值是当前指令全部取出后的 PC 值 2) 偏移量 rel 是一个有符号的单字节数, 以补码形式表示, 其取值范围是 -128~ +127(00H~FFH) 负数表示从当前地址向地址小的方向转移; 正数表示从当前地址向地址大的方向转移 所以, 相对转移指令满足条件后, 转移的目标地址为目标地址 = 当前 PC 值 + rel= 指令存储器首地址 + 指令字节数 +rel 例如 : SJMP 08H ;PC PC+2+08H 这是一条相对转移指令, 设指令 SJMP( 操作码为 80H) 的首地址 =2000H, 则 PC+2=2002H 因此程序转向 (PC)+2+rel=2000H+2+08H=200AH 单元 指令执行过程如 图 3.4 所示 图 3.4 相对寻址 7. 位寻址 所谓位寻址是指指令中直接给出位操作数的位地址, 操作数在位寻址空间 可以对 片内 RAM 中的 (20H~2FH)128 位 ( 位地址 :00H~7FH) 和特殊功能寄存器 SFR 中

43 34 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 的一些寄存器 ( 字节地址可以被 8 整除 ) 中的位进行寻址 位地址的表示方式有以下四种形式 (1) 直接位地址例如 : MOV C, 0D5H ; 将 PSW 的 D5( 位地址为 0D5H) 的状态送进位 (2) 字节地址加位序号 例如 : MOV C, 0D0H.5 ; 将 PSW 中的 D5 位的状态送进位 (3) 特殊功能寄存器符号加位序号 例如 : MOV C, PSW.5 ; 将 PSW 中的 D5 位 5 的状态送进位 (4) 位名称 例如 : MOV C, F0 ; 将 PSW 中的 D5 位 5( 位名称为 F0) 的状态送进位 为了方便比较和记忆, 表 3.1 列出了寻址方式与存储空间的关系, 表 3.2 列出了存储空间与寻址方式之间的关系 表 3.1 寻址方式与存储空间 序号寻址方式利用的变量存储空间 1 立即数 #data 程序存储器 2 寄存器 R0~R7 A B DPTR 工作寄存器和部分 SFR @SP 片内 RAM @DPTR 片外 RAM 或 I/O 端口 4 直接 direct 片内 RAM 低 128B 和 SFR 程序存储器 6 相对 PC+ 偏移量程序存储器 7 位 bit 片内位寻址区和部分 SFR 表 3.2 存储空间与寻址方式的关系 存储空间 关系 内部 00H~1FH 工作寄存器 内部 20H~2FH 位空间 内部 30H~7FH 用户 RAM 寄存器 直接 间接 位 直接 间接 直接 间接 内部 80H~FFH 特殊功能寄存器 SFR 直接 位 ( 部分 ) 外部 RAM 程序存储器 间接 变址 相对

44 第 3 章指令系统 数据传送类指令 MCS-51 单片机数据传送类指令有 29 条, 是指令系统中使用最频繁的一类指令, 几乎所有的应用程序都要用到这类指令 数据传送类指令的主要功能是把源操作数传送到目标地址 指令执行后, 源操作数保持不变, 目的操作数被源操作数替代 交换指令实现源操作数和目的操作数的交换 数据传送类指令用到的助记符有 :MOV,MOVX,MOVC,XCH,XCHD,PUSH, POP,SWAP 格式 :MOV [ 目的操作数 ],[ 源操作数 ] 功能 : 目的操作数地址 源操作数 源操作数可以是 :A Rn #data 目的操作数可以是 :A Rn 数据传送指令一般不影响标志, 但堆栈操作可能会修改程序状态字 PSW 另外, 如果目的操作数为 A, 也将会影响奇偶标志 P 1. 以累加器 A 为目的操作数的传送指令以累加器 A 为目的操作数的传送指令有四条, 见表 3.3 表 3.3 以累加器 A 为目的操作数的传送指令 ( 四条 ) 指令 功能 MOV A,direct A (direct) 直接地址单元中的内容送到累加器 A MOV A,#data A #data 立即数送到累加器 A MOV A,Rn A (Rn) Rn 中的内容送到累加器 A MOV A,@Ri A ((Ri)) Ri 中的内容作为存储器地址, 该地址单元中的内容送到累加器 A 中 例如, 设外部 RAM(2023H)=0FH, 执行以下程序段 : MOV DPTR,#2023H MOVX A,@DPTR MOV 30H,A MOV A,#00H ; DPTR 2023H ; A 0FH ; 30H 0FH ; A 00H ; 2023H 00H 程序段执行后,DPTR 的内容为 2023H,30H 单元的内容为 0FH,A 中的内容为 00H, 2023H 单元的内容为 00H 若采用 R0 和 R1 间接寻址, 必须把高 8 位地址先送到 P2 口, 上述程序段将改为 : MOV P2,#20H MOV R0,#23H ; P2 20H ; R0 23H

45 36 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) MOVX A,@R0 MOV 30H,A MOV A,00H ; A 0FH ; 30H 0FH ; A 00H ; 2023H 00H 2. 以寄存器 Rn 为目的操作数的传送指令 以寄存器 Rn 为目的操作数的传送指令有三条, 见表 3.4 表 3.4 以寄存器 Rn 为目的操作数的传送指令 ( 三条 ) 指令 功能 MOV Rn,direct Rn (direct) 直接地址单元中的内容送到寄存器 Rn 中 MOV Rn,#data Rn #data 立即数送到寄存器 Rn 中 MOV Rn,A Rn (A) 累加器 A 中的内容送到寄存器 Rn 中 注意 : 没有 MOV Rn,Rn; MOV Rn,@Ri; 指令 例如, 设内部 RAM(30H)=40H,(40H)=10H,(10H)=00H,P1=0CAH, 分析以下程 序段执行后, 各单元 寄存器 P2 口的内容 MOV R0,#30H ; R0 30H MOV A,@R0 ; A 40H MOV R1,A ; R1 40H MOV B,@R1 ; B 10H ; 40H 0CAH MOV P2,P1 ; P2 0CAH MOV 10H,#20H ; 10H 20H 执行上述指令后,R0=30H;R1=A=40H;B=10H;(40H)=P1=P2=0CAH;(10H)=20H 3. 以直接地址为目的操作数的传送指令 以直接地址为目的操作数的传送指令有五条, 见表 3.5 指令功能 表 3.5 以直接地址为目的操作数的传送指令 ( 五条 ) MOV direct,direct direct (direct) 直接地址单元中的内容送到直接地址单元 MOV direct,#data direct #data 立即数送到直接地址单元 MOV direct,a direct (A) A 的内容送到直接地址单元 MOV direct,rn direct (Rn) Rn 的内容送到直接地址单元 MOV direct,@ri direct (Ri) Ri 中的内容指定的存储单元中的数据送到直接地址单元

46 第 3 章指令系统 37 例如 : MOV 30H, A MOV 50H, R0 ; 累加器 A 中的内容送到地址为 30H 的存储器单元中 ; R0 中的内容送到地址为 50H 的存储器单元中 4. 以间接地址为目的操作数的传送指令 以间接地址为目的操作数的传送指令有三条, 见表 3.6 表 3.6 以间接地址为目的操作数的传送指令 ( 三条 ) 指令 功能 (Ri) (direct) (Ri) #data (Ri) (A) 直接地址单元中的内容送到以 Ri 中的内容为地址的 RAM 单元中立即数送到以 Ri 中的内容为地址的 RAM 单元 A 中的内容送到以 Ri 中的内容为地址的 RAM 单元 例如 : MOV R0, #30H A ; R0 30H ; A 的内容送到以 R0 的内容为地址的存储器单元 ; 立即数送到以 R0 的内容为地址的存储器单元 5. 查表指令 查表指令有两条, 见表 3.7 表 3.7 查表指令 ( 两条 ) 指令 功能 MOVC A,@A+DPTR A ((A+DPTR)) DPTR 的内容加上 A 的内容作为存储器地址, 将该存储单元中的内容送到累加器 A 中 MOVC A,@A+PC PC (PC)+1 A ((A+PC)) PC 的内容加 1, 再加上 A 的内容作为存储单元地址, 将该存储单元中的内容送到 A 中 这两条指令是对存放于程序存储器中的数据表格进行查表传送 例如, 编一个查表程序将内部 RAM40H 单元内的数 (0~9) 的平方存入内部 RAM50H 单元 先作一个 0~9 的平方表, 存入 TAB 中, 然后用查表指令实现上述功能 MOV A,40H MOV DPTR,#TAB MOVC ; 40H 单元中的数送 A ; 平方表首地址送 DPTR ; 查表

47 38 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) MOV 50H,A TAB:DB 0,1,4,9,,81 ; 查表得到的平方值存入 50H ; 定义字节数据表格 6. 累加器 A 与片外数据存储器的传送指令 累加器 A 与片外数据存储器的传送指令有四条, 见表 3.8 表 3.8 累加器 A 与片外数据存储器的传送指令 ( 四条 ) 指令 功能 (DPTR) (A) MOVX A,@DPTR A ((DPTR)) A 中的内容送到数据指针指向的片外 RAM 单元中数据指针指向的片外 RAM 单元中的内容送到 A 中 MOVX A,@Ri A ((Ri)) Ri 指向的片外 RAM 单元中的内容送到 A 中 (Ri) (A) A 中的内容送到 Ri 指向的片外 RAM 单元中 例如 : MOV R0, #30H ; R0 30H A ; A 中的内容送以 R0 的内容为地址的存储器单元 MOV DPTR, #3344H ; DPTR 3344H DPTR,A ; A 中的内容送以 DPTR 的内容为地址的存储器单元 7. 堆栈操作类指令 堆栈操作类指令有两条, 见表 3.9 指令 PUSH direct POP direct 功能 SP (SP)+1, (SP) (direct) direct (SP), SP (SP)-1 表 3.9 堆栈操作类指令 ( 两条 ) 堆栈指针内容加 1, 将直接地址单元中的数据送到堆栈指针 SP 间接寻址的单元中 SP 间接寻址单元的数据送到直接地址单元中, 堆栈指针 SP 减 1 堆栈操作有进栈和出栈, 即压入和弹出, 两种操作, 常用于保存或恢复现场 进栈指令用于保存片内 RAM 单元或特殊功能寄存器 SFR 的内容 ; 出栈指令用于恢复片内 RAM 单元或特殊功能寄存器 SFR 的内容 需要指出的是, 单片机开机或复位后,SP 的默认值为 07H, 但一般都需要重新赋值 另外, 累加器与堆栈操作时, 在堆栈指令中只能用 ACC, 不能用 A, 因为, 这时属于直接寻址 例如, 在进入中断服务程序时, 常把程序状态寄存器 PSW 累加器 A 数据指针 DPTR 进栈保护 设 SP 的初值为 5FH, 则程序段如下 : MOV SP,#5FH ; 设置堆栈指针初值

48 第 3 章指令系统 39 PUSH PSW PUSH ACC PUSH DPL PUSH DPH ; 将程序状态寄存器内容压入堆栈 ; 将累加器内容压入堆栈 ; 将数据指针低字节内容压入堆栈 ; 将数据指针高字节内容压入堆栈 执行后,SP 的内容修改为 63H, 而 60H 61H 62H 63H 单元中依次存入 PSW A DPL DPH 的内容 在中断服务程序结束之前, 用下列程序段恢复数据 : POP DPH ; 栈顶内容弹出到数据指针高字节 POP DPL ; 栈顶内容弹出到数据指针低字节 POP A ; 栈顶内容弹出到累加器 POP PSW ; 栈顶内容弹出到程序状态寄存器 指令执行之后,SP 的内容修改为 5FH, 而 63H 62H 61H 60H 单元的内容依次 弹出到 DPH DPL A PSW 中 堆栈操作时, 进栈 出栈的次序一定要符合 先进后 出 原则, 且 SP 始终指向栈顶有效单元 8. 交换指令 交换指令有五条, 见表 3.10 表 3.10 交换指令 ( 五条 ) 指令 功能 XCH A,Rn (A) (Rn) A 与 Rn 的内容互换 XCH A,@Ri (A) (Ri) A 与 Ri 所指的存储单元中的内容互换 XCH A,direct (A) (direct) A 与直接地址单元中的内容互换 XCHD A,@Ri (A3-0) ((Ri))3-0 A 的低半字节与 Ri 间接寻址的存储单元 的低半字节内容互换 SWAP A (A3-0) (A7-4) A 中的高低半字节互换 例如, 设 R0=30H,A=65H,(30H)=8FH, 执行指令 : XCH A,@R0 ; R0=30H, A=8FH,(30H)=65H 位数据传送指令 16 位数据传送指令有一条, 见表 3.11 表 位数据传送指令 ( 一条 ) 指令 功能 MOV DPTR,#data16 DPH #datah,dpl #datal 16 位数的高 8 位送到 DPH, 低 8 位送到 DPL 这是唯一一条 16 位数据传送指令 例如, 将片内 RAM30H 单元与 40H 单元中的内容互换

49 40 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 方法 1( 直接地址传送法 ): MOV 31H,30H MOV 30H,40H MOV 40H,31H ; 30H 单元的内容送到 31H 单元中 ; 40H 单元的内容送到 30H 单元中 ; 31H 单元的内容送到 40H 单元中 方法 2( 间接地址传送法 ): MOV R0,#40H MOV R1,#30H MOV A,@R0 MOV B,@R1 ; 立即数 40H 送到 R0 中 ; 立即数 30H 送到 R1 中 ; 以 R0 的内容为地址的存储单元的内容送到累加器 A ; 以 R1 的内容为地址的存储单元的内容送到寄存器 B ; 累加器 A 的内容送到以 R1 的内容为地址的存储单元 ; 寄存器 B 的内容送到以 R0 的内容为地址的存储单元 方法 3( 字节交换传送法 ): MOV A,30H XCH A,40H MOV 30H,A ; 30H 单元的内容送累加器 A ; 累加器 A 的内容和 40H 单元的内容交换 ; 累加器 A 的内容送到 30H 单元 方法 4( 堆栈传送法 ): PUSH 30H PUSH 40H POP 30H POP 40H 3.4 算术运算类指令 ; 30H 单元的内容压入堆栈 ; 40H 单元的内容压入堆栈 ; 栈顶内容弹出到 30H 单元 ; 栈顶内容弹出到 40H 单元 MCS-51 单片机共有 24 条算术运算类指令, 主要完成加 减 乘 除 加 1 减 1 BCD 调整等操作 虽然 MCS-51 单片机的算术逻辑单元 (Arithmetic Logic Unit,ALU) 仅能对 8 位无符号整数进行运算, 但利用进位标志 C, 就可进行多字节无符号整数的运 算 ; 利用溢出标志 OV, 即可对带符号数进行补码运算 1. 加法指令 加法指令有四条, 见表 3.12 指令 功能 表 3.12 加法指令 ( 四条 ) ADD A,#data A (A)+#data A 中的内容与立即数 #data 相加, 结果存在 A 中 ADD A,direct A (A)+(direct) A 中的内容与直接地址单元中的内容相加, 结果存在 A 中 ADD A,Rn A (A)+(Rn) A 中的内容与 Rn 中的内容相加, 结果存在 A 中 ADD A,@Ri A (A)+(Ri) A 中的内容与以 Ri 的内容为地址的存储单元的内容相加, 结果存在 A 中

50 第 3 章指令系统 41 在这类指令中, 除加 1 减 1 指令外, 一般都会对 PSW 有影响 各的形成方 法是 : 如果最高位 D7 有进位, 则进位标志 CY=1, 否则 CY=0; 如果位 D3 有进位, 则 半进位标志 AC=1, 否则 AC=0; 如果位 D6 有进位 (C6=1) 而位 D7 没有进位 (C7=0), 或者位 D7 有进位 (C7=1) 而位 D6 没有进位 (C6=0), 则溢出标志 OV=1, 否则 OV=0, 即溢出标志 OV=C7 C6 若累加器 A 中 1 的个数为奇数, 则 P=1, 否则 P=0 例如, 设 A=85H,R1=30H,(30H)=0AFH, 执行指令 : ADD 执行结果为 :A=34H,CY=1,AC=1,OV=1,P=1 在进行带符号数的加法运算时, 溢出标志 OV=1 表示有溢出发生, 即和大于 +127 或小于 -128 在进行无符号数加法运算时,CY=1, 表示有进位 2. 带进位加法指令 带进位加法指令有四条, 见表 3.13 表 3.13 带进位加法指令 ( 四条 ) 指令 功能 ADDC A,direct A (A)+(direct)+CY ADDC A,#data A (A)+ #data +CY ADDC A,Rn A (A)+(Rn) +CY ADDC A,@Ri A (A)+(Ri)+CY A 中的内容与直接地址单元的内容连同进位位相加, 结果存在 A 中 A 中的内容与立即数连同进位位相加, 结果存在 A 中 A 中的内容与 Rn 中的内容连同进位位相加, 结果存在 A 中 A 中的内容与 Ri 的内容为地址的存储单元的内容连同进位位相加, 结果存在 A 中 3. 带借位减法指令 带借位减法指令有四条, 见表 3.14 表 3.14 带借位减法指令 ( 四条 ) 指令 功能 SUBB A,direct A (A)-(direct)-CY SUBB A,#data A (A)- #data -CY A 中的内容减去直接地址单元中的内容再减借位位, 结果存在 A 中 A 中的内容减立即数, 再减借位位, 结果存在 A 中

51 42 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 续表 指令 功能 SUBB A,Rn A (A)-(Rn)-CY SUBB A,@Ri A (A)-((Ri))-CY A 中的内容减 Rn 中的内容, 再减借位位, 结果存在 A 中 A 中的内容减 Ri 的内容为地址的存储单元的内容, 再减借位位, 结果存在 A 中 在进行减法运算时,CY=1 表示有借位,CY=0 无借位 在带符号数相减时,OV=1 表明从一个正数减去一个负数结果为负数, 或者从一个负数中减去一个正数结果为正数的错误情况 如果是无符号数的运算,OV 标志无意义 在进行减法运算前, 如果不知道借位的状态, 则应先对 CY 进行清零操作 MCS-51 单片机没有不带借位的减法指令, 如果要进行不带借位的减法, 只需把 CY 先清零即可 在加减操作时, 进位只对无符号数有意义, 溢出只对符号数有意义 例如, 设 A=0C9H,R3=54H,CY=1, 执行指令 : SUBB A, R 结果 :A=74H,CY=0,AC=0,OV=1,P=0 4. 乘法指令 乘法指令有一条, 见表 3.15 指令 功能 表 3.15 乘法指令 ( 一条 ) MUL AB BA (A) (B) A 中的内容与 B 中的内容相乘, 乘积低 8 位存在 A 中 高 8 位存在 B 中 在乘法运算时, 如果 OV=1, 说明乘积大于 0FFH, 即 B 中内容不为 0, 否则 OV=0, 但进位 CY 总是等于 0 例如, 若 A=80H=128,B=02H, 执行指令 : MUL AB 结果 :B=01H,A=00H,OV=1,CY=0

52 第 3 章指令系统 除法指令 除法指令有一条, 见表 3.16 表 3.16 除法指令 ( 一条 ) 指令 功能 DIV AB A (A) (B) 的商 B (A) (B) 的余数 A 中的内容除以 B 中的内容, 商存 A 中, 余数 存 B 中 除法运算总是使进位 CY 等于 0 如果 OV=1, 表明寄存器 B 中的内容为 00H, 那么执行结果为不确定值, 表示除法有溢出 例如, 设 A=80H,B=02H, 执行指令 : DIV AB 结果 :A=40H,B=00H,CY=0,OV=0 6. 加 1 指令加 1 指令有五条, 见表 3.17 表 3.17 加 1 指令 ( 五条 ) 指令 功能 INC A A (A)+1 A 中的内容加 1, 结果存在 A 中 INC direct direct (direct) +1 (Ri) (Ri)+1 直接地址单元中的内容加 1, 结果送回原地址单元 Ri 的内容为地址的存储单元中的内容加 1, 结果送回原存储单元中 INC Rn Rn (Rn)+1 Rn 的内容加 1, 结果送回 Rn 中 INC DPTR DPTR (DPTR)+1 DPTR 的内容加 1, 结果送回 DPTR 中 在 INC direct 指令中, 如果直接地址是 I/O 口, 其功能是先读入 I/O 口锁存器的内容, 然后在 CPU 内部进行加 1 操作, 再将结果输出到 I/O 口中, 这叫做 读 修改 写 操作 加 1 指令不影响标志 如果原寄存器的内容为 FFH, 执行加 1 后, 结果就会是 00H, 但不会影响进位标志 7. 减 1 指令减 1 指令有四条, 见表 3.18

53 44 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 表 3.18 减 1 指令 ( 四条 ) 指令 功能 DEC A A (A)-1 A 中的内容减 1, 结果送回 A 中 DEC direct direct (direct)-1 (Ri) (Ri)-1 直接地址单元中的内容减 1, 结果送回直接地址单元中 Ri 的内容为地址的存储单元中的内容减 1, 结果送回原存储单元中 DEC Rn Rn (Rn)-1 Rn 中的内容减 1, 结果送回 Rn 中 减 1 操作也不影响标志 若原寄存器的内容为 00H, 减 1 后为 FFH, 运算结果不影 响任何 当直接地址是 I/O 口时, 也实现 读 修改 写 操作 8. 十进制调整指令 十进制调整指令有一条, 见表 3.19 指令 表 3.19 十进制调整指令 ( 一条 ) DA A 对累加器 A 中的 BCD 码运算结果进行调整 在进行 BCD 码运算时, 这条指令总是跟在 ADD 或 ADDC 指令之后, 其功能是对执 行加法运算后存于累加器 A 中的 BCD 运算结果进行调整 这条指令只能用于加法运算 调整 执行该指令时, 机器会进行判断, 若 A 中的低 4 位大于 9 或辅助 AC 为 1, 则低 4 位做加 6 操作 ; 同样, 若 A 中的高 4 位大于 9 或进位标志 CY 为 1, 则高 4 位加 6 例如, 设有两个 BCD 数 36 与 45 相加, 结果应为 BCD 码 81, 程序如下 : MOV A,#36H ADD A,#45H DA A ; 立即数 36H 送累加器 ; 累加器的内容与立即数 45H 相加, 和放在累加器中 ; 对累加器中的内容进行十进制调整 加法指令执行后得结果 7BH; 第三条指令对累加器 A 中的内容进行十进制调整, 低 4 位 ( 为 0BH) 大于 9, 因此要加 6, 最后得到调整的 BCD 码为 81

54 第 3 章指令系统 逻辑运算类指令 MCS-51 单片机有 24 条逻辑运算指令, 有与 或 异或 求反 左右移位 清 0 等逻辑操作, 有直接 寄存器和寄存器间址等寻址方式 这类指令一般不影响程序状态字 (PSW) 标志 1. 清零指令清零指令有一条, 见表 3.20 表 3.20 清零指令 ( 一条 ) 指令 功能 CLR A A 0 A 中的内容清 0 2. 求反指令 求反指令有一条, 见表 3.21 表 3.21 求反指令 ( 一条 ) 指令 功能 CPL A A A A 中的内容按位取反后送回到 A 3. 循环移位指令 循环移位指令有四条, 见表 3.22 表 3.22 循环移位指令 ( 四条 ) 指令 RL A A 中的内容左循环一位 RR A A 中的内容右循环一位 RLC A A 中的内容连同进位位左循环一位 RRC A A 中的内容连同进位位右循环一位 RL A ; 累加器 A 中的内容循环左移一位, 最高位循环到最低位

55 46 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) RR A ; 累加器 A 中的内容循环右移一位, 最低位循环到最高位 RLC A ; 累加器 A 中的内容连同进位位 CY 循环左移一位 RRC A ; 累加器 A 中的内容连同进位位 CY 循环右移一位 例如 : MOV A, #04H ; A=04 RL A ; A=08 RR A ; A=04 逻辑左移一位相当于乘 2, 逻辑右移一位相当于除 2 4. 逻辑与操作指令 逻辑与操作指令有六条, 见表 3.23 指令 功能 表 3.23 逻辑与操作指令 ( 六条 ) ANL A,direct A (A) (direct) ANL A,#data A (A) #data ANL A,Rn A (A) (Rn) ANL A,@Ri A (A) ((Ri)) A 中的内容和直接地址单元中的内容 执行与逻辑操作, 结果存在 A 中 A 中的内容和立即数执行与操作, 结 果存在 A 中 A 中的内容和 Rn 中的内容执行与逻 辑操作, 结果存在 A 中 A 中的内容和 Ri 中的内容为地址的存 储单元的内容执行与操作, 结果存在 A 中 ANL direct,a direct (direct) (A) ANL direct,#data direct (direct) #data 直接地址单元中的内容和 A 中的内容执行与逻辑操作, 结果存在直接地址单元中直接地址单元中的内容和立即数执行与逻辑操作, 结果存在直接地址单元中

56 第 3 章指令系统 逻辑或操作指令 逻辑或操作指令有六条, 见表 3.24 表 3.24 逻辑或操作指令 ( 六条 ) 指令 功能 ORL A,direct A (A) (direct) A 中的内容和直接地址单元中的内容执行 逻辑或操作, 结果存在 A 中 ORL A,#data A (A) #data A 中的内容和立即数执行逻辑或操作, 结果 存在 A 中 ORL A,Rn A (A) Rn A 中的内容和 Rn 中的内容执行逻辑或操作, 结果存在 A 中 ORL A,@Ri A (A) (Ri) A 中的内容和 Ri 的内容为地址的存储单元 中的内容执行逻辑或操作, 结果存在 A 中 ORL direct,a direct (direct) (A) ORL direct,#data direct (direct) #data 直接地址单元中的内容和 A 中的内容执行逻辑或操作, 结果存在直接地址单元中直接地址单元中的内容和立即数执行逻辑或操作, 结果存在直接地址单元中 6. 逻辑异或操作指令 逻辑异或操作指令有六条, 见表 3.25 表 3.25 逻辑异或操作指令 ( 六条 ) 指令 功能 XRL A,direct A (A) (direct) XRL A,@Ri A (A) (Ri) XRL A,#data A (A) #data XRL A,Rn A (A) Rn XRL direct,a direct (direct) (A) XRL direct,#data direct (direct) #data A 的内容和直接地址单元中的内容执行逻辑异或操作, 结果存在 A 中 A 中的内容和 Ri 的内容为地址的存储单元中的内容执行逻辑异或操作, 结果存在 A 中 A 中的内容和立即数执行逻辑异或操作, 结果存在 A 中 A 中的内容和 Rn 中的内容执行逻辑异或操作, 结果存在 A 中直接地址单元中的内容和 A 中的内容执行逻辑异或操作, 结果存在直接地址单元中直接地址单元中的内容和立即数执行逻辑异或操作, 结果存在直接地址单元中

57 48 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 例如, 设有图 3.5 所示的组合逻辑电路, 试编写程序模拟其功能 设输入信号放在 X Y Z 单元中, 输出信号放在 F 单元中 图 3.5 组合逻辑电路 参考程序段如下 : MOV A,X ; A (X) ANL A,Y ; A (A) (Y) MOV R1,A ; R1 (A) MOV A,Y ; A (Y) XRL A,Z ; A (Y) (Z) CPL A ; A A ORL A,R1 ; A (A) (R1) MOV F,A ; F (A) 3.6 控制转移类指令 MCS-51 单片机有 17 条控制转移指令, 用于控制程序的走向 转移的范围有 64KB 2KB 和 256B 三个层次 这些指令的执行一般都不会影响 1. 无条件转移指令无条件转移指令有四条, 见表 3.26 指令 功能 LJMP addr16 PC (PC)+3 长转移 PC addr16 AJMP addr11 PC (PC)+2, 绝对转移 PC10-0 addr11 表 3.26 无条件转移指令 ( 四条 ) 给 PC 赋予 16 位转移地址 给 PC 赋予 11 位地址,PC15-11 不变 SJMP rel 短转移 间接转移 PC (PC)+2+rel 当前 PC 值加上偏移量赋予 PC PC (A)+(DPTR) A 的值加上 DPTR 的值, 赋予 PC 这组指令执行后, 程序就会无条件转移到指令所指向的目标地址 长转移指令访问

58 第 3 章指令系统 49 的程序存储器空间为 16 位地址, 可以实现 64KB 内的转移 绝对转移指令访问的程序存储器空间为 11 位地址, 可以实现 2KB 范围内的转移 短转移的范围为 PC 当前值加 8 位偏移量 (+127~ 128) 间接转移的范围为 64KB 2. 条件转移指令条件转移指令有八条, 见表 3.27 表 3.27 条件转移指令 ( 八条 ) 指令 功能 JZ rel 若 A=0, PC (PC)+2+rel 若 A 中的内容为 0, 则转移到偏移量所指向的地址, 否则程序顺序执行 JNZ rel 若 A 0, PC (PC)+2+rel 若 A 中的内容不为 0, 则转移到偏移量所指向的地址, 否则程序顺序执行 CJNE A,direct,rel 若 A (direct), PC (PC)+3+rel 若 A 中的内容不等于直接地址单元的内容, 则转移到偏移量所指向的地址, 否则程序顺序执行 CJNE A,#data,rel 若 A #data, PC (PC)+3+rel 若 A 中的内容不等于立即数, 则转移到偏移量所指向的地址, 否则程序顺序执行 CJNE Rn,#data,rel 若 (Rn) #data, PC (PC)+3+rel 若 Rn 中的内容不等于立即数, 则转移到偏移量所指向的地址, 否则程序顺序执行 若 ((Ri)) #data, PC (PC)+3+rel 若 Ri 中的内容为地址的存储单元中的内容不等于立即数, 则转移到偏移量所指向的地址, 否则程序顺序 执行 DJNZ Rn,rel Rn (Rn)-1, 若 Rn 0, PC (PC)+2+rel 若 Rn 的内容减 1 后不等于 0, 则转移到偏移量所指向的地址, 否则程序顺序执行 direct (direct)-1, 若直接地址单元中的内容减 1 后不 DJNZ direct,rel 若 (direct) 0, 等于 0, 则转移到偏移量所指向的地 PC (PC)+3+ rel 址, 否则程序顺序执行 比较转移指令 CJNE 是 MCS-51 指令系统中仅有的四条三个操作数的指令 在程序设计中非常有用 指令执行时, 第一操作数与第二操作数进行比较, 若两数相等, 不转移,CY=0; 若第一操作数大于第二操作数, 转移,CY=0; 若第一操作数小于第二操作数, 转移,CY=1 因此, 通过检查 CY 的状态, 还可判断两数的大小 例如, 编写程序将外部数据存储器中首地址为 DATA1 的数据块传送到首地址为 DATA2 的内部数据存储器中, 当遇到传送的数据为 0 时停止

59 50 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 外部 RAM 向内部 RAM 的数据传送一定要借助于累加器 A, 利用累加器判零转移指 令正好可以判别是否要继续传送或者终止 参考程序段如下 : MOV DPTR,#DATA1 ; 外部数据块首地址 MOV R1,#DATA2 ; 内部数据块首地址 LOOP:MOVX A,@DPTR ; 外部数据送给 A HERE:JZ HERE ; 为 0 则终止 ; 不为 0, 送到内部 RAM INC DPTR ; 修改外部地址指针 INC R1 ; 修改内部地址指针 SJMP LOOP ; 继续循环 3. 子程序调用指令 子程序调用指令有四条, 见表 3.28 表 3.28 子程序调用指令 ( 四条 ) 指令 功能 LCALL addr16 PC (PC)+3,SP (SP)+1,(SP) PC7-0, SP (SP)+1, (SP) PC15-8,PC addr16 PC (PC)+2,SP (SP)+1,(SP) ACALL addr11 PC7-0, SP (SP)+1, (SP) PC15-8,PC10-0 addr11 RET PC15-8 ((SP)), SP (SP)-1, PC7-0 ((SP)),SP (SP)-1 RETI PC15-8 ((SP)), SP (SP)-1, PC7-0 ((SP)),SP (SP)-1 4. 空操作指令指令格式 :NOP 长调用指令, 可在 64KB 空间调用子程序 先将 PC 当前值压入堆栈保护, 然后将 16 位转移地址送 PC 绝对调用指令, 可在 2KB 空间调用 子程序 先将 PC 当前值压入堆栈保 护, 然后将 11 位转移地址送 PC,PC 中高 5 位不变 子程序返回指令 从堆栈中弹出两 个字节的内容送 PC 中断返回指令, 从堆栈中弹出两个 字节的内容送 PC, 清除中断优先权 这条指令除了使 PC 加 1, 消耗一个机器周期的时间外, 不执行任何操作 常用于短时间的延时, 以匹配时序 3.7 位操作类指令 标志 MCS-51 单片机有一个逻辑处理机, 它以进位作为累加器, 以内部 RAM 位寻

60 第 3 章指令系统 51 址区的 128 位及部分 SFR 为操作对象 MCS-51 单片机有 17 条位操作指令 1. 位传送指令位传送指令有两条, 见表 3.29 表 3.29 位传送指令 ( 两条 ) 指令 功能 MOV C,bit CY (bit) 位操作数送 CY MOV bit,c bit (CY) CY 的内容送某位 2. 置位复位指令 置位复位指令有四条, 见表 3.30 表 3.30 置位复位指令 ( 四条 ) 指令 功能 CLR C CY 0 清 CY CLR bit bit 0 清位 SETB C CY 1 置位 CY SETB bit bit 1 置位 3. 位运算指令 位运算指令有六条, 见表 3.31 表 3.31 位运算指令 ( 六条 ) 指令 功能 ANL C,bit CY (CY) (bit) CY 和指定位的与, 结果存入 CY ANL C,/bit CY (CY) (bit) 指定位求反后和 CY 与, 结果存入 CY ORL C,bit CY (CY) (bit) CY 和指定位相或, 结果存入 CY ORL C,/bit CY (CY) (bit) 指定位求反后和 CY 或, 结果存入 CY CPL C CY (CY) CY 求反后结果送 CY CPL bit bit (bit) 指定位求反后结果送指定位 4. 位控制转移指令 位控制转移指令有五条, 见表 3.32

61 52 单片机原理与应用 基于实例驱动和 Proteus 仿真 ( 第二版 ) 表 3.32 位控制转移指令 ( 五条 ) 指令 JC rel 若 CY=1, 则转移,PC (PC)+2+rel, 否则程序顺序执行,PC (PC)+2 JNC rel 若 CY=0, 则转移,PC (PC)+2+rel, 否则程序顺序执行,PC (PC)+2 JB bit,rel 若 (bit)=1 则转移,PC (PC)+3+rel, 否则程序顺序执行,PC (PC)+3 JNB bit,rel 若 (bit)=0 则转移,PC (PC)+3+rel, 否则程序顺序执行,PC (PC)+3 JBC bit,rel 若 (bit)=1 则转移,PC (PC)+3+rel, 并清零该位, 即 bit=0; 否则程序 顺序执行,PC (PC)+3 思考题 练习题 例如, 编写程序完成 Z=X Y, 其中,X Y Z 表示位地址 异或运算可表示为 Z=X /Y+/X Y, 参考程序段如下 : MOV C,X ANL C,/Y MOV Z,C MOV C,Y ANL C,/X ORL C,Z MOV Z,C ; CY (X) ; CY (CY) /(Y) ; Z (CY) ; CY (Y) ; CY (CY) X ; CY (CY) (Z) ; Z (CY) 1. MCS-51 单片机指令一般由哪几个部分组成? 各部分的功能是什么? 2. MCS-51 单片机指令系统中有几条指令? 3. MCS-51 单片机有哪些寻址方式? 4. MCS-51 单片机指令中,Rn 表示什么? 5. 指令 JBC CY,LOOP 的功能是什么? 是几个字节 几个机器周期的指令? 1. 以下程序段执行后,A=,(30H)= MOV 30H,#0AH MOV A,#0D6H MOV R0,#30H MOV R2,#5EH ANL A,R2 ORL A,@R0 SWAP A CPL A

CH559指令周期.doc

CH559指令周期.doc CH55X 汇编指令周期表 CH55X 汇编指令概述 : 型号包含 : a. 指令单周期型号 :CH557 CH558 CH559; b. 指令 4 周期型号 :CH551 CH552 CH553 CH554; c. 非跳转指令的指令周期数与指令字节数相同 ; d. 跳转指令含 MOVC/RET/CALL 通常比字节数多若干个周期 ; e.movc 指令多 4 或 5 个周期 ( 下条指令地址为奇数时多

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

W77E58中文手册

W77E58中文手册 W77E58 77E58 8051 8051 8051 77E58 8051 1.5 3 COMS 32K EEPROM 1K SRAM 1 8 2 40M 4 3 8051 4 8051 5 4 8 I/O 6 4 I/O 44 PLCC QFP 7 16 / 8 12 9 10 11 1K 12 13 16 DPTR 14 15 DIP40 W77E58 25/40 PLCC44 W77E58P

More information

Microsoft Word - 專題封面.doc

Microsoft Word - 專題封面.doc 逢 甲 大 學 資 訊 工 程 學 系 專 題 研 究 報 告 8051 小 遊 戲 -21 點 指 導 教 授 : 陳 德 生 學 生 : 許 博 益 中 華 民 國 九 十 六 年 六 月 I 目 錄 第 一 章 緒 論 1 1-1 研 究 背 景 1 1-2 研 究 動 機 2 1-3 研 究 目 的 3 1-3-1 21 點 源 起 3 1-3-2 21 點 規 則 3 第 二 章 微 電

More information

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32-- HD61202 C-7 1 HD61202 HD61202 8 HD61203 HD61202, HY-12864 HY-19264 HD61202 HD61202 HD61203 HD61202 1 6464=4096 RAMRAM LCD 2HD61202 64 3HD61202 68 68 4HD61202 1/32--1/64 HD61202 HD61202 2 CS1,CS2,CS3 CS1

More information

*_* IAP In Applications Program, *_* ROM RAM A/D D/A KELL C51 2 0531-86213622 Micro Controller Unit( ) INTEL MCS-48 MCS-51 MCS-96 51 MCS-51 8 MCS-96 16 INTEL / 51 87 LPC W78L DS87 GSM97 ATMEL 89C51

More information

Microsoft Word - 新1-3.doc

Microsoft Word - 新1-3.doc 模块三 80C51 的指令系统和程序设计 (1) 了解 80C51 指令系统的构成 (2) 掌握 80C51 单片机的寻址方式 (3) 掌握 80C51 单片机的各种指令及其应用 (4) 掌握汇编语言程序设计方法, 为以后实际控制系统的程序设计奠定基础 3.1 80C51 指令系统概述 对于任何一台计算机, 如果只有硬件 ( 称为裸机 ), 而没有软件 ( 即程序 ) 的支持是不能工作的 单片机也不例外,

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

Microsoft Word - em78 sub program.doc

Microsoft Word - em78 sub program.doc 一 二进制数转换为 ASCⅡ 码 将一个字节的二进制数转换为两位 16 进制数的 ASCⅡ 码 main: mov a,@0x9f ; 二进制数为 0x9f mov 0x30,a ; 二进制数存入 0x30 mov a,@0x02 mov 0x10,a ;0x10 中存放转换次数 mov a,@0x31 mov 0x04,a ;0x04 中为转换后数据存放地址 mov a,0x30 B1: ; 取

More information

untitled

untitled EDM16080-01 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3

More information

FJXBQ

FJXBQ 高等医学院校选用教材 ( 供成人教育中医药专业 中西医结合专业使用 ) 方剂学 闫润红 主编 2 0 0 1 内容简介本书是供成人教育中医药专业 中西医结合专业使用的教材 全书分总论和各论两部分, 总论部分对中医方剂的基本理论, 如治法 君臣佐使 剂型 剂量等及其现代研究进展进行了介绍 各论部分对常用方剂的主治病证 配伍意义 临床应用 加减变化规律及现代研究概况等内容, 按分类进行了系统阐述 在保证方剂学学科知识结构完整性的前提下,

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

AN-8203 FCM8531 用户手册

AN-8203 FCM8531 用户手册 www.fairchildsemi.com AN-8203 FCM8531 用户手册 所有指令兼容二进制代码, 与业界标准的 8051 微控制器执行的功能相同 表 1. 指令集和寻址模式 符号 说明 Rn 当前选择的寄存器区中的寄存器 R0 ~ R7 直接 内部 DATA RAM 位置 (0~127) 或特殊功能寄存器 (SFR) @Ri 间接内部 (0~255) 或外部 RAM 位置由寄存器 R0

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS KS0108 KS0108 8 KS0107 KS0108 KS0108 128*32128*64 192*64 KS0108 KS0108 KS0107 KS0108 1 6464=4096 RAMRAM LCD 2KS0108 64 3KS0108 68 68 4KS0108 1/48--1/64 KS0108 CS1,CS2,CS3 CS1 CS2 CS3 E E KS0108 E R/W R/W=1

More information

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

untitled

untitled EDM12832-08 : 25-1 : 116600 : (0411)7612956 7632020 7631122 : (0411)7612958 Model No.: Editor: LCD 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

M8Rxxx 指令集说明 Version 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知

M8Rxxx 指令集说明 Version 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知 M8Rxxx 指令集说明 Version 1.04 2014 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知 修正记录 版本 日期 描述 Ver1.02 2014-5-15 补全指令说明 Ver1.03 2014-10-8 勘误 Ver1.04

More information

1. 介绍 义隆 8 位单片机指令介绍 Application Notes 义隆 8 位单片机指令介绍 EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令

1. 介绍 义隆 8 位单片机指令介绍 Application Notes 义隆 8 位单片机指令介绍 EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令 1. 介绍 Application Notes EM78/EM88 系列是基于 RISC 的精简指令微控制器, 每条指令是 13 位 15 位, 除 LCALL LJMP MOV R2,A ADD R2,A 改变 PC 指针的指令是 2 个指令 * 周期, 其余为单指令周期 ( 部分第一代芯片 JMP CALL RET RETL RETI JBS JBC JZ JZA DJZ DJZA 指令为 2

More information

專題最終版.doc

專題最終版.doc The Principle and Application of the Electric Combination Lock The Principle and Application of the Electric Combination Lock Abstract Recently, there are more and more burglaries in the society. It's

More information

Microsoft PowerPoint - 第一章(07版).PPT

Microsoft PowerPoint - 第一章(07版).PPT 单片机原理及综合设计 嵌入式微控制器的开发入门 微机及单片机原理原理实验室综合楼 419 室 大连理工大学电信学院陈育斌 1 ( 理论课 ) 上课时间表 (10~17 周 ) 周次 星期 一 二 三 四 五 六 日 1 至 6 时间地点 大五节综 309 (18:00) 大连理工大学电信学院陈育斌 2 课程总体安排 总学时 : 理论课 + 实验课 =36 学时 其中 : 理论课 :24: 学时 ;

More information

微處理機期末專題

微處理機期末專題 微 處 理 機 期 末 專 題 自 動 鋼 琴 組 員 :b92611004 羅 鈞 瑋 b92611008 吳 妍 儂 b92611038 吳 韋 靜 b92611042 林 佳 穎 一 簡 介 本 組 的 主 題 是 自 動 鋼 琴 在 播 放 音 樂 的 同 時, 鋼 琴 會 自 動 按 下 琴 鍵, 被 按 下 的 琴 鍵 所 對 應 到 的 音 階, 就 是 正 在 撥 放 的 樂 曲 的

More information

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书 做事细节全书 赵彦锋著 企业管理出版社 图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, 2005.11 ISBN 7-80197-338-0 Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B026-49 中国版本图书馆 CIP 数据核字 (2005) 第 136676 号 书 名 : 做事细节全书 作 者 : 赵彦锋 责任编辑 : 吴太刚

More information

CA24064B LED LED LED EL EL CCFL EL CCF /

CA24064B LED LED LED EL EL CCFL EL CCF / CA24064B 0 50-20 +70-30 +85 LED LED LED EL EL CCFL EL CCF 39 2 6 0755-81995643/27890716 0 13713911853 0755-27890716 1 : VDD-VSS 0 6 V LCD VDD-V0 Ta=25 0 28.0 V VI 0 VDD V : VDD-VSS --- 4.75 5.0 5.25 V

More information

Microsoft Word - 第1章 MCS-51单片机基础.docx

Microsoft Word - 第1章 MCS-51单片机基础.docx 51 单片机应用开发实战手册 作者 : 华清远见 第 1 章 MCS-51 单片机基础 本章目标 单片机作为嵌入式微控制器在工业测控系统 智能仪器和家用电器中得到广泛 应用 虽然单片机的品种很多, 但 MCS-51 系列单片机仍不失为单片机中的主流机 型 本章主要介绍 MCS-51 单片机的基础知识和学习要点, 以目前应用最为广泛的 AT89SXX 系列单片机为例, 介绍单片机的历史发展 应用领域

More information

另外,AT89S52 可降至 0Hz 静态逻辑操作, 支持 2 种软件可选择节电模式 空闲模式下,CPU 停止工作, 允许 RAM 定时器/ 计数器 串口 中断继续工作 掉电保护方式下,RAM 内容被保存, 振荡器被冻结, 单片机一切工作停止, 直到下一个中断或硬件复位为止 8 位微控制器 8K 字

另外,AT89S52 可降至 0Hz 静态逻辑操作, 支持 2 种软件可选择节电模式 空闲模式下,CPU 停止工作, 允许 RAM 定时器/ 计数器 串口 中断继续工作 掉电保护方式下,RAM 内容被保存, 振荡器被冻结, 单片机一切工作停止, 直到下一个中断或硬件复位为止 8 位微控制器 8K 字 AT89C52 中文资料 AT89C52 的中文资料 AT89C52 是美国 Atmel 公司生产的低电压 高性能 CMOS 8 位单片机, 片内含 8KB 的可反复檫写的程序存储器和 12B 的随机存取数据存储器 (RAM), 器件采用 Atmel 公司的高密度 非易失性存储技术生产, 兼容标准 MCS- 51 指令系统, 片内配置通用 8 位中央处理器 (CPU) 和 Flash 存储单元, 功能强大的

More information

微處理機

微處理機 3-1 指令格式 標記運算碼運算元註解 標記 1. 標記前不可有空白, 否則會被視為運算碼 2. 標記代表一個 16 位元的記憶體實際位址 3. 標記名稱最多 32 個字元 ( 視組譯器不同而有所不同 ) 4. 標記有大小寫之分 5. 標記可有可無 運算碼 1. 運算碼與標記名稱間, 至少必須空一格, 如果沒有標記名稱, 則運算碼前最少要空一格, 否則會被視為標記 2. 運算碼大小寫相同 3. 可以是

More information

Microsoft PowerPoint - chap5.ppt

Microsoft PowerPoint - chap5.ppt 邏輯運算指令的動作 0 1 0 1 0 0 1 1 OR 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 (a) OR 運算 0 1 0 1 0 0 1 1 XOR 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 0 (c) XOR 運算 希望設定為 1 的位元 罩網標的位元組 新標的位元組 不改變的位元 希望取補數的位元 罩網標的位元組 新標的位元組 不改變的位元 1

More information

Microsoft Word - P3.doc

Microsoft Word - P3.doc ;P3.3 警报器 ;* ( 程序转载请著明出处, 未声明可适应本站腾龙 /isp 开发套件 / 倚天版开发套件 * ;* E-mail:sxj1974@163.com (51c51 test web) 51 测试网, 自学单片机的网站 * ;* Create by : 石学军 www.51c51.com www.8951.com 更多例程请登陆网站 * org 00h ajmp dlv org 0030h

More information

Microsoft Word - Ö¸Á.doc

Microsoft Word - Ö¸Á.doc 指令集说明 注 由于资源大小问题 其中以下几款 MCU 只有 62 条指令 其余均为 63 条指令 HT48CA0/HT48RA0A 无 RETI 指令 HT48R05A-1 无 TABRDL 指令 指令寻址方式有下面 5 种 立即寻址 此一寻址法是将立即的常数值紧跟在运算码 (opcode) 后 例如 MOV A, 33H ADD A, 33H 直接寻址 直接寻址的情況只允许在存储器之间作数据传送

More information

12232A LED LED LED EL EL CCFL EL CCF

12232A LED LED LED EL EL CCFL EL CCF 12232A 0 50-20 +70-30 +85 LED LED LED EL EL CCFL EL CCF 122 x 32 1/32Duty 1/5Bias 6:00 STN( ), EL LED EL/100VAC 400HZ LED/4.2VDC 1 / VDD-VSS 0 6.5 V Ta=25 LCD VDD-V0 0 12.0 V V1 0 VDD V VDD-VSS - 4.75

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

Microsoft Word - 第1章 MCS-51单片机概述.docx

Microsoft Word - 第1章 MCS-51单片机概述.docx 单片机 C 语言入门 ( 修订版 ) 作者 : 华清远见 第 1 章 MCS-51 单片机概述 本章目标 单片微型计算机简称单片机, 又称为微控制器 (MCU), 是微型计算机的一个重要分支 单片机是 20 世纪 70 年代中期发展起来的一种大规模集成电路芯片, 将 CPU RAM ROM I/O 接口和中断系统等集 成于同一硅片内 20 世纪 80 年代以来单片机发展迅速, 各类新产品不断涌现,

More information

Ⅰ Ⅱ 2 Ⅲ 2 Ⅳ 耀

Ⅰ Ⅱ 2 Ⅲ 2 Ⅳ 耀 面 向 2 世 纪 高 等 学 校 计 算 机 类 专 业 十 一 五 规 划 教 材 单 片 机 原 理 及 接 口 技 术 ( 第 二 版 ) 余 锡 存 曹 国 华 编 著 西 安 电 子 科 技 大 学 出 版 社 2 0 0 7 Ⅰ Ⅱ 2 Ⅲ 2 Ⅳ 耀 .,, 0,.., : ()0 :0 2 9; (2), 555.54 5 500 50 5 0.5, 555.5=50 2

More information

电子技术基础 ( 第 版 ) 3. 图解单相桥式整流电路 ( 图 4-1-3) 电路名称电路原理图波形图 整流电路的工作原理 1. 单相半波整流电路 u 1 u u sin t a t 1 u 0 A B VD I A VD R B

电子技术基础 ( 第 版 ) 3. 图解单相桥式整流电路 ( 图 4-1-3) 电路名称电路原理图波形图 整流电路的工作原理 1. 单相半波整流电路 u 1 u u sin t a t 1 u 0 A B VD I A VD R B 直流稳压电源 第 4 章 4.1 整流电路及其应用 学习目标 1. 熟悉单相整流电路的组成, 了解整流电路的工作原理. 掌握单相整流电路的输出电压和电流的计算方法, 并能通过示波器观察整流电路输出电压的波形 3. 能从实际电路中识读整流电路, 通过估算, 能合理选用整流元器件 4.1.1 认识整流电路 1. 图解单相半波整流电路 ( 图 4-1-1) 电路名称电路原理图波形图 4-1-1. 图解单相全波整流电路

More information

单片机原理及应用实验指导书.doc

单片机原理及应用实验指导书.doc 1 2 3 4...2...4...9...9 AEDK598 MCS51...9 MCS51...10...10...10...10...10...10...11 P1...12...12...12....12...12...13 P3...14...14...14...14...14...14 I/O...15...15...15...15...15...16...17...17...17...17...17...18...19...19

More information

<4D F736F F D20B3E6B4B9A4F930365F32A443AC71C5E3A5DCBEB9B1B1A8EE2E646F63>

<4D F736F F D20B3E6B4B9A4F930365F32A443AC71C5E3A5DCBEB9B1B1A8EE2E646F63> 七段顯示器控制電路四位數 _ 使用解碼器驅動 +5 V 10 uf 8.2 k 12 MHz 20 pf 1 2 3 4 5 6 7 8 9 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RESET 10 P3.0 11 12 13 14 15 16 17 18 19 20 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 XTAL2 XTAL1

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc EEPROM 应用说明 1 适用产品 :SM59D03G2 SM59D04G2 series 2 应用范围 : 针对需使用 EEPORM 功能替换 STC 89C5X 的应用及汇编语言之范例程序 ( 使用内部扩充内存为暂存区 ) 3 功能说明 : 3.1 本公司上述产品 EEPORM 功能皆可替换 STC89C5X, 仅需对特殊功能缓存器定义 ( 详见表 1) 及 ISP 命令定义 ( 详见表 2)

More information

µPSD3000 系列

µPSD3000 系列 8032 FLASH MCU µpsd3251f-40t6 µpsd3251 8032 FlashPSD Flash SRAM I/O I 2 C, ADC and PWM 8032, 16 / FlashPSD µpsd32 JTAG ISP 2K SRAM Flash - 64K Flash - 16K Flash - Flash 8032 12 I2C ADC 6 I/O 37 I/O 16

More information

微机第02章1(指令寻址)

微机第02章1(指令寻址) 微机原理及应用 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@yahoo.com.cn 西华大学电气信息学院 1 第 03 章 80X86 的寻址方式和指令 ( 本章内容 ) 3.1 指令的格式 3.2 8086/8088 的寻址方式 3.3 指令系统 3.3.1 数据传送指令 3.3.2 算术运算指令 3.3.3 逻辑运算与移位指令 3.3.4 串操作指令

More information

<4D6963726F736F667420576F7264202D203130B5A5C6ACBBFACAB5D1E9D6B8B5BCCAE92E646F63>

<4D6963726F736F667420576F7264202D203130B5A5C6ACBBFACAB5D1E9D6B8B5BCCAE92E646F63> 单 片 机 及 接 口 技 术 实 验 指 导 书 张 勇 编 计 算 机 与 通 信 工 程 学 院 信 息 与 通 信 工 程 系 2004.12 1 - 前 言 单 片 机 及 接 口 技 术 是 通 信 工 程 专 业 的 专 业 技 能 课 程, 在 专 业 知 识 结 构 体 系 中 具 有 十 分 重 要 的 地 位, 课 程 的 实 践 性 很 强, 学 习 必 须 理 论 和 实

More information

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 第 3 章 8086 的寻址方式和指令系统 (2) 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 1 3.3 8086 指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 3.3.1 数据传送指令 可实现 存储器 立即数 段寄存器 CS DS

More information

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe   Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L 1 SH88F516 8051 64K FLASH 1024 EEPROM SH88F516 JET51 S-Lab Keil µ vision ISP51 Keil µ vision ISP51 ISP51 PC RS232 MCU SH88F516 SH88F516 1.1 SH88F516 1.1 SH88F516 SH88Fxx: QFP44, DIP40 RAM Flash E2 ADC

More information

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D 控制器 thert thert thert 接下一个电机驱动模块 () 接下一个电机驱动模块 () 电机驱动模块 电机驱动模块 电源模块 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () X 0 X 0 4 /RK /RK 注 注 制动电阻阻值 Ω Φ 80: 适用电机驱动模块型号 8-M-XXXX--XX Φ : 适用电机驱动模块型号

More information

PowerPoint 簡報

PowerPoint 簡報 微算機原理與實驗 (UEE 2301/1071 ) Chap 5. MCS-51 Addressing Modes 宋開泰 Office:EE709 Phone:5731865( 校內分機 :31865) E-mail:ktsong@mail.nctu.edu.tw URL:http://isci.cn.nctu.edu.tw 1 Addressing Modes Addressing mode is

More information

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx 第五讲 授课教师 : 陆俊林王箫音 2012 年春季学期 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 4 章寻址方式与指令系统 1 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 2 指令的组成 指令由操作码和操作数两部分组成 操作码操作数 MOV AX, 8726H ADD AX,

More information

R/W

R/W (HD44780 KS0066 ) 3 3 5 6 10 14 HD44780/KS0066 16 2 LCM 8 1 40 4 LCD HD44780/KS0066 HD44100 IC PCB 0.1 CMOS 1. 2. 3. 4. 5. RH60% 6. 1. 2. 3. PCB 3 4. 5. 6. 1. 280 C 2. 3 4s 3. 4. 5. 3 5 1. 2. IC 3. DC-DC

More information

untitled

untitled EDM12864-03 : 25-1 : 116600 : (0411)7612956 7632020 7612955 : (0411)7612958 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1 TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT 588 4 1 0571-85121224 85121742 85121304(f) 639 2A095 0571-88256346 89902095 f B1618 010-62051209 62000662 62568913 82036512 f http://www.tsingtek.com

More information

<4D F736F F D20B5A5C6ACBBFAD4ADC0EDD3EBD3A6D3C3BCB B3CCD0F2C9E8BCC65FB5DA33B0E65F2DD6D5B8E52D4E65772DBFB1CEF3B1ED2DB3F6B0E6C9E72E646F6378>

<4D F736F F D20B5A5C6ACBBFAD4ADC0EDD3EBD3A6D3C3BCB B3CCD0F2C9E8BCC65FB5DA33B0E65F2DD6D5B8E52D4E65772DBFB1CEF3B1ED2DB3F6B0E6C9E72E646F6378> 单片机原理与应用及 C51 程序设计 ( 第 3 版 )- 终稿 -New 勘误表 1. P18 页 11 行原来 : 汇编语言 机器语言 功能 MOV AL,01H 1011 0000 0000 0011B ; 把 01 送入累加器 A ADD AL,02H 0000 0100 0000 0101B ;02 与 A 中内容相加, 结 果存入 A HLT 11110100B ; 停止操作 汇编语言

More information

Microsoft PowerPoint - chap4.ppt

Microsoft PowerPoint - chap4.ppt 定址方式 定址方式 格式 有效位址 立即資料定址 #data8 暫存器定址 Rn (R0 ~ R7) 直接定址 addr8 addr8 絕對定址 addr11 addr11 長程 ( 絕對 ) 定址 addr16 addr16 ( 暫存器 ) 間接定址 @Ri (@R0 @R1) 或 @DPTR R0 R1 或 DPTR ( 暫存器 ) 相對定址 disp8 PC+ 符號擴展之 disp8 ( 基底

More information

PowerPoint Presentation

PowerPoint Presentation 7.2 并行接口 二. 可编程并行接口芯片 8255A 的功能及其应用 与 CPU 一侧相连的引脚 D0 PA0 ~ ~ ~ ~ ~ D7 PA7 RESET PC7 WR RD PC4 PC3 PC0 A0 PB0 A1 PB7 CS PA 口 PC 口上半部 PC 口下半部 PB 口 A 组 B 组 与 I/O 设备相连的引脚 7.2 并行接口二. 可编程并行接口芯片 8255A 的功能及其应用

More information

第 卷 第 期 年 月 半 导 体 学 报! " # $%&'%' $!&' #% #$1 /#1 $'! / ?/ ?/ / 3 0,?/ ) * +!!! '!,!! -. & ' $! '! 4% %&1)/1(7%&)03 (% )

第 卷 第 期 年 月 半 导 体 学 报!  # $%&'%' $!&' #% #$1 /#1 $'! / ?/ ?/ / 3 0,?/ ) * +!!! '!,!! -. & ' $! '! 4% %&1)/1(7%&)03 (% ) 第 卷 第 期 年 月!"# $%&'%' $!&'#%#$1/#1 $'! /18103 2?/03101?/18103 /3 0,?/0301.13 )*+!!! '!,!! -.&' $!'! 4%%&1)/1(7%&)03(%)%&,%*(1&0)%$-0*,%30)17*1*)0(+1(1+&1*+*),)1; &113(%44(10&.0701&0-&00*/)%;()1%-1+%&0)0*1*)%

More information

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式]

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式] 本教案内容 第 3 章 8086CPU 指令系统 1. 汇编语言指令 9. 转移指令 10. 2. 8086 指令分类循环控制指令 11. 子程序调用返回 3. 数据与转移地址的指令寻址方式 12. 中断调用返回指 4. 数据传送类指令令 5. 算术运算类指令 13. 字符串操作指令 6. 逻辑运算类指令 14. I/O 输入输出指令 7. 移位类指令 15. 其它指令 8. 标志位操作指令 16.

More information

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ] 作者 : 利尔达 MSP430 系列单片机的指令系统 1 CPU 内核组成 : 16 位的 (ALU) 算术运算单元 16 个寄存器 (PC SP SR R4~R15) 指令控制单元 2 存储器组织结构 3 外围模块寄存器地址 它们被分配在相应的字模块或字节模块当中 分配在 00-FFH 中为字节, 分配在 100-1FFH 中为字 4 寻址模式 : 5 指令格式 : 1) 书写格式标号指令助记符源操作数,

More information

AT89C2051中文资料.doc

AT89C2051中文资料.doc 图形点阵液晶显示模块使用手册 TG12864C(L) 广州捷胜吉电子科技 地址 : 广州市天河区天河路 561# 新赛格电子城 B2226 电话 :(020)33550997 13829772038 网址 :WWW.GZJSJDZ.COM E-mail:CJKD@21CN.COM 目 录 ( 一 ) 概述 (1) ( 二 ) 外形尺寸图 (1) ( 三 ) 模块主要硬件构成说明 (2) ( 四 )

More information

逢 甲 大 學

逢    甲    大    學 論 車 Auto Vehicle 立老 磊 年 老 立老 了 見 老 了不 料 利 了 識 更了 力量! i 車. 車 利 89c51 來 流. 令. 車 8051 類 車利 車 ii Abstract The goal of this thesis is to design a small auto vehicle by using IC as its control center. Our auto

More information

128K Flash EPROM 的程序?\(Bank=64K\) 切?

128K Flash EPROM 的程序?\(Bank=64K\) 切? 应用说明 华邦 8 位单片机 (8051 内核 ) 应用说明 华邦 8 位单片机 (8051 内核 ) ANSC-UC08-0007 目录 - 1. 应用说明 :...4 1.1...4 1.2 相关寄存器介绍...4 1.2.1 串行口控制寄存器 (SCON)... 4 1.2.2 串行数据缓冲寄存器 (SBUF)... 5 1.2.3 串行口控制 1 (SCON1)... 5 1.2.4 串行数据接收缓冲

More information

() () () () () () () () DDRAM () II

() () () () () () () () DDRAM () II 液晶模块说明书 SPEC NO YM2232A REV NO. 液晶显示模块产品说明书 产品类型 : 产品型号 : 产品描述 : 标准产品 YM2232A 22x32 图形点阵模块, 控制器 :SED52,LED 背光 客户名称 : 客户确认 : 编写 : Dexun Zou 审核 : HCC 批准 : Jingxi Yang 发行日期 : 22.8 大连佳显电子有限公司 地址 : 大连市沙河口区工华街

More information

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C AUTOMATIC TROLLEY H K Hwang K K Chen J-S Lin S-C Wang M-L Li C-C Lin W-B Lin Dept. Of Electrical Engineering Far East College ABSTRACT This paper proposes an automatic trolley which can move automatically

More information

Microsoft PowerPoint - 第01章 基础知识.pptx

Microsoft PowerPoint - 第01章 基础知识.pptx 微处理器与微计算机系统 教材 : 单片机原理与应用及 C51 程序设计 ( 第 3 版 ) 清华大学出版社 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@mail.xhu.edu.cn 西华大学电气与电子信息学院 第 1 章计算机基础知识 主要内容 : 1 有符号数的表示 2 微型计算机工作原理 3 单片机的概念及特点 A Historical Background

More information

新开放专科单片机技术与应用教学大纲

新开放专科单片机技术与应用教学大纲 中央广播电视大学开放教育 ( 专科 ) 数控技术专业 单片机技术 课程教学大纲 信息工程系 顾筠 第一部分 大纲说明 一 课程性质和任务 1. 课程性质 单片机技术 是开放教育 ( 专科 ) 数控技术专业的一门省开专业技术课程 通过学习本课程, 使学生能够握有关单片机的基础知识, 并为今后的单片机应用打下基础 本课程共 72 学时, 其中授课 54 学时, 实验 18 学时 单片机面向控制, 具有体积小

More information

( CIP).:,3.7 ISBN TB CIP (3) ( ) ISBN O78 : 3.

( CIP).:,3.7 ISBN TB CIP (3) ( ) ISBN O78 : 3. ( CIP).:,3.7 ISBN 7 568 383 3.......... TB CIP (3) 334 3 37 ( ) 64536 www.hdlgpress.com.c 7879 6 9.75 479 3 7 3 7 45 ISBN 7 568 383 3O78 : 3. 995,.,.,.,. :,,,,.. :,,,,,,.,,,,.,,. ,,.,,,.,,,.,,,,.,.,,,

More information

!"# $ %&'!"#$

!# $ %&'!#$ !"# $ %&'!"#$ 内容简介本书是在作者已经出版的 XilinxAlProgrammableZynq-7000SoC 设计指南 一书的基础上进行大幅度修订而成的 本书的一大特色就是更加突出 ARMCortex-A9 双核处理器的使用 此外, 在修订本书时采用了 Xilinx 最新的 Vivado2015 4 集成开发环境 通过本书的修订, 能反映最新的 ARM 嵌入式设计技术和实现方法, 同时也能更加凸显采用异构架构的

More information

Microsoft PowerPoint - Ch3-8086CPUæ„⁄令系ç»�(3)-æŁ°æ“®ä¼€é•†æ„⁄令

Microsoft PowerPoint - Ch3-8086CPUæ„⁄令系ç»�(3)-æŁ°æ“®ä¼€é•†æ„⁄令 2017 版 微机原理与系统设计 第 3 章 8086CPU 指令系统 董明皓, 博士 西安电子科技大学 dminghao@xidian.edu.cn 目录 (12 课时 ) 1 2 3 4 5 汇编语言基本概念 8086 指令分类数据与转移地址的寻址方式 8086 的六类指令总结 微机原理与系统设计 8086CPU 的指令系统董明皓 dminghao@xidian.edu.cn 2 基础知识引入

More information

Microsoft Word - 部分习题参考答案.doc

Microsoft Word - 部分习题参考答案.doc 部分习题参考答案 第 1 章 1.1 (1) U ab 5 (2) U ab 5 () I 2 () I 2 1.2 (a)-10w(b)-8w,0w(c)-50w,25w 1. () P 560 W, P 50 W, P 600 W, P 20 W, P 180 W 1. I 2 m U 60 1.5 P 50 W 1.6 U 26, U 7 ac bd 1.7 U ab 11, I, I 2,

More information

??????????????????

?????????????????? 2011 3 1 a)8088/8086 b) 1 2 3 -(2) - 48 (48 6) 1 2 http://www.zlgmcu.com/home.asp http://hx51.com/index.asp http://www.daqchina.net/daqchina/chips DAQCHINA HTTP://WWW.QFMCU.COM/ HTTP://MYGO.7I24.COM/ HTTP://WWW.HSEDA.COM/

More information

单片机学习教程

单片机学习教程 . 89S51 1. 2.p1 3.8 3 4.8 3. 1. 0-F 2. 0000 0255. 1. : BB 2. : ( --- ) : :. 1. 2..232.I 2 C 1. X24C02 MCS-51 2. : 22H 24C02 50H 3. : ; 8 4. :I2C. / 1. 1 2. 2. 1. 1. 2. 2.. 1. 1: 2. 2: 3. 3 1 LED 1 89S51

More information

untitled

untitled 8086/8088 CIP /. 2004.8 ISBN 7-03-014239-X.... TP313 CIP 2004 086019 16 100717 http://www.sciencep.com * 2004 8 2004 8 1 5 500 787 1092 1/16 16 1/2 391 000 1 2 ii 1 2 CAI CAI 3 To the teacher To the student

More information

(10) 在满足串行口接收中断标志位 RI SCON.0 =0 的条件下, 置允许接收位 REN(SCO N.4)=1 就会启动接收一帧数据进入输入移位寄存器, 并装载到接收 SBUF 中, 同时使 RI =l 当发读 SBUF 命令时 ( 执行 MOV A,SBUF 指令 ), 即是由接收缓冲器

(10) 在满足串行口接收中断标志位 RI SCON.0 =0 的条件下, 置允许接收位 REN(SCO N.4)=1 就会启动接收一帧数据进入输入移位寄存器, 并装载到接收 SBUF 中, 同时使 RI =l 当发读 SBUF 命令时 ( 执行 MOV A,SBUF 指令 ), 即是由接收缓冲器 微机原理与接口技术 -- 历年考研真题复习资料 微型计算机的基本组成由微处理器 存储器 I/O 接口电路和系统总线构成, 输入 / 输出 (I /O) 接口和系统总线组成的, 即中央处理器 CPU( 通常包括运算器和控制器 )+ 存储器 + 输入 / 输出 (I/O) 接口, 单片微处理机就是把 (CPU 存储器和 I/O 接口电路 ) 等部件都集成在电路芯片上, 华中科技大学微机原理与接口技术一

More information

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示 实验题目 : 串行接口芯片 8251 实验目的 : 1. 掌握 8251 的工作方式及应用 2. 了解有关串口通讯的知识 串行接口芯片 8251 3. 掌握使用 8251 实现双机通讯的软件编程和电路连接 实验设备 : IA-32 架构的微机系统及应用教学平台两套 实验原理 : 1. 8251 的基本性能 性能 : 8251 是可编程的串行通信接口, 可以管理信号变化范围很大的串行数据通信 有下列基本

More information

<4D6963726F736F667420576F7264202D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63>

<4D6963726F736F667420576F7264202D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63> 臺 北 市 立 松 山 高 級 工 農 職 業 學 校 資 訊 科 專 題 製 作 報 告 題 目 : 反 彈 空 間 指 導 老 師 : 余 耀 銘 學 生 : 廖 國 銓 趙 信 瑋 中 華 民 國 102 年 5 月 摘 要 在 這 高 速 科 技 的 起 飛 下, 科 技 都 建 立 起 於 基 礎, 有 些 人 把 這 基 礎 轉 為 理 論, 教 給 大 眾 學 習 ; 有 些 人 利

More information

1 TPIS TPIS 2 2

1 TPIS TPIS 2 2 1 1 TPIS TPIS 2 2 1. 2. 3. 4. 3 3 4 5 4 TPIS TPIS 6 5 350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6 8 (TPIS) TPIS 9 7 IC AT89C2051 AT89C2051 CMOS8

More information

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 第 3 章 8086 的寻址方式和指令系统 (1) 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 1 主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 3.1 8086 的寻址方式 两种不同的类型 : 一类是程序地址 ( 在代码段中 ) 的寻址方式 ; 另一类是操作数地址的寻址方式

More information

共同构成 16 位数据存储单元的地址 当 CPL=1 时, 将堆栈指针 SP 的 16 位地址 与指令中的 7 位地址相加, 形成 16 位的数据存储器地址 (2) 当 SP=0100h, 偏移地址为 50h 时, 寻址 0150h 单元 ; 当 DP=2, 偏移地址为 50h 时, 寻址 0150

共同构成 16 位数据存储单元的地址 当 CPL=1 时, 将堆栈指针 SP 的 16 位地址 与指令中的 7 位地址相加, 形成 16 位的数据存储器地址 (2) 当 SP=0100h, 偏移地址为 50h 时, 寻址 0150h 单元 ; 当 DP=2, 偏移地址为 50h 时, 寻址 0150 DSP 原理与应用教程 ( 张卫宁著 ) 课后习题答案第 3 章 (2014 年 10 月整理 刘忠国 ) 第三章习题答案 : 作业 :3.2, 3.6, 3.7,3.8, 3.11, 3.17, 3.19,3.21 3.1. TMS320C54x 的数据空间寻址方式各有什么特点? 应该应用在什么场合? ( 教材涉及特点较少 ) 答 :TMS320C54x 有 7 种基本的数据寻址方式 : 立即寻址,

More information

数据库系统概论

数据库系统概论 所谓寻址方式, 就是指令中用于说明操 作数所在地或者所在地地址的方法 8088/8086 的寻址方式分为两类 : 关于寻找数据的寻址方式 关于寻找转移地址的寻址方式 下面讲关于数据的寻址方式时, 均以数 据传送指令 MOV 为例讲解 MOV 指令格式如下 : MOV DST, SRC 助记符 目的操作数 指令完成的功能 : (DST) 源操作数 (SRC) 一. 关于寻找数据的寻址方式 ( 共 8

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

dfgdafhdafhdafhdafh

dfgdafhdafhdafhdafh 逢 甲 大 學 自 動 控 制 工 程 學 系 專 題 製 作 專 題 論 文 數 位 式 電 子 秤 之 研 製 Design Study of Digital Electronic Weighing Sensor 指 導 教 授 : 賴 啟 智 學 生 : 劉 人 豪 俞 仲 維 中 華 民 國 九 十 八 年 四 月 二 十 二 日 ii . 誌 謝 本 文 承 蒙 賴 啟 智 老 師 指 導,

More information

1

1 W7E65 1. W7E65 ISP Flash EPROM ISP Flash EPROM 52 W7E65 64K Flash EPROM 4K Flash EPROM 4K Flash EPROM loader 64K ROM 1K RAM 4 I/O 4 I/O P4 3 16 / 2 W7E65 Flash EPROM W7E65 2 2 2. CMOS 12 64K ISP Flash

More information

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总 目 录 数 学 高 分 的 展 望... 1 第 一 篇 大 纲 解 析 篇... 1 一 管 理 类 联 考 分 析... 1 二 最 新 大 纲 解 析... 1 三 考 前 复 习 资 料 及 方 法... 第 二 篇 总 结 篇... 4 1 应 用 题 考 点 总 结 与 技 巧 归 纳... 4 代 数 模 块 题 型 归 纳 及 考 点 总 结... 9 3 数 列 模 块 题 型 归

More information

学年本科教学和思政工作情况汇报

学年本科教学和思政工作情况汇报 微机原理与接口技术 第 0 章计算机基础知识 浙江大学 王晓萍 内容提要 计算机是计算数学与微电子学相结合的产物 微电子学的基本电 路及集成电路是计算机的硬件基础, 而计算数学的计算方法与数据结 构则是其软件基础 本章分为 3 个教学单元 补充介绍计算机的基础知识, 包括常用的数制与转换, 微机中数值的表示方法, 以及字母 字符的二进制编码 ; 微机的基本组成电路 (6 种逻辑电路 触发器 寄存器

More information

fgfdg

fgfdg CYGNAL 应用笔记 AN006 Cygnal C8051 IDT71V124 128Kx8 SRAM A[16:8] 地址总线 A[16:8] 74VHC573 8 位锁存器 ALE LE AD[7:0] 地址 / 数据总线 D Q A[7:0] I/O[7:0] CS CS /WR WE /RD OE 引言 图 1. 外部 SRAM 接口框图 本应用笔记的目的是介绍如何将一个通用 SRAM 芯片或一个按存储器寻址的外设部件与

More information

第十四章 STC单片机比较器原理及实现

第十四章 STC单片机比较器原理及实现 第 14 章 STC 单片机比较器 原理及实现 何宾 2015.02 1 本章主要内容 STC 单片机比较器结构 STC 单片机比较器寄存器组 STC 单片机比较器应用 2 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系 列单片机的比较器内部结构 3 STC 单片机比较器结构 S T C 15W

More information

untitled

untitled LCD EDM12864HBSL-ALC-G : 25-1 : 116600 : (0411)7612956 7632020 : (0411)7612958 Model No.: Editor: LCD 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

EC(2013-1 4)13 第 2 頁 (b) 把 總 目 100 在 2013-14 年 度 常 額 編 制 內 所 有 非 首 長 級 職 位 按 薪 級 中 點 估 計 的 年 薪 總 值 上 限 提 高 12,480,540 元, 即 由 461,070,000 元 增 至 473,550

EC(2013-1 4)13 第 2 頁 (b) 把 總 目 100 在 2013-14 年 度 常 額 編 制 內 所 有 非 首 長 級 職 位 按 薪 級 中 點 估 計 的 年 薪 總 值 上 限 提 高 12,480,540 元, 即 由 461,070,000 元 增 至 473,550 EC(2013-1 4)13 財 務 委 員 會 人 事 編 制 小 組 委 員 會 討 論 文 件 2014 年 1 月 8 日 總 目 100- 海 事 處 分 目 000 運 作 開 支 總 目 92- 律 政 司 分 目 000 運 作 開 支 總 目 158- 政 府 總 部 : 運 輸 及 房 屋 局 ( 運 輸 科 ) 分 目 000 運 作 開 支 請 各 委 員 向 財 務 委 員

More information

Microsoft Word - LMB402CBC-AppNote-V0.1.doc

Microsoft Word - LMB402CBC-AppNote-V0.1.doc LMB402CBC 液晶显示模块应用参考 深圳市拓普微科技开发有限公司 版本描述日期编者 0.1 新版本 2006-02-09 杨军 http://www.topwaysz.com 1 / 1 目录 1 概述 3 2 硬件接口 3 3 软件特性 3 3.1 控制器接口信号说明 3 3.2 模块指令系统 4 4 显示数据存储器的地址 4 5 字符发生器 CGRAM 的地址 5 6 应用举例 5 6.1

More information

杨欣王玉凤刘湘黔编著清华大学出版社 2008 年 1 月 ISBN 单片机应用从零开始 8051Microcontroller: An Applications Based Introduction 第 1 章 身边的单片机 欢迎访问电路飞翔网

杨欣王玉凤刘湘黔编著清华大学出版社 2008 年 1 月 ISBN 单片机应用从零开始 8051Microcontroller: An Applications Based Introduction 第 1 章 身边的单片机 欢迎访问电路飞翔网 第 1 章 身边的单片机 欢迎访问电路飞翔网 http://www.circuitfly.com 获取更多信息 1.1 单片机在哪里 1.2 单片机是什么样子的 1.3 单片机如何控制其他器件 1.4 如何使用单片机 1.5 有哪些单片机 1.6 实例点拨 电子万年历 例 1: 空调机 1.1 单片机在哪里 制冷功能模块 温度监控功能模块 如何协调工作? 遥控器接收功能模块 1.1 单片机在哪里 数码管指示灯功能按键

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用

More information

数据库系统概论

数据库系统概论 指令系统 是指 CPU 能完成的所有 指令的集合, 它是在 CPU 设计时就确定了的 所以, 对不同的 CPU, 其指令系统中所包含的具体指令将是各不相同的 但 8088/8086 CPU 的指令系统是完全一样的 8088/8086 CPU 的指令系统可分成下面 9 类 : (1) 数据传送指令 ; (2) 算术运算指令 ; (3) 逻辑运算指令 ; (4) 移位指令 ; (5) 标志处理指令和 CPU

More information

33023A.book(31005A_cn.fm)

33023A.book(31005A_cn.fm) 第 5 章 CPU 和 ALU 目录 本章包括下面一些主要内容 : 5. 简介...5-2 5.2 指令的一般格式... 5-4 5.3 中央处理单元 (CPU)... 5-4 5.4 指令时钟... 5-4 5.5 算术逻辑单元 (ALU)... 5-5 5.6 状态寄存器... 5-6 5.7 OPTION_REG 寄存器... 5-8 5.8 电源控制寄存器... 5-9 5.9 设计技巧...

More information

Ps22Pdf

Ps22Pdf A B C D A B C D A B C D a a b c x x x x x x x x x x x x x x x x x a b c x a x x x x x x x x x x a b a b a b x x x x x x x x x x x x A B C A B C A B A B A x B C x D A B C a b c a b x x x x x x x A B A

More information

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63> 因 为 路 过 你 的 路, 因 为 苦 过 你 的 苦, 所 以 快 乐 着 你 的 快 乐, 追 逐 着 你 的 追 逐 内 容 简 介 本 书 根 据 2005 年 下 半 年 实 施 的 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 嵌 入 式 系 统 设 计 师 级 考 试 大 纲 精 神, 在 深 入 研 究 历 年 计 算 机 技 术 与 软

More information

Microsoft Word - FM12232C.doc

Microsoft Word - FM12232C.doc SPEC NO YM2232C REV NO. : YM2232C : 22x32 SED52 LED : Dexun Zou HCC : Jingxi Yang : 22.8 目 录 ( 一 ) 基本特性 () ( 二 ) 限定参数 () ( 三 ) 直流特性 (2) ( 四 ) 交流特性 (2) ( 五 ) 机械尺寸图 (3) ( 六 ) 原理图 (3) ( 七 ) DDRAM 地址表 (4)

More information

3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四 11 时 3

3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四 11 时 3 第 3 章 8086 的寻址方式和指令系统 (3) 2015 年 3 月 26 日星期四 11 时 3 分 17 秒 1 3.3.2 算术运算指令 数据类型 : 无符号和有符号整数 无符号数又分成 : 无符号二进制数 ; 无符号压缩十进制 :1 字节表示 2 个十进制数 ; 无符号非压缩十进制 :1 字节表示 1 个十进制数 有符号数 : 有符号二进制数 用补码表示 2015 年 3 月 26 日星期四

More information

Microsoft PowerPoint - 微原-第3章2.ppt [兼容模式]

Microsoft PowerPoint - 微原-第3章2.ppt [兼容模式] 本教案内容 第 3 章 8086CPU 指令系统 1. 汇编语言指令 9. 转移指令 10. 2. 8086 指令分类循环控制指令 11. 子程序调用返回 3. 数据与转移地址的指令寻址方式 12. 中断调用返回指 4. 数据传送类指令令 5. 算术运算类指令 13. 字符串操作指令 6. 逻辑运算类指令 14. I/O 输入输出指令 7. 移位类指令 15. 其它指令 8. 标志位操作指令 16.

More information

untitled

untitled 2016 148 1 8 7 08:00 16:00 http://zj.sceea.cn www.sceea.cn APP 1 2 2 6 6 2016 2016 8 6 3 2016 2016 2016 0366 1 03 1 0391 2 54 ( ) 2 1256 7 02 1 03 1 07 2 18 2 21 1 1314 1 36 1 14000 / 20 1316 7 00 1 09

More information