已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
技师培训班单片机教案 单片微型计算机的原理与应用第一节常用单片机单片机把CPU(中央处理器)、RAM(随机存储器)、ROM(只读存储器)、中断系统、定时器/计时器、I/O接口电路集成在一块芯片上。 一、单片机的分类及应用领域单片机的历史及发展概况)第一阶段(19741976)单片机的初级阶段。 因工艺限制,单片机采用双片的形式,而且功能简单。 )第二阶段(1976一1978)低性能单片机阶段。 以Intel公司制造的MCS-48系列单片机为代表)第三阶段(1978一现在)高性能单片机阶段。 这个阶段推出的单片机普遍带有串行I/O口,多级中断处理系统,16位定时器计数器,片内ROM、RAM容量加大,且寻址范围可达64K字节,有的还内置有A/D转换器。 这类单片机的代表是Intel公司的MCS-51系列,Motorola公司的6810和Zilog公司的Z8等。 )第四阶段(1982一现在)8位单片机的巩固发展以及16位单片机、32位单片机推出阶段。 此阶段的主要特征是一方面发展16位单片机、32位单片机及专用型单片机;另一方面不断完善高档8位单片机,改善其结构,以满足不同用户的需要。 16位单片机的典型产品如Intel公司生产的MCS-96系列单片机。 而32位单片机除了具有更高的集成度外,其振荡频率已达20MHz或更高,这使32位单片机的数据处理速度比16位单片机快许多,性能同8位、16位单片机相比,具有更大的优越性。 计算机厂家已投放市场的产品就有70多个系列,500多个品种。 单片机的产品已占整个微机(包括一般的微处理器)产品的80%以上,其中8位单片机的产量又占整个单片机的产量的60%以上,因此可以看出,8位单片机在最近若干年里,在工业检测、控制应用的上将继续占有一定的市场份额。 1、单片机分类根据控制应用的需要,可以将单片机分成为通用型和专用型两种类型。 通用型单片机是一种基本芯片,它的内部资源比较丰富,性能全面且适用性强,能覆盖多种应用需求。 用户可以根据需要设计成各种不同应用的控制系统,即通用单片机有一个再设计的过程。 专用型单片机芯片是针对一种产品或一种控制应用而专门设计的,设计时已经对系统结构的最简化、软硬件资源利用的最优化、可靠性和成本的最佳化等方面都作了通盘的考虑和论证,所以专用单片机具有十分明显的综合优势。 例如电度表和IC卡读写器上的单片机等。 2、单片机应用领域 (1)工业自动化方面各种测控系统。 数据采集系统,工业机器人,智能化仪器,机、电一体化产品。 (2)智能仪器仪表方面。 (3)家用电器方面电动玩具、录像机、激光唱机。 (4)信息和通信产品方面调制解调器、程控交换技术、计算机外部设备及电器方面打印机、硬盘驱动器、彩色与黑白复印机、磁带机等 (5)军事装备方面导弹控制、鱼雷制导控制、智能武器装备、飞机导航系统。 3、单片机的特点 (1)小巧灵活、成本低、易于产品化。 能组装成各种智能式测控设备及智能仪器仪表。 (2)可靠性好,应用范围广。 单片机芯片本身是按工业测控环境要求设计的,抗干扰性强,能适应各种恶劣的环境,这是其他机种无法比拟的。 (3)易扩展,很容易构成各种规模的应用系统,控制功能强。 单片机的逻辑控制功能很强,指令系统有各种控制功能指令,可以对逻辑功能比较复杂的系统进行控制。 (4)具有通讯功能,可以很方便地实现多机和分布式控制,形成控制网络和远程控制。 二、常用通用单片机系列介绍 1、MCS- 482、Z 83、MC 68014、MCS- 515、MCS-96我国推广和使用MCS-51系列单片机。 我们重点学习和掌握MCS-51系列单片机我国推广和使用MCS-51系列单片机。 我们重点学习和掌握MCS-51系列单片机第二节单片机的应用实例第二节单片机的应用实例 一、单片机的可靠性技术接地、屏蔽、隔离、滤波 一、单片机的可靠性技术接地、屏蔽、隔离、滤波等 1、接地技术 (1)接地种类安全接地(外壳接地)、工作接地(电路参考点)。 (2)接地系统1)弱信号地工作地;2)功率地工作地,但通常不和弱信号地大面积接在一起。 3)机壳地安全接地。 正确接地方法图13-1a)相互独立、图13-1b)伞状连接不正确接地方法图13-2大面积连接 (3)其它接地问题1)双绞线、同轴电缆图13- 3、图13-42)工作地与安全地的连接只能在一点相连;图13-53)变压器屏蔽层的接地静电屏蔽、电磁屏蔽、磁屏蔽图13-6a)单屏蔽层(电磁屏蔽)单端接原边零线。 屏蔽层用铜、铝箔,或漆包线。 图13-6b)三明治绕法(次级夹初级或初级夹次级静电、电磁、磁屏蔽)初级磁屏蔽接原边零线、次级磁屏蔽和电磁屏蔽接副边工作地。 2、屏蔽技术1)抑制电磁干扰,屏蔽静电、电磁、磁干扰;2)最佳措施同时加装静电屏蔽、电磁屏蔽、磁屏蔽。 3、隔离技术物理隔离、光电隔离 3、隔离技术物理隔离、光电隔离 (1)物理隔离远离 (2)光电隔离利用光电器件,隔断两个电路的电连接。 图13-7光电隔离的功能1)电平转换图13-82)隔离图13- 9、图13- 104、滤波技术1)低通滤波大电容旁路、大电感串联2)高通滤波小电容旁路3)带通滤波RC带通滤波、有源带通滤波4)带阻滤波串联谐振滤波 5、反电动势干扰抑制技术线圈通断干扰1)直流驱动线圈并联二极管2)直流驱动线圈并联二极管和稳压管图13-123)并联电阻电容适宜交流或直流驱动线圈图13-13 二、MCS-51单片机应用几个概念a单片机单片机通常是指芯片本身。 b单片机系统在单片机芯片的基础上扩展其它电路或芯片构成的具有一定应用功能的计算机系统。 在单片机系统中,单片机处于核心地位,是构成单片机系统的硬件和软件基础。 c单片机应用系统单片机应用系统是为控制应用而设计的,该系统与控制对象结合在一起使用,是单片机开发应用的成果。 d单片机开发系统是单片机应用系统开发调试的工具。 主要有逻辑分析仪只能用于简单的单片机系统;微型计算机用于复杂的单片机系统;在线仿真器进行单片机应用系统的软硬件开发和EPROM写入。 e单片机机器语言机器语言是用二进制代码表示的单片机指令,用机器语言构成的程序称之为目标程序。 f单片机汇编语言是用符号表示的指令,汇编语言是对机器语言的改进,是单片机最常用的程序设计语言。 g单片机高级语言C51编译型语言 1、MCS-51单片机的结构框图 1、MCS-51单片机的结构框图MCS51系列单片机早期基本芯片包括 8031、 8051、8751现在常用芯片有AT89C 51、AT89S51下图为系统结构图MCS-51单片机的逻辑结构 1、中央处理器(CPU)中央处理器简称CPU,是单片机的核心,完成运算和控制操作。 按其功能,中央处理器包括运算器和控制器两部分电路。 1)、运算器电路功能单片机的运算部件,用于实现算术和逻辑运算。 2)、控制器电路功能单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。 2、内部数据存储器组成RAM(1288)和RAM地址寄存器等。 功能用于存放可读写的数据。 3、内部程序存储器组成ROM(4K8))和程序地址寄存器等。 功能用于存放程序和原始数据。 4、定时器计数器80C51共有两个16位的定时器计数器。 功能实现定时或计数功能,并以其定时或计数结果对单片机进行控制,以满足控制应用的需要。 5、并行I/O口MCS-51共有4个8位的I/O口(P 0、P 1、P 2、P3)功能实现数据的并行输入输出。 6、串行口MCS-51单片机有一个全双工的串行口。 功能;以实现单片机和其它数据设备之间的串行数据传送。 7、中断控制系统80C51共有5个中断源,即外中断2个,定时计数中断2个,串行中断1个。 全部中断分为高级和低级共两个优先级别。 8、时钟电路MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。 功能时钟电路为单片机产生时钟脉冲序列。 典型的晶振频率6MHz、11.0592MHz、12MHz。 9、位处理器位处理器称为布尔处理器。 功能以状态寄存器中的进位标志位C为累加位,可进行各种位操作。 10、总线总线连接计算机各部件的一组公共信号线。 分类地址总线、数据总线和控制总线。 作用减少了单片机的连线和引脚,提高了集成度和可靠性。 2、MCS-51的信号引脚80C51是标准的40引脚双列直插式集成电路芯片,引脚排列如图所示。 (1)输入输出口线P0.0P0.7P0口8位双向口线P1.0P1.7P1口8位双向口线P2.0P2.7P2口8位双向口线P3.0P3.7P3口8位双向口线(第二功能见表13-2) (2)主电源引脚VSS接地端V5V电源 (3)外接晶振引脚XTAL1和XTAL2外接晶体引线端当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 (4)控制引脚RST复位信号当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。 ALE地址锁存控制信号功能a)在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。 如图所示。 b)ALE是以六分之一晶振频率的固定频率输出的正脉冲,可作为外部时钟或外部定时脉冲使用。 /PSEN外部程序存储器读选通信号在读外部ROM时/PSEN有效(低电平),以实观外部ROM单元的读操作。 /EA访问程序存储器控制信号当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当/EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。 2.2单片机的工作原理 一、运算器对操作数进行算术、逻辑运算和位操作。 1算术逻辑运算单元ALU2累加器A使用最频繁的寄存器,可写为A。 A的作用 (1)是ALU单元的输入之一,又是运算结果存放单元。 (2)数据传送大多都通过累加器A。 (3)A的进位标志Cy同时又是位处理机的位累加器。 3程序状态字寄存器PSW (1)Cy(PSW.7)进位标志位 (2)Ac(PSW.6)辅助进位标志位 (3)F0(PSW.5)标志位由用户使用的一个状态标志位。 (4)RS 1、RS0(PSW. 4、PSW.3)4组工作寄存器区选择控制位1和位0。 (5)OV(PSW.2)溢出标志位指示运算是否产生溢出。 各种算术运算指令对该位的影响情况较复杂,将在第3章介绍。 (6)PSW.1位:保留位,未用 (7)P(PSW.0)奇偶标志位P=1,A中“1”的个数为奇数P=0,A中“1”的个数为偶数 二、控制器1程序计数器PC(Program Counter)存放下一条要执行的指令在程序存储器中的地址。 基本工作方式 (1)程序计数器自动加1 (2)执行有条件或无条件转移指令时,程序计数器将被置入新的数值,从而使程序的流向发生变化。 (3)执行子程序调用或中断调用时完成下列操作PC的当前值保护将子程序入口地址或中断向量的地址送入PC。 2指令寄存器IR、指令译码器及控制逻辑电路2.3存储器存储器是计算机的主要组成部分。 其功能是存放程序和数据。 这些程序和数据在存储器中是以二进制代码表示的。 一、名词介绍 1、存储单元和存储单元地址存储器是由大量寄存器组成的,其中每一个寄存器就称为一个存储单元。 它可存放一个有独立意义的二进制代码,称为一个字(Word),一个字由若干位(Bit)组成,代码的位数称为字长。 在计算机中把一个8位的二进制代码称为一个字节(Byte)。 对一个8位二进制代码的最低位称为第0位(位0),最高位称为第7位(位7)。 在计算机的存储器中有很多存储单元。 为了使存入和取出时不发生混淆,必须给每个存储单元一个唯一的固定编号,这个编号就称为存储单元的地址。 因为存储单元数量很大,为了减少存储器向外引出的地址线,在存储器内部都带有译码器。 根据二进制编码译码的原理,除地线公用之外,n根导线可译成2个地址号。 2、存储器速度和存储器容量存储器速度和存储器容量是存储器的两个主要技术指标。 存储器速度是指读或写一条信息所需的时间,它是影响计算机速度的主要因素之一。 存储器的容量是指最多能够存储多少个单位信息,二进制信息单位多用字节表示。 在计算机中,通常把1024字节称为1K字节,1024K称为1M(兆)。 二、存储器的分类存储器的分类方法较多,例如从其组成材料和单元电路类型上可分为磁芯存储器、半导体存储器、电荷耦合存储器等,从其与微处理器的关系来划分,又可分为内存和外存。 直接同微处理器进行信息交换的存储器称内存。 其特点是存取速度快,但容量有限。 通过内存间接与CPU进行信息交换的存储器称为外存,其特点是容量大、速度较慢,外存的内容根据需要可随时调入内存。 1、只读存储器ROM只读存储器即在使用时只能读出而不能写入,断电后ROM中的信息不会丢失。 因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。 2、随机存储器RAM这种存储器又叫读写存储器,它不仅能读取存放在存储单元中的数据,还能随时写入新的数据。 断电后RAM中的信息全部丢失,因此RAM常用于存放经常要改变的程序或中间计算结果等。 三、只读存储器类型ROM按存储信息的方法又可分为四种。 下面逐一进行介绍。 (1)掩膜ROM掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(称固化)供用户使用,用户不能更改它。 掩膜ROM只能应用于有固定程序且批量很大的产品中。 (2)可编程序的只读存储器PROM它在出厂时不写入信息,它的内容由用户根据自己所编程序一次性写入,一旦写入,只能读出,而不能再进行更改。 (3)可改写的只读存储器EPROM用户可将程序写入EPROM。 如果要改写程序,可用紫外线进行擦除,然后重新写人新程序。 一片EPROM芯片,可反复多次被擦除和写人。 (4)可电改写只读存储器E2PROM E2PROM可用电的方法完成写入和清除其内容的功能,其编程电压和清除电压均与微机CPU的5V工作电压相同,不需另加电压,它既有RAM读写操作简便,又有数据不会因掉电而丢失的优点,因而使用极为方便。 加之E2PROM保存的数据至少可达10年以上,每块芯片可擦写1万次以上。 2.4CPU时序及时钟电路时钟电路用于产生单片机工作所需要的时钟信号。 1、时钟信号的产生在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 如图所示。 电路中的电容一般取30pF左右,而晶体的振荡频率范围通常是1.2MHz12MHz。 2、引入外部脉冲信号在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,引入唯一的外部脉冲信号作为各单片机的振荡脉冲。 这时外部的脉冲信号是经XTAL2引脚注入,其连接如图2.13所示。 二、时序定时单位MCS-51时序的定时单位共有4个,从小到大依次是拍节、状态、机器周期和指令周期。 下面分别加以说明。 1、拍节与状态振荡脉冲的周期定义为拍节(用“P”表示)。 两个拍节定义为状态(用“S”表示)。 2、机器周期6个状态为一个机器周期。 3、指令周期执行一条指令所需要的时间称之为指令周期。 MCS-51的指令周期根据指令的不同,可包含有 1、 2、3或4个机器周期。 2.5复位和复位电路 一、复位操作复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。 除PC之外,复位操作还对其它一些专用寄存器有影响,它们的复位状态如表所示PC0000H TCON00H ACC00H TL000H PSW00H TH000H SP07H TL100H DPTR0000H TH100H P0P30FFH SCON00H IPXX000000B SBUF不定IE0X000000B PCON0XXX0000B TMOD00H 二、复位信号RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续2个机器周期以上。 三、复位方式复位操作有上电自动复位和按健手动复位两种方式。 上电自动复位是通过外部复位电路的电容充电来实现的。 电路如图2.17(a)按健手动复位有电平方式和脉冲方式两种。 其中按健电平复位是通过使复位端经电阻与V电源接通而实现的,其电路如图2.17(b)所示。 而按健脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图20.17(c)所示。 2.6输入/输出端口结构MCS-51单片机具有4个8位准双向并行端口(P0P3),共32根1/O口线。 每一根1/O口线都能独立地用作输入或输出。 这4个端口是单片机与外部设备进行信息(数据、地址、控制信号)交换的输人或输出通道。 P0口功能作为通用输入/输出口;地址线数据线分时复用。 在扩展系统中,低8位地址线与数据线分时使用PO口。 PO口先输出片外存储器的低8位地址并锁存到地址锁存器中,然后再输出或输入数据。 2、P1口功能作为通用输人/输出口使用。 3、P2口功能a)通用输人/输出口使用;b)作为高8位地址总线口使用。 在扩展系统中,其作为扩展系统的高8位地址总线,与P0口低8位地址线一起组成16位地址总线。 3、P3口功能作为通用输人/输出口使用;b)涉及串行口、外部中断、定时器的工作(第二功能)。 2.780C51系列单片机的低功耗第三章指令系统3.1指令系统简介指令是CPU控制计算机进行某种操作的命令。 指令系统则是全部指令的集合。 一、指令的概念 1、汇编语言指令定义用助记符来表示的指令。 特点不能被计算机硬件直接识别和执行,必须通过某种手段(汇编)把它变成机器码指令才能被机器执行。 由于其和机器语言指令一一对应,因此编写的程序效率高,占用存储空间小,运行速度快,能编写出最优化的程序。 2、汇编语言的语句格式MCS-51汇编语言的语句格式表示知下标号操作码操作数;注释1)、标号标号是语句地址的标志符号,有关标号的规定如下标号是由1-8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。 不能使用本汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。 同一标号在一个程序中只能定义一次,不能重复定义。 标号的有无取决于本程序中的其它语句是否需要访问这条语句。 2)、操作码操作码用于规定语句执行的操作内容,操作码是以指令助记符或伪指令助记符表示的,操作码是汇编指令格式中唯一不能空缺的部分。 3)、操作数操作数用于给指令的操作提供数据或地址。 4)、注释注释不属于语句的功能部分,它只是对语句的解释说明。 5)、分界符(分隔符)分界符用于把语句格式中的各部分隔开,以便于区分,包括空格、冒号、分号或逗号等多种符号。 冒号()用于标号之后空格()用于操作码和操作数之间逗号(,)用于操作数之间分号(;)用于注释之前 3、指令的长度在MCS-51指令系统中,有一字节、二字节和三字节等不同长度的指令。 3.2寻址方式 一、MCS-51单片机的寻址方式寻址如何指定操作数或其所在单元。 根据指定方法的不同,MCS-51单片机共有7种寻址方式。 1、寄存器寻址方式定义操作数在寄存器中。 寻址范围通用寄存器,共有4组共32个通用寄存器。 部分专用寄存器。 例如累加器A、AB寄存器对以及数据指针DPTR等。 2、直接寻址方式定义指令中操作数直接以单元地址的形式给出。 寻址范围低128单元。 在指令中直接以单元地址形式给出。 专用寄存器。 专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。 3、寄存器间接寻址方式定义寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的。 注意在寄存器间接寻址方式中,应在寄存器的名称前面加前缓标志“”。 寻址范围内部RAM低128单元只能使用R0或R1作间址寄存器(地址指针),其通用形式为Ri(i=0或1)。 外部RAM64KB只能使用DPTR作间址寄存器,其形式为DPTR。 外部RAM的低256单元间址寄存器为DPTR、R 0、R1,堆找操作指令(PUSH和POP)即以堆找指针(SP)作间址寄存器的间接寻址方式。 4、立即寻址方式定义操作数在指令中直接给出。 5、变址寻址方式定义以DPTR或PC作基址寄存器,以累加器A作变址寄存器,并以两者内容相加形成的16位地址作为操作数地址。 说明变址寻址方式只能对程序存储器进行寻址,寻址范围可达64KB.变址寻址的指令只有3条MOVC A,A+DPTR MOVC A,A+PC JMPA+DPTR 6、位寻址方式寻址范围内部RAM中的位寻址区,单元地址为20H2FH,共16个单元128位,位地址是00H7FH。 两种表示方法一种是位地址;另一种是单元地址加位。 专用寄存器的可寻址位4种表示方法直接使用位地址。 例如PSW寄存器位5地址为0D5H。 位名称表示方法。 例如PSW寄存器位5是F0标志位,则可使用F0表示该位。 单元地址加位数的表示方法。 例如PSW寄存器位5,表示为0DOH.5。 专用寄存器符号加位数的表示方法。 例如PSW寄存器的位5,表示为PSW.5。 7、相对寻址方式为解决程序转移而专门设置的,为转移指令所采用。 目的地址=转移指令地址转移指令字节数+rel3.3.1数据传送类指令 一、指令格式中符号意义说明Rn当前寄存器组的8个通用寄存器R0R7,所以n=07。 Ri可用作间接寻址的寄存器,只能是R 0、R1两个寄存器,所以i= 0、l。 direct8位直接地址,在指令中表示直接寻址方式,寻址范围256个单元。 其值包括0127(内部RAM低128单元地址)和128255(专用寄存器的单元地址或符号)。 data8位立即数。 datal616位立即数。 addr1616位目的地址,只限于在LCALL、LJMP指令中使用。 addrl l11位目的地址,只限于在ACALL和AJMP指令中使用。 rel相对转移指令中的偏移量,为8位带符号补码数。 DPTR数据指针。 bit内部RAM(包括专用寄存器)中的直接寻址位。 A累加器。 ACC直接寻址方式的累加器。 B寄存器B。 C进位标志位,它是布尔处理机的累加器,也称之为累加位。 间址寄存器的前级标志。 加在位地址的前面,表示对该位状态取反。 (X)某寄存器或某单元的内容。 (X)由X间接寻址的单元中的内容。 箭头左边的内容被箭头右边的内容所取代。 数据传送类指令传送指令中有从右向左传送数据的约定,即指令的右边操作数为源操作数,表达的是数据的;而左边操作数为目的操作数,表达的则是数据的去向。 数据传送指令的特点为把源操作数传送到目的操作数,指令执行后,源操作数不改变,目的操作数修改为源操作数。 1.内部RAM数据传送指令组通用格式为MOV目的操作数,源操作数1)以累加器为目的操作数的指令MOV A,Rn;A Rn,(n=07)MOV A,direct;A direct)MOV A,Ri;A(Ri)(i= 0、1)MOV A,data;A data2)以寄存器Rn为目的操作的指令MOV Rn,A;Rn(A),(n=07)MOV Rn,direct;Rn(direct),(n=07)MOV Rn,data;Rn data,(n=07)3)以直接地址为目的操作数的指令MOV direct,A;direct(A)MOV direct,Rn;direct Rn,(n=07)MOV directl,direct2;direct1(direct2)MOV direct,Ri;direct(Ri),(i= 0、1)MOV direct,data;direct data4)以间接地址为目的操作数的指令MOVRi,A;(Ri)(A)MOVRi,direct;(Ri)(direct)MOVRi,data;(Ri)data5)十六位数的传递指令MOV DPTR,data16功能将一个16位的立即数送人DPTR中去。 其中高8位送人DPH,低8位送入DPL。 例将片内RAM的15H单元的内容0A7H送55H单元。 解法1MOV55H,15H解法2MOV R6,15H MOV55H,R6解法3MOV R1,15H MOV55H,R1解法4MOV A,15H MOV55H,A例理解表2-8所列指令的执行结果。 2、外部RAM数据传送指令MOVX A,Ri;A(Ri)MOVXRi,A;(R0)(A)MOVX A,DPTR;A(DPTR)MOVXDPTR,A;(DPTR)(A)要点分析1)在MCS-51中,与外部存储器RAM打交道的只可以是累加器A,所有片外RAM数据传送必须通过累加器A进行。 2)要访问片外RAM,必须要知道RAM单元的16位地址,在后两条指令中,地址是被直接放在DPTR中的。 而前两条指令,由于Ri(即R0或R1)是一个8位的寄存器,所以只能访问片外RAM低256个单元,即0000H00FFH。 3)使用外部RAM数据传送指令时,应当首先将要读或写的地址送人DPTR或Ri中,然后再用读写命令。 例将外部RAM中0010H单元中的内容送人外部RAM中2000H单元中。 程序如下MOV R0,10H MOVX A,R0MOV DPTR,2000H MOVXDPTR,A 3、程序存储器数据传送指令指令介绍MOVC A,ADPTR;A(A)十(DPTR)(远程查表指令)MOVCA,A+PC;A(A)+(PC)(近程查表指令)要点分析1)这两条指令寻址范围为64KB,指令首先执行16位无符号数的加法操作,获得基址与变址之和,“和”作为程序存储器的地址,该地址中的内容送人A中。 2)第二条指令与第一条指令相比,由于PC的内容不能通过数据传送指令来改变,而且随该指令在程序中的位置变化而变化,因此在使用时需对变址寄存器A进行修正。 以上两条MOVC是64KB存储空间内的查表指令,实现程序存储器到累加器的常数传送,每次传送一个字节。 例在片内20H单元有一个BCD数,用查表法获得相应的ASCII码,并将其送入21H单元。 其子程序为(设当(20H)=07H时)ORG1000H;指明程序在ROM中存放始地址1000H BCD_ASClMOV A,20H;A(20H),(A)07H1002H ADD A,3;累加器(A)=(A)+3,修正偏移量1004H MOVCA,A+PC;PC当前值1005H1005H MOV21H,A(A)+(PC)=0AH+1005H=100FH1007H RET(A)=37H,A ROM(100FH)1008H TABDB30H1009H DB31H100AH DB32H100BH DB33H100CH DB34H100DH DB35H100EH DB36H100FH DB37H1010H DB38H1011H DB39H一般在采用PC作基址寄存器时,常数表与MOVC指令放在一起,称为近程查表。 当采用DPTR作基址寄存器时,程序如例6所示,TAB可以放在64KB程序存储器空间的任何地址上,称为远程查表,不用考虑查表指令与表格之间的距离。 同例5用远程查表指令如下ORG1000BCD_ASC2MOV A,20H MOV DPTR,TAB;TAB首址送DPTR MOVCA,A+DPTR;查表MOV21H,A RETTAB同例 54、堆栈操作指令压入PUSH direct;(SP)(SP)+1,(SP)(direct)弹出POP direct;direct(SP),(SP)(SP)1要点分析堆栈操作的特点是“先进后出”,在使用时应注意指令顺序。 例分析以下程序的运行结果MOV R2,05H MOV A,01H PUSHACC PUSH02H POPACC POP02H结果是(R2)=01H,而(A)=05H。 也就是两者进行了数据交换。 因此使用堆栈时,人栈的顺序和出栈的顺序必须相反,才能保证数据被送回原位,即恢复现场。 5、数据交换指令 (1)字节交换指令XCH A,Rn;(A)(Rn)XCH A,Ri;(A)(Ri)XCH A,direct;(A)(direct) (2)半字节交换指令XCHD A,Ri;(A)0-3(Ri)0-3 (3)累加器A高低半字节交换指令SWAP A;(A)0-3(A)4-7数据交换主要是在内部RAM单元与累加器A之间进行。 例将片内RAM60H单元与61H单元的数据交换不能用XCH60H,61H应该写成MOV A,60H XCHA,61H MOV60H,A3.3. 2、算术运算类指令 1、加法指令组ADD A,Rn;A(A)(Rn)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)十(CY)ADDC A,direct;A(A)十(direct)(CY)ADDC A,R;A(A)十(Ri)十(CY)ADDC A,data;A(A)十data(CY) 3、带借位减法指令组SUBB A,Rn;A(A)(Rn)(CY)SUBB A,direct;A(A)(direct)(CY)SUBB A,Ri;A(A)(Ri)(CY)SUBB A,#data;A(A)data(CY) 4、加1指令组INC A;A(A)十1INC R.;Rn(Rn)1INC direct;direct(direct)1INCRi;(Ri)(Ri)1INC DPTR;DPTR(DPTR) 15、减1指令DEC A;A(A)1DEC direct;direct(direct)1DECRi;(Ri)(Ri)1DEC Rn;Rn(Rn) 16、乘法、除法指令MUL AB;AB=BA DIVAB;A=B=A.B要点分析MUL指令实现8位无符号数的乘法操作,两个乘数分别放在累加器A和寄存器B中,乘积为16位,低8位放在A中,高8位放在B中;DIV指令实现8位无符号数除法,被除数放在A中,除数放在B中,指令执行后,商放在A中而余数放在B中。 7、十进制加法调整指令DA A要点分析1)这条指令必须紧跟在ADD或ADDC指令之后,且这里的ADD或ADDC的操作是对压缩的BCD数进行运算。 2)DA指令不影响溢出标志。 例设(A)56H,(R7)78H,执行指令ADD A,R7DA A结果(A)34H,(CY)1例设计将两个4位压缩BCD码数相加程序。 其中一个数存放在30H(存放十位,个位)、31H(存放千位,百位)存储器单元,另一个加数存放在32H(存放低位)、33H(存放高位)存储单元,和数存到30H,31H单元。 程序如下MOV R0,30H;地址指针指向一个加数的个位、十位MOV R1,32H;另一个地址指针指向第二个加数的个位、十位MOV A,R0;一个加数送累加器ADDA,R1;两个加数的个位、十位相加DA A;调整为BCD码数MOVR0,A;和数的个位、十位送30H单元INC R0;两个地址指针分别指向两个加数的百位、千位INC R1MOV A,R0;一个加数的百位、千位送累加器ADDC A,R1;两个加数的百位、千位和进位相加DA A;调整为BCD码数MOVR0,A;和数的百位、千位送31H单元3.3.3逻辑与运算指令组 1、逻辑与运算指令组运算规则为00=001=010=011=1ANL A,Rn;A(A)(Rn)ANL A,direct;A(A)(direct)ANL A,Ri;A(A)(Ri)ANL A,data;A(A)data ANL direct,A;direct(direct)(A)ANLdirect,#data;direct(direct)data 2、逻辑或运算指令组运算规则为0+0=00+1=01+0=11+1=1ORL A,Rn;A(A)(Rn)ORL A,direct;A(A)(direct)ORL A,Ri;A(A)(Ri)ORL A,data;A(A)data ORL direct,A;direct(direct)(A)ORLdirect,#data;direct(direct)data 3、逻辑异或运算指令组运算规则为0?0=0,1?1=0,0?1=1,1?0=1XRL A,Rn;A(A)?(Rn)XRL A,direct;A(A)?(direct)XL A,Ri;A(A)?(Ri)XRL A,data;A(A)?data XRL direct,A;direct(direct)?(A)XRLdirect,#data;direct(direct)?data例试分析下列程序执行结果MOV A,0FFH;(A)0FFH ANL P1,00H;SFR中P1口清零ORL P1,55H;P1口内容为55H XRLP1,A;P1口内容为0AAH 4、累加器清0”和取反指令组累加器清“0”指令一条CLR A;A0累加器按位取反指令一条CPL A,A(A)要点分析1)逻辑运算是按位进行的,累加器的按位取反实际上是逻择非运算。 2)当需要只改变字节数据的某几位,而其余位不变时,不能使用直接传送方法,只能通过逻样运算完成。 例将累加器A的低4位传送到P1口的低4位,但P1口的高4位需保持不变。 对此可由以下程序段实现MOV R0,A;A内容暂存R0ANL A,0FH;屏蔽A的高4位(低4位不变)ANLP1,0F0H;屏蔽P1口的低4位(高4位不变)ORL P1,A;实现低4位传送MOV A,R0;恢复A的内容 5、移位指令 (1)累加器内容循环左移RL A;An+1An n06,A0A7 (2)累加器带进位标志循环左移RLC A;An+1An n06,A0C CA7 (3)累加器内容循环右移RR A;An An+1n06,A7A0 (4)累加器带进位标志循环右移RRC A;An An+1n06,A7C CA0例试用三种方法将累加器A中无符号数乘2。 答方法1CLR CRLC A方法2CLR CMOV R0,A ADDA,R0方法3MOV B,2MUL AB3.3.4控制转移指令组 1、无条件转移指令组不规定条件的程序转移称之为无条件转移。 MCS-51共有4条无条件转移指令1)、长转移指令LJMP addr16;PC addrl6转移范围64KB,因此称之为“长转移”。 2)、绝对转移指令AJMP addrll;PC(PC)2;PC010addr1l转移范围2KB3)、短转移指令SJ MPrel rel为相对偏移量。 计算目的地址,并按计算得到的目的地址实现程序的相对转移。 计算公式为目的地址=(PC)+2+rel4)、变址寻址转移指令JMPA+DPTR;PC(A)(DPTR)指令以DPTR内容为基址,而以A的内容作变址,转移的目的地址由A的内容和DPTR内容之和来确定,即目的地址=(A)(DPTR)例ORG1000H MOV DPTR,TAB;将TAB所代表的地址送人数据指针DPTR MOVA,R1;从R1中取数MOV B,2MUL AB;A乘以2,AJMP语句占2个字节,且是连续存放的JMPA+DPTR;跳转TAB AJMP S0;跳转表格AJMP S1AJMPS2S0S0子程序段S1S1子程序段S2S2子程序段END 2、条件转移指令组所谓条件转移就是程序转移是有条件的。 执行条件转移指令时,如指令中规定的条件满足,则进行程序转移,否则程序顺序执行。 条件转移有如下指令1)、累加器判零转移指令JZ rel;若(A)0,则PC(PC)+2+rel转移若(A)0,则PC(PC)+2顺序执行JNZ rel;若(A)0,则PC(PC)2rel转移若(A)0,则PC(PC)2顺序执行例将外部RAM的一个数据块(首址为DATAl)传送到内部RAM(首址为DATA2),遇到传送的数据为零时停止。 STARTMOV R0,DATA2;置内部RAM数据指针MOV DPTR,DATAl;置外部RAM数据指针LOOPlMOVX A,DPTR;外部RAM单元内容送A JZLOOP2;判传送数据是否为零,A为零则转移MOVR0,A;传送数据不为零,送内部RAM INCR0;修改地址指针INC DPTRSJMP LOOP1;继续传送LOOP2RET;结束传送,返回主程序2)、数值比较转移指令数值比较转移指令把两个操作数进行比较,比较结果作为条件来控制程序转移。 共有四条指令CJNE A,#data,rel CJNEA,direct,rel CJNERn,#data,rel CJNER,#data,rel指令的转移可按以下3种情况说明若左操作数右操作数,则程序顺序执行PC(PC)十3进位标志位清“0”(CY)=0若左操作数右操作数,则程序转移PC(PC)+3+rel进位标志位清“0”(CY)=0若左操作数右操作数,则程序转移PC(PC)+3+rel进位标志位里“1”(CY)=13)、减1条件转移指令把减1与条件转移两种功能结合在一起的指令。 共两条寄存器减1条件转移指令DJNZ Rn,rel其功能为寄存器内容减1,如所得结果为0,则程序顺序执行,如没有减到0,则程序转移。 具体表示如下Rn(Rn)1若(Rn)0,则PC(PC)+2+rel若(Rn)0,则PC(PC)十2直接寻址单元减1条件转移指令DJNZ direct,rel其功能为直接寻址单元内容减1,如所得结果为0,则程序顺序执行;如没有减到0,则程序转移。 具体表示如下direct(direct)1若(direct)0,则PC(PC)+3+rel若(direct)0,则PC(PC)3要点分析这两条指令主要用于控制程序循环。 如预先把寄存器或内部RAM单元赋值循环次数,则利用减1条件转移指令,以减1后是否为0作为转移条件,即可实现按次数控制循环。 例如把2000H开始的外部RAM单元中的数据送到3000H开始的外部RAM单元中,数据个数已在内部RAM35H单元中。 MOVDPTR,2000H;源数据区首址PUSH DPL;源首址暂存堆栈PUSH DPHMOVDPTR,#3000H;目的数据区首址MOV R2,DPL;目的首址暂存寄存器MOV R3,DPH LOOPPOP DPH;取回源地址POP DPLMOVXA,DPTR;取出数据INC DPTR;源地址增量PUSH DPL;源地址暂存堆找PUSH DPHMOV DPL,R2;取回目的地址MOV DPH,R3MOVXDPTR,A;数据送目的区INC DPTR;目的地址增量MOV R2,DPL;目的地址暂存寄存器MOV R3,DPH DJNZ35H,LOOP;没完,继续循
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 圣诞活动策划方案表格
- 顾客互动活动方案策划
- 酒水代理商合同(标准版)
- 苏州教师合同(标准版)
- 封凉台合同(标准版)
- 输血服务协议标准文本
- 用户调研与市场需求分析实践活动方案
- 员工激励与留才方案
- 亲属赠与协议范本与法律说明
- 油路维修工程施工组织设计方案
- 2025河南航空港投资集团校园招聘笔试考试参考题库及答案解析
- 2025至2030中国水运行业发展趋势分析与未来投资战略咨询研究报告
- 2025贵州毕节市中医医院招聘暨人才引进编外聘用专业技术人员78人考试笔试备考试题及答案解析
- 2025税务师考试《税法一》冲关速记
- 直播电商职业知识培训课件
- 药学专业个人简历模板
- 全国大学生数学建模竞赛2025年本科组赛题分析试卷
- 轮状病毒疫苗研发进展与接种应用指南
- 生物安全培训海报模板课件
- 云南省国省干线公路养护管理模式优化:基于公路局视角的深度剖析与创新路径
- 英语数字教学课件
评论
0/150
提交评论