大学科目《单片机原理及应用》全章节课件_第1页
大学科目《单片机原理及应用》全章节课件_第2页
大学科目《单片机原理及应用》全章节课件_第3页
大学科目《单片机原理及应用》全章节课件_第4页
大学科目《单片机原理及应用》全章节课件_第5页
已阅读5页,还剩588页未读 继续免费阅读

下载本文档

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

文档简介

第一章绪论

1.1单片微机概述1.280C51系列单片微机1.3单片微机的应用1.4本教程的教学安排1.1单片微机概述单片微机是单片微型计算机SCMC(SingleChipMicroComputer)的译名简称,在国内也常简称为“单片微机”或“单片机”。它包括中央处理器CPU、随机存储器RAM、只读存储器ROM、中断系统、定时器/计数器、串行口和I/O等等。除了工业控制领域,单片微机在家用电器、电子玩具、通信、高级音响、图形处理、语言设备、机器人、计算机等各个领域迅速发展。目前单片微机的世界年产量已达100亿片,而在中国大陆地区单片微机的年应用量已达6亿片左右,截止2001年4月,由中国大陆地区自行设计和生产的单片微机也已达到2000万片。由此可见单片微机的广泛用途和发展前景!

1.1.1单片微机概述1970年微型计算机研制成功之后,随着大规模集成电路的发展又出现了单片微机,并且按照不同的发展要求,形成了二个独立发展的分支。美国Intel公司1971年生产的4位单片微机4004和1972年生产的雏型8位单片微机8008,特别是1976年MCS-48单片微机问世以来,在短短的二十几年间,经历了四次更新换代,其发展速度大约每二三年要更新一代、集成度增加一倍、功能翻一番。发展速度之快、应用范围之广,已达到了惊人的地步。它已渗透到生产和生活的诸领域,可谓“无孔不入”。1976年Intel公司首先推出MCS-48系列单片微型计算机。它已包括计算机的三个基本单元,已成为真正意义的单片微机,赢得了广泛的应用,为单片微机的发展奠定了基础,成为单片微机发展进程中的一个重要阶段。

在MCS-48单片微机成功的刺激下,许多半导体公司和计算机公司争相研制和发展自己的单片微机系列,有Motorola公司的6801、6802,Zilog公司的Z-8系列,Rockwell公司的6501、6502等,此外,日本的NEC公司、日立公司及EPSON公司等,也都相继推出了各具特色的单片微机品种。 对工业控制、智能仪表等诸多较高层次的应用领域,8位单片微机系列在性能、价格两方面有较好的兼顾。 尽管目前单片微机的品种很多,但其中最具典型性的当属Intel公司的MCS-51系列单片微机。此外,它还具有品种全、兼容性强、软硬件资料丰富等特点。直到现在MCS-51仍不失为单片微机中的主流机型。由于8位单片微机的高性能价格比,估计近十年内,8位单片微机将仍是单片微机中的主流机型。

在8位单片微机之后,16位单片微机也有很大发展。例如,1983年Intel公司推出的MCS-96系列单片微机。与MCS-51相比,MCS-96不但字长增加一倍,而且还具有4路或8路的10位A/D转换功能,此外,在其它性能方面也有一定的提高。飞利浦公司推出了与80C51在源码级兼容性的16位单片微机,即80C51XA(每一条80C51指令可以1∶1地被翻译成一条XA指令,仅XCHD指令除外),用户不需投入很大的软件开销和人员就能较大的提高产品性能。80C51XA具有的高性能包括:执行速度快、支持高级语言(比如C语言)、支持实时多任务执行、易于形成派生系列产品、地址宽度可变(用户可以方便地将外部地址线宽度选定为12位、16位、20位、24位等等。在工业控制产品、高档智能仪表、彩色复印机、录像机等应用领域,

单片微机正朝多功能、多选择、高速度、低功耗、低价格、扩大存储容量和加强I/O功能及结构兼容方向发展。今后的发展趋势不外乎在以下几个方面:

⑴多功能在单片微机中尽可能多的把应用系统中所需要的存储器、各种功能的I/O口都集成在一块芯片内,即外围器件内装化,如把LED、LCD或VFD显示驱动器集成在8位单片微机中,如把A/D、D/A、乃至多路模拟开关和采样/保持器也集成在单片微机芯片中,从而成为名副其实的单片微机。

⑵高性能

为了提高速度和执行效率,在单片微机中开始使用RISC体系结构、并行流水线操作和DSP等的设计技术,使单片微机的指令运行速度得到大大提高,其电磁兼容等性能明显地优于同类型的微处理器。1.1.2单片微机的发展趋势⑶全盘CMOS化趋势单片微机采用二种半导体工艺生产,HMOS工艺即高密度短沟道MOS工艺,具有高速度和高密度;CHMOS工艺即互补金属氧化物的HMOS工艺,除具有HMOS的优点外,还具有CMOS工艺的低功耗特点。如8051的功耗为630mw,而80C51的功耗仅120mw。从第三代单片微机起开始淘汰非CMOS工艺。目前,数字逻辑电路和外围器件等都已普遍CMOS化。

⑷推行串行扩展总线

推行串行扩展总线可以显著减少引脚数量,简化系统结构。随着外围器件串行接口的发展,单片微机的串行接口的普遍化、高速化,使得并行扩展接口技术日渐衰退。

许多公司都推出了删去了并行总线的非总线单片微机,需要外扩器件(存储器、I/O等)时,采用串行扩展总线,甚至用软件虚拟串行总线来实现。由于集成度的进一步提高,有的单片微机的寻址能力已突破64KB的限制,8位、16位的单片微机有的寻址能力已达到IMB和16MB。片内ROM的容量可达62KB,RAM的容量可达2KB。1.280C51系列单片微机

8051单片微机是美INTEL公司在1980年推出的MCS-51系列单片微机的第一个成员,MCS是INTEL公司的注册商标。凡INTEL公司生产的以8051为核心单元的其它派生单片微机都可称为MCS-51系列,有时简称为51系列。其它公司生产的以8051为核心单元的其它派生单片微机却不能称为MCS-51系列,只能称为8051系列。8051系列泛指所有公司(也包括INTEL公司)生产的以8051为核心单元的所有单片微机。80C51系列单片微机包括Intel公司的MCS-51单片微机,又包括了以8051为核心单元的世界许多公司生产的单片微机,比如PHILIPS(飞利浦公司)的83C552及51LPC系列等、SIEMENS(西门子公司)的SAB80512等、AMD(先进微器件公司)的8053等、OKI(日本冲电气公司)的MSM80C154等、

ATMEL公司的Flash单片微机89C51等、DALLAS公司的DS5000/DS5001等、华邦公司的W78C51及W77C51等。从MCS-48单片微机发展到如今的新一代单片微机,大致经历了三代。如以Intel8位单片微机为例,这三代的划分大致如下。

第一代:以MCS-48系列单片微机为代表。属于低性能单片微机阶段。第二代:以MCS-5l系列的8051、8052单片微机为代表。可以看出,这一代单片微机主要的技术特征是为单片微机配置了完善的外部并行总线(AB、DB、CB)和具有多机识别功能的串行通信接口(UART),规范了功能单元的特殊功能寄存器(SFR)控制模式及适应控制器特点的布尔处理系统和指令系统,为发展具有良好兼容性的新一代单片微机奠定了良好的基础。

第三代:以80C51系列单片微机为代表。 它包括了Intel公司发展MCS-51系列的新一代产品,如8XC152、80C51FA/FB、80C5lGA/GB石XC451、8XC452,还包括了Phlips、Siemens、ADM、Fujutsu、OKI、ATMEL等公司以80C51为核心推出的大量各具特色、与MCS-51兼容的单片微机。 80C51系列单片微机是在MCS-51的HMOS基础上发展起来的,它们具有CHMOS结构。部分厂家所生产的80C51系列或与之相兼容的单片微机的特点列于表1-l、表1一2及表1一3中。 从表中可以看出,80C51系列单片微机保留了MCS-51单片微机的所有特性,内部组成基本相同。80C51系列单片微机增设了两种可以用软件进行选择的低功耗工作方式:空闲方式和掉电方式。

87C51单片微机是80C51含EPROM的产品,89C51单片微机是80C51含EEPROM的产品。新一代的80C51系列单片微机除了上述的结构特性外,还向外部电路扩展,有的公司型号配备了串行扩展线,比如芯片间的总线(飞利浦公司的I2C总线)、设备间网络系统总线(CAN总线)等,为外部提供了完善的总线结构。采用总线方式的应用系统多属较复杂的工控系统、智能仪表、监测系统,或满足这些应用而构成的多机与网络系统。总线方式的单片微机在不使用外部并行总线时,外部并行总线引脚可作为I/O口用。在掩膜用户程序时,还可要求将这些I/O口改造成具有各种驱动能力的I/O口。根据应用的需要,部分产品对总线结构作了重大改进,推出了非总线型单片微机,其对外部不存在并行三总线(AB、DB、CB),必要时可以通过串行总线进行扩展。1.3单片微机的应用

按照所使用单片微机的类型不同,单片微机应用系统结构可分成总线方式和非总线方式。在总线方式的应用系统中,单片微机都具有完善的外部扩展总线,如并行总线(AB、DB、CB)、串行通信总线(如UART),通过这些总线可方便地扩展外围单元、外设接口等。采用总线方式的应用系统多属较复杂的工控系统、智能仪表、监测系统,或满足这些应用而构成的多机与网络系统。总线方式的单片微机在不使用外部并行总线时,外部并行总线引脚可作为I/O口用。在掩膜用户程序时,还可要求将这些I/O口改造成具有各种驱动能力的I/O口。非总线方式的应用系统(如80C51系列中的83C751、87C751,83C752、WC752,Motorola的MC68HC05系列中的许多产品)省去了外部并行总线,可构成各种小封装芯片,有限的引脚可提供更多的用户I/O口,以使应用系统的芯片数量最少。采用非总线方式的应用系统多属小型控制器、测控单元、单元仪表等。以下大致介绍一些典型的应用领域和应用特点。l.家用电器领域国内各种家用电器已普遍采用单片微机控制取代传统的控制电路,做成单片微机控制系统,如洗衣机、电冰箱、空调机、微波炉、电饭堡、电视机、录像机及其它视频音像设备的控制器。2.办公自动化领域比如一台PC机可能嵌入了10个单片微机,如控制键盘、鼠标、显示器、CD-ROM、声卡、打印机、软/硬盘驱动器、调制解调器等。

现代办公室中所使用的大量通信、信息产品,如绘图仪、复印机、电话、传真机等,多数都采用了单片微机。 3.工业自动化领域的在线应用如工业过程控制、过程监测、工业控制器及机电一体化控制系统等,许多都是以单片微机为核心的单机或多机网络系统。如工业机器人的控制系统是由中央控制器、感觉系统、行走系统、擒拿系统等节点构成的多机网络系统。而其中每一个小系统都是由单片微机进行控制的。4.智能仪器仪表与集成智能传感器领域应用单片微机来对传统的仪器仪表行业的产品进行“更新换代”,提供了非常理想的的条件。目前各种变送器、电气测量仪表普遍采用单片微机应用系统替代传统的测量系统,使测量系统具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音功能等。5.汽车电子与航空航天电子系统 通常在这些电子系统中的集中显示系统、动力监测控制系统、自动驾驭系统、通信系统以及运行监视器(黑匣子)等,都要构成冗余的网络系统。比如一台RMW-7系列宝马轿车就用了63个单片微机,大部分还是16位单片微机。 单片微机的应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在已能使用单片微机通过软件方法实现了。这种以软件取代硬件,并能提高系统性能的控制技术,称之为微控制技术。这标志着一种全新概念的建立。1.4本教程的教学安排

MCS-5l系列和80C51系列单片微机,硬件结构简洁明了、特殊功能寄存器功能规范、软件指令系统易于掌握,是一种既便于讲授又便于学习、理解和掌握的单片微机。本课程以80C51系列为典型,来介绍单片微机硬件结构和软件知识。硬件知识则是指80C51的硬件资源,如I/O口、定时器/计数器、中断系统等。软件知识是指80C51的寻址方式、指令系统以及程序设计等。在本教材中有较多的例子,叙述比较详细,也适合于初学者自学。考虑到同学们已经学过数字电路、模拟电路等基础课程,本教程总的参考教学时数为70学时左右,其中上课时间为50~60学时,实验上机时间为12~18学时。表1–1Philips公司80C51系列的部分单片微机表1–2ATMEL公司89C51系列的部分单片微机

表1–3华邦公司W78C51和W77C51系列的部分单片微机

第2章MCS-51单片机的硬件结构2.1MCS-51单片机的硬件结构概述2.2中央处理器CPU2.3MCS-51单片机的存储器2.4MCS-51单片机并行输入/输出口2.5MCS-51单片机的复位2.6单片机的几种工作方式2.1MCS-51单片机的硬件结构概述2.1.1MCS-51单片机的内部结构框图单片机主要部件有8个,通过片内总线连接而成:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行输入/输出口(P0口-P3口)、串行口、定时/计数器、中断系统及特殊功能寄存器。2.1.2MCS-51单片机的引脚及片外总线结构

1.MCS-51单片机的引脚

MCS-51单片机的封装有两种形式:一种是双列直插式PDIP(PLASTICDIP)封装的形式,另一种是方形封装形式PLCC(PLASTICLEADEDCHIPCARRIED),方形封装有44引脚,其中4个NC为空引脚。HMOS工艺的80C51单片机采用40引脚的PDIP封装,CHMOS工艺的单片机80C51除采用PDIP封装外,还采用PLCC封装形式。

40引脚PDIP封装的80C51单片机引脚排列图如图2.2所示。2.1MCS-51单片机的硬件结构概述P0口的P0.0~P0.7引脚(39~32脚)P1口的P1.0~P1.7引脚(1~8脚)P2口的P2.0~P2.7引脚(28~21脚)P3口的P3.0~P3.7引脚(10~17脚)Vcc(40脚):电源端,接+5V;Vss(20脚):接地端;XTAL1(19脚)、XTAL2(18脚):外接石英晶体、微调电容或振荡信号输入引脚。RST/VPD(9脚):复位信号输入端引脚。第二功能为备用电源输入端。

/Vpp(31脚):读片内或片外程序存储器选择端引脚。第二功能为编程电压输入端。:低8位地址锁存允许信号输出引脚。第二功能为编程脉冲输入引脚;(29引脚):读片外程序存储器选通信号输出端引脚。2.1.2MCS-51单片机的引脚及片外总线结构⑴地址总线(AddressBus,简写AB)地址线A0~A15共16位,P2口提供高8位地址A8~A15,P0口经地址锁存器提供低8位地址A0~A7。片外存储器可寻址范围达64KB(即=65536个字节)。⑵数据总线(DataBus,简写DB)

地址线D0-D7共8位,由P0口提供,分时输送低8位地址(通过地址锁存器锁存)和8位数据信息。⑶控制总线(ControlBus,简写CB)

控制总线由P3口的第二功能(P3.6)、(P3.7)和3根独立的控制线、ALE和组成。

2.MCS-51单片机的片外三总线结构所谓总线,就是连接单片机与系统中各部件的一组公共的信号线。回上层目录2.1.2MCS-51单片机的引脚及片外总线结构2.2中央处理器CPU2.2.1CPU的组成

CPU由运算器、控制器和若干特殊功能寄存器(如累加器A、B寄存器、程序状态字寄存器PSW、堆栈指针寄存器SP、数据指针寄存DPTR等)组成。

1.运算器具有一般微机所不具备的位处理功能。

2.控制器以主振频率为基准产生时钟信号,控制取指令、执行指令、存取操作数或运算结果等操作,并向其它部件发出各种微控制信号,保证单片机各部分能自动协调地工作。

2.2.2指令执行的基本过程

1.单片机在工作前,首先必须在存储器中装入程序。所谓程序,就是为了完成某项工作,将一系列指令有序地组合,而指令则是要求单片机执行某种操作的命令。

2.指令分为操作码和地址码两个部分,操作码部分规定了单片机操作类型,而地址码部分一般是直接或间接地给出了参与操作的数据的存放地址,所以地址码也可以直接称为操作数。

3.单片机完成每项工作,必须有序地执行一系列指令。单片机执行一条指令一般分为取指令和执行指令两个阶段。从存储器中取出指令,并且对指令进行译码,以明确该指令执行何种操作,以及操作数的存放地址(即操作数存放在哪一个单元中),再根据这个地址获取操作数,这是取指令阶段。按操作码指明的操作类型对获取的操作数进行操作(也可称为运算),这是执行指令阶段。

2.2.2指令执行的基本过程

4.程序计数器(ProgramCounter简称PC)是一个16位的有自动加1功能的计数器。PC没有地址,是不可寻址的,因此用户不能对它进行读写。

16位PC中的内容总是CPU将要执行的那条指令所存放的存储单元的首地址。在单片机复位时,PC中的内容为0000H,指向第1条要执行的指令的首地址,在CPU从存储单元取指令的过程中,每取1个字节的内容,程序计数器PC就自动加1,在取完这条指令后,PC中的内容就是下一条要执行的指令所存放的存储单元的首地址。

5.在实际应用中,有时CPU还要执行程序的转移、子程序的调用和中断响应等操作,那时PC中的内容不再是上述情况中简单的加1,而是根据不同的情况自动地被置入或修改成新的目的地址,从而改变程序的执行顺序。

2.2.3时钟电路与时序

时钟电路用于产生单片机工作所需要的时钟信号。时钟电路框图如图2.4所示。单片机芯片内部有一个高增益反向放大器,其输入引脚为XTAL1,输出引脚为XTAL2,芯片外部通过这两个引脚接晶体振荡器CYS和微调电容器C1、C2形成反馈电路(通常取值在20~30pF),构成稳定的自激振荡器,振荡频率范围通常是1.2MHz~12MHz。振荡脉冲经分频后再为系统所用。

PD是PCON中的控制位,当PD=1时,振荡器停止工作,系统进入低功耗工作态。时钟发生器实质上是一个2分频的触发器,其输入来自振荡器,输出为2相时钟信号,即状态时钟信号,其频率为fosc/2;状态时钟3分频后为ALE信号,其频率为fosc/6;状态时钟6分频后为机器周期,其频率为fosc/12(OSC是osillator的缩写)。

我们也可以引入外部脉冲信号作为单片机的振荡脉冲,对于80C51单片机而言,这时外部脉冲信号是经XTAL1引脚注入,而XTAL2引脚悬空,对外部信号的占空比没有要求,但高低电平持续的时间不就短于20ns。这种方式常用于多块芯片同时工作,这样便于同步,如图2.5所示。2.2.3时钟电路与时序2.2.4时序与时序定时单位所谓时序,是指在执行指令过程中,CPU的控制器所发出的一系列特定的控制信号在时间上的相互关系。

1.拍节:振荡脉冲的周期(晶振周期)定义为拍节(用“P”表示)。

2.状态:振荡脉冲经过两分频后,就是单片机的时钟信号,把时钟信号的周期定义为状态(用“S”来表示)。这样,一个状态包含两个拍节,前半周期为拍节1(P1),后半周期为拍节2(P2)。

3.机器周期:规定一个机器周期为6个状态,相当于12个拍节,即12个振荡脉冲的周期,可分别用S1~S6来表示状态,S1P1、S1P2、S2P1、S2P2……S6P2来表示拍节。

4.指令周期:执行一条指令所需要的时间称之为指令周期,指令周期以机器周期的数目来表示。2.3MCS-51单片机的存储器

2.3.1MCS-51单片机存储器结构概述

与微机中不同,MCS-51单片机中存放程序的程序存储器和存放数据的数据存储器,在物理空间上是相互独立哈佛结构。

MCS-51单片机的存储器在物理结构上可以分为片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。而对这些空间的管理,是分为3个的逻辑地址空间进行的:片内片外统一编址的64KB程序存储器地址空间;片内独立编址的256B数据存储器地址空间;片外独立编址的64KB数据存储器地址空间。即访问这3个不同的逻辑空间,要采用不同形式的指令。如图2.7图2.78051单片机存储器地址空间2.3.2程序存储器1.8051单片机系列有片内有程序存储器和片内无程序存储器之分,片内存储器的容量大小也有所不同。8051单片机片内设置有4K字节的掩膜型ROM,其地址范围为0000H~0FFFH,若片外扩展程序存储器,其地址范围为1000H~FFFFH。程序存储器的0000H~002AH共43个单元用作存储特定程序的入口地址。0000H~0002H这3个单元是系统的启动单元;0003H~002AH共40个单元是中断服务程序地址区,它被分为五段,每段8个单元,分别分配给5个中断源:0003H~000AH

外部中断0中断服务程序地址区;000BH~OO12H

定时/计数器0中断服务程序地址区;0013H~001AH

外部中断1中断服务程序地址区;001BH~0022H

定时/计数器1中断服务程序地址区;0023H~002AH

串行口中断服务程序地址区。

2.3.3MCS-51单片机的数据存储器

MCS-51单片机数据存储器是RAM型存储器,用于暂存数据和运算结果等。

MCS-51单片机数据存储器也可以分为片内数据存储器和片外数据存储器。当片内数据存储器不够用时,可扩展片外数据存储器。一般情况下,片外数据存储器的容量不超过64KB。与内、外部的程序存储器不同,内部和外部数据存储器空间存在重叠(内部RAM的地址范围为00H~0FFH,外部RAM的地址范围为0000H~0FFFFH),通过不同指令来区别。当访问内部RAM时,用MOV类指令;当访问外部RAM时,则用MOVX类指令,所以地址重叠不会造成操作混乱。一、片内数据存储器二、片外数据存储器一、MCS-51单片机的内部数据存储器

MCS-51单片机的内部数据存储器空间共计256字节,在功能上有具体分为片内数据存储器与特殊功能寄存器区,它们统一编址,其中片内数据存储器共有128个字节,占用00H~7FH地址范围,特殊功能寄存器区占用80H~0FFH这段空间。片内数据存储器分成:

1、工作寄存器区

2、可位寻址区

3、通用RAM区三部分。

4、特殊功能寄存器区如图2.8

00H20H2FH7FH1FH30H80H0FFH特殊功能寄存器区

普通RAM区位寻址区

工作寄存器区图2.8MCS-51单片机的内部数据存储器空间返回1.片内数据存储器——工作寄存器区

地址范围在00H~1FH的32个字节,可分成4个工作寄存器组,每组占8个字节。具体划分如下:

第0组工作寄存器:地址范围为00H~07H

第1组工作寄存器:地址范围为08H~0FH

第2组工作寄存器:地址范围为10H~17H

第3组工作寄存器:地址范围为18H~1FH

每个工作寄存器组都有8个寄存器,它们分别称为R0、R1、R2、R3、R4、R5、R6、R7。但在程序运行时,只允许有一个工作寄存器组工作,把这组工作寄存器称为当前工作寄存器组,所以每组之间不会因为名称相同而混淆出错。

可通过对特殊功能寄存器中的程序状态字寄存器PSW的RS1、RS0的状态设置,来选择哪一组工作寄存器作为当前工作寄存器组。单片机复位时,当前工作寄存器默认为0组。

2.片内数据存储器——位寻址区

单片机片内RAM中20H~2FH地址范围中共16个字节单元称为位寻址区。该区的16个字节单元,既可作为一般的RAM使用,进行字节操作,也可以对单元中的每一位进行位操作。

16个字节单元共128位,每位有位地址,地址范围是00H~07H。位寻址区中的每一位地址有两种表示形式:一是表中位地址形式,另一种是单元地址•位序形式。

3.片内RAM数据——通用RAM区

单片机片内RAM中,30H-7FH的80个单元只能以存储单元的形式来使用没有其它任何规定或限制,用户可以根据需要自由安排所以称它为通用RAM区。该区域中的单元只能用直接寻址、寄存器间接寻址等方式按字节访问。

堆栈就是设在单片机内部RAM中。堆栈及其存储特性堆栈的概念堆栈是在单片机内部RAM中从某个选定的存储单元开始划定的一个地址连续的区域,这个区域本身没有任何特殊之处,它就是内部RAM的一部份,不同的是这个区域以选定的某个存储单元作为栈底,只允许向一个方向写入数据,最后一个写入数据的存储单元称为栈顶。堆栈的生成有两种情况,向高地址方向写入数据生成的堆栈称为向上生长型堆栈,反之称为向下生长型堆栈,MCS-51单片机属于向上生长型堆栈(即向高地址方向生成)。数据写入堆栈为插入运算(PUSH),通常称为入栈,数据从堆栈中读出为删除运算(POP),通常称为出栈,按堆栈的规定,入栈和出栈只能在栈顶一端进行。MCS-51单片机中,用一个称为堆栈指针SP(StackPointer)的特殊功能寄存器来给出栈顶存储单元的地址,堆栈指针SP中存储的总是堆栈栈顶存储单元的地址,即堆栈指针SP总是指向堆栈栈顶。向上生长型堆栈出栈入栈的操作原则是“先进后出”或“后进先出”。入栈操作规则为:先SP中的内容加1,后写入数据;出栈操作规则为:先读出数据,后SP中的内容减1。系统复位后,SP中的内容为07H,在程序设计中,常用指令对SP的复位值进行修改,将堆栈开辟在通用RAM区。

00H20H2FH7FH1FH30H80H0FFH特殊功能寄存器区普通RAM区位寻址区

工作寄存器区初始SPSP栈顶数据出栈SP-1指向新的栈顶,即下一个要出栈的数据特殊功能寄存器(SpecialFunctionRegisters简称SFR)

1.在8051单片机中设置了21个特殊功能寄存器,它们不连续地分布在地址为80H-FFH的128个字节的存储空间中。

2.在这21个SFR中,凡是字节地址能被8整除(即16进制的地址码尾数为0或8)的11个单元均具有位寻址能力,有效的位地址共有82个。

3.82个有效位地址可用位地址、位符号、单元地址.位序和寄存器名.位序四种方法来表示,但一般是用位符号或寄存器名.位序来表示的。表2.3各特殊功能寄存器的符号及地址表续前表21个特殊功能寄存器在各功能机构的分布:中央处理器(CPU):A、B、PSW、SP、DPTR(DPH、DPL);并行口:P0、P1、P2、P3;串行口:SCON、SBUF、PCON;中断系统:IE、IP;定时/计数器:TMOD、TCON、TH0、TL0、TH1、TL1。

5.特殊功能寄存器A、B、PSW、DPTR(DPH、DPL)介绍。

PSW的各位的位符号及其意义:

二、片外数据存储器外部数据存储器一般用来存放相对来讲是用不太频繁的数据,其中的数据不能直接进行处理,要进行处理前必须提前从外部数据存储器送到单片机内部。外部数据存储器地址空间寻址范围为64K字节,采用R0、R1或DPTR寄存器间址方式访问。当采用R0、R1间址时只能访问00H~0FFH的低256字节,采用DPTR间址可访问整个64K字节空间。

2.4MCS-51单片机并行输入/输出口

2.4.1端口的功能

80C51单片机有4个8位的双向并行输入/输出(I/O)端口,称为P0口、P1口、P2口和P3口。

1.P0口是一个双功能的8位并行I/O口,字节地址为80H,位地址为80H~87H。可作输入/输出端口使用,又可作地址/数据总线分时传输低8位地址和8位数据。

2.P1口是单一功能的并行I/O口,字节地址为90H,位地址为90H~97H。它只用作通用的数据输入/输出口。

3.P2口是一个双功能的8位并行I/O口,字节地址为80H,位地址为A0H~A7H。可作通用的输入/输出口用,又可用作高8位地址总线。

4.P3口是一个双功能的8位并行I/O口,字节地址为B0H,位地址为B0H~B7H,它的第一功能是通用输入/输出口,作第二功能用时,各引脚定义如下:P3.0:RXD(串行口输入);P3.1:TXD(串行口输出)P3.2:(外部中断0输入)P3.3:(外部中断1输入)P3.4:T0(定时/计数器0外部计数脉冲输入)P3.5:T1(定时/计数器1外部计数脉冲输入)P3.6:(片外数据存储器写选通信号输出)P3.7:(片外数据存储器读选通信号输出)。2.4.2端口的内部结构与运作1.P0口2.P1口3.P2口4.P3口⑴结构与运作图2.10画出了P0口的某位P0.X(X=0、1…6、7)的结构图。

P0口的位电路结构由以下几个部分组成:1个输出锁存器,用于进行输出数据的锁存;2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;由两只场效应管组成的输出驱动电路。⑵P0口的特点P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口;具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。而用作通用I/O口时,由于引脚上需要外接上拉电阻,端口不存在高阻(悬空)状态,此时P0口只是一个准双向口;为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;单片机复位后,锁存器自动被置1;一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;P0口能驱动8个TTL负载。

⑴结构与运作

P1口的位结构如图2.11所示。P1口是一个准双向口,只作通用输入/输出口使用。除了无多路开关MUX之外,其输出驱动部分也与P0口不同

P1口的位电路结构由以下几个部分组成:一个数据输出锁存器,用于输出数据的锁存;两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;数据输出驱动电路,由场效应管VT和片内上拉电阻R组成。

⑵P1口的特点

P1口由于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口。作为输出口时,不需要再在片外拉接上拉电阻;

P1口读引脚输入时,必须先向锁存器写入1,其原理与P0口相同;

P1口能驱动4个TTL负载。

⑴结构与运作从图2.12中可见,P2口的位结构比P1口多了一个多路开关MUX。

P2口的位电路结构由以下几个部分组成:一个数据输出锁存器,用于输出数据的锁存;两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;一个多路开关MUX,它的一个输入来自锁存器的Q端,另一个输入来自内部地址的高8位;数据输出驱动电路由非门M,场效应管VT和片内上拉电阻R组成。⑵P2口的特点

P2口用作高8位地址输出线应用时,与P0口输出的低8位地址一起构成16位的地址总线,可以寻址64KB地址空间。当P2口作高8位地址输出口时,其输出锁存器原锁存的内容保持不变。作为通用I/O口使用时,P2口为准双向口,功能与P1口一样。

P2口能驱动4个TTL负载。⑴结构组成

P3口是双功能8位输入/输出口,内部结构中增加了第二输入/输出功能,如图2.13所示。

P3口的位电路结构由以下几个部分组成:一个数据输出锁存器,用于输出数据的锁存;

3个三态输入缓冲器,BUF1用于读锁存器,BUF2、BUF3用于读引脚和第二功能数据的缓冲输入;数据输出驱动电路,由与非门M,场效应管VT和片内上拉电阻R组成。

⑵P3口的特点P3口内部有上拉电阻,不存在高阻输入状态,是一个准双向口;P3口作第二功能的输出/输入或作通用输入时,均需将相应的锁存器置1。实际应用中,由于复位后P3口锁存器自动置1,已满足第二功能运作条件,所以可以直接进行第二功能操作;P3口的某位不作为第二功能使用时,则自动处于通用输出/输入口功能,可作为通用输出/输入口使用;作通用输出/输入口使用时,输入信号取自缓冲器BUF2的输出端,作第二功能使用时,输入信号取自缓冲器BUF3的输出端;P3口能驱动4个TTL负载。2.5MCS-51单片机的复位2.5.1复位电路复位操作通常有两种基本形式:上电自动复位、手动按键复位,如图2.14所示。上电自动复位操作要求接通电源后自动实现复位操作。如下左图所示。手动按键复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位,如下右图所示。在8C051单片机的RST引脚上输入高电平并至少保持两个机器周期(即24个振荡周期)以上时,复位过程即可完成。如果RST引脚持续保持高电平,单片机就处于循环复位状态。复位电路2.5.2单片机的复位状态1.程序计数器PC初始化为0000H,使单片机从OOOOH单元开始执行程序。在运行中,当单片机的程序受外界因素干扰陷入死循环或跑飞时,为摆脱困境,可将单片机复位,重新启动。2.复位也可使单片机退出低功耗工作方式而进入正常工作状态。

3.单片机复位后:P0~P3的端口锁存器被设置成FFH;堆栈指针SP设置成07H;串行口的SBUF无确定值;其它各专用寄存器包括程序计数器PC均被设置成00H;片内RAM不受复位的影响,上电后RAM中的内容随机。2.6单片机的几种工作方式2.6.1程序执行方式

单片机上电复位后,从程序存储器的OOOOH单元开始执行程序,程序执行方式是单片机的基本工作方式。2.6.2掉电保护方式

MCS-51单片机设置有掉电保护措施,其保护措施是:单片机系统在运行中突然掉电故障时,先保存重要的数据,然后启用备用电源维持供电。

2.6.3低功耗方式

80C51单片机有两种功耗节电方式:空闲方式(idlemode)和掉电方式(powerdownmode)。空闲方式和掉电方式都是由特殊功能寄存器中的电源控制寄存器PCON的有关控制位来控制的,图2.15为为两种节电方式的工作原理图。电源控制寄器PCON不可位寻址,字节地址为87H,其每位的定义如下:SMOD波特率倍增位,在串行通信中应用。/保留位。GF1用户通用标志在1。GF0用户通用标志在0。PD掉电方式控制位,PD=1,单片机进入掉电方式。IDL空闲方式控制位,IDP=1,单片机进入空闲方式。1.空闲方式

使PCON中的IDL置1,单片机系统就可进入空闲方式。在空闲方式下,振荡器仍然运行,CPU进入睡眠状态,所有外围电路(中断系统、串行口和定时/计数器)仍继续工作,但内部RAM和特殊功能寄存器中的数据保持在原状态不变。空闲方式的退出可采用两种方式:中断方式和硬件复位方式。2.掉电方式

使PCON中的PD位置1(是运行程序中最后执行的指令),单片机系统就可进入掉电方式。在掉电方式下,振荡器停止运行,但内部RAM和特殊功能寄存器中的数据保持在原状态不变,直到退出掉电方式。退出掉电方式的惟一方法是硬件复位,复位要重新定义特殊功能寄存器,但不改变单片机片内RAM的内容。在恢复正常工作水平后,才能启动硬件复位,而且复位信号必需维持足够的时间,允许振荡器重新启动并达到稳定。71

第三章MCS-51指令系统3.1指令系统概述3.2寻址方式3.3指令系统72MCS-51系列单片机指令基本情况51系列单片机指令集含有111条指令每条指令在程序存储器ROM中占据一定空间,以字节为单位按指令所占字节数分类:

单字节(49条);双字节(46条);3字节(16条)

每条指令在执行时要花去一定的时间,以机器周期为单位按指令执行时间分类:单周期(64条);双周期(45条);4周期(2条)按指令的功能分类,可分为5大类:

数据传送类(29条);算术运算类(24条)

逻辑运算及移位类(24);控制转移类(17条)

位操作类(17条)

第三章节MCS-51指令系统73ASM-51指令格式51系列单片机采用ASM-51指令格式,格式如下:[标号:]操作码

[目的操作数][,源操作数][;注释]其中包含:方括符[]表示可选项标号代表指令所在地址,1-8个字母/数字,“:”结尾操作码就是指令功能助记符,指令实体目的操作数源操作数注释,以“;”开头74第一节MCS-51系列单片机寻址方式寻址方式:计算机指令中操作数(按地址)获取的方式MCS-51系列单片机提供了7种寻址方式,如果一条指令中包含多个操作数,就可能用到一种以上的寻址方式1、立即寻址2、直接寻址3、寄存器寻址4、寄存器间接寻址5、变址寻址6、相对寻址7、位寻址751、立即寻址(一)在指令中直接给出操作数的寻址方式称为立即寻址。这个操作数叫立即数,如指令:

MOVA,#3AH该指令是将立即数3AH送累加器,由于MCS-51单片机的片内存储器是8位存储器,因此立即数一般为8位二进制数。在MCS-51的指令系统中,用#来识别立即数。74HA

操作码立即数程序存储器PCPC+13AH3AH761、立即寻址(二)在有的指令中,也会用到16位立即数,如:MOVDPTR,#0123H该指令是将16位立即数0123H送数据指针DPTR(用于对16位地址的存储器寻址),DPTR由两个特殊功能寄存器DPH和DPL组成,在后面的寻址方式中会使用到DPTR。90H01H23H01H23HPCPC+1PC+2操作码高位立即数低位立即数程序存储器SFRDPHDPL772、直接寻址在指令中直接给出操作数地址的寻址方式称为直接寻址,直接寻址何以寻址特殊功能寄存器、内部RAM(128字节)和位地址,如:MOVA,70H;A←(70H)该指令是将RAM单元70H(地址)的内容送累加器。74H70HPCPC+1操作码直接地址程序存储器内部RAM70HAXXXX783、寄存器寻址在指令的操作码中包含了某一工作寄存器的地址(Rn:R0—R7),而操作数则存放在该寄存器中,如:MOVA,R5;A←(R5)该指令是将R5的内容送累加器。101PC操作码程序存储器内部RAMR5AXXXXR6R71101794、寄存器间接寻址在指令的操作码中包含了某一工作寄存器的地址(可用作地址指针的工作寄存器是@Ri:R0、R1),而操作数地址则存放在该寄存器中,如:MOVA,@R1;A←((R1))该指令是将R1的内容送作为地址,将该地址所对应的RAM单元的内容送累加器。1PC操作码程序存储器内部RAMR1AXX68H111001XX68H805、变址寻址将PC或DPTR的值作为基地址,将Acc的值作为变址地址,二者向加得到的值作为操作数的地址,如:MOVA,@A+DPTR;A←((A)+(DPTR))这种寻址方式一般用于常数表,DPTR的内容为表头地址,Acc的内容就是数据在表中的位置。PC操作码程序存储器SFRA100100111EH02HALU030FHXXDPHDPLF1H02F1H02F1H+1EH=030FHXX816、相对寻址(一)相对寻址以PC当前值(PC当前值是执行完指令后的值,也就是当前指令的PC值+指令所占的字节数)作为基地址,与指令中给定的偏移量rel相加,所得的结果作为程序的转移地址,指令中的偏移量rel是一个用补码表示的8位带符号数。相对寻址用于相对转移指令中,如:

JZ30H;当A=0时,PC←PC+2+rel

当A≠0时,PC←PC+2//程序顺序执行该指令以累加器Acc的值是否为0为转移条件,如果为Acc的值0则转移,如果Acc的值不为0则程序顺序执行。程序的执行过程见相对寻址(二)。在MCS-51的指令系统中,相对转移指令多为2字节指令,因此目的地址一般是PC+2+rel;如果是3字节指令,目的地址是PC+3+rel。偏移量rel是一个8位带符号数,因此程序转移的范围在PC当前值的+127—-128之间。826、相对寻址(二)60HPC操作码程序存储器PC0102HALU30HXX0100HPC+10101HPC+20102HPC0123H偏移量0102H+30H=0132Hrel=30H0132H837、位寻址MCS-51系列单片机中有专用的位运算指令,可以对位寻址区的每一个位进行数据传送、逻辑运算等操作,如:MOVC,07H;C←(07H)该指令属于位操作指令,作用是将位地址为70H的位单元(字节地址20H单元的D7位)传送到位累加器C中。PC操作码程序存储器C20HA2H00PC+107HPSWX07SFRX84MCS-51指令集(包含5大类功能)1、数据传送类指令:(29条)2、算术运算类指令:(24条)3、逻辑运算及移位类指令:(24条)4、控制转移类指令:(17条)5、位操作指令:(17条)851、数据传送类指令(一)片内数据存储器间传送:(MOV—16条)片外数据存储器送累加器:(MOVX—4条)程序存储器送累加器:(MOVC—2条)数据交换:(XCH,XCHD,SWAP—5条)数据交换:(PUSH,POP—2条)861、数据传送类指令(二)片内数据存储器间传送:(MOV—16条)MOV类指令带有两个操作数,前一个是目的地址,后一个是源操作数。作用是将源操作数送目的地址,如:MOVA,30H;A←(70H)

AccDirect直接寻址@Ri间接寻址Rn寄存器寻址#data立即数871、数据传送类指令(三)片外数据存储器数据送累加器:(MOVX—4条)MOVX类指令可以在累加器和@Ri或@DPTR(@Ri为8位地址;@DPTR为16位地址)所指向的外部数据存储器间相互传送数据,具体指令有:MOVXA,@Ri;A←((Ri))MOVXA,@DPTR;A←((DPTR))MOVX@Ri,A;((Ri))←AMOVX@DPTR,A;((DPTR))←A

881、数据传送类指令(四)程序存储器数据送累加器:(MOVC—2条)MOVX类指令采用变址寻址方式进行寻址。该类指令通常称为查表指令,送入累加器Acc的数据是事先写入的表格数据,通常使用伪指令DB或DW预先定义在程序存储器中,具体指令有:MOVCA,A+@DPTR;MOVXA,A+@PC;891、数据传送类指令(五)数据交换指令:(5条)XCHA,direct(字节互换)XCHA,@Ri(字节互换)XCHA,Rn(字节互换)XCHDA,@Ri

累加器Acc的低4位与((Ri))的低4位互换,各自的高4位不变SWAPA

累加器Acc的高低4位互换901、数据传送类指令(六)堆栈操作指令:(2条)PUSH压栈指令POP弹栈指令

堆栈由特殊功能寄存器SP(堆栈指针)进行管理

理论上堆栈在存储器中可以放在任意位置,但为了不和工作寄存器冲突,一般将堆栈放在存储器靠后的位置堆栈指针SP总是指向栈顶(自动变化,见第二章相关内容)PUSH和POP一般是成对使用的912、算术运算类指令(一)加法运算:

(ADD—4条)带进位加法运算:(ADDC—4条)带借位减法运算:(SUBB—4条)加1/减1操作:

(INC,DEC—9条)单字节乘/除法运算:

(MUL,DIV—2条)算术运算类指令共有6种24条十进制调整:

(DAA—1条)922、算术运算类指令(二)加法运算:

(ADD—4条)带进位加法运算:(ADDC—4条)带借位减法运算:(SUBB—4条)所有的加法(ADD)、带进位加法(ADDC)、带借位减法(SUBB)运算都是以Acc为一个加数或被减数,最终结果也存进Acc

加法(ADD)、带进位加法(ADDC)以及带借位减法(SUBB)运算中,如果产生了进位或借位,将自动对PSW中的Cy标志位置“1”带进位加法(ADDC):(A)←

(A)+(Cy)+(第二操作数)带借位减法(SUBB):(A)

(A)-

(Cy)-

(第二操作数)932、算术运算类指令(三)加1/减1操作:(INC,DEC—9条)INC,DEC与用加/减法指令做加1/减1操作不同之处在于INC、DEC不影响标志位。单字节乘/除运算:(MUL,DIV—2条)两个单字节数的乘/除法运算只在A与B之间进行。MULAB:(A)与(B)相乘,积为16位数,(A)←积的高8位;(B)←积的低8位DIVAB:(A)除以(B),结果用2字节表示,(A)←商的整数部分;(B)←余数942、算术运算类指令(四)十进制调整:(DAA—1条)用于两个BCD码之间的相加,这条指令只能跟在

ADD或ADDC之后BCD码是指“用二进制表达的十进制数”。如:十进制数20可以用二进制数00010100B表示;也可以用十六进制数14H表示;还可以用BCD码00100000B或20H表示。4个二进制位就可以表示一位BCD码:0000~1001可表示十进制数(BCD数)0~9;8个二进制位就可以表示两位压缩的BCD码:00000000~10011001表示00~99。952、算术运算类指令(五)DAA指令的执行过程若(A)3~0>9或(AC)=1则(A)3~0

←(A)3~0+6;若(A)7~4>9或(CY)=1则(A)7~4

←(A)7~4+6;如:两个十进制数“65”与“58”相加,根据常识,显然其和应当为“123”。MOVA,#65HADDA,#58HDAA结果:(A)=23H(Cy)=1

6501100101

5801011000

+)6601100110+)191800113200101963、逻辑运算及移位类指令(一)该类指令共有5种24条逻辑与运算:(ANL—6条)逻辑或运算:(ORL—6条)逻辑异或运算:(XRL—6条)累加器清零/取反:(CLR,CPL—2条)累加器移位操作:(RL,RLC,RR,RRC—4条)973、逻辑运算及移位类指令(二)逻辑与(ANL),逻辑或(ORL),逻辑异或(XRL):指令形式ByteTmANL(ORL,XRL)direct,A21ANL(ORL,XRL)direct,#data32ANL(ORL,XRL)A,#data21ANL(ORL,XRL)A,direct21ANL(ORL,XRL)A,@Ri11ANL(ORL,XRL)A,Rn11累加器清零/取反操作(CLR,CPL—2条)CLRA—对累加器清零

1Byte1TmCPLA——对累加器按位取非

1Byte1Tm983、逻辑运算及移位类指令(三)逻辑运算指令在程序中的应用(下面的例子认为Acc的内容为9AH)逻辑与ANL运算用于对某些位进行清0或者保留:例:ANLA,#0FH;则(A)=0AH逻辑或ORL运算用于对某些位进行置1或者保留:例:ORLA,#0FH;则(A)=9FH逻辑异或XRL运算用于对某些位进行取反或者保留:例:XRLA,#0FH;则(A)=95H(A)

10011010#0FH

00001111

95H

1001010199RRCA

带进位循环左移3、逻辑运算及移位类指令(四)累加器移位操作:(RL,RLC,RR,RRC—4条)RLA

循环右移CyRRA

循环左移RLCA

带进位循环右移累加器Acc累加器Acc累加器Acc累加器AccCy1004、控制转移类指令(一)控制转移类指令用于对程序的执行顺序进行控制(即改变PC指针的当前值),该类指令共有4种17条无条件转移:(LJMP,AJMP,SJMP,JMP—4条)条件转移(判断跳转):(JZ,JNZ,CJNE,DJNZ—8条)子程序调用及返回:(LCALL,ACALL,RET,RETI—4条)空操作:(NOP—1条)“消耗”一个机器周期1014、控制转移类指令(二)无条件转移:(LJMP,AJMP,SJMP,JMP—4条)LJMPaddr16

长跳转指令

——可在64K范围内跳转AJMPaddr11绝对跳转指令

——可在指令所在的2K范围内跳转

SJMPrel相对跳转指令

——可在当前PC-128与+127范围内跳转

JMP@A+DPTR间接长跳转指令

——可在以DPTR为基址+A为偏移量

之和所指向的64K程序范围内跳转1024、控制转移类指令(三)条件转移:(JZ,JNZ,CJNE,DJNZ—8条)JZrelJNZrel

——根据Acc的内容是否为0决定是否跳转

DJNZdirect,relDJNZRn,rel

——将direct(或Rn)里的内容减1,结果不

等于0就跳转;等于0则不跳转继续执行程序1034、控制转移类指令(四)条件转移:CJNEA,

#data,relCJNEA,

direct,

relCJNE@Ri,

#data,relCJNERn,

#data,rel

——将A(或@Ri,或Rn)与#data(或direct)相比

较,其值不相等就跳转;相等则不跳转,继

续执行程序1044、控制转移类指令(五)子程序调用及返回:(LCALL,ACALL,RET,RETI—4条)LCALLaddr16子程序长调用指令——可在64K范围内调用子程序ACALLaddr11子程序绝对调用指令——可在指令所在的2K范围内调用子程序RET

子程序返回指令——子程序结束并返回调用的下一条指令RETI

中断服务子程序返回指令——中断结束/返回被打断处的下一条指令1055、位操作指令(一)该类指令共有17条位传送:

(MOV—2条)位清零/置位:

(CLR,SETB—4条)位逻辑与/或/非运算:(ANL,ORL,CPL—6条)位条件转移:

(JC,JNC,JB,JNB,JBC—5条)1065、位操作指令(二)位传送指令(2条):

MOVC,bit

——(C)

(bit)

MOVbit,C

——(bit)

(C)

注:bit表示位地址位清零/置位指令(4条):

CLRbit(或C)——(bit或C)“0”

SETBbit(或C)——(bit或C)“1”

位逻辑与/或/非指令(6条):

ANLC,bit(或/bit)

ORLC,bit(或/bit)

CPLbit(或C)

注:“/bit”表示对bit位先取反然后再参加运算1075、位操作指令(三)判位条件转移指令(5条):JCrel——(Cy)=“1”就跳转;否则不跳转JNCrel——(Cy)≠“1”就跳转;否则不跳转JBbit,rel——(bit)=“1”就跳转;否则不跳转JNBbit,rel——(bit)≠“1”就跳转;否则不跳转JBCbit,rel——(bit)=“1”就先将其清零再跳转;否则不动此位也不跳转

温馨提示

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

评论

0/150

提交评论