




已阅读5页,还剩93页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理与应用主编张瑞玲杨丽西北工业大学出版社 项目1认识单片机 项目实操1使用单片机开发软件KeilC 项目实操2使用单片机仿真软件Proteus 任务1 1单片机的发展概况 1 1 1单片机的概念随着大规模 超大规模集成电路技术的发展和计算机微型化的需要 把微型计算机的基本功能部件如中央处理器 CPU 存储器 输入 输出接口 定时 计数器 中断系统等多种资源集成在一个半导体芯片上 使得一块集成电路芯片就能构成一个完整的微型计算机 这种集成电路芯片被称为单片微型计算机 SingleChipMicrocomputer 简称单片机 由于它的结构及功能均是按照工业控制要求设计的 所以其确切的名称应是 单片微控制器 SingleChipMicrocontroller 单片机的概念 微型计算机系统的硬件部分通常由五部分组成 这种计算机系统通常由多块印刷电路板制成 印刷电路板 1 1 2单片机发展概况自从1975年美国德克萨斯仪器公司 TI公司 的第一个单片机TMS 1000问世以来 迄今为止 已有30年的历史 单片机技术也已成为计算机技术的一个独特分支 在众多领域尤其是在智能化仪器仪表 检测和控制系统中有着广泛的应用 单片机作为微型计算机的一个分支 它的产生与发展和微处理器的产生与发展大体同步 主要分为三个阶段 第一阶段 1974 1978年 初级单片机阶段 这一阶段以Intel公司的MCS 48为代表 这个系列的单片机在片内集成了8位CPU 并行I O口 8位定时 计数器 RAM等 无串行I O口 寻址范围不大于4 第二阶段 1978 1983年 高性能单片机阶段 这一阶段以MCS 51系列为代表 这个阶段的单片机内均带有串行I O口 具有多级中断处理系统 定时 计数器为16位 片内RAM和ROM容量相对增大 且寻址范围可达64K 这类单片机应用领域极为广泛 由于其优良的性价比 特别适合我国的国情 因此在我国得到广泛应用 第三阶段 1983至今 8位单片机巩固完善及16位单片机推出阶段 这一阶段以MCS 96系列为16位单片机的代表 其内部除了CPU为16位以外 还采用了新颖的寄存器堆 逻辑部件 RALU 片内RAM和ROM的容量进一步增大 片内ROM为8KB甚至更大且可以加密 片内还带有高速输入输出部件 多通道10位A D转换器 具有8级中断等 近年来 32位单片机也已进入实用阶段 目前 单片机正朝着高性能和多品种的方向发展 但由于MCS 51系列的8位单片机仍能满足绝大多数应用领域的需要 所以以MCS 51系列为主的8位单片机 在现在及以后相当长的一段时期内仍将占据单片机应用的主导地位 1 1 3单片机的应用及发展1 单片机的应用领域单片机的应用极为广泛 已深入到国民经济的各个领域 对各行业的技术改造和产品的更新换代起着积极的推动作用 单片机的应用领域主要有以下几个方面 1 生产自动化自动化生产不但能够降低劳动强度 而且可以提高经济效益 改善产品质量 广泛应用于机械 汽车 电子 石油 化工 食品等工农业生产领域 自动化生产线 机器手 数控机床等自动化生产设备都能由单片机实现其智能化的自动控制功能 2 实时测控测控系统的工作环境往往比较恶劣 干扰繁杂 并且要求实时测量控制 如工业窑炉的温度 酸度 化学成分的测量和控制等 单片机工作稳定 可靠 抗干扰能力强 体积小使用灵活 适用于各种恶劣环境 最宜承担测控工作 3 智能化产品现代工业产品的一个重要发展趋势是不断提高其智能化程度 而智能化的提高离不开单片机的参与 传统的机电产品与单片机结合后 可简化产品结构 升级产品功能 并实现控制智能化 单片机与机械技术相结合 称为机电一体化 是机械工业的发展方向 单片机在家电产品上得到更为普遍的应用 出现了程控洗衣机 电脑空调机等 为提高汽车的动力性 经济性以及舒适性 稳定性 减少污染排放 在现代汽车上都大量使用了单片机 4 智能化仪表用单片机改造 设计制造仪器仪表 大大促进了仪表向数字化 智能化 多功能化 综合化和柔性化方向发展 并能同时提高仪器仪表的精度和准确度 简化结构 减小体积 5 信息通信技术多机系统 各种网络 中的各计算机之间的通信联系 以及计算机与其外围设备 键盘 打印机 传真机 复印机等 之间的协作都有单片机的参与 6 科学研究小到实验测控台 大到卫星 运载火箭 单片机都发挥着极其重要的作用 7 国防现代化各种军事装备 管理通信系统都有单片机深入其中 例如 数字化部队的武器 通信等装备都大量应用了单片机 2 单片机的应用特点 1 面向控制的应用由于单片机内部采用了微控制技术 其结构及功能均按自动控制的要求设计 因而主要应用于控制领域 微控制技术从根本上改变了传统的控制系统设计思想 它通过对单片机编程的方法代替由模拟电路或数字电路实现的大部分控制功能 是对传统控制方式的一次革命 传统控制系统的控制功能是通过电器元件和线路连接等硬件手段实现的 一经完成 功能很难更改 若要改变功能 必须重新连接电路 十分不便 而微控制技术的控制是由硬件和软件共同实现的 只要改变程序的内容就可在硬件线路基本功能的基础上实现多种功能 例如 彩灯的控制 若由传统控制系统实现 则线路完成之后 彩灯的闪烁变换方式也就确定了 而若由单片机系统控制 不改变线路连接 只简单地改变程序即可实现多种不同的彩灯闪烁方式 2 在线应用在线应用就是以单片机代替常规模拟或数字控制电路 使其成为测控系统的一部分 在被控对象工作过程中实行实时检测 并实时控制 在线应用为实时测控提供了可能和方便 3 嵌入式应用单片机在应用时通常装入到各种智能化产品之中 所以又称 嵌入式微控制器 EmbeddedMicroControllerUnit EMCU 单片机应用系统就是典型的嵌入式系统 嵌入式计算机系统 是作为其他系统的组成部分使用的 由于通用计算机系统有限的可靠性 较高的价位及庞大的身躯 限制了其在嵌入式系统的广泛应用 尤其限制了以嵌入式计算机系统作为核心控制产品的发展 单片机以较小的体积 现场运行环境的高可靠性满足了许多对象的嵌入式应用要求 在嵌入式系统中 单片机是最重要也是应用最多的智能核心器件 将单片机系统嵌入到对象体系中后 单片机就成为对象体系的专用指挥中心 嵌入式系统的广泛应用和不断发展的美好前景 极大地影响着每个人的学习 工作和生活 3 单片机应用系统单片机应用系统 如果按其系统扩展及配置状况 可分为最小系统 最小功耗系统 典型系统等 单片机最小系统是指单片机嵌入一些简单的控制对象 如开关状态的输入 输出控制等 并能维护单片机运行的控制系统 这种系统成本低 结构简单 其功能完全取决于单片机芯片技术的发展水平 单片机最小功耗系统是指系统功耗最小 设计该系统时 必须使系统内所有器件及外设都有最小的功耗 最小功耗应用系统常用在一些袖珍式智能仪表及便携式仪表中 单片机典型系统也是单片机控制系统的一般模式 它是单片机要完成工业测控功能必须具备的硬件结构系统 其系统框图如图1 1所示 下面简要说明图中主要部分的作用 通过传感器把被控对象的物理量转换成标准的模拟电量 如把0 500 温度转换成4 20mA标准直流电流输出 该输出经滤波器滤除掉输入通道的干扰信号 然后送入多路采样器 多路采样开关分时地对多个模拟量进行采样 保持 使A D转换器能将某时刻的模拟量转换成相应的数字量 然后该数字量输入单片机 单片机对输入的数据进行运算处理后 输出相应的数字量 经D A转换器转换为模拟量 该模拟量经保持器控制相应的执行机构 对被控对象的相关参数进行调节 从而控制被调参数的物理量 使之按给定规律变化 图1 1单片机典型应用系统 4 单片机的发展趋势 1 微型化芯片集成度的提高为单片机的微型化提供了可能 早期单片机大量使用双列直插式封装 随着贴片工艺的出现 单片机也大量采用了各种符合贴片工艺的封装 大大减小了芯片的体积 为嵌入式系统提供了可能 2 低功耗现在新的单片机的功耗越来越小 特别是很多单片机都设置了多种工作方式 包括等待 暂停 睡眠 空闲 节电等工作方式 扩大电源电压范围以及在较低电压下仍然能工作是当今单片机发展的目标之一 目前 一般单片机都可在3 3 5 5V的条件下工作 一些厂家甚至生产出可以在2 2 6V条件下工作的单片机 3 高速化早期MCS 51单片机的典型时钟为12MHz 目前西门子公司的C500系列单片机的 与MCS 51兼容 时钟频率为36MHz EMC公司的EM78系列单片机的时钟频率高达40MHz 现在已有更快的32位100MHz的单片机产品出现 4 集成更多资源单片机在内部已集成了越来越多的部件 这些部件包括一些常用的电路 例如 定时器 比较器 A D转换器 D A转换器 串行通信接口 看门狗 Watchdog电路 LCD控制器等 有的单片机为了构成控制网络或形成局部网 内部含有局部网络控制模块 甚至将网络协议固化在其内部 5 通信及网络功能加强在某些单片机内部由于封装了局部网络控制模块 因此这类单片机十分容易构成网络 特别是在控制系统较为复杂时 构成一个控制网络十分有用 目前 将单片机嵌入式系统和Internet连接起来已是一种趋势 6 专用型单片机发展加快专用型单片机具有最大程度简化的系统结构 资源利用率最高 大批量使用有着可观的经济效益 1 1 4单片机的主要生产厂商及产品1 单片机的主要生产厂商及产品自单片机诞生以来 其产品在近30年里得到了迅猛的发展 形成了多公司 多系列 多型号的局面 2 单片机主要产品除上述公司及其产品外 还有一些其他公司也生产各种类型的单片机 如Siemens OKI Fairchild Mostek公司等 1 Intel公司系列单片机Intel公司的系列单片机可分为MCS 48 MCS 51 MCS 96三个系列 Intel的单片机每一类芯片的ROM根据型号一般有片内掩膜ROM 片内EPROM和外接EPROM三种方式 这是Intel公司的首创 现已成为单片机的统一规范 片内掩膜ROM型单片机适合于已定型的产品 可以大批量生产 片内带EPROM型 外接EPROM型及片内带E2PROM型单片机适合于研制新产品和生产产品样机 2 Philips公司单片机Philips公司生产与MCS 51兼容的80C51系列单片机 片内具有I2C总线 A D转换器 定时监视器 CRT控制器 OSD 看门狗 WTD 电路 电源监测和时钟监测等丰富的外围部件 其某些产品工作电压甚至可低至1 8V 并且扩大了接口功能 如设置高速口 扩展I O数量 增加外部中断源以及将ADC PWM做入片内 为提高运行速度 时钟频率已达16 24MHz 主要产品有80C51 80C52 80C31 80C32 80C528 80C552 80C562 80C751等 Philips单片机独特的创造是具有I2C总线 这是一种集成电路和集成电路之间的串行通信总线 可以通过总线对系统进行扩展 使单片机的系统结构更简单 体积更小 3 Motorola公司单片机Motorola公司的单片机从应用角度可以分成两类 高性能的通用型单片机和面向家用消费领域的专用型单片机 通用型单片机具有代表性的是MC68HCll系列 有几十种型号 其典型产品为MC68HCllA8 具有准16位的CPU 8KBROM 256BRAM 512BE2PROM 16位9功能定时器 38位I O口线 2个串行口 8位脉冲累加器 8路8位A D转换器 WTD电路 17个中断向量等功能 可单片工作 也可以扩展方式工作 4 ATMEL51系列单片机ATMEL公司生产的CMOS型51系列单片机 具有MCS 51内核 用FlashROM代替ROM作为程序存储器 具有价格低 编程方便等优点 例如 89C51就是拥有4KBFlashROM的单片机 ATMEL公司生产的单片机主要有89C51 89F51 89C52 89LV52 89C55等 5 Microchip公司的单片机Microchip公司推出了PICl6C5X系列的单片机 它的典型产品PICl6C57具有8位CPU 2KB 12位E2PROM程序存储器 80BRAM 1个8位定时器 计数器 21根I O口线等硬件资源 指令系统采用RISC指令 拥有33条基本指令 指令长度为12位 工作速度较高 主要产品有PICl6C54 PICl6C55 PICl6C56等 6 Zilog公司的单片机Zilog公司推出的Z8系列单片机是一种中档的8位单片机 它的典型产品为Z8601 具有8位CPU 2KBROM 124BRAM 2个8位定时器 计数器 32位I O口线 1个异步串行通信口 6个中断向量 主要产品型号有Z8600 10 Z8601 11 Z86C06 Z86C21 Z86C40 Z86C93等 1 1 5MCS 51系列单片机的分类MCS 51系列单片机是Intel公司开发的非常成功的产品 具有性能价格比高 稳定 可靠 高效等特点 自从开放技术以来 不断有其他公司生产各种与MCS 51兼容或者具有MCS 51内核的单片机 MCS 51已成为当今8位单片机中具有事实 标准 意义的单片机 应用非常广泛 本书以8051为核心 讲述MCS 51系列单片机 MCS 51系列单片机采用模块化设计 各种型号的单片机都是在8051 基本型 的基础上通过增 减部件的方式获得的 1 按照系列分类 1 8031 8051 8751这3种芯片常称为8051子系列 它们之间的区别仅在于片内程序存储器不同 8031片内无程序存储器 8051片内有4KB的ROM 8751片内有4KB的EPROM 其他结构性能相同 其中8031易于开发 价格低廉 应用广泛 2 8032 8052 8752这是8031 8051 8751的改进型 常称为8052子系列 其片内ROM和RAM比8051各增加1倍 ROM为8KB RAM为256B 另外增加了一个定时器 计数器和一个中断源 3 80C31 80C51 87C51这3个型号是8051子系列的CHMOS型芯片 可称为80C51子系列 两者功能兼容 CHMOS型芯片的基本特点是高集成度和低功耗 4 其他系列产品其他系列产品有80C52 80C54 80C58等 2 按照功能分类 1 基本型基本型主要有8031 8051 8751 8031AH 8051AH 8751AH 8751BH 80C31BH 80C51BH 87C51BH等 后缀有AH或BH型单片机采用HMOS工艺制造 中间有一个 C 字母的单片机采用CMOS工艺制造 具有低功耗的特点 支持节能模式 2 增强型1 增大内部存储器型 该型产品将内部的程序存储器ROM和数据存储器RAM增加1倍 如8032AH 8052AH 8752BH等 内部拥有8KBROM和256BRAM 属于52子系列 2 可编程计数阵列 PCA 型 型号中含有字母 F 的系列产品 如80C51FA 83C51FA 87C51FA 83C51FB 87C51FB 83C51FC 87C51FC等 均是采用CHMOS工艺制造 具有比较扑捉模块及增强的多机通信接口 3 A D型 该型产品 如80C51GB 83C51GB 87C51GB等具有下列新功能 8路8位A D转换模块 256B内部RAM 2个PCA监视定时器 增加了A D和串行口中断 中断源达7个 具有振荡器失效检测功能 1 2数制及数码 计算机只识别和处理数字信息 数字是以二进制数的形式表示的 它易于物理实现 同时 资料存储 传送和处理简单可靠 运算规则简单 使逻辑电路的设计 分析 综合方便 使计算器具有逻辑性 一 数制1 常用数制 1 十进制数 1985 1000 900 80 5 1 103 9 102 8 101 5 100特点 有0 9十个不同的符号 逢十进一 一般用下脚标D表示 如1985D 或无下脚标 2 二进制数 特点 有0 1两个不同的符号 逢二进一 二进制数的下脚标为B例如 对于整数 1001B 1 23 0 22 0 21 1 20 9D对于小数 0 101B 1 2 1 0 2 2 1 2 3 0 625D二进制数每一位的权是 以小数点分界 24 23 22 21 20 2 1 2 2 2 3 3 十六进制数 有0 9 A B C D E F共十六个不同的符号 逢十六进位 用下脚标 H 表示十六进制数 例 327H 3 162 2 161 7 160 807D3AB 11H 3 162 A 161 B 160 1 161 1 16 2 939 0664D 2 数制的转换 1 二进制转换为十进制数方法 按权展开 111 101B 1 22 1 21 1 20 1 2 1 0 2 2 1 2 3 4 2 1 0 5 0 125 7 625D 2 十进制数转换为二进制数方法 整数部分除二取余 小数部分乘二取整 45余数 22 1 11 0 5 1 2 1 1 0 0 1 2 2 2 2 2 2 即45 101101 2 例1 将十进制数45转换成二进制数 例2 十进制小数部分的转换 乘二取整 0 6875 2 最高位取11 3750 0 375 2 取00 750 2 取11 50 0 5 2 最低位取11 0 从上至下写成从左至右 1011 0 6875D 0 B 二进制数转换成八进制数与上述类似 3 十六进制数与二进制数之间的转换 十六进制数转换为二进制 9AB 7C5H 100110101011 011111000101B 二进制数转换十六进制数 0001101111100011 100101111000B 1BE3 978H 二 数码1 机器数与真值机器只认识二进制数 0 1 这是因为 电路状态常常有两种情况 如 电路的通 断 高电平 低电平 可用0 1表示 在机器中 这种0 1 0 1的表现形式称为机器数 机器数分为无符号数 带符号数 无符号数如 00000001 10010011 01010010 等等 范围 00H FFH 有符号数如 1010110B 1101001B 等等 01010110B 11101001B 2 机器数的编码及运算对带符号数而言 有原码 反码 补码之分 计算机内一般使用补码 1 原码将数 数码化 原数前 用0表示 原数前 用1表示 数值部分为该数本身 这样的机器数叫原码 设X 原数 则 X 原 X X0 X 原 2n 1 X X0 n为字长的位数 如 3 原 00000011B 3 原 27 3 10000011B0有两种表示方法 00000000 010000000 0原码最大 最小的表示 127 128 2 反码规定正数的反码等于原码 负数的反码是将原码的数值位各位取反 X 反 X X0 X 反 2n 1 X X0 如 4 反 4 原 00000100B 4 反 28 1 5 11111111 00000101 11111010B反码范围 128 127两个0 0 00000000B 0 11111111B 运用补码可使减法变成加法 规定 正数的补码等于原码 负数的补码求法 1 反码 12 公式 X 补 2n X X 0 如 设X 0101110B 则 X 原 10101110B则 X 补 X 反 1 11010001 00000001 11010010B如 6 补 6 原 00000110B 6 补 28 6 10000000 00000110 11111010B8位补码的范围 128 127 0的个数 只一个 即00000000而10000000B是 128的补码 原码 反码 补码对照表 见下表 3 补码补码的概念 现在是下午3点 手表停在12点 可正拨3点 也可倒拨9点 即是说 9的操作可用 3来实现 在12点里 3 9互为补码 八位二进制数所能表示的数据范围机器数无符号数原码反码补码000000000 0 0 0000000011 1 1 1 01111111127 127 127 12710000000128 0 127 12810000001129 1 126 127 11111110254 126 1 211111111255 127 0 1 4 补码的运算当X 0时 X 补 X 反 X 原 X 补 补 X 原 X 补 Y 补 X Y 补 X Y 补 X Y 补例 已知X 52Y 38求X Y方法1 减法 X Y 52 38 1400110100 0010011000001110 方法2 加法X Y X Y 补 补 X 补 Y 补 补 52 补 38 补 补 14 补 14 52 补 00110100 38 补 11011010100001110 自然丢失计算机在做算术运算时 必需检查溢出 以防止发生错误 5 运算的溢出问题由于计算机中表示数据的字长 位数 有一定限制 所以数据的表示应有一个范围 如字长8位时 补码范围 128 127若运算结果超出这个范围 便溢出 例 98 补 01100010 25 补 00011001 123 补001111011未溢出00Cs 1Cs 未溢出 85 补 01010101 47 补 00101111 132 补 10000100溢出01Cs 1Cs 溢出 错 两个正数相加和为负数 85 补 10101011 47 补 11010001 132 补 101111100溢出10Cs 1Cs错 两个负数相加和为正数 19 补 01010101 79 补 10110001 98 补 11001111未溢出11Cs 1Cs错 两个负数相加和为正数 总之 结果正确 无溢出 时 Cs 1 Cs结果错误 溢出 时 Cs 1 Cs溢出判断 溢出 Cs 1Cs 即结果是0为无溢出 1为有溢出 1 6 十进制数的编码对机器 二进制数方便 对人 二进制数不直观 习惯于十进制数 在编程过程中 有时需要采用十进制运算 但机器不认识十进制数 怎么办 可以将十进制的字符用二进制数进行编码 00000501011010111110001601101011200107011111003001181000110140100910011110这叫做二进制数对十进制编码 BCD码 上述每4位二进制数表示一个十进制字符 这4位中各位的权依次是 8 4 2 1 8421BCD码 BCD码的运算 例 18 321 00011000 0000001100011011B是非BCD码 错 需进行十进制调整 00011000 0000001100011011 个位大于9 应进1 0110 加6使进1 00100001 结果形如21 BCD码加法规则 两个BCD数相加时 某位 的和小于10则保持不变 两个BCD数相加时 某位 的和大于9 则和数应加6修正 BCD码减法规则 两个BCD数相减时 某位 的差未发生借位 则差数保持不变 两个BCD数相减时 某位 发生了借位 其差应减6修正 这里 某位 指BCD数中的 个位 十位 百位 加法举例 01100101 65 10010111 97 11111100 01100110 加66调整 101100010 162 减法举例 00110100 34 00010101 15 00011111 0110 减6调整 00011001 29 补码数的表示范围一个n位二进制补码数的表示范围 2n 1 N 2n 1 1当n 8时数的表示范围 128 N 127当n 16时数的表示范围 32768 N 32767如果两个8位二进制补码数的运算结果超过 128 N 127 或者两个16位二制补码数的运算结果超过 32768 N 32767 则称为运算结果溢出 7 字符信息的表示计算机能识别0 1 0 1 这些0 1 0 1 有的代表数值 有的仅代表要处理的信息 如字母 标点符号 数字符号等文字符号 所以 计算机不仅要认识各种数字 还要能识别各种文字符号 人们事先已对各种文字符号进行二进制数编码 如 美国信息交换标准码 ASCII码 用一个字节表示一个字符 低7位是字符的ASCII码值 最高位是通信时的校验位 综上所述 计算机中的数可以有各种不同的表示方法 计算机中以一个字节为一个单元保存数据 一个字节为8位二进制数 可以有256种组合 也就是可以表示256个数据 我们称它为机器数 每一个机器数实际表示的是什么 要看采用的是那种表示方法 任务1 3计算机语言 计算机是一种能够按照人们预先存放在存储器中的一系列命令连续高速地进行数据处理的电子机器 能够把人的命令告诉计算机的一套符号系统及其使用规则被称为 计算机语言 到目前为止 计算机语言已经由低级到高级经历了机器语言 汇编语言 高级语言 应用语言的发展过程 1 3 1机器语言我们知道 微机内部所有的信息都是采用二进制0和1的位串表示的 机器指令就是计算机能够直接识别和执行的一组二进制代码 它指明计算机执行时必须完成的一种操作及其操作的对象 一条机器指令通常由操作码和操作数两部分构成 操作码在前 操作数在后 其格式如下 操作码指出计算机所执行的为何种操作 即该指令的功能 而操作数则指出在指令操作过程中所需的操作数据 即操作对象 在指令中可以直接给出操作数本身或者操作数存放的地址 以及操作结果送往何处等信息 下面的二进制代码序列就是一条MCS 51单片机的机器指令 0111010000000101 74H 05H 这条指令的前8位是操作码部分 含义是要求计算机完成把指令后面的8位数传送到名为A的寄存器的操作 不同的计算机系统具有各自不同的指令 对于同样的二进制序列 不同型号的计算机系统对它的 理解 是不一样的 对某种特定的计算机而言 其所有机器指令的集合 称为该计算机的机器指令系统 它既是提供给用户编制程序的基本依据 也是进行计算机逻辑设计的基本依据 指令系统的性能如何 决定了计算机系统的基本功能 机器指令系统及其使用规则构成这种计算机的机器语言 完成特定功能的一系列机器指令的有序集合 称为机器语言程序 依上所述 机器语言有以下特征 1 是唯一的能够被计算机直接识别并执行的语言 2 是由0 1代码构成的语言 和自然语言相差甚远 不便于阅读和理解 3 是面向机器的语言 低级语言 1 3 2汇编语言机器语言虽然是计算机的 母语 但对使用计算机的绝大多数人来说 机器语言难以掌握与编程 为了克服机器指令的上述缺点 采用容易记忆的英文符号名 称为助记符 来表示指令和数据及其的地址 如用ADD SUB JMP等英文文字或其缩写形式取代原来的二进制操作码 来表示加 减 转移等操作 这种用助记符来表示的机器指令 称为汇编指令 在计算机中每一条机器指令都对应一条汇编指令 所有汇编指令的集合构成了计算机的汇编指令系统 我们重点强调以下几点 1 汇编指令 又称为 符号指令 是机器指令符号化的表示 前面所列举的数据传送指令 若用汇编指令书写应为MOVA 05H 其中MOV为传送指令操作码的助记符 A是目的操作数 05H是源操作数 指令的功能是将数05H传送到A寄存器中 2 汇编语言 是由汇编指令 汇编伪指令及汇编语言的语法规则组成 3 汇编语言源程序 按照严格的语法规则用汇编语言编写的程序 称为汇编语言源程序或源程序 4 汇编程序 由于计算机不能直接识别和执行汇编语言源程序 因此需要把汇编语言源程序要翻译成机器语言程序才可以由计算机执行 这个翻译的过程称为 汇编 这种把汇编语言源程序翻译成目标程序的语言加工程序称为汇编程序 汇编程序进行翻译的过程叫做汇编 汇编程序将其翻译为机器语言后 才能交付计算机硬件系统加以识别和执行 汇编程序是为计算机配置的实现把汇编语言源程序翻译成目标程序的一种系统软件 1 3 3高级语言汇编语言虽然较机器语言直观 但仍然烦琐难懂 于是人们研制出了高级程序设计语言 高级程序设计语言接近人类自然语言的语法习惯 与计算机硬件无关 用户易于掌握和使用 目前广泛应用的高级语言有多种 如BASIC FORTRAN PASCAL C C 等 同样道理 用高级语言书写的源程序也必须翻译成机器指令目标程序 完成此翻译任务的程序称为编译程序 这样一来 编译程序和汇编程序好像差别不大 但汇编程序是一对一的转换 而编译程序则是一对多的转换 1 3 4汇编语言的特点和应用场合 1 汇编语言的特点1 汇编语言与处理器密切相关 与机器语言相比 汇编语言易于理解和记忆 编写的源程序可读性强 源程序翻译成机器语言后的执行文件在存储空间 执行速度方面与机器语言编写的程序大致相当 2 汇编语言程序效率高 用汇编语言编写的源程序汇编后的目标程序效率高 其反映是 第一 运行速度快 第二 目标程序短 在采用相同算法的前提下 任何高级语言程序在时间和空间的效率都不如汇编语言程序 3 编写汇编语言源程序比编写高级语言源程序烦琐 汇编语言是面向机器的语言 程序员在用汇编语言编写程序时 必须考虑包括寄存器 存储单元和寻址方式在内的几乎所有问题 而在使用高级语言编写程序时 程序员不用考虑这些细节问题 4 调试汇编语言程序比调试高级语言程序困难 汇编语句指令的有限功能和程序员要注意太多的细节问题是造成调试困难的两个主要原因 2 汇编语言的主要应用场合1 程序执行占用较短的时间 或者占用较小存储容量的场合 如操作系统的核心程序段 实时控制系统的软件 智能化仪器仪表的控制程序等 2 程序与计算机硬件密切相关 程序直接控制硬件的场合 如I O接口电路的初始化程序段 外部设备的底层驱动程序等 3 须提高大型软件性能的场合 如计算机系统频繁调用的子程序等 4 没有合适的高级语言的场合 如开发最新的处理器程序时 暂时没有支持新指令的编译程序 单片机开发系统开发必须借助计算机 仿真器和编程器等开发工具 而使用仿真器和编程器就需要学习相关软件 因此 熟悉开发软件是整个单片机学习的必需条件 要能有效地进行单片机软件的开发必须熟练掌握KeilC仿真调试软件 Proteus仿真运行软件和RF1800芯片烧录软件 1 启动Keil Vision3 1 进入集成开发环境双击Keil Vision3 即可进入如图1 2所示的KeilC软件的集成开发环境 项目实操1使用单片机开发软件KeilC 图1 2KeilC软件的集成开发环境 2 新建一个项目文件1 选择Project New VisionProject选项 如图1 3所示 图1 3新建一个项目文件 2 在弹出的对话框中选择要保存文件的路径 例如 要保存到项目2的文件夹里 在 文件名 文本框中输入任务名为 点亮单灯 然后单击 保存 按钮 如图1 4所示 图1 4保存项目文件 3 这时候会弹出一个对话框 要求选择单片机的型号 可以根据使用的单片机型号来选择 如图1 5所示 图1 5选择单片机型号 2 建立一个汇编程序文件 1 新建文件选择File New选项 如图1 6所示 图1 6汇编程序文件建立 2 保存文件选择File Save选项 或者单击工具栏中的按钮 保存文件 在弹出的对话框中选择要保存的路径并在 文件名 文本框中输入文件名 注意此时一定要输入后缀名 asm 单击 保存 按钮 如图1 7所示 如果单片机的程序是采用汇编语言则后缀名为 asm 但如果是采用C语言进行编程 则后缀名为 C 然后单击 保存 按钮 图1 7汇编程序文件保存格式 3 添加文件到当前项目1 单击Target1前面的 号 展开里面的内容SourceGroup1 如图1 8所示 图1 8项目文件展开 2 用右键单击SourceGroup1 在弹出的快捷菜单中选择AddFilestoGroup SourceGroup1 选项 如图1 9所示 图1 9汇编文件添加到项目文件下 3 选择文件light asm 文件类型选择AsmSourcefile 最后单击Add按钮 如果要添加多个文件 可以不断添加 添加完后单击Close按钮 关闭对话框 如图1 10所示 这时在SourceGroup1根目录下就能看到light asm文件了 如图1 11所示 图1 10汇编文件添加到项目文件下选择的文件格式 图1 11汇编文件添加到项目文件下效果图 4 汇编文件在light asm文件中输入要调试的程序 如图1 12所示为汇编文件样例 图1 12汇编文件样例 3 编译文件 1 编译程序选择project Buildtarget选项 如图1 13所示 或者单击工具栏中的按钮或按功能键F7 编译修改过的文件 并生成目标文件 如果编译成功 会显示编译成功的信息 图1 13编译文件 2 程序的调试如果编译的程序有错误 需要继续修改直至编译通过并成功 另外 若采用Proteus进行软硬件综合仿真调试 则必须生成 hex文件 在程序编译前单击如图1 14所示工具栏中的 目标选项 图标 出现如图1 15所示的对话框 切换到Output选项卡 再选中CreateHEXFile复选框 图1 14目标选项工具栏 单击 确定 按钮后再进行程序编译 图1 15 目标选项 对话框 4 仿真调试编译完成后 可以选择下列三者之一来进入仿真调试 1 选择Debug Start StopDebugSession选项 进入仿真调试 如图1 16所示 2 单击工具栏中的按钮 进入仿真调试 如图1 17所示 3 按组合键Ctrl F5 进入仿真调试 如图1 16所示 图1 16进入仿真调试方法之一 之三 当上述操作结束后 即将编译成的机器语言 目标程序 装载后 仿真环境界面下显示调试后的信息 图1 17进入仿真调试方法之二 随着计算机技术的迅速发展 使用EDA软件进行电路仿真与设计已经成为一种趋势 众多院校在电路实践教学改革中引入了EDA技术 并建立了EDA实验室 P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽黄山市黄山区消防救援大队政府专职消防员招聘2人模拟试卷及答案详解(历年真题)
- 2025海南保亭黎族苗族自治县市场监督管理局公益性岗位人员招聘1人考前自测高频考点模拟试题及答案详解(必刷)
- 广播安全播出技术培训课件
- 2025年甾体药物原料合作协议书
- Ibuprofenyl-CoA-Ibuprofenyl-coenzyme-A-生命科学试剂-MCE
- 广彩工艺传承
- 2025年离合器面片项目合作计划书
- GP130-modulator-2-生命科学试剂-MCE
- 2025年旋挖钻机项目合作计划书
- 安全培训效果情况课件
- 护理文书书写规范 (15)课件
- 血清药物浓度监测
- (word版)2024年成人高考语文试题及答案
- 二十四节气农事活动
- 扩张型心肌病
- 食物中毒的心理援助与危机干预
- 危险性较大分部分项工程安全专项施工方案专家论证审查表
- 2022星闪无线短距通信技术(SparkLink 1.0)安全白皮书网络安全
- 惠东渔歌的历史流变
- 卫生公共基础知识考试大纲
- 07第七讲 发展全过程人民民主
评论
0/150
提交评论