单片机-江汉大学教案

上传人:自*** 文档编号:26201624 上传时间:2017-12-23 格式:PPT 页数:152 大小:1.21MB
返回 下载 相关 举报
单片机-江汉大学教案_第1页
第1页 / 共152页
单片机-江汉大学教案_第2页
第2页 / 共152页
单片机-江汉大学教案_第3页
第3页 / 共152页
单片机-江汉大学教案_第4页
第4页 / 共152页
单片机-江汉大学教案_第5页
第5页 / 共152页
点击查看更多>>
资源描述

《单片机-江汉大学教案》由会员分享,可在线阅读,更多相关《单片机-江汉大学教案(152页珍藏版)》请在金锄头文库上搜索。

1、2 MCS-51指令系统及汇编语言程序设计,指令格式寻址方式指令系统程序设计,概述,由构成计算机的电子器件的特性所决定, 计算机只能识别二进制代码。这种以二进制代码来描述指令功能的语言, 称之为机器语言, 用机器语言组成的程序, 称为目标程序。 计算机就是按照机器语言的指令来完成各种功能操作的, 它具有程序简捷、 占用存储空间小、 执行速度快、 控制功能强等特点。一个单片机所需执行指令的集合即为单片机的指令系统。,使用易于阅读和辨认的指令符号来代替机器码,称为助记符,用助记符的形式表示的单片机指令就是汇编语言,为便于记忆和阅读,助记符号通常都使用易于理解的英文单词和拼音字母来表示。单片机使用的

2、机器语言、汇编语言及高级语言,但不管使用是何种语言,最终还是要“翻译”成为机器码,单片机才能执行之。每种单片机都有自己独特的指令系统,那么指令系统是开发和生产厂商定义的,如要使用其单片机,用户就必须理解和遵循这些指令标准,要掌握某种(类)单片机,指令系统的学习是必须的。,MCS-51单片机汇编语言指令的格式,标号: 操作码 目的操作数, 源操作数 ; 注释例如: LOOP: ADD A, 10H ; (A)(A)+10H (1)方括号 表示该项是可选项, 可有可无。 (2)标号是用户设定的符号, 它实际代表该指令所在的地址。 标号必须以字母开头, 其后跟18个字母或数字, 并以“:”结尾。(3

3、)操作码是用英文缩写的指令功能助记符。 它确定了本条指令完成的操作功能。任何一条指令都必须有该助记符项, 不得省略。 (4)目的操作数提供操作的对象, 并指出一个目标地址, 表示操作结果存放单元的地址, 它与操作码之间必须以一个或几个空格分隔。 (5)源操作数指出的是一个源地址(或立即数), 表示操作的对象或操作数来自何处。 它与目的操作数之间要用“,”号隔开。 (6)注释部分是在编写程序时, 为了增加程序的可读性, 用户写的对该条指令或该段程序功能的说明。 它以分号“;”开头, 可以用中文、 英文或某些符号来表示, 它不存入单片机, 只出现在源程序中。,无标号: MOV A , B无目的操作

4、数: PUSH A无源操作数: CLR A既无目的操作数也无源操作数:RET,标号的作用: 如软件延时程序: MOV R1, 0AH; 给R1赋循环初值DELAY: DJNZ R1, DELAY; (R1) (R1)-1, 若(R1)0则循环,一些特殊符号的意义,在介绍指令系统前,先了解一些特殊符号的意义,这对今后程序的编写都是相当有用的。Rn当前选中的寄存器区的8个工作寄存器R0R7(n=07)。Ri(i=0,1)当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1direct内部数据存储单元的8位地址。包含0127(255)内部存储单元地址和特殊功能寄存地址。#data指令中的8位常

5、数。#data16指令中的16位常数。 addr16用于LCALL和LJMP指令中的16位目的地址,目的地址的空间为64KB程序存储器地址。addr11用于ACALL和AJMP指令中的11位目的地址,目的地址必须放在与下条指令第一个字节同一个2KB程序存储器空间之中。rel8位带符号的偏移字节,用于所有的条件转移和SJMP等指令中,偏移字节对于下条指令的第一个字节开始的-128+127范围内。, 间接寄存器寻址或基址寄存器的前缀。/ 为操作的前缀,声明对该位操作数取反。DPTR 数据指针。bit 内部RAM和特殊功能寄存器的直接寻址位。A 累加器。B 寄存器B。用于乘法和除法指令中。C 进位标

6、志位。(x) 某地址单元中的内容。(x) 由X寻址单元中的内容。,微型计算机的基本工作原理,微型计算机解题过程举例: 计算a+b-c=?,计算a+b-c=?,微型计算机的工作过程,微型计算机的工作过程就是执行程序的过程,而程序由指令序列组成,因此,执行程序的过程,就是执行指令序列的过程,即逐条地从存储器中取出指令并完成指令所指定的操作。由于执行每一条指令,都包括取指、译码和执行三个基本步骤,所以,微型计算机的工作过程,也就是不断地取指令、译码和执行的过程,直到遇到停机指令时才结束机器的运行。,微型计算机工作流程,1.取指令2.取源操作数 3.取目的操作数 4.执行指令,汇编语言程序 对应的机器

7、指令 对应的操作MOV A, #1 10110000 将立即数1传送到寄存器A中 00000001ADD A, #2 00000100 计算两个数的和,结果存放到A中 00000010MOV 08H, A 10100010将A中的数传送到地址单元08H 00001000 00000000HLT 11110100 停机,举例:计算1+2=?,MCS-51的寻址方式,寻址的“地址”即为操作数所在单元的地址,绝大部分指令执行时都需要用到操作数,那么到哪里去取得操作数呢?最易想到的就是告诉CPU操作数所在的地址单元,从那里可取得相应的操作数,这便是“寻址”之意。MCS-51的寻址方式有7种寻址方式:1

8、.立即寻址2.直接寻址3.寄存器寻址4.寄存器间接寻址5.基址寄存器加变址寄存器间接寻址6.相对寻址7.位寻址,1.立即寻址,立即寻址就是把操作数直接在指令中给出,即操作数包含在指令中,指令操作码的后面紧跟着操作数,一般把指令中的操作数称为立即数,因此而得名。立即数可以是8位或16位, 用十六进制数表示。 为了与直接寻址方式相区别,在立即数前加上“#”符号例如:MOVA, #0EH ; (A)0EH这条指令的意义是将0EH这个操作数送到累加器A中。,2.直接寻址,指令中直接给出操作数所在的存储器地址, 以供寻址取数或存数的寻址方式称为直接寻址。例如:MOVA, 68H ; (A) (68H)这

9、条指令的意义是把内部RAM中的68H单元中的数据内容传送到累加器A中。值得注意的是直接寻址方式只能使用8位二进制地址,因此这种寻址方式仅限于内部RAM进行寻址。低128位单元在指令中直接以单元地址的形式给出。对于特殊功能寄存器SFR只能用直接寻址方式访问,而无其它方法。,3.寄存器寻址,寄存器寻址对选定的8个工作寄存器R0R7以及A、B和DPTR进行操作,也就是操作数在寄存器中,因此指定了寄存器就得到了操作数,寄存器寻址的指令中以寄存器的符号来表示寄存器。例如:MOVA , R0 ; (A)(R0) 这条指令的意义是把所用的工作寄存器组中的R0的内容送到累加器A中。值得一提的是工作状态寄存器的

10、选择是通过程序状态寄存器来控制的,在这条指令前,应通过PSW设定当前工作寄存器组。,4.寄存器间接寻址,寄存器中存放的是操作数的地址,也即操作数是通过寄存器指向的地址单元得到的,这便是寄存器间接寻址名称的由来。例如指令:MOVA , R0 ; (A)(R0) 这条指令的意义是R0寄存器指向地址单元中的内容送到累加器A中。假如R0=#56H,那么是将56H单元中的数据送到累加器A中。这里要强调的是: 寄存器的内容不是操作数本身, 而是操作数的地址。寄存器间接寻址使用所选定寄存器区中的R0和R1作为地址指针, 来寻址片内数据存储器RAM(00FFH)的256个单元, 但它不能访问特殊功能寄存器SF

11、R。寄存器间接寻址也适用于访问外部数据存储器, 此时, 用R0、 R1或DPTR作为地址指针。 寄存器间接寻址用符号“”指明。,例如: MOV R1, #80H ; (R1)80H MOV A, R1 ; (A)(80H),5.基址加变址寄存器间接寻址,基址加变址寄存器间接寻址是以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,将两寄存器的内容相加形成操作数的16位的实际地址。例如:MOVA,A+DPTR MOVXA,A+PC JMPA+DPTR在这三条指令中,A作为偏移量寄存器,DPTR或PC作为变址寄存器,A作为无符号数与DPTR或PC的内容相加,得到访问的实际地址。其中前两条是程

12、序存储器读指令,后一条是无条件转移指令。,6.相对寻址,相对寻址是以当前程序计数器PC值加上指令规定的偏移量rel , 而构成实际操作数地址的寻址方法。 它用于访问程序存储器, 常出现在相对转移指令中。转移的目的地址可参见如下表达式:目的地址=转移指令地址+转移指令字节数+偏移量rel值得注意的是,偏移量是有正负号之分的,偏移量的取值范围是当前PC值的-128 +127之间。,若PC=2050H,JZ为双字节指令,则:JZ 08H程序转移的目标地址为: PC+2+rel=2050H+2+08H补=205AHJZ F4H程序转移的目标地址为: PC+2+rel=2050H+2+F4H补=2046

13、H,7.位寻址,在MCS-51单片机中,RAM中的20H2FH字节单元对应的位地址为00H7FH,特殊功能寄存器中的某些位也可进行为寻址,这些单元既可以采用字节方式访问它们,也可采用位寻址的方式访问它们。 例如: SETB PSW.3 ; (PSW.3)1,综上所述, 在MCS-51系列单片机的存储空间中, 指令究竟对哪个存储器空间进行操作是由指令操作码和寻址方式确定的。 7种寻址方式如表所示。,MCS-51的指令系统,MCS-51共有111条指令,可分为5类:1.数据传送类指令2.算数运算类指令3.逻辑运算及移位类指令4.控制转移类指令5.布尔变量操作类指令,1.数据传送指令,在MCS-51单片机的数据传送指令总共有28条,分为:内部数据传送指令外部数据传送指令程序存储器向累加器A传送数据指令数据交换指令堆栈操作指令,内部数据传送指令,这类指令的源操作数和目的操作数地址都在单片机的内部,可以是片内RAM的地址,也可以是特殊功能寄存器SFR的地址。其指令通式为:MOV , 其中,为源操作数,为目的操作数。该指令的功能是把源操作数送到目的操作数单元,源操作数单元中的源操作数不变。按照寻址方式,内部数据传送指令又可以分为立即寻址型、直接寻址型、寄存器寻址型和寄存器间接寻址型等四类。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号