MCS51单片机原理及应用课件_第1页
MCS51单片机原理及应用课件_第2页
MCS51单片机原理及应用课件_第3页
MCS51单片机原理及应用课件_第4页
MCS51单片机原理及应用课件_第5页
已阅读5页,还剩641页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及应用,考核方式:笔试+实验+作业,期末成绩占 70%,期中成绩占20%,实验成 绩占5%,平时作业成绩占5%。,答疑时间:周三下午 16:0017:30,答疑地点:机械学院 508室,本课程教学安排,祝爱萍:机械学院 508室,第一章概述 第二章mcs-51单片机结构及原理 第三章 MCS-51单片机指令系统及编程举例 第四章单片机定时功能及应用 第五章单片机的中断系统 第六章单片机串行口及应用 第七章单片机系统扩展及显示接口技术 第八章 D/A、A/D转换器接口及应用 第九章 键盘接口技术,目 录,第一章 概述,【学习目标】通过本章的学习,学生应该能 够

2、:熟悉单片机的主要特点、 典型产品、应用领域,掌握数 制以的概念及不同数制间的转 换方法,明确数在计算机中的 表示方法。,重点和难点内容:数制以及不同数制间的转 换和数在计算机中的表示 方法。,解决方法:多练习。,课外指导:答疑。,教学效果检测方法:批阅作业。,本章作业:教材P14 习题与思考题 1,2,3,4,5,6,7,8,1定义: 单片机全称为单片微型计算机(single-chip Microcomputer),它在一块芯片上集成了 CPU、RAM、ROM、PROM,E2PROM) CTC和多个I/O口,此外,有的单片机如8096 单片机上还集成了ADC 和DAC转换芯片。,本章主要内容

3、,一单片机的定义及特点, 测量与显示:如各种智能仪表,用于提高测 量与显示的自动化程度和准确 度。,3. 应用领域:主要应用于以下几方面,2特点:单片机的体积小,可靠性高,价格便 宜,功耗低,它是目前应用最广泛的 工业控制微机。,辅助设计和制造 :如加工中心,用于提高 加工的自动化程度和精度。,日常生活:如各种家电中,用于提高家电的 自动化程度,增强其功能。,科学计算:人造卫星轨迹, 天气预报等,数据处理 :企业管理、情报检索等,其他方面:系统仿真 、智能模拟 、计算机 网络与信息及高速公路管理等。,1946-1958: 第一代电子管计算机。磁鼓存储 器,机器语言及汇编语言编程。 1958-1

4、964: 第二代晶体管计算机。磁芯作主 存储器, 磁盘作外存储器,开始 使用高级语言编程。,二、 单片机的发展概况,1964-1971: 第三代集成电路计算机。使用半 导体存储器,出现多终端计算机 和计算机网络。 1971- : 第四代大规模集成电路计算机。 出现微型计算机、单片微型计算 机,外部设备多样化。 1981- : 第五代人工智能计算机。模拟人 的智能和交流方式。,二、 单片机的发展概况,三、 计算机发展趋势,微型化 便携式、低功耗 巨型化 尖端科技领域的信息处理,满足 超大容量、高速度的要求 智能化 模拟人类大脑思维和交流方式, 具有多种处理能力 系列化、标准化 便于各种计算机硬、

5、软 件兼容和升级 多机系统 大型设备、生产流水线集中管理 (独立控制、故障分散、资源共享),典型产品有8051,8751和8031。其三种 芯片的主要区别在于:ROM,EPROM和外接 EPROM。8051内部程序要由生产芯片的厂 家写入,适用于低成本大批量生产;8751片 内程序可由用户固化或清除,价格相对较贵, 适用于开发样机;8031芯片必须外接ROM, 适用于较方便进行修改和更新程序记忆的场 合。,1. MCS-51系列简介:看P18表2.1,四、 常用单片机系列介绍,2. 存储器简介:memory是单片机的主要组成 部分之一,主要用于存储信 息,它的分类如下:,内存:包含有,RAM:

6、随机存储器,其中信息可读可写,断 电丢失全部内容。,ROM:只读存储器,用户不可更改其内容, 与EPROM同样,断电仍可保存信息。,外存:包含有,硬盘:可随时读写并永久保存信息 但硬盘存储 容量有限,随身携带不方便。,EPROM:可擦除可编程的只读ROM,用紫外 线可擦除其内容,用专用设备用户 可固化信息。,软盘:软盘可随时读写并永久保存信息,其 容量小但可无限扩充,随身携带方便。,光盘:可随时读取信息,容量大,随身携带 方便,也可对其进行写操作并永久保 存信息,但必须配备专门的刻盘机。,五、数制及其间的转换,1数制:常用的计数方法,有二( Binary )、 十( Decimal )、十六(

7、Hexadecimal)、 八(Q,Octal)、十二及六十进制等。,优盘:特点同软盘,但容量较软盘大很多, 比硬盘小。,位权:某个数位的值是由这一位的数码值乘以 处在这一位的固定常数决定的,通常把 这一固定常数称之为位权值,简称位 权。简而言之权是以基为底的幂。,例:1010.11B的基为2, 各位的权分别为:23、22、21、20。2-1和2-2,基数:指数制所使用数码的个数。 如: B(2),Q(8),D(10)、H(16)。,例1FFFFH =15163+15162+15161+15160 =65535 例210111100101B =27+25+24+23+22+2-1+2-3=18

8、8625,二,八,十六进制转换为十进制时,原则 为:按位权展开相加。,2数制之间相互转换的原则:,十进制转换为二,八,十六进制时,原则 为: 整数部分除基取余,先出低位, 小数部分乘基取整,先出高位。,例1 432D=1000101B (取四位小数,并非精确转换) 例2 25473D=37656Q=FEBAH, 机器数:数字在机器中的表示方式称为机 器数,即将符号(+,)也作为 数字的一部分。具体地说,在存 储数据时,最高一位用来表示数 字的符号,当数字为正时,最高 一位的值为0,当数字为负时,最 高一位的值为1。机器数有原码、 反码和补码三种形式。,3数在计算机中的表示方法,真值:一个数的实

9、际大小称为这个数的真 值。, 原码:正数的符号位用0表示,负数的符号 位用1表示,符号位之后是数字的真 值,此法表示的数字称为数的原码。 正数的原码与其真值相同。,例: 对于8位数据: +35H表示为 +35H原码=00110101 , -35H表示为 -35H原码 =10110101 , +0原码=00000000 , -0原码=10000000, 反码:正数的反码与其原码相同,负数 的反码则为其对应的原码按位取 反(符号位除外)。,例: 对于8位数据: +35H表示为 +35H反码=00110101 , -35H表示为 -35H反码=11001010 , +0反码=00000000 , -

10、0反码=11111111, 补码:正数的补码与其原码相同,负数 的补码则为其对应的原码按位取 反(符号位除外)加1。, 注意: 计算机中所有的符号数都是默认用补码 表示的。,例:对于8位数据: +35H表示为: +35补码=00110101 , -35H表示为: -35补码=11001011, +0补码=-0补码=00000000。, 计算机中所能表示的符号数的范围为: -2n-12n-11, n为数据的位数。,当n=8时,所能表示的符号数的范围为: -128127, 即 -2727-1 当n=16时,所能表示的符号数的范围为: -3276832767 即 -215215-1 。, 已知一个数

11、的补码时,其真值为: 正数真值=正数补码 负数真值=负数补码取反(符号位除外)1,例:x=01001101, 则x真值=01001101=77D x=10110101, 则x真值=11001010+1=11001011=75D,例:Y=11710=117补+10补 =10001011+1110110 =110000001=-127, 利用补码可将减法转换为加法以简化硬 件电路,具体原理为:将减数与减号一 起变为补码后再与被减数的补码相加, 其和(如有进位则舍弃进位)就是两数 之差。(了解),4ASCII码:(又称字符编码), 英文字母AZ及az; 数字字符09: 专用字符:+,/,空格和各种标

12、 点符号; 各种非打印字符如:CR(回车),LF (换行), BELL(响铃)等。,计算机处理的信息并不全是数字,有时还 要处理字符和字符串,常见的字符有:,5 BCD码(Binary Coded Decimal) 用四位二进制代码表示一位十进制正整数 的编码称为BCD码。,以上这些字符在计算机中都用固定的二进 制数表示,国际上目前采用最常用的美国标准 信息交换码也称ASCII码来表示。要求大家记 住前两类字符的ASCII码值。(P10表1.3,列高行低),例:129=(0001 0010 1001)BCD,第二章 mcs-51单片机结构及原理,【学习目标】通过本章的学习,学生应该能 够:掌握

13、有关单片机的基本结 构及其功能,尤其是mcs-51系 列单片机CPU和存储器的结构 及功能,这一部分是全新的概 念,需要认真掌握。,重点和难点内容: mcs-51系列单片 机CPU和 存储器的结构及功能。,解决方法:细讲、慢讲。,课外指导:答疑、质疑。,教学效果检测方法:课堂提问、批阅作业。,本章作业:教材P36 习题与思考题 1,3,5,6,7,本章主要内容,2.1 mcs-51单片机结构 2.2 mcs-51的存储器结构 2.3 单片机的时序,第一节 mcs-51单片机结构,一、mcs-51单片机内部结构简介 二8051 CPU的组成及其功能 三计算机指令执行过程 四. MCS-51引脚及

14、功能,单片机内部最核心的部分是CPU,CPU 的主要功能是产生各种控制信号,控制存储器 及输入/输出端口的数据传送,实现数据的算 术运算、逻辑运算以及位操作处理等功能。,8051 CPU 的组成及其功能,PC程序计数器:16位专用RS,用于存放下 一条将要执行的指令地址, 其内容有自加功能,它可 保证程序按一定顺序执行。,8051 CPU由控制器与运算器两部分组成 1控制器:,指令译码器:将指令RS的指令转换成电信 号,再经逻辑控制电路产生各 种控制信号。(译码前指令为 0、1代码,译码后指令为脉冲 信号),指令Register(RS):8位,用于暂存待执行的 指令,等待译码。,8051 CP

15、U 的组成及其功能,数据指针DPTR:16位专用地址指针RS, 主要用于存放16位地址, 作间址RS使用,也可拆 成两个8位RS,DPH和 DPL,它们片内RAM中 占据的地址分为83H和 82H。,8051 CPU 的组成及其功能,定时控制与条件转移逻辑电路:不介绍。,2运算器:,累加器ACC:8位专用RS,用于存放操作数 或中间结果,是CPU中使用最 频繁的一个RS,也是20个SFR 中的一个。,8051 CPU 的组成及其功能,程序状态字RS(PSW):8位专用RS,用于 存放程序运行中的各种状态信 息,它可以进行位操作,PSW 的字节地址为D0H,位地址为 D0D7H。各位的含义如下:

16、, 算逻运算部件:此部件实现算数运算与逻辑 运算的功能,其运算结果的 状态送PSW中。,8051 CPU 的组成及其功能, CY(PSW.7):进位标志,表示在进行无 符号加减时,最高位有无向更高位进 (借)位,当有进位CY=1,无进位则 CY=0。,程序状态字RS(PSW)各位的含义,AC(PSW.6):半进位标志,表示在进行 无符号加减时,D3位有无向D4位进 (借)位,当有AC=1,无则AC=0,主 要用于BCD 码的判断位。,程序状态字RS(PSW)各位的含义, RS1,RS0(PSW.4,PSW.3):工作RS组 选择标志,用于选择内部RAM 中4 个RS中的一组它们的关系 如下:,

17、 F0(PSW.5):用户标志位,由用户通过程 序设置1或0,表示程序处于某种状态, 为后续程序执行提供条件。,程序状态字RS(PSW), OV(PSW.2):溢出标志,当进行符号数 运算时可表示是否有溢出,则OV=1, 无则OV=0,溢出的逻辑表达式为 OV=C6YC7Y。, F1(PSW.1):保留位,无定义。,程序状态字RS(PSW)各位的含义, P(PSW.0):奇偶标志位,表示累加器A 中含“1”个数的奇偶性,当A中有奇数个1,, B寄存器:用于乘除法操作,8位RS,是20 个SFR中之一,B用来存放第二操 作数,即用于存放乘法的高位字 节或除法的余数部分。, 暂存器:暂存数据信息。

18、,P=1,否则P=0。 注意:P的值与A内容的奇偶无关。,程序状态字RS(PSW)各位的含义,三、计算机指令执行过程,MCS-51采用40引脚双列直插式封装(DIP) 形式,(看P28图2-6)。 主电源引脚:Vss(地)和Vcc(+5v)。 外接晶振引脚:有两个,四 MCS-51引脚及功能, XTAL2:片内晶振器反向放大器输出端,当 使用外部晶振器,作为晶振信号的输入端。, XTAL1:片内晶振器反向放大器输入端, 当使用外部晶振器,此端接地。,四 MCS-51引脚及功能,3控制信号引脚:, RST/VPD:系统复位/备用电源输入引脚, 输入信号,有两个作用:,RST端维持两个机器周期以上

19、的高电平时 将使单片机复位。复位后CPU各寄存器的 特点为:,A)四个I/O口P0P3锁存器均被初始化 为0FFH; B)堆栈指针寄存器SP=07H; C)串行口数据缓冲器寄存器SBUF的内容 不确定;其它各专用RS 均被写成00H; D)内部RAM不受复位影响,上电后RAM 内容为随机。,MCS-51引脚及功能,MCS-51引脚及功能, 当电源电压下降时,此引脚可为备用电源 输入线,为片内RAM 提供备用电源。, 当CPU访问外部memory初时,产生正脉冲 ALE信号输出,在其后沿将P0口输出的低 8位地址锁存于外部地址锁存器中;,MCS-51引脚及功能,当片内有EPROM时,可作为编程脉

20、冲输入 端使用。, 访问外部memory的过程中,ALE端仍以 不变的频率周期性的输出正脉冲信号,且 fALE=1/6fosc ,所以可用作对外输出的时钟 信号和定时作用;,MCS-51引脚及功能,MCS-51引脚及功能, 对于片内有EPROM,编程时,此引脚接 21v编程电源VPP ;,MCS-51引脚及功能,准双向端口工作特点:只有使端口锁存 器事先置“1”,才能使对应口的I/O引脚作为 输入线使用,而CPU执行输出操作时,不管 端口的状态如何都能直接输出信号。,4输入输出引脚:P0、P1、P2、P3均为准双 向信息传输端口。,注意:P0P3除作为一般的I/O线使 用外,还 兼有以下功能:

21、,MCS-51引脚及功能, P1口:在EPROM编程验证程序时输入低8 位地址。, P0口:当CPU访问外部memory时,P0口 可分时作为低8位地址线和8位双 向数据线用。,MCS-51引脚及功能, P3口:第二功能见P27表27。复位后P3口 的第二功能可直接使用,但复位前必 须先置口内锁存器FFH才能用。,P2口;当CPU访问外部memory时,P2口 可作为外部高8位地址的输出线。,第二节 MCS-51的存储器结构,MCS-51单片机物理上有4个存储空间: 片内程序存储器ROM(4KB) 片外程序存储器EPROM(64KB) 片内数据存储器RAM(256B) 片外数据存储器RAM(6

22、4KB),这些存储器结构的物理特点是:程序存 储器和数据存储器空间是相互独立的,片内 数据存储器和片外数据存储器空间在也是相 互独立的。,从逻辑上MCS-51单片机又可分为3个存储空间: 片内、外统一编址的程序存储器(共68KB) 片内数据存储器(共256B) 片外数据存储器(共64KB) 。,MCS-51存储器配置,0FFFH,256B,4KB,64KB,64KB,68KB, CPU通过P0,P2口送出要访问存储单元的 地址A0A15 。 CPU发出ALE信号把P0口地址信号A0A7 锁入锁存器。 存储器按A0A15地址进行译码,找到要访 问的单元。,如下页图,MCS-51访问外部存储器,粗

23、 略的讲可分为以下四步:,一、 MCS-51单片机片内外存储器系统简介,二、MCS-51各存储器具体说明:, 外部程序存储器用于存放程序、程序执行 时必要的常数和表格。, 外部程序存储器EPROM: MCS-51可以扩展64K字节的EPROM,其中:, 外部程序存储器受PC管理,PC的内容始 终指向下一条将要执行的指令所在的地 址,PC具有自动加1的功能,保证程序按 规定顺序执行。,二、MCS-51各存储器具体说明:, 外部程序存储器的容量为64K字节,地址范 围为:0000H0FFFFH,且有, 内部程序存储器EPROM:, 外部数据存储器主要存放运行程序的过 程中所需的数据,中间结果和最终

24、结果。, 外部数据存储器受data point(数据指针) 寄存器DPTR和工作寄存器R0及R1的管 理。, 外部数据存储器RAM:, 外部数据存储器在软件上由MOVX类指令 访问。, 外部数据存储器的最大容量为64K字节, 地址范围为: 0000H0FFFFH。, 外部数据存储器RAM:,MCS-51芯片内部有128个字节(BYTE) 的内部数据存储器RAM(称片内RAM), 地址为00H7FH,有128B的特殊功能寄存 器(SFR)区,地址为80H0FFH,也称高 地址区,共256个字节的存储空间。从使用 性能上可分为以下几部分:,4. MCS-51片内数据存储器,SFR,FFH, 位寻址

25、空间:内部RAM中,地址20H2FH 16个字节单元(共128个位)具有位寻址的 功能,即CPU可对这16个字节中的每一位, 工作寄存器R:内部RAM中00H1FH单元 (共32B)为通用工作Register区,分为4组, 每组8个字节,均可用作R0R7,用户可根 据PSW中的RS1和RS0的值选择相应的工作 寄存器组。,MCS-51内部RAM,这128个位的地址规定为00H7FH(RAM的 低区地址也是00H7FH),在使用中由软件 指令加以区分。如:,MCS-51内部RAM,单独进行操作,所以 20H2FH区域是MCS-51 单片机布尔处理机的一个存储空间,其中:,20H2FH对应此存储区

26、中16个字节的每一 个字节的地址。,因为每个字节有8位,所以此存储区共有 168=128位供用户单独操作。,MCS-51内部RAM,且有: 对应的字节地址=20H+位地址/8, 其中位地址/8的余数为该位在该字 节中所处的具体位置)。,MOV 20H, A (字节操作) ;20H单元 A的内容 MOV 20H, C (位操作) ;布尔处理机存储空间第20H位(即24H单元 中的第0位)中 PSW中进位位CY内容 。,例:位地址7AH对应的字节地址的计算方法是: 7AH/8,商为F,余数为2,表示该位处于片 内RAM 2FH(20H+F)字节的第二位。, 位地址=(字节地址-20H)8+N; 其

27、中:N=07,为该位在此字节中的位置, 例:2EH中的第6位对应的位地址 =(2EH-20H)8+6=76H。, 30H7FH空间:用户RAM区,共80个字 节,此部分空间可以作为buffer、堆栈区 等存储单元用,但不能作为工作寄存器用, 不能进行位寻址。, 对于工作Register区(00H1FH)单元, 没有被选中的工作Register单元与30H 7FH单元具有同样功能。, MCS-51特殊功能Register(SFR):, 在80H0FFH这128个字节中除去SFR占用 的21个字节外其余字节均无定义,注意访 问无定义的单元得到的是一个随即数。, SFR的分布:MCS-51单片机除P

28、C外共有20 个SFR,占21个字节(因为DPTR占两个字 节),它们分布在内部RAM的80H0FFH。,MCS-51特殊功能Register(SFR), 位寻址空间:在SFR中凡是字节地址能 被8整除的SFR均有位寻址功能(即末位 地址为8或0的SFR有位寻址功能),共 11个SFR有85位可进行位寻址。, SFR与RAM(007FH)的区别:SFR作为 源操作数时只能采用直接寻址,寄存器间接 寻址对其无效,但对低128B的RAM区有效。, SP:堆栈指针RS,是个8位SFR,在RAM 中的地址值为81H,其内容用于指示堆 栈栈顶(已存有数据的堆栈存储单元) 的地址值。每当有数据进栈时SP值

29、自 动加1,出栈时SP值自动减1,当系统 复位后,SP=07H,即堆栈实际上是 由08H单元开始。, 几个常用SFR的基本功能, 串行数据缓冲器SBUF:是个8位的SFR, 地址为99H,用于存放串行通讯时待发送 或已接受到的数据,它由两个独立的寄存 器(Rbuf和Tbuf)组成,但它们共用一 个地址值),复位后SBUF的内容不确定。,堆栈:是个具有先入后出特点的一片存储区, 堆栈的真正工作区一般选在片内RAM 的30H7FH内。, 几个常用SFR的基本功能,定时器/计数器T0/T1:8051系列单片机有 两个16位的定时器 /计数器 T0和T1,它们 分别由TL0,TH0和TL1,TH1两个

30、 8位的 独立的SFR组成,分布在片内RAM的地址 为8AH8DH。,注意:T0与T1在使用时不能作为2个16位的 RS来对待。,第三节 单片机的时序,一、MCS-51单片机的复位方法及复位 后内部各SFR状态,复位后内部各SFR的状态:看P25表2.5。,一条指令可分解为若干个基本的微操作, 而这些操作所对应的脉冲信号在时间上有严格 的先后次序,这种次序就称为计算机的时序。 要求掌握以下几个概念:,二、 CPU的时序,振荡周期T振:也称时钟周期,指为单片机提供 时钟信号的振荡源的周期,当晶 振频率为12MHz 时T振=1/12us 。,CPU的时序,机器周期T机:指CPU完成某些基本操作的所

31、 需要的时间,1个机器周期包含 6个状态周期。 T机=6T状=12T振=1us 。,2.状态周期T状:也称S周期,由两个振荡周期组 成一个状态周期。如上例中: T状=Ts=21/12=1/6us。,CPU的时序, 指令周期T指:指令周期是指执行一条指令 所需要的时间,一般情况下, T指=(14)T机 ,MCS51 系列单片机执行一条最长的 指令(如乘、除法指令)需要 4个机器周期,即4 us时间。,第二章补充练习,MCS-51单片机内256B的数据存储器可分为 哪几个区?分别作什么用? 开机复位后,CPU使用的是哪组工作寄存 器?它们的地址是什么?CPU如何确定和 改变当前工作寄存器组? MC

32、S-51单片机的程序存储器和数据存储器共 处同一地址空间为什么不会发生总线冲突? 位地址7CH与字节地址7CH如何区别?位地 址7CH具体在片内RAM中什么位置?,第三章 MCS-51单片机 指令系统及编程举例,【学习目标】通过本章的学习,学生应该能 够:熟练地掌握符号指令及寻址方式,掌 握常用伪指令的使用方法以及汇编语言指 令的完整格式,会读常见典型程序,学会 编写基本的汇编语言程序。,重点和难点内容:MCS-51寻址方式 、指令 系统及汇编语言程序的编 写方法。,解决方法:详细讲解,多举实例,不断重复 要点,增加练习。,课外指导:答疑。,教学效果检测方法:质疑,批阅作业并结合 期中考试。,

33、指令:是控制计算机进行各种操作的运算代 码形式的命令(MCS-51有42种助记 符33个指令功能共111条指令)。,指令系统:计算机所能识别执行的全部指令的 集合称作这种计算机的指令系统。 各种计算机的指令系统各不相同。,本章常用术语简介:,机器码:计算机所能辨认的命令是二进制代 码,又称操作码或指令代码称。一 种计算机有几十种甚至几百中指令, 如果都用二进制代码,记忆、书写, 编程都很不方便,且易出错。,程序:是人们为了完成某中预定的任务,将 一系列指令、数据,地址按一定顺序 排列而得到的一组指令。,汇编语言源程序:用助记符(操作码)、符号 地址和标识符等书写的程序 称之为汇编语言源程序。,

34、助记符:为解决上述问题,制造厂家对指令 系统中的每一条指令规定了特定的 英文缩写符号称为助记符。,MOV A,R0;AR0内容,MOV称指令助记符 对应的机器码为:11111000,汇编:汇编语言源程序在机器执行前必须先 转换为相应的机器码方可被机器识别 执行,这个过程称为翻译(汇编)。 翻译汇编语言源程序的方法有两种: 人工翻译和汇编软件自动翻译。,本章第一次作业: 教材P55 习题与思考题 2,4,7 ,8(4),10,补充作业: 请用位操作指令编写实现下面逻辑表达式的程序。 PSW.5=P1.3Acc.2+B.5P1.1,3.1 指令格式简介 3.2 MCS-51的寻址方式 3.3 指令

35、系统 3.4 伪指令 3.5汇编程序设计及应用举例,本章主要内容,第一节 指令格式简介,汇编语言的标准格式为: 标号: 指令助记符 操作数1,操作数2,操作数3 ;注释, 标号:是用户定义的符号,它代表该条指令 的符号地址,标号也称标识符。,标号组成:以英文字母开始,由18个字符 (字母、数字和下划线“-”)组成, 以“:”结尾。, 操作码助记符:是汇编语言中每一行不可缺 少的部分,它规定了指令的 操作功能,操作码助记符是 由25个字母组成的字符串, 也是机器的保留字,操作码 与操作数之间要用若干空格 分开。,注意:标号不能使用机器的保留字。 一个程序中不允许重复定义标号。, 操作数:可以是具

36、体的数字,也可以是符号 或RS名,操作数可分为源操作数 SRC(source)和目的操作数DST (destination),二者用逗号分开, 有些指令无操作数。, 带 的内容可省。, 注释:注释必须以“;”开头,可有可无, 可由任何可打印的ASCII码字符组 成,用于解释说明程序。,第二节 MCS-51的寻址方式,例:mov A, #data ; A将数字data 特点:, 指令操作码后面的一个字节就是操 作数本身,立即数是放在程序存储 器中的一个常数。,1. 立即寻址:,所要找的操作数是一二进制数或十进制 数,出现在指令中,用“#”作前缀。, #为立即数的前缀符号,data可为 16位,也

37、可为8位。, MCS-51系列只有一条指令,其立即数为 16位,这就是: MOV DPTR,# data16 ; DPH data高8位 ; DPL data低8位,2. 直接寻址:,例:MOV A, 70H;ARAM 区70H单元的内容。 特点为:,指令中直接给出操作数的地址。, 指令操作码后面的一个字节就是实际操作 数的地址(8位)。, 因为direct是8位二进制数,所以直接寻 址的范围主要有以下三个地址空间:, 指令中的直接地址可用direct表示 。 例:PUSH direct;功能为将direct所指 ;示的片内RAM中单元 ;的内容堆栈中。,内部RAM及SFR中,可进行位寻址的位

38、地 址空间共213位(内部 RAM中有20H2FH 中有128个位,SFR中有85位)。, 内部RAM 00H7FH地址空间共128个字节; 特殊功能R,即SFR (直接寻址是访问 SFR的唯一寻址方式) ;,3. 寄存器寻址: 操作数存放在工作寄存器R0 R7中, 或寄存器A、B、DPTR和C中。 例:MOV A, Rn ; A (Rn),n=07 特点: Rn的内容就是操作数本身;, 寻址范围是:被选中的工作RS组 中的8个work RS,R0R7及A,B, DPTR和进位标志CY(C)。, R中的内容不是操作数本身而 是其所在存储单元的地址值, 即R0指示了操作数所在存储单 元的地址值。

39、,4. 寄存器间接寻址:(间址寻址),指令中寄存器的内容作为操作数存 放的地址,在指令中间接寻址寄存器前 用“”表示前缀。,例:MOV A, R0 ;A(R0) ;将R0所指向存储单元的内容A 中 特点:, 可用作间址RS的register有work RS (R0 , R1)、数据指针DPTR。,例如: “一本书放在甲抽屉中,上了锁; 其开锁的钥匙放在乙抽屉中,乙 抽屉也上了锁。问如何才能取到 那本书?” 答:这就是一个间接寻址的问题,要经 过两次寻址才能找到那本书。而寄 存器间接寻址也是同样。, 间址寻址的范围: R0、R1、SP作为间址RS可以访问内部 RAM的128个字节。, DPTR作

40、为间址RS可访问外部RAM全部 的64KB空间。,R0、R1作为间址RS可以访问外部数据存储 器RAM页内256个字节(可用P2口选中页 面,64KB的RAM可分为256个页面)。, 间址寻址方式有: ADD A,Ri ;i=0或1 MOV Ri ,direct ;i=0或1 MOVX A , DPTR,又称变址寻址,有两种方式: MOVC A, A+PC ;A(A+PC) MOVC A, A+DPTR ;A(A+DPTR) 特点:,5.基址寄存器加变址RS间接寻址:,操作数地址 = 变地址 + 基地址 基地址寄存器 DPTR 或 PC 变址寄存器 A, 是MCS-51单片机特有的一种寻址方

41、式,它以地址指针DPTR或程序计数 器PC(当前值)为基地址R,以累 加器A作为变址R,这二者内容之和 才是实际操作数地址。, A是无符号8位数(00HFFH)。 寻址的范围是68K字节的程序存储 器EPROM。,该寻址方式常用于访问程序存储器 和查表。两条指令的区别为: 前者查表的范围是相对PC当前值 以后的255字节地址空间,而后者查表 范围可达整个程序存储器64K字节的地 址空间。,6 相对寻址:,把指令中给定的地址偏移量与下一 条将要执行的指令所在单元地址(PC内 容)相加,得到真正有效的操作数所存 放的地址值。,例:JC rel;若PSW中CY=1,则转移至 PC=PC当前值 +re

42、l处,若PSW 中CY=0,PC不变。 特点:, 以程序计数器PC当前值内容为基 地址,加上指令中给定的偏移量 作为操作数的存储地址。,位移量rel为带符号的8位二进制数,必须 以补码形式出现,所以rel的范围为+127 -128,即该种寻址方式的寻址范围为:以 当前PC内容为起点向下可偏移128字节, 向上可转移127个字节。,7. 位寻址: 专门用于位操作指令,可对MCS- 51中213个位进行运算和传送的操作, 且本寻址方式只能使用专用累加器C。,例:MOVC,20H,第三节 指令系统及应用举例,MCS-51单片机共有111条指令,用42 个助记符表示了33种指令功能,同一种指 令所对应

43、的操作码可多达8种,指令按其 功能可分为5大类:数据传送类,算术运 算类,逻辑运算类,控制转移类,位操 作指令。,指令中操作数的描述符号: Rn 工作寄存器R0 R7 Ri 间接寻址寄存器R0、R1 Direct 直接地址,包括内部128B RAM单元地址、 21个SFR地址。 #data 8位常数 #data 16 16位常数 addr 16 16位目的地址 addr 11 11位目的地址 rel 8位带符号的偏移地址 DPTR 16位外部数据指针寄存器 bit 可直接位寻址的位, direct可表示片内RAM 00H7FH(128B) 的内存空间和SFR的地址,但不包括A、 DPTR、Rn

44、寄存器。, 除以direct为DST外,其它指令都不影响 PSW中除P以外的其它位,以A为DST的指 令会影响PSW中的P位。,一、数据传送类指令: 分为五部分共29条,看P41表3.1。特点如下:,访问ROM和片外RAM的指令所使用的寄存器 只能是专用寄存器A。 通常SRC可以是:A,Rn,direct, Ri 和 #data 5种,而DST只能有4种(不能 是#data)。 访问SFR的唯一寻址方式是直接寻址,SFR 的名称代表直接地址(A寄存器除外) 。,数据传送类指令总结,注意:以下指令均为非法指令。 MOV Rn,Rn MOV Ri, Ri MOV Rn, Ri MOV #data,

45、 A MOVX 30H,DPTR MOVC B,A+DPTR,哇!好容易出错啊!,例1 设内部RAM 30H单元内容为52H,给出 以下程序执行后(R0)=?(A)? (30H)?及30H在不同指令中的作用。,MOV A, #30H MOV A, 30H MOV R0,#30H MOV A, R0 MOV 30H, #30H,;A30H ;A (30H),即(A)=52H ;R030H ;A(R0),即(A)=52H ;(30H)30H,解: (R0)=30H, (A)=52H, (30H)=30H 其中: 第一,三,五句中#30H为立即数, 第二,五条指令中30H为直接地址, 第四条指令R0

46、中的30H为隐含的间接地址。,例2.已知P1口内容为0AAH,给出下列程序执 行的结果及相应的机器码(P214表A.1)。, , , , , ,,;78 30H ;85 10 90H ;E5 10H ;F6H ; 86 40H,例3. 设片内RAM30H单元内容为40H,40H 单元中的内容为10H,P1口上的内容为 0CAH,给出执行以下程序的结果。,, , , , , ,,;() ;()() ;() ;()() ;(40H)(P1) ;()(),例4.设片外(), (0),分析下面程序 执行的结果。, , , , ,,;() ;() ;() ;(),, , , , ,,;() ;(H) ;

47、 ()=44H ;()(2030H) ; ;() ;(),例5设堆栈指针(SP)=11H,(PSW)=00H, 给出下面程序执行的结果。,MOV 20H,#53H PUSH 20H POP PSW,;(20H)53H ; (SP)=(SP)+1,(SP)=12H ; 53H (SP)(12H) ;PSW(SP)=53H, ;(SP)=(SP)-1 ,(SP)=11H,例3、试编写一程序段,实现将外RAM 0FAH单元中的内容传送到外RAM 04FFH单元中。,解: MOV P2,#00H MOV DPTR,#04FFH MOV R0,#0FAH MOVX A,R0 MOVX DPTR, A,小

48、结: 数据传送类指令有几种类型? 哪些影响哪个标志位?,二、算术运算类指令:(看P45表3.2),此类指令具有加,减,乘,除指令,它 们一般对PSW的CY、AC、OV和P各位均有影 响,对其余四位不影响,但INC与DEC指令不 影响PSW的内容。,具体特点如下:, 加减法指令的DST只能是A,SRC可为 其它四种方式,减法指令只有带进位减 助记符。,除法中,OV=1表示除数为0,A、B中的内 容均不定,其它情况OV=0。, 乘法中,OV=1表示乘积大于255,OV=0 表示乘积小于255。, 加1减1指令不影响PSW除P位以外的其 它位 。 乘、除法中CY=0。,程序中DA A指令必须紧跟在加

49、法指令之后。,再判断当PSW中的CY=1或A寄存器 中高4位值大于9,则对A寄存器中高 4位内容进行加6处理;,先判断当PSW中的AC=1或A寄存器 中低4位值大于9,则对A寄存器中低 4位内容进行加6处理;,十进制加法调整指令DA A的调整原理为, 在操作数为十进制时,加法指令执行后:,类型,助记符,功能,对PSW的影响,字节数,振荡周期,算术运算类指令,例1: 给出以下程序执行结果及对程序状态 字PSW的影响。,;(30H)=43H ;(A)=7AH ;(R0)=30H ;(A)=(30H)+7AH =0BDH,MOV 30H,#43H MOV A,#7AH MOV R0,#30H ADD

50、 A,R0,上述结果对于无符号数而言为正确,但 对有符号数而言不正确。(因为2个正数相 加得到一个负数,所以一定是发生了溢出, 结果不正确。),执行程序以后,据以上结果知PSW中:,CY=D7CY=0, AC=D3CY=0,奇偶位P=0, OV=D7CYD6CY=01=1,MOV R0,#7EH 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 ;(

51、7EH)+1=0FFH+1=00H(7EH) ;(R0)=7FH ;(7FH)+1=38H+1=39H(7FH) ;(DPTR)=10FEH+1=10FFH ;(DPTR)=10FFH+1=1100H,例2 分析执行以下程序段的结果。,MOV A,#0C4H SUBB A,#55H,例3设进位位C=1,给出执行以下程序片断后 A寄存器的结果及对PSW的影响。,;(A)=0C4H ;A(A)- 55H-(C),以上结果对于无符号数而言为正确, (OV)=1无意义,对于符号数则(OV)=1 表示结果为错误,负数减正数结果应为负数, 而6EH为正数,原因是因为符号数C4H真值 为-3CH,所以C4H

52、-55H-1=(-3CH)-56H =-92H,而-92H=-146已超出8位二进制数所 能表示的最大负数。(-128)。,其中:(A)=6EH,(CY)=D7CY=0, (AC)=D3CY=1,(P)=1 (OV)= D7CYD6CY=01=1,,例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。

53、,因为在执行DA A指令时,首先由于 (AC)=D3CY=1,所以对A 中低4位内容加 6调节,使A的低4位变为0111,然后又由于 A中高4位内容大于9,所以对A中高4位内容 再加6进行调整,使其变为0001,同时使进 位位(CY)=1,则最终得到结果为117。,以累加器A作为DST,SRC可以是#data, Rn,direct(内部RAM低128B或SFR)和 Ri四种方式。,三、 逻辑运算类指令:看P49表3.4。,逻辑运算类指令主要用于逻辑运算中,主 要可以分为两大类:,2. 以direct为DST,而以A或 #data为SRC的 操作指令。,三、 逻辑运算类指令:看P45表3.4。,

54、 逻辑与(ANL):按位相与,特点是清0或 屏蔽,操作数和0相与结果为0,和1相与原 内容保持不变。,3单操作数的指令,操作数必须放在A中。 4各类指令的特点为:,特点:此类指令除RLC和RRC指令外,均不 影响PSW中除P以外的其他位,而RLC 和RRC也只影响P与C位。,逻辑运算类指令, 逻辑异或指令(XRL)对操作数中的某 一位或某几位进行取反(两个操作数不 同出1,相同出0),具体方法为:操作 数和1相异或内容被取反,和0相异或原 内容保持不变。看例3。, 逻辑或(ORL):按位相或,特点是置 1,操作数和1相或结果为1,和0相或原 内容保持不变。看例1及例2。,逻辑循环右移(RL):

55、,特点是在操作数 最高低为0的条件下,操作数每被左循环移 位一次,其内容相当于被除2。看例4。,逻辑循环左移(RL):,特点是在操作数 最高位为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,例1:给出下列两段程序执行的结果。,; 屏蔽A中高5位 ;去掉P1中的低3位 ; P120A20,例2: 要求编程把累加器中的低3位传送到 P1口,传送时不影响P1口的高5位。,ANL A,#07H ANL P1,#0F8H ORL P1,A,例3 : MOV A,#42H XRL A,#52H,例4:分析以下程序执行的结果,MOV A,#08H RL A RL A RL A RR A RR A,;(A)=08H ;左移一位,(A)=10H ;左移一位,(A)=20H ;左移一位,(A)=40H ;右移一位,(A)=20H ;右移一位,(A)=10H,例5:分析以下程序执行的结果,CLR C MOV A,#99H RL A MOV A,#99H RRC A,;(C)=0 ;(A)=99H ;左移一位,(A

温馨提示

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

评论

0/150

提交评论