收藏 分享(赏)

9.5单片机课件.ppt

上传人:天天快乐 文档编号:1240254 上传时间:2018-06-20 格式:PPT 页数:242 大小:3.13MB
下载 相关 举报
9.5单片机课件.ppt_第1页
第1页 / 共242页
9.5单片机课件.ppt_第2页
第2页 / 共242页
9.5单片机课件.ppt_第3页
第3页 / 共242页
9.5单片机课件.ppt_第4页
第4页 / 共242页
9.5单片机课件.ppt_第5页
第5页 / 共242页
点击查看更多>>
资源描述

1、单片机原理及应用,第一章 概 述第二章 MCS-51系列单片机组成原理第三章 MCS-51系列单片机存储器第四章 MCS-51系列单片机指令系统第五章 MCS-51系列单片机汇编语言程序设计第六章 MCS-51系列单片机的扩展应用第七章 人 机 接 口第八章 单片机新技术介绍,第一章 概 述,1.1 单片机的概念,大、中、小型计算机的控制核心是中央处理单元CPU(Centure Prossesor Unit),其主机往往是由多块印刷板构成的,CPU与外部设备之间可能是通过I/O通道或I/O处理机联系的,系统的输入/输出操作由I/O通道或I/O处理机控制完成,如图1-1所示。,1.1.1 计算机

2、的组成,微型计算机的控制核心是微处理器MPU(Microprosessor Unit),实际上,人们并不严格区分CPU和MPU的叫法,往往统称为CPU。通常MPU、内存和I/O接口是做在一块印刷电路板上的(也有做在几块印刷电路板上的,如STD总线控制机),MPU一般是通过I/O接口与外部设备联系,输入/输出操作往往是在CPU直接控制下完成的,如图1-2所示。,1.1.2 微型计算机的组成,单片微型计算机的核心是微处理器MPU,与一般微型计算机所不同的是它将微处理器、内存、I/O接口、中断逻辑、定时器/计数器等集成到一个集成电路芯片上,有的单片机还集成了A/D、D/A转换器等电路,如图1-3所示

3、。这种结构特别适用于测控领域,因此,也称其为微控制器(Microcontroller),简写为MCU,但国内大多数人习惯上都叫单片机,故本书也沿用这种叫法。,1.1.3 单片微型计算机的组成,作为单片机的一个典型系列,MCS-51是Intel公司1980年推出的8位单片机,长期以来一直是单片机的主流机型,国内应用十分普遍。除MPU以外,其内部集成了4个8位双向并行接口,1个全双工串行接口,23个16位定时器/计数器,1个两级5个中断源的中断逻辑,128256字节的数据RAM,一定容量的程序ROM(个别机型无片内程序ROM)。其组成框图如图1-4所示。,1.1.4 MCS-51系列单片机的组成,

4、1.2 单片机的分类,1.2.1 按字长分类 1、4位单片机 4位单片机主要用于控制诸如洗衣机、微波炉等家用电器及高 档电子玩具。 2、8位单片机 8位单片机是目前单片机中的主流机型。由于8位单片机的功能强、价格低廉、品种齐全,因而被广泛应用于各个领域。 3、16位单片机 4、32位单片机 5、64位单片机 1.2.2 按用途分类 1、通用型单片机:将资源全部提供给用户使用,如片内寄存器、存储器、中断系统、定时器/计数器、I/O接口等。 2、专用型单片机:针对各种特殊应用场合而专门设计的单片机。,1.3 单片机的特点,1形小体轻功耗低 2控制功能强,运算速度快,性价比高 3应用系统研制周期短,

5、软、硬件开发灵活方便,1.4 单片机的应用,1. 工业控制:各种测控系统等。2. 仪器仪表:智能仪器仪表等。3. 家电、玩具:全自动家用电器等。4. 计算机外设和通讯设备:磁盘驱动器控制等。5. 数据处理:图形处理、数字信号处理等。6. 汽车控制:点火系统控制等。7. 国防应用:导弹控制。,1.5 单片机应用系统的开发,单片机应用系统是指根据具体应用的需要,以单片机为核心,连接外部电路或设备所构成的具有特定功能的系统。图1-5是一个基于单片机的函数发生器原理框图,是一个实际的应用系统。,第二章 MCS-51系列单片机组成原理,2.1 MCS-51系列单片机内部结构 Intel公司推出的MCS-

6、51系列单片机采用模块式结构,其基本型为8051,这一系列各种加强型单片机都是以8051为内核,增加一定的新功能后组成的,所以它们与8051完全兼容。8051是MCS-51系列单片机中较早的典型产品,它包括三种形式的芯片:8031、8051、8751。这三种形式的区别在于8031无片内ROM、8051有片内掩膜ROM、8751有片内EPROM。,图2-2 MCS-51内部结构图,1微处理器 CPU由运算器和控制器组成。运算器(即算术逻辑单元ALU)负责执行所有的算术逻辑运算,控制器负责对指令代码进行译码,产生各种控制信号,从而完成指令操作。2输入/输出接口 8051内部共有4个双向8位并行I/

7、O接口P0P3,1个全双工串行接口(借用并口P3引脚)。通常P0口为数据/地址低8位分时复用,P1口为通用I/O接口,P2口为地址高8位,P3口为双功能接口,这4个并行口都具有内部锁存器。串行接口内带有缓冲器。3片内存储器 8051片内有128字节的静态随机存取存储器SDAM作为片内数据存储器使用,字节地址为00H7FH。还有21个特殊功能寄存器(SFR),用于各种编程控制,字节地址为80HFFH(占用其中21个地址)。,4定时器/计数器 8051单片机片内具有两个16位加法计数器,分别为T0和T1。用于各种定时和对外部事件计数。5中断系统 8051单片机内的中断逻辑具有5个中断源,两个优先级

8、。每个中断源都被设置了固定的入口地址,响应中断时能自动转到对应中断源的入口地址执行程序,使编程得到简化。6其他电路 8051单片机内部含有振荡电路,只需外接适当频率的晶体振荡器作为振荡源,振荡信号经内部电路整形作为单片机的主频信号。当然,也可用外部脉冲信号作为主频信号。,2.2 MCS-51系列单片机时序,2.2.1 机器周期的概念 MCS-51系列单片机中一个基本动作(如指令读操作码)至少需要两个时钟周期,这两个时钟周期分别称为两个时相(时钟相位)P1和P2,可以看成动作的基本单位,因此P1、P2合起来称为一个状态S。而执行一条指令至少需要6个状态,可以看成执行指令的基本单位,称为机器周期。

9、所以存在如下关系:1个机器周期=6个状态=24个时钟周期MCS-51系列单片机的指令由14个机器周期组成。2.2.2 典型指令的执行时序 书上图2-3给出了MCS-51系列单片机典型指令执行时序。图中以主频信号和ALE的输出作为参考信号。,2.3 MCS-51系列单片机引脚功能,MCS-51系列单片机大多数采用40引脚双列直插式(DIP)封装形式 ,采用 CHMOS 工艺制造的80C51/80C31还有44引脚的方形封装形式。,MCS-51引脚配置,MCS-51逻辑框图,2.3.1 I/O引脚和I/O端口,P0.7P0.0:P0口是一个漏极开路型准双向I/O口。在访问外部存储器时,它是数据总线

10、和地址总线低8位分时复用的接口;在EPROM编程时,它接收指令字节;在验证程序时,输出指令字节,并要求外接上拉电阻。P1.7P1.0:P1口是带内部上拉电阻的8位双向I/O口,它是通用I/O端口。在EPROM编程和程序验证时,它接收低8位地址。P2.7P2.0:P2口是带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它输出高8位地址;在对EPROM编程和程序验证时,它接收高8位地址。P3.7P3.0:P3口是带内部上拉电阻的8位双向I/O口,它是双功能I/O端口。除基本输入/输出功能外,每个引脚还有专用功能,其专用引脚功能见书上表2-2所示。,2.3.2 复位引脚和复位电路,(1)复位功

11、能RST:单片机的复位是靠外部电路实现的。在振荡信号正常运行情况下,只要RST引脚保持两个机器周期以上时间的高电平,系统就能复位。(2)备用电源功能VPD:当Vcc掉电时,在Vcc下降到操作系统允许极限之前,RST/ VPD引脚接上备用电源,向内部RAM供电,这时系统处于一种低功耗方式。,1复位引脚RST/VPD,图2-8 上电复位电路,2复位电路 MCS-51系列单片机常见的外部复位电路有四种,如图2-8至图2-11所示。,图2-9 外部复位电路,图2-10 上电外部复位电路,图2-11 抗干扰复位电路,(a)实用的上电复位电路,图2-11 抗干扰复位电路,(b)实用的上电及外部复位电路,表

12、2-3 MCS-51系列单片机复位后内部寄存器的内容,3复位状态 复位状态就是单片机复位后内部寄存器及引脚的初始数据或初始电平。MCS-51系列单片机复位后内部各寄存器的状态如书上表2-3所列。,2.3.3 时钟引脚和时钟电路,1时钟引脚:XTAL1和XTAL2是MCS-51系列单片机的时钟引脚。2时钟电路:MCS-51系列单片机的主频信号有内部和外部两种产生方式。,2.3.4 控制引脚 MCS-51系列单片机的控制引脚有一部分占用P3口线,另一部分是单独的引脚,在书上20页2.3.5 主电源引脚1Vcc:+5V工作电压。正常工作时Vcc引脚接+5V电源电压。2Vss:接地端。正常工作时Vss

13、引脚接地。,第三章 MCS-51系列单片机存储器,3.1 MCS-51系列单片机系统的存储器配置,8051的存储器有4个不同的逻辑空间,即内部程序存储器、内部数据存储器、外部程序存储器、外部数据存储器。它们分别由不同的指令和寻址方式访问,对外部的两个逻辑空间还使用不同的读控制信号。MCS-51系列单片机8051的存储器配置 图见下页,3.2 内部存储器和特殊功能寄存器,3.2.1 内部程序存储器,8051/8751内部有4KB ROM/EPROM程序存储器,地址为0000H0FFFH。当接高电平时,使程序从内部ROM/EPROM开始运行,当PC值超过OFFFH时,自动转到外部程序存储区1000

14、HFFFFH去执行程序。,3.2.2 内部数据存储器,8031/8051/8751单片机内有128字节的数据存储区,字节地址为00H7FH,与外部数据存储器低端128字节地址相同,但访问它们的指令不同,访问内部数据存储器用MOV指令,访问外部数据存储器用MOVX指令。内部这128个字节的SRAM又分为三个区域,即工作寄存器区、位寻址区和数据缓存区。内部数据存储器 见下页。,(1)工作寄存器区:00H1FH为4个工作寄存器区,每区8个单元,分别称为R0、R1、R2、R3、R4、R5、R6、R7,且4个区的工作寄存器同名。实际上,它们都是通用的数据寄存器,可用于寄存器地址和数据,其中R0、R1还可

15、作为间接寻址寄存器使用。当程序中需使用工作寄存器时,必须先指出它们是哪一个区的,这是由特殊功能寄存器PSW中的RS1和RS0两位来选择的。(2)位寻址区:20H2FH这16个字节的每一位都可以单独进行操作,每一位有一个地址,称为位地址,例如20H单元的位地址为00H07H。共有128个位地址。(3)数据缓冲区:30H3FH这80个字节为一般的数据缓冲区,但通常将堆栈区放在这个空间。由于复位后堆栈指针自动指向07H(即工作寄存器区),故在程序开始需要用指令将SP设置在30H以后。,8051单片机内部地址80HFFH空间有21个专用寄存器,见表3-1所示(书上25页),也称为特殊功能寄存器SFR。

16、其中有11个可以位寻址,如图3-3所示(书上26页) 。图中有7个控制寄存器,各位功能见表3-2所示(书上27页) 。表中PCON、TMOD不可位寻址。1程序计数器PC程序计数器PC用于存放下一条要执行指令的地址(PC总是指向程序存储器地址),是一16位专用寄存器,寻址范围64K字节,PC在物理结构上是独立的,不属于特殊功能寄存器SFR块。,3.2.3 特殊功能寄存器,2累加器A累加器A是一个最常用的专用寄存器,系统运转时工作最频繁,大部分单操作数指令的操作数取自累加器A,很多双操作数指令的一个操作数取自A;加、减、乘、除算术运算以及逻辑操作指令的结果都存放在累加器A或AB寄存器中;输入/输出

17、大多数指令都以累加器A为核心操作。指令系统中采用A作累加器的助记符。3寄存器B它是一个8位寄存器。一般用于乘除法指令,与累加器A配合使用。寄存器B存放第二操作数、乘积的高位字节或除法的余数部分。在其他指令中,可作为中间结果的暂存器使用,相当于RAM中的一个特殊单元。,程序状态字是一个8位寄存器,用来存放程序的状态信息,表征指令的执行状态,供程序查询和辨别之用。其PSW格式如下:,(1)CY:(PSW.7)进/借位标志 在执行加/减法指令时,如果操作结果D7位有进/借位,CY置“1”,否则清“0”。在布尔处理机中被定义为布尔(位)累加器(或称位累加器)。(2)AC:(PSW.6)辅助进位标志或称

18、为半进位标志 当进行加法操作而产生由低4位数(十进数的1位数)向高4位数进位时,AC将被硬件置“1”,否则被清“0”。AC被用于BCD码加法调整,详见DA指令。,4程序状态字PSW,(3)F0:(PSW.5)用户标志0 由用户定义的一个状态标志。可以用软件来使它置“1”或清“0”,也可以由软件测试F0来控制程序流向。(4)RS1、RS0:(PSW.4、PSW.3)工作寄存器区选择控制位 可由软件来改变RS1和RS0的组合以确定当前工作寄存器区,详见表3-3所示。(5)P:(PSW.0)奇偶标志 每个指令周期都由硬件来置位或清零,以表示累加器A中值为“1”的位数的奇偶性。若P=1,则A中“1”的

19、位数为奇数,否则P=0。,(6)OV: (PSW.2 )溢出标志用于补码运算,以指示溢出状态。当执行加法指令时,若以Ci表示i位向位i+1有进位,则OV=C6C7即当位6向位7有进位,而位7不向CY进位时;或位6不向位7进位,而位7向CY进位时,溢出标志OV被置“1”,否则被清“0”。同样,若以Ci表示减法运算时,位i向位i+1有借位,则执行减法指令SUBB时, OV=C6C7 无符号数乘法指令MUL的执行结果也会影响溢出标志; 除法指令DIV也会影响溢出标志,当除数为0时,OV=1,否则OV=0。,5堆栈指针SP 它是一个8位寄存器,用来存放栈顶地址。 MCS-51堆栈设在内部RAM中,是一

20、个按“先进后出”顺序,受SP管理的存储区域。在程序中断,子程序调用等情况下,用于存放一些特殊信息(亦可作数据传送的中转站)。当数据压入堆栈时,SP就自动加“1”;当数据从堆栈中弹出时,SP就自动减“1”。因而SP指针始终指向栈顶。 MCS-51堆栈最大深度为128个字节,系统复位时硬件使SP=07H。,6数据指针DPTR 是一16位专用寄存器,其高字节寄存器用DPH表示,低字节寄存器用DPL表示。既可作为16位寄存器(DPTR)使用,又可作为两个独立的8位寄存器(DPH、DPL)来使用。DPTR主要用来保持16位地址,当对64KB外部数据存储器RAM(或I/O口)空间寻址时,作间址寄存器用,指

21、向外部数据存储器地址。 7I/O端口P0P3 专用寄存器P0、P1、P2和P3分别是I/O端口P0P3的锁存器。 8串行数据缓冲器SBUF 串行数据缓冲器SBUF用于存放欲发送或已接受的数据。它由两个独立的寄存器组成,一个是发送缓冲器,一个是接受缓冲器(两个缓冲器共用一个地址)。,9定时器/计数器 MCS-51子系列中有两个16位定时器/计数器T0和T1,MCS-52子系列增加了一个16位定时器/计数器T2。它们各由两个独立的8位寄存器组成,共分为6个独立的寄存器;TH0、TL0,TH1、TL1,TH2和TL2。可以对这6个寄存器寻址,但不可把T0、T1和T2当作一个16位寄存器来对待。10其

22、他控制寄存器 IP、IE、TMOD、TCON、T2CON、SCON和PCON寄存器分别包括有中断系统、定时器/计数器、串行口和供电方式的控制和状态位,这些寄存器将在有关章节中一一介绍。,3.3 MCS-51系列单片机外部存储器及其扩展,1半导体存储器的分类 半导体存储器可分为只读存储器和读写存储器两大类,3.3.1 常用半导体存储器芯片,2单片机系统中常用的典型半导体存储器芯片介绍,(1)EPROM芯片: EPROM芯片有许多系列,这里介绍一种常用的系列27。这个系列的EPROM存储器芯片有2716、2732、2764、27128、27256、27512、27010、27020、27040,它

23、们的存储器容量分别是2K8、4K8、8K8、32K8、64K8、128K8、256K8、512K8。它们的引脚功能列于表3-4。图3-5给出了2764的引脚图,(2)SRAM芯片: HM6116是存储容量为2K8的高速静态CMOS可读写半导体存储器集成电路。其引脚图如图所示 :,(3)E2PROM芯片:电可擦除可编程只读存储器E2PROM,E2PROM是电可擦除可编程的半导体存储器,比EPROM在使用上要方便得多,它具有RAM的在线随机读写性能,掉电后信息不丢失。+5V供电下即可进行编程,而且对编程脉冲宽度一般没有特殊要求,不需专门的编程器和擦除器,是一种特殊的可读写存储器。E2PROM 28

24、64的引脚图如图,3.3.2 MCS-51系列单片机外部存储器扩展设计,1程序存储器扩展设计,地址线的连接:由于MCS-51系列单片机的数据线与低8位地址线分时复用,所以P0口输出的信息经74LS373锁存后才是低8位地址线,与2764的低8位地址线对应相接,高5位地址与单片机P2口输出的地址线A8A12(P2.0P2.4)对应相接。,图3-9 2764与8031的连接图,2数据存储器扩展设计(单片数据存储器扩展设计),书上40页图3-11所示为8051系统中使用1片HM6116的硬件连接。,4.1 MCS-51系列单片机指令系统概述 MCS-51系列单片机指令系统按功能分为5类指令,分别为:

25、,第四章 MCS-51系列单片机指令系统,数据传送(29条)算术运算(24条)逻辑运算(24条)控制转移(17条)布尔处理(17条),4.1.1 指令系统特点1、MCS-51指令系统用42种助记符表示了33种指令功能。2、MCS-51指令系统在存储空间和执行时间上的效率是比较高的。是一种简明、易掌握、功能强的指令系统。3、MCS-51指令系统中有一个处理布尔变量的指令子集。,4.1.2 布尔处理机 为了充分地满足工业控制的需要,MCS-51的设计者在单片机内部设置了功能很强的位处理机,即布尔处理机。布尔处理机硬件主要由以下几部分支持:1布尔运算器ALU2布尔累加器CY(PSW.7)3布尔RAM

26、区4布尔I/O口 P0P3口的每位都可独立地进行输入/输出操作,构成布尔I/O口。5布尔指令集 由17条布尔指令组成,可对各种布尔变量进行处理,如置位、清零、求反、跳转、传送和逻辑运算等。4.1.3 指令中使用的符号说明 见书上46页,4.2 MCS-51系列单片机寻址方式,4.2.1 立即寻址 立即寻址是指指令中直接给出操作数的寻址方式。指令中的操作数称为立即数,立即数前面加“#”以区别直接寻址。8位的立即数#data,如#30H;16位的立即数#data,如#3000H。要注意立即寻址与直接寻址区别。,图4-1 指令MOV A,#30H的过程,图4-2 指令MOV DPTR,#8000H的

27、执行过程,例如:MOVDPTR,#8000H;DPTR8000H 指令立即数为16位,其功能是把立即数高8位送入DPH,低8位送入DPL。指令执行过程如图4-2所示。,4.2.2 直接寻址寻址空间:内部RAM的低128字节和特殊功能寄存器SFR(直接寻址是访问SFR的唯一方式)。 操作码后面的一个字节是实际操作数地址。这种直接在指令中给出操作数真实地址的方式称为直接寻址。指令有三种形式:,例如:MOV A,30H;A(30H) 这是数据传送指令,30H是内部RAM地址,功能是把30H单元内容读入A中。注意:立即数字址与直接寻址的区别,立即数字址是在指令中直接给出操作数直接寻址是在指令中直接给出

28、操作的地址。如图4-3所示。,图4-3 指令MOV A,30H的执行过程,例如:ANL 30H,#30H;30H(30H)30H 这是逻辑“与”操作指令,操作码后面第一个30H是操作数地址,第二个30H是参加“与”运算的立即数,“与”的结果存入30H单元中,执行过程如图4-4所示。,图4-4 指令ANL 30H,#30H的执行过程,4.2.3 寄存器寻址寻址空间:R0R7,A、B、CY(位),DPTR,其中由RS1、RS0两位的值选定工作寄存器区,其中CY是一个特殊的寄存器,通常称之为位累加器。指令选定的寄存器内容就是实际操作数,这种寻址方式称为寄存器寻址。其特点是被寻址的某个寄存器已隐含在操

29、作码中,故有时称寄存器寻址为隐含寻址。有三种指令形式。,例如:MOVA,R3;A(R3),4.2.4 寄存器间接寻址 寻址空间:内部RAM(R0,R1,SP)和外部数据存储器(R0,R1,DPTR)。 指令选定的寄存器内容就是实际操作数地址(而不是操作数),这种寻址方式称为寄存器间接寻址。当用R0,R1寄存器间接寻址之前,同样需要有一个确定的工作寄存器区;并且上述各寄存器中均是有值(操作数地址)的。有三种指令形式。,例如:MOVR0,A 这是一条累加器传送指令,在寻址前R0是有值的(有定义的),它指向目的操作数地址。设:(R0)=30H,则该指令是把累加器A的内容写入内部RAM的30H单元中;

30、指令执行过程如图4-5所示。,图4-5 指令MOV R0,A的执行过程,例如:MOVX A,DPTR 这是一条外部数据存储器读指令,在指令寻址前DPTR数据指针是有值的,它指向外部数据存储器即将访问的一个单元2000H。当执行指令时,外部数据存储器2000H单元的内容读入累加器A中,如图4-6所示。,图4-6 指令MOVX A,DPTR的执行过程,4.2.5 基址变址间接寻址寻址空间:程序存储器(A+DPTR,A+PC)。这是MCS-51指令系统特有的一种寻址方式,它以DPTR或PC作基址寄存器,A作变址寄存器(存放8位无符号数),两者相加形成16位程序存储器地址作操作数地址。这种寻址方式是单

31、字节指令,用于读出程序存储器中数据表格的常数。例如:MOVCA,A+DPTR设累加器A与数据指针DPTR在寻址前是有值(定义)的。(A)=0FH(DPTR)=2400H指令的执行过程如图4-7所示,图4-7 指令MOVC A,A+DPTR的执行过程,寻址空间:程序存储器。用于程序控制,利用指令修正PC指针的方式实现转移。即以程序计数器PC的内容为基地址,加上指令中给出的偏移量rel,所得结果为转移目标地址。 注意:偏移量rel是一8位有符号数补码,范围-128+127。所以转移范围应在当前PC指针的128+127之间某一程序存储器地址中。 相对寻址一般为双字节或三字节指令。 有三种指令形式。,

32、4.2.6 相对寻址,例如:JNZ rel;累加器A的内容不等于零则转移。设rel=23H,指令操作码存放在程序存储器2000H单元,并且在执行该指令前A中内容不为零,则执行过程如图4-8所示。这条转移指令为2字节指令,当取址后PC当前值为2002H,转移目标地址:D=(PC)+rel=2025HPC被修改后自动转到2025H单元去执行程序,从而完成程序转移。反过来,若已知转移目标地址为1FFCH,(PC)当前值为2002H,则:rel=D(PC)=1FFCH2002H=FFFAH,那么,根据符号位的扩展法取8位:rel=FAH=(6)补。,图4-8 指令JNZ rel的执行过程,4.2.7

33、位寻址寻址空间:片内RAM的20H2FH和SFR中12个能被8整除的字节地址。注意:对CY的寻址方式既属于寄存器寻址又属于位寻址。以访问触发器的方式对内部RAM,特殊功能寄存器SFR中的位地址空间进行访问称之为位寻址。在介绍了MCS-51寻址方式后,对其寻址方法以及相应寻址空间作一概括,见下页表4-1所示。,表4-1 寻址方式与相应的寻址空间,4.3 MCS-51系列单片机指令系统,指令分类:MCS-51系列单片机指令有3种分类方法。1按指令所占字节数分为:单字节指令(49条)、双字节指令(45条)、三字节指令(17条)。2按指令执行时间分为:单周期指令(64条)、双周期指令(45条)、四周期

34、指令(两条)。3按指令操作功能分为:数据传送指令(29条)、算术运算指令(24条)、逻辑运算指令(24条)、控制转移指令(17条)、伪操作指令(17条)。,4.3.1 数据传送指令,1一般传送指令(1)数据传送到累加器A的一般传送指令MOVA,Rn;A(Rn)【例1】设原来A的内容为25H,R7的内容为3FH,则执行MOV A,R7后A中的内容为3FH,R7中内容不变。MOVA,direct;A(direct)【例2】设原来A的内容为00H,内部RAM 40H单元中内容为FFH,则执行MOV A,40H后A中内容变为FFH,40H单元中内容不变。,MOVA,Ri;A(Ri) 【例3】设原来A中

35、的内容为C8H,R0中内容为65H,内部RAM 65H单元中内容为55H,则执行MOVA,R0后A的内容变为55H,65H单元中内容不变,R0中内容也不变。MOVA,#data;Adata 【例4】设原累加器A中的内容为D7H,执行MOV A,#09H后,A中为09H。,MOVRn,A;Rn(A)【例5】设原来R3中的内容为48H,A中内容为0,则执行指令MOV R3,A后,R3中内容变为0,A中内容不变。MOVRn,direct;Rn(direct) 【例6】设原来R2中的内容为0EH,内部数据RAM 20H单元中的内容为B6H,则执行指令MOV R2,20H后,R2中内容变为B6H,20H

36、单元内容不变。MOVRn,#data;Rn data 【例7】设原来R4中内容为FEH,则执行指令MOV R4,#75H后,R4中内容变为75H。,(2)数据传送到Rn的一般传送指令,(3)数据传送到直接寻址单元direct的一般传送指令,MOVdirect,A;direct(A) 【例8】设原来A中内容为16H,内部RAM 70H单元中内容为0,则执行MOV 70H,A后70H单元内容变为16H,A中内容不变。 MOVdirect,Rn;direct(Rn) 【例9】设原来内部RAM 80H单元中的内容为58H,R6中内容为F0H,则执行指令MOV 80H,R6后,80H单元内容变为F0H,

37、R6中内容不变。 MOVdirect1,direct2;direct1(direct2) 【例10】设原来内部RAM 90H单元中内容为09H,P1口上数据为AAH,则执行 MOV 90H,P1后,90H中的内容变为AAH,P1口上数据不变。,MOVdirect,#data ;directdata 【例11】设原来内部RAM 4FH单元中内容为0,则执行指令MOV 4FH,#9BH后,4FH单元中变为9BH。 MOVdirect,Ri;direct(Ri) 【例12】设原来内部RAM 36H单元中内容为FFH,R1内容为25H,25H单元中内容为01H,则执行指令MOV 36H,R1后,36H

38、单元中内容变为01H,25H单元及R1内容不变。,(4)数据传送到Ri间接寻址的存储单元的一般传送指令,MOVRi,A ;(Ri)(A)【例13】设原来R1内为30H,30H中内容为26H,A中内容为0,则执行指令MOV R1,A后,30H中内容变为0,A和R1中内容不变。 MOVRi,direct ;(Ri)(direct) 【例14】设原来R0内容为03H,指令内部RAM存储单元03H中内容为83H,P1端口数据为5DH,则执行指令MOVR0,P1后,03H单元内容变为5DH,P1端口数据以及R0内容不变。 MOVRi,#data ;(Ri)data 【例15】设原来R1内容为78H,存储

39、单元地址为78H的内部RAM中内容为00H,则执行指令MOVR1,#0B7H后,78H单元中内容变为B7H,R1中内容不变。,(5)16位立即数传送到DPTR指令,MOV DPTR,#data16;DPTR data16说明:指令功能是将16位立即数装入16位寄存器DPTR中。这是唯一的一条16位数据传送指令,用于设置外部存储器的地址指针。实际上是将data16的高8位(dataH)装入到DPTR的高8位DPH中,#data16的低8位(dataL)装入到DPTR的低8位DPL中。,上述16条一般传送指令都是在内部RAM和特殊功能寄存器中进行数据传送,并且,助记符都是MOV,它们可以用图4-9

40、描述。,图4-9 MOV指令的数据流向,2堆栈指令(1)入栈指令 PUSHdirect;SP(SP)+1 (SP)(direct) 说明:指令功能是将指定的直接寻址单元的内容压入堆栈。具体操作是:先将堆栈指针寄存器的内容加1,使其指向一个空单元,然后将指令指定的直接寻址单元的内容复制到这个空单元。【例16】设原来SP中内容为43H,90H单元内容为34H,则执行PUSH 90H指令后,SP中内容变为44H,而44H中的内容变为34H,90H单元中的内容不变。,(2)出栈指令 POP direct ; direct(SP) SP(SP)1 说明:指令功能是将栈顶单元的内容弹出堆栈。具体操作是:先

41、将SP指向的单元内容复制到指令指定的直接寻址单元,然后SP内容减1。【例17】设原来SP中内容为60H,60H单元内容为F6H,累加器A中内容为09H,则执行指令POP A后,SP中内容变为5FH,A中内容为F6H。,3累加器专用传送指令(1)字节交换指令 XCH A,Rn;(A)(Rn) 说明:指令功能是将累加器A的内容与工作寄存器Rn的内容相交换。【例18】设原来A中内容为00H,R4中内容为11H,则执行指令XCH A,R4后,A中内容变为11H,R4中内容变为00H。 XCH A,direct ;(A)(direct) 说明:指令功能是将累加器A的内容与直接寻址的内部RAM单元(或SF

42、R)内容进行交换。 XCH A,Ri;(A)(Ri) 说明:指令功能是将累加器A的内容与Ri间接寻址的内部RAM单元内容进行交换。,(2)半字节交换指令 XCHD A,Ri;(A)03 (Ri)03 说明:指令功能是将累加器A中内容的低4位与Ri间接寻址的内部存储单元中内容的低4位相互交换,而它们的高4位保持不变。【例19】设原来A中内容为7AH,R1中内容为23H,23H单元中内容为B6H,则执行指令XCHD A,R1后,A中内容变为76H,23H中内容变为BAH。 SWAP A;(A)47 (A)03 说明:指令功能是将累加器A中内容进行高、低4位互换。,(3)累加器与外部数据存储器的传送

43、指令: MOVX A,Ri;(A)(Ri) 【例20】设原来累加器A的内容为00H,R0中内容为20H,而20H是扩展的8255A的A端口地址,则执行指令MOVX A,R0后,A中内容为8255A的A口数据。 MOVX A,DPTR;A(DPTR) MOVX Ri,A ;(Ri)(A) MOVXDPTR,A ;(DPTR)(A)【例21】设原来DPTR的内容为1000H,1000H单元的内容为00H,A的内容为59H,则执行指令MOVX DPTR,A后,1000H单元的内容变为59H,而A和DPTR内容不变。,(4)累加器与外部程序存储器的传送指令 MOVC A,A+PC;A(A)+(PC)

44、说明:指令功能是将程序存储器中存储单元内容复制到累加器A,该存储单元地址是指令指针PC内容与累加器A内容之和。该指令是单字节指令,取指后PC内容加1,以当前PC值去执行16位无符号数加法操作获得基址加变址之和(PC作为基址寄存器,A作为变址寄存器),即16位程序存储器地址。然后执行该单元的读操作,并将该单元内容送A。指令执行后PC内容不变,以保证程序顺序执行。 【例22】设原来A的内容为03H,程序中MOVC A,A+PC指令所在地址为4010H,程序存储器4014H单元中内容为FFH,则执行指令MOVC A,A+PC后,A的内容变为FFH,PC的内容为4011H。如图4-10所示。见下页,图

45、4-10 “MOVC A,A+PC”举例示意图,MOVC A,A+DPTR ;A(A)+(DPTR) 说明:指令功能是将程序存储器中存储单元内容复制到累加器A中,该存储单元地址是DPTR内容与累加器A的内容之和。这条指令与上一条MOVC指令的操作基本相同,只是将PC改为DPTR,而DPTR是用户可访问的16位寄存器,所以程序在MOVC A,A+DPTR指令之前可由指令MOV DPTR,#data设置DPTR的值。,4.3.2 算术运算指令,1加法指令(1)不带进位加法指令 ADD A,Rn;A(A)+(Rn) 【例23】设原来A的内容为15H,R0的内容为36H,则执行指令ADD A,R0后,

46、累加器A中内容变为4BH,R0中内容不变。 ADD A,direct ;A(A)+(direct) ADD A,Ri ;A(A)+(Ri) ADD A,#data ;A(A)+ data,(2)带进位加法指令 ADDC A,Rn;A(A)+ (Rn)+(C) ADDC A,direct;A(A)+ (direct)+(C) ADDC A,Ri;A(A)+ (Ri)+(C) 【例24】设原来A的内容为40H,R1的内容为7FH,7FH单元内容为56H,上一条指令使进位标志置“1”,则执行指令ADDC A,R1后,A的内容变为57H,其余不变。 ADDC A,#data;A(A)+ data +(C),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报