欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    单片微型计算机原理及应.ppt

    • 资源ID:6449628       资源大小:3.58MB        全文页数:392页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片微型计算机原理及应.ppt

    单片微型计算机原理及应用,第一章概述第二章mcs-51单片机结构及原理第三章 MCS-51单片机指令系统及编程举例 第四章单片机定时功能及应用第五章单片机的中断系统第六章单片机串行口及应用第七章单片机系统扩展第八章 D/A、A/D转换器接口及应用,目 录,1定义:单片机全称为单片微型机算计(single-chip Microcomputer),它在一块芯片上集成了CPU、RAM、ROM(EPROM,E2PROM)CTC和多个 I/O口,此外,有的单片机如8096单片机上还集成,第一章 概述,一单片机的定义及特点,测量与显示:如各种智能仪表,用于提高测试与显示的 自动化程度和准确度。,3.应用领域:主要应用于以下几方面,2特点:单片机的体积小,可靠性高,价格便宜,功耗低,它是目前应用最广泛的工业控制微机。,了ADC 和DAC转换芯片。,机电一体化工业:如加工中心,用于提高加工的自动化程度 和精度。,第一代:1976-1978年,典型产品为MCS-48,8位CPU,并行 I/O口,8位定时计数器,无串行I/O口,RAM、ROM容 量较小,寻址范围小于4KB。,二、单片机的发展概况,日常生活:如各种家电中,用于提高家电的自动化程度,增强 其功能。,实时控制系统:对一些实时过程的控制与监测,实现过程中数 据的实时处理与控制,从而保证系统的最佳工 作状态,提高系统的工作效率和产品质量。,第二代:1980年-至今,典型产品为MCS-51,8位CPU,并行 I/O口,增有串行I/O口,16位定时/计数器,可进行 中断处理,具有并行三总线结构,RAM,ROM容量 较大,最大寻址范围为64KB。,典型产品有8051,8751和8031。其三种芯片的主要区别在于:ROM,EPROM和外接EPEOM。8051内部程序要有生产芯片的厂家写入,适用于低成本大批量生产;8751片内程序可由用户固化,1.MCS-51系列简介:,三、常用单片机系列介绍,第三代:1982-至今,典型产品为MCS-96,是8位机的进一步完 善,16位CPU,具有串、并行的通信功能,定时、计 数、中断处理的功能更强,RAM、ROM容量更大,并增加了多通道A/D及 D/A转换器,寻址范围为64KB。,或清除,价格相对较贵,适用于开发样机;8031芯片必须外接ROM,适用于较方便进行修改和更新程序记忆的场合。,2.存储器简介:memory是单片机的主要组成部分之一,主要用于 存储信息,它的分类如下:,可擦除可编程的只读ROM,用紫外线可擦除其内容,用专用设备用户可固化信息。,内存:,随机存储器,其中信息可读可写,断电丢失全部内容。,只读存储器,用户不可更改其内容,与EPROM同样,断电仍可保存信息。,外存:,可随时读取信息,容量大,随身携带方便,也可对其进行写操作并永久保存信息,但必须配备专门的刻盘机。,有限,随身携带不方便。,软盘可随时读写并永久保存信息,其容量小但可无限扩充,随身携带方便。,四、数制及其间的转换,1数制:常用的计数方法,有二(B)、八(Q)、十(D)、十 六(H)、十二及六十进制等。,基:指数制所使用数码的个数。如:B(2),Q(8),D(10)、H(16)。,特点同软盘,但容量较软盘大很多,比硬盘小。,权:指数制的每一位数码所对应的值,几进制数的权就是以几 为底的幂,即权为基的幂。,十进制转换为二,八,十六进制时,原则为整数部分除 基取 余,先出低位,小数部分乘基取整,先出高位。,例1 432D=1000101B(取四位小数,并非精确)例2 25473D=37656Q=FEBA,二,八,十六进制转换为十进制时,原则为按权展开相加。例1FFFFH=15163+15162+15161+15160=65535例210111100101B=27+25+24+23+22+2-1+2-3=188625D,2数制之间相互转换的原则:,例:1010B的基为2,各位的权分别为:23、22、21和20。,机器数:数字在机器中的表示方式称为机器数,即将符号(+,)也作为数字的一部分。具体地说,在存储 数据时,最高一位用来表示数字的符号,当数字为 正时,最高一位的值为0,当数字为负时,最高一 位的为值1。机器数有原码、反码和补码三种形式。,3数在计算机中的表示方法,真值:一个数的实际大小称为这个数的真值。,原码:正数的符号位用0表示,负数的符号位用1表示,符号 位之后是数字的真值,此法表示的数字称为数的原码。正数的原码与其真值相同。,例:对于8位数据,+35H表示为+35H原码=00110101,35H表示为-35H原码=10110101,+0原码=00000000,-0原码=10000000,例:对于8位数据,+35H表示为+35H反码=00110101,35H表示为-35H反码=11001010,+0反码=00000000-0反码=11111111,反码:正数的反码与其原码相同,负数的反码则为其对应的 原码按位取反(符号位除外)。,补码:正数的补码与其原码相同,负数的补码则为其对应的原 码按位取反(符号位除外)加1。,计算机中所能表示的符号数的范围为:-2n-12n-11,n为数据的位数。,注 计算机中所有的符号数都是用补码表示的。,例:对于8位数据,+35H表示为:+35补码=00110101,35H表示为:-35补码=11001011,+0补码=-0补码=00000000。,当n=8时,所能表示的符号数的范围为:-128127,当n=16时,所能表示的符号数的范围为:-3276832767。,已知一个数的补码时,其真值为:正数真值=正数补码 负数真值=负数补码取反(符号位除外)1,例:Y=11710=117补+10补=10001011+1110110=110000001=-127,将减数与减号一起变为补码后再与被减数的补码相加,其和(如有进位则舍弃进位)就是两数之差。,利用补码可将减法转换为加法以简化硬件电路,具体原理为:,例:x=01001101,则x真值=01001101=77D x=10110101,则x真值=11001010+1=11001011=75D,4ASCII码:(又称字符编码),5 BCD码 用四位二进制数表示一位十进制数的编码称为BCD码。,以上这些字符在计算机中都用固定的二进制数表示,国际上目前采用最常用的美国信息标准代码也称ASCII码来表示。要求大家记住前两类字符的ASCII码值。,英文字母AZ及az;数字字符09:专用字符:+,/,空格和各种标点符号;各种非打印字符如:CR(回车),LF(换行),BELL(响铃)等。,计算机处理的信息并不全是数字,有时还要处理字符和字符串,常见的字符有:,第二章 mcs-51单片机结构及原理,2.1 mcs-51单片机结构2.2 mcs-51的存储器结构2.3 单片机的时序,第一节 mcs-51单片机结构一、mcs-51单片机内部结构简介,二8051 CPU的组成及其功能三 MCS-51引脚及功能,单片机内部最核心的部分是CPU,CPU的主要功能是产生各种控制信号,控制存储器及输入/输出端口的数据传送,实现数据的算术运算、逻辑运算以及位操作处理等功能。,8051 CPU的组成及其功能,指令译码器:将指令RS的指令转换成电信号,再经逻辑控制 电路产生各种控制信号。,指令Register(RS):8位,用于暂存待执行的指令,等待译码。(译码前指令为0、1代码,译码后指令为电信号),PC程序计数器:16位专用RS,用于存放下一条将要执行的指 令地址,有自动加1的功能,它可保证程序按 一定顺序执行。,8051 CPU由控制器与运算器两部分组成 1控制器:,数据指针DPTR:16位专用地址指针RS,主要用于存放16位 地址,作间址RS使用,也可拆成两个8位 RS,DPH和DPL,它们片内RAM中占据 的地址分为83H和82H。,8051 CPU的组成及其功能,定时控制与条件转移逻辑电路:不介绍。,2运算器,累加器ACC:8位专用RS,用于存放操作数或中间结果,是,8051 CPU的组成及其功能,程序状态字RS(PSW):8位专用RS,用于存放程序运行中 的各种状态信息,它可以进行位操 作,PSW的字节地址为D0H,位地 址为D0D7H。各位的含义如下:,算逻运算部件:此部件实现算数运算与逻辑运算的功能,其 运算结果的状态送PSW中。,CPU中使用最频繁的一个RS,也是21个SFR 中的一个。,CY(PSW.7):进位标志,表示在进行无符号加减时,最,高位有无向更高位进(借)位,当有进位 CY=1,无则CY=0,程序状态字RS(PSW)各位的含义,RS1,RS0(PSW.4,PSW.3):RS组选择标志,用于选择内 部RAM中4 个RS中的一组它 们的关系如下:,F0(PSW.5):用户标志位,由用户通过程序设置1或0,表示 程序处于某种状态,为后续程序执行提供条件。,AC(PSW.6):半进位标志,表示在进行无符号加减时,D3 位有无向D4位进(借)位,当有AC=1,无 则AC=0,主要用于BCD 码的判断位。,RS1 RS0 寄存器组 片内RAM地址 0 0 第0组 00H07H 0 1 第1组 08H0FH 1 0 第2组 10H17H 1 1 第3组 18H1FH,程序状态字RS(PSW),B寄存器:用于乘除法操作,8位RS,是21个SFR中之一,B 用来存放第二操作数,即用于存放乘法的高位字节 或除法的余数部分。,OV(PSW.2):溢出标志,当进行符号数运算时可表示是否 有溢出,则OV=1,无则OV=0,溢出的逻辑 表达式为OV=C6YC7Y,F1(PSW.1):保留位,无定义。,P(PSW.0):奇偶标志位,表示累加器A中含“1”个数的奇 偶性,当A中有奇数个1,则P=1,否则P=0。(与A内容的奇偶无关)。,暂存器:暂存数据信息。,MCS-51采用40引脚双列直插式封装(DIP)形式,(看P28图2-6)。主电源引脚:Vss(地)和Vcc(+5v)。外接晶振引脚:有两个,三 MCS-51引脚及功能,3控制信号引脚:,XTAL2:片内晶振器输出端,当使用外部晶振器,作为晶振 信号的输入端。,XTAL1:片内晶振器输入端,当使用外部晶振器,此端接地。,RST/VPD:系统复位/备用电源输入引脚,输入信号,有两个 作用:,四个I/O口P1P3锁存器均被初始化为0FFH;堆栈指针寄存器SP=07H;而SUBF寄存器的内容不确定;其它各专用RS 均被写成00H;内部RAM不受复位影响,上电后RAM内容为随机。,MCS-51引脚及功能,当电源电压下降时,此引脚可为备用电源输入线,为片内 RAM 提供备用电源。,RST端维持两个机器周期以上的高电平时将使单片机复位。复位后CPU各寄存器的特点为:,MCS-51引脚及功能,当片内有EPROM时,可作为编程脉冲输入端使用。,访问外部memory时,ALE端仍以不变的频率周期性的输出正 脉冲信号,且fALE=1/6fosc,所以可用作对外输出的时钟信号 和定时作用;,当CPU访问外部memory初时,产生正脉冲ALE信号输出,在 其后沿将P0口输出的低8位地址锁存于外部地址锁存器中;,MCS-51引脚及功能,准双向端口工作特点:只有使端口锁存器事先置“1”,才能使对应口的I/O引脚作为输入线使用,而CPU执行输出操作时,不管端口的状态如何都能直接输出信号。,4输入输出引脚:P0、P1、P2、P3均为准双向端口。,对于片内有EPROM,编程时,此引脚接21v编程VPP;,P0P3除作为一般的I/O线使 用外,还有以下功能:,MCS-51引脚及功能,P3口:第二功能见P27表27。复位后P3口的第二功能 可直接使用,但复位前必须先置口内锁存器FFH 才能用。,P2口;当CPU访问外部memory时,P2口可作为外部高 8位地址的输出线。,P1口:在EPROM编程验证程序时输入低8位地址。,P0口:当CPU访问外部memory时,P0口可分时作为低 8位地址线和8位双向数据线用。,第二节 MCS-51的存储器结构 MCS-51单片机物理上有4个存储空间:片内程序存储器,片外程序存储器,片内数据存储器,片外数据存储器。这些存储器结构的物理特点是:程序存储器和数据存储器空间是相互独立的,片内数据存储器和片外数据存储器空间也是相互独立的,所以从逻辑上又可分为3个存储空间:片、外统一编址的程序存储器,片内数据存储器和片外数据存储器。,CPU通过P0,P2口送出要访问存储单元的地址A0A15。CPU发出ALE信号把P0口地址信号A0A7锁入锁存器 存储器按A0A15地址进行译码,找到要访问的单元。,如下页图,MCS-51访问外部存储器,粗略的讲可分为以下四步:,CPU发出PSEN信号,把外部EPROM中A0A15指向单 元中的数据信息经P0口送入CPU;或CPU发出RD信号 将外部RAM中 A0A15所指向单元的data经P0口读入;或CPU发出WR信号将data经P0口写入外部RAM A0A15 所指向单元。,一、MCS-51单片机内、外存储器系统简介,二、MCS-51各存储器具体说明:,外部程序存储器用于存放程序、程序执行时必要常数和表格。,外部程序存储器EPROM:MCS-51可以扩展64K字节的EPROM,其中:,外部程序存储器的容量为64K字节,地址为0000HFFFFH,当EA=1时:CPU可以访问内部程序存储器0000H0FFFH单元和外部程序存储器1000HFFFFH之间的各存储器单元;当EA=0时CPU可访问0000HFFFFH全部64K的片外程序存储器。,外部程序存储器受PC管理,PC的内容始终指向下一条将 要执行的指令所在的地址,PC具有自动加1的功能,保证 程序按顺序执行。,外部程序存储器由PSEN信号选通,正常运行时其内 容只能读出,不能写入,掉电时其内容不消失。,程序存储器由movc类指令访问,CPU在执行这类指令 时,可以使PSEN信号有效,从而选中EPROM.。,内部程序存储器EPROM:,外部数据存储器主要存放运行程序的过程中所需的 数据,中间结果和最终结果。,外部数据存储器由movx类指令访问。,外部数据存储器由WR或RD信号选通,可以写入,也可以读出,掉电时内容消失。,外部数据存储器的容量为64K字节,地址为 0000HFFFFH。,外部数据存储器受data point(数据指针)DPTR和 工作寄存器管理。,外部数据存储器RAM:,位寻址空间:内部RAM中,地址20H2FH共16个字节单元 共128个位)具有位寻址的功能,即CPU可对这16个字节中的 每一位单独进行操作,所以 20H2FH区域是MCS-51单片机,MCS-51芯片内部有128个字节(BYTE)的内部数据存储器RAM(称片内RAM),地址为00H7FH,有128B的特殊功能Register(SFR),地址为80HFFH,也称高地址区,共256个字节的存储空间。,工作寄存器R:内部RAM中00H1FH单元(共32B)为通 用工作Register区,分为4组,每组8个字节,均可用作R0R7,用户可根据PSW中的RS1和RS0的值选择相应的工作R组。,4.MCS-51内部RAM,布尔处理机的一个存储空间,其中:20H2FH对应此存储区中16个字节每一个字节的地址,因为每个字节有8位,所以此存储区共有168=128位供单独操作,这128个位的地址规定为00H7FH(RAM的低区地址也是00H7FH),在使用中由软件加以区分。如:,MCS-51内部RAM,且有:对应的字节地址=20H+位地址/8,(位地址/8的余数为该位在该字节中所处的具体位置)。,mov 20H,A(字节操作);20H单元 A的内容 mov 20H,C(位操作);布尔处理机存储空间第20位(即24H单元中的第0位)中 PSW中进位位CY内容。,30H7FH空间:用户RAM区,共80个字节,此部分空间可 以作为buffer、堆栈区等存储单元用,但不能作为工作寄存 器用,不能进行位寻址。,例:位地址7AH对应的字节地址的计算方法是:7AH/8,商为F,余数为2,表示该位处于片内RAM2FH(20H+F)字节的第二位。,位地址=(字节地址-20H)8+N;其中:N=07,为该位在此字节中的位置,例:2EH中的第6位对应的位地址=(2EH-20H)8+6=76H。,对于工作Regester区(00H1FH)单元,没有被选中的工作 Regester单元与30H7FH单元具有同样功能。,MCS-51特殊功能Register(SFR):80H0FFH,而在80HFFH这128个字节中除去SFR占用的21个字节外其余 字节均无定义,所以访问无定义的单元得到的是一个随即数。,位寻址空间:在SFR中凡是字节地址能被8整除的SFR均有位 寻址功能(即:末位地址为8或0的SFR)。,SFR与RAM(007FH)的区别:SFR作为源操作数时只能采 用直接寻址,寄存器间接寻址对其无效,但对RAM有效。,SFR的分布:MCS-51单片机共有21个SFR(除PC外,DPTR 算作两个register),它们分布在内部RAM的 80H0FFH(占21个字节)。,SP:堆栈指针,是个8位SFR,在RAM中的地址值为81H,其 内容用于指示堆栈栈顶(已存有数据的堆栈存储单元)的地址值。每当有数据进栈时SP值自动加1,出栈时自动 减1,当系统复位后,SP=07H,即堆栈实际上是由08H单 元开始。,串行数据缓冲器SBUF:是个8位的SFR,地址为99H,用于存 放串行通讯时待发送或已接受到的数据,它由两个独立的寄存 器(发送buf和接收buf)组成,但它们共用一个地址。,堆栈:是个具有先入后出特点的一片存储区,堆栈的真正工作区 一般选在片内RAM的30H7FH内。,几个常用SFR的基本功能,定时器/计数器T0/T1:8051系列单片机有两个16位的定时器/计数器 T0和T1,它们分别为TL0,TL1和TH0,TH1四个 8位的独立SRF,在片内RAM地址为8AH8DH。,注意:T0与T1不能作为2个16位的RS来对待。,第三节单片机的时序,一条指令可分解为若干个基本的微操作,而这些操作所对应的脉冲信号在时间上有严格的先后次序,这就称为计算机的时序。要求掌握以下几个概念:,二、CPU的时序,一、MCS-51单片机的复位方法及复位后内部 各SFR状态,复位后内部各SFR的状态:看P21表2.3。,振荡周期T振:也称时钟周期,指为单片机提供时钟信号的振荡 源的周期,当晶振频率为12MHz 时T振=1/12us。,CPU的时序,指令周期T指:指令周期是指执行一条指令所需要的时间,一 般情况下,T指=(14)T机,MCS51系列单片机执行一条 最长的指令(如乘、除法指令)需要4个机器周期,即4 us时间。,机器周期T机:指CPU完成某些基本操作的所需要的时间,1个 机器周期包含6个状态周期。T机=6T状=12T振=1us。,2.状态周期T状:也称S周期,由两个振荡周期组成一个时钟周期。如上例中:T状=Ts=21/12=1/6us。,第三章 MCS-51单片机 指令系统及编程举例,指令:是控制计算机进行各种操作的运算代码形式的命令(MCS-51有42种助记符33个指令功能共111条指令)。,机器码:计算机所能辨认的命令是二进制代码,又称机器码或指 令代码称。一种计算机有几十种甚至几百中指令,如果都用,程序:是人们为了完成某中预定的任务,将一系列指令,数据,地址按一定顺序排列而得到的一组指令。,指令系统:计算机所能识别执行的全部指令称作这种计算机的指 令系统。各种计算机的指令系统各不相同。,二进制代码,记忆、书写,编程都很不方便,且易出错。,汇编语言源程序:用助记符(操作码)、符号地址和标识符等 书写的程序称之为汇编语言源程序。,汇编:汇编语言源程序在机器执行前必须先转换为相应的机器码 方可被机器识别执行,这个过程称为翻译(汇编)。翻译 程序的方法有两种:人工翻译,汇编软件自动翻译。,助记符:为解决上述问题,制造厂家对指令系统中的每一条指令 规定了特定的英文缩写符号称为助记符。,3.1 指令格式简介3.2 MCS-51的寻址方式3.3 指令系统3.4 伪指令3.5汇编程序设计及应用举例,第一节 指令格式简介,汇编语言的标准格式为:标号:指令助记符 操作数1,操作数2,操作数3;注释,操作码助记符:是汇编语言中每一行不可缺少的部分,它规定 了指令的操作功能,操作码助记符是由25个 字母组成的字符串,也是机器的保留字,操作 码与操作数之间要用若干空格分开。,标号:是用户定义的符号,它代表该条指令的符号地址,以英 文字母开始,由18个字符(字母、数字和下划线“-”)组成,以“:”结尾。标号不能使用机器的保留字,一个 程序中不允许重复定义标号。标号也称标识符。,操作数:可以是具体的数字,也可以是符号或RS名,操作 数可分为源操作数SRC(source)和目的操作数 DST(destination),二者用逗号分开,有些指令 无操作数。,带 的内容可省。,注释:注释必须以“;”开头,可有可无,可由任何可打印的 ASCII码字符组成,用于解释说明程序。,第二节 MCS-51的寻址方式,例:mov A,#data;将数字dataA中 特点:,MCS-51系列只有一条指令,其立即数为16位,这就是:mov DPTR,#data16;DPH data高8位 DPL data低8位,#为立即数的前缀符号,data可为16位,也可为8位。,指令操作码后面的一个字节就是操作数本身,立即数是 放在程序存储器中的一个常数。,1.立即寻址:,因为direct是8位二进制数,所以直接寻址的范围主要有以下 三个地址空间:,2.直接寻址:,例:mov A,70H;RAM区70H单元的内容A中。特点为:,指令操作码后面的一个字节就是实际操作数的地址(8位)。,指令中的直接地址可用direct表示,例push direct;功能为将direct所指示的片内RAM中单元的内容堆栈中。,内部RAM及SFR中,可进行位寻址的位地址空间共211位(内部 RAM中有20H2FH中有128个位,SFR中有83位),内部RAM 00H7FH地址空间(128个字节);特殊功能R,即SFR(直接寻址是访问SFR的唯一寻址方式);,3.寄存器寻址:例:mov A,Rn(n=07);将Rn内容A中特点:RS的内容就是操作数本身;,可用作间址RS的register有work RS(R0,R1)、堆栈指针SP、数据指针DPTR。,R中的内容不是操作数本身而是其所在存储单元的地 址值,即R0指示了操作数所在存储单元的地址值。,4.寄存器间接寻址:例:mov A,R0;将R0所指示存储单元内容A 中特点:,寻址范围是:被选中的工作RS组中的8个work RS,R0R7及A,B,DPTR,AB和进位位CY。,间址寻址的范围:R0、R1、SP作为间址RS可以访问内部RAM的128个字节。,间址寻址方式有:ADD A,Ri;i=0或1 MOV Ri,direct;i=0或1 MOVX A,DPTR,DPTR作为间址RS可访问外部RAM全部的64KB空间。,R0、R1作为间址RS可以访问外部数据存储器RAM页内 256个字节(可用P2口选中页面,64KB的RAM可分 为256个页面)。,有两种方式 MOVC A,A+PC;A(A)+PC)MOVC A,A+DPTR;A(A)+DPTR)特点:,两条指令的区别:前者查表的范围是相对PC当前值以后的255 字节地址空间,而后者查表范围可达整个程 序存储器64K字节的地址空间。,A是无符号8位数(00HFFH)。寻址的范围是64K字节的程序存储器EPROM。,是MCS-51单片机特有的一种寻址方式,它以地址指针 DPTR或程序计数器PC(当前值)为基地址R,以累加器A 作为变址R,这二者内容之和才是实际操作数地址。,5.基址寄存器加变址RS间接寻址(变址寻址):,位移量rel为带符号的8位二进制数,必须以补码形式出 现,所以rel的范围为+127-128,即该种寻址方式的寻 址范围为:以当前PC内容为起点向前可偏移128字节,向后可转移127个字节。,7.位寻址:专门用于位操作指令,可对MCS-51中211个位进行运算和传送的操作,使用专用累加器C。,6 相对寻址:例 JC rel;若PSW中CY=1,则转移至PC=PC当前值+rel特点:,以程序计数器PC当前值内容为基地址,加上指令中给 定的偏移量作为操作数的存储地址。,第三节 指令系统及应用举例,凡是指令执行后,改变了内存中direct字节或direct中 各位的内容的指令,均使得PSW中的各位值不确定。,direct可表示片内RAM 00H7FH(128B)的内存空间 和SFR的地址。,除以direct为DST外,其它指令都不影响PSW中除P以外 的其它位,以A为DST的指令会影响PSW中的P位。,一、数据传送类指令:分为5部分,看P37表3.1。特点:,MCS-51单片机共有111条指令,用42个助记符表示了33种指令功能,同一种指令所对应的操作码可多达8种,指令按其功能可分为4大类:数据传送类,算术运算类,逻辑运算类,控制转移类。,以上所说的direct不包括:A,DPTR,Rn,PSW和B。通常SRC可以是:A,Rn,direct,Ri和#data 5种,而DST 只能有4种(不能是#data)。,例1 设内部RAM 30H单元内容为52H,给出以下程序执行后(R0)=?(A)?(30H)?及30H在不同指令中的作用。,MOV A,#30H MOV A,30H MOV R0,#30H MOV A,R0 MOV 30H,#30H,;A#30H;A 30H,即(A)=52H;R0#30H;A(R0),即(A)=52H;(30H)#30H,解:(R0)=30H,(A)=52H,(30H)=30H其中,第一,三,五句中#30H为立即数,第二,五条指令中30H为直接地址,第四条指令R0中的30H为隐含的间接地址。,例2.已知P1口内容为0AAH,给出下列程序执行的结果及相应 的机器码。,,,;()#78 30H;()85 10 90H;()E5 10H;()F6H;()86 40H,例3.设片内RAM30H单元内容为40H,40H单元中的内容为 10H,P1口上的内容为0CAH,给出执行以下程序的结果。,,,;();()();();()();()();()(),例4.设片外(),(0),分析下面程序执行的结果。,,,;();(H)()=44H;();(),例5设堆栈指针SP=11H,PSW=00H,给出下面程序 执行的结果。,MOV 20H,#53H PUSH 20H POP PSW,;(20H)53H;53H(SP)+1)(12H),SP=SP+1,即(SP)=12H;PSW(SP)=53H,SP=SP-1,即(SP)=11H,加减法指令的DST只能是A,SRC可为其它四种方式,减法指 令只有带进位减助记符。,二、算术运算类指令:(看P41表3.2),此类指令具有加,减,乘,除指令,它们一般对PSW的CY、AC、OV和P各位均有影响,对其余四位不影响,但INC与DEC指令不影响PSW的内容。,具体特点如下:,除法中,OV=1表示除数为0,A、B中的内容均不定,其它 情况OV=0。,乘法中,OV=1表示乘积大于255,OV=0表示乘积小于255。,加1减1指令不影响PSW除P位以外的其它位。乘、除法中CY=0。,类型,助记符,功能,对PSW的影响,字节数,振荡周期,算术运算类指令,例1 给出以下程序执行结果及对程序状态字PSW的影响。,;(30H)=43H;(A)=7AH;(R0)=30H;(A)=(30H)+7AH=0BDH,MOV 30H,#43H MOV A,#7AH MOV R0,#30H ADD A,R0,执行程序以后,据以上结果知PSW中:CY=D7CY=0,AC=D3CY=0,奇偶位P=0,OV=D7CYD6CY=01=1,此结果对于无符号数而言为正确,但对有符号数而言不正确。(因为2个正数相加得到一个负数,所以一定是发生了溢出,结果不正确。),MOV R0,#7E MOV 7EH,#0FFH MOV 7FH,#38H MOV DPL,#0FEH MOV DPH,#10H INC R0 INC R0 INC R0 INC DPTR INC DPTR,;(R0)=7EH;(7EH)=0FFH;(7FH)=38H;(DPL)=0FEH;(DPH)=10H;(7EH)+1=0FFH+1=00H(7EH);(R0)=7FH;(7FH)+1=38H+1=39H(7FH);(DPTR)=10FE+1=10FFH;(DPTR)=10FF+1=1100H,例2 分析执行以下程序段的结果。,MOV A,#0C4H SUBB A,#55H,其中:(A)=6EH,(CY)=D7CY=0,(AC)=D3CY=1,(OV)=D7CYD6CY=01=1,(P)=0,例3设进位位C=1,给出执行以下结果及对PSW的影响。,;(A)=0C4H;(A)-55H-(C)=6EHA,以上结果对于无符号数而言为正确,(OV)=1无意义,对于符号数则(OV)=1表示结果为错误,负数减正数结果应为负数,而6EH为正数,原因是因为符号数C4H=-3CH,所以C4H-55H-1=(-3CH)-56H=-92H,而-92H=-146已超出8位二进制数所能表示的最大负数。(-128)。,例4设累加器A中内容为89的BCD码,即10001001,R0中的 内容为28的BCD码,即00101000,求执行下面程序后,A中结果及正确的BCD码值应为多少?,ADD A,R0 DA A,;(A)+(R0)A,即(A)=B1H,即非 十进制正确结果,也非十六进制正确结果;(A)=17H,这里,因为(C)=1,所以 正确答案为117。,因为在执行DA A指令时,首先由于(AC)=D3CY=1,所以对A 中低4位内容加6调节,使A的低4位变为0111,然后又由于A中高4位内容大于9,所以对A中高4位内容 再加6进行调整,使其变为0001,同时使进位位(C)=1,则最终得到结果为117。,以累加器A作为DST,SRC可以是#data,Rn,direct,(内部RAM低128B或SFR)和Ri四种方式。,三、逻辑运算类指令:看P45表3.4。,逻辑运算类指令主要用于逻辑运算中,主要可以分为两大类:,逻辑与(ANL):按位相与,特点是清0,全1才出1,见0就出0,看例1。,3单操作数的指令,操作数必须放在A中。4各类指令的特点为:,特点:此类指令除RLC和RRC指令外,均不影响PSW中除P 以外的其他位,而RLC和RRC也只影响P与C位。,2.以direct为DST,而以A或#data为SRC的操作指令。,逻辑运算类指令,;屏蔽A中高5位;去掉P1中的低3位;P120A20,例1:要求编程把累加器中的低3位传送到P1口,传送时 不影响P1口的高5位。,ANL A,#07H ANL P1,#0F8H ORL P1,A,逻辑异或指令(XRL)对操作数中的某一位或某几位 进行取反(两个操作数不同出1,相同出0),看例3。,逻辑或(ORL):按位相或,特点是置1,有1就出1,全0才出0,看例2。,MOV A,#0F0H ANL P1,#00H ORL P1,#55H ORL P1,A ANL P1,A,;(A)=0F0H;P1=00H;P1=55H;P1=0F5H;P1=0F0H,例2:给出下列两段程序执行的结果。,例3:MOV A,#42H XRL A,#52H,例4:分析以下程序执行的结果,CLR C MOV A,#99H RL A,MOV A,#99HRRC A,;(C)=0;(A)=99H;右移一位,(A)=33H;(A)=99H;带进位位右循环一位,(A)=4CH,(C)=1,四、控制程序转移类指令:看P47表3.5。,(6)如果整个程序的口地址发生改变,只要程序中各指令,(5)CJNE指令的第一操作数可以是A、Rn和Ri,而第二操作 数只能是#data和direct,且指令只影响PSW中的CY 位,无 论转移与否,CJNE指令均影响CY的值,但它执行后不影 响各操作数(第一与第二)的内容。,(4)除CJNE指令外,其余指令对PSW 中各值均无影响。,(3)访问-128127B存储空间的指令有SJMP和条件转移类指令,256字节内跳转指令有JMP。,其中:(1)访问64KB存储空间的指令有LCALL、LJMP、JMP。(2)访问2KB存储空间的指令有ACALL、AJMP。,指令中的rel为一个8位符号数,表示要转移的相对地址值。,的相对位置不发生变化,则SJMP和条件转移中的各地址均不发生变化,但长转移与绝对转移指令LJMP,AJM和JMP中地址值均发生变化,要修改程序中的相应地址值。,注意:MCS-51 64Kmemory分为16段,32个区,256页,每段 包括2个区,每区2K字节,划分方法如下:EPROM16 位地址码中高8位定义为页地址,低8位为页内地址,所 以64Kmemory分为256页,每页256个字节,规定每8页 为一个2K区(8*256),页地址(高8位地址)可以写成 两位16进制数XhXlH,其中,高位16进制数Xh由0F定 义为16个段,(低8位Xl由07页定义第一个2K区,8F 页定义第二个2K区,低8位Xl的值表示段内具体的页 码)。XL的07页定义为某段内第一个2K区,XL的08 页定义为第二个2K区。,例如:AJMP 3ABCH;设此指令执行前(PC)=289AH AJMP 3DEFH;设此指令执行前(PC)=37FEH AJMP 3BCDH;设此指令执行前(PC)=3456H,解释:第2条指令的操作码位于第3段7页内,目的地址处于 第3段 第D页内,与(PC)+2(3段8页)处于同一 2K范围内,所以此指令正确,执行此指令的功能是:,保持PC15PC11值不变,将目的地址3ABCH的第100位(01010111100B),使(,(PC)=(PC)+2=3ABEH,PC15PC11=00111,,解释:第一条指令的操作码位于第3段第8页(因为(PC)=389AH),而目的地址为3ABCH,处于第3段A页内,与(PC)+2处于同一个2K范围内,所以此指令使用正 执行后的功能使(PC)=3ABCH,即使程序转向指定 地址执行指令,指令的执行过程为,定义:PC当前地址=(SJMP指令第一字节所在地址+2),(PC)=3DEFH。,解释:第3条指令(PC)=3456H,所以(PC)+2=3458H处 于EPROM中3段第4页内,目的地址为3BCDH,处于 PROM中第3段B页内,与第3段4页内的程序不属于同 一个2K地址范围,所以此处AJMP 指令使用错误。,注意2:手工汇编计算相对地址rel的方法:rel=目的地址(SJMP指令第一字节所在地址+2)=目的地址(PC+2)=目的地址PC当前值,规定:当目的地址大于PC当前地址时,rel值应在007FH之间(正值),若rel值大于7FH时,说明向后跳转超过+127,超出本指令应用范围,不能用本指令。当目的地址小于 PC当前地址时,应有:目的地址PC当前值=rel0,其,例如:计算下列指令的相对地址rel:指令第一字节所在地址 指令 目的地址 rel值 2100H SJMP 2123H 21H0 2143H SJMP 2111H 0CCH0第一条指令rel=2123-(2100+2)=0021H,所以rel=21H第二条指令rel=2111-(2143+2)=FFCCH,所以rel=0CCH,中低8位为rel的实际值,高8位一定是FFH,表明rel是个负数,当高8位不是0FFH则说明向前跳转超过-128,本指令不能用。,注意3:AJMP与ACALL指令转移或调用的目的地址必须在指令 操作码第一字节所在地址值+2后的同一2K范围内,否则 上述指令不能

    注意事项

    本文(单片微型计算机原理及应.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开