第2章传感器技术计算机在热加工中的应用西安工业大学材化学院主讲:王喜锋14课时第4章单片机系统本章要点1.了解数制及转换,门电路知识2.了解AT89S51单片机系统结构,组成原理,搭建简单系统。3.掌握AT89S51单片机基本指令系统,编写简单应用程序。第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用第4章目录•4.1单片机基础知识•4.2单片机基本组成与工作原理•4.3单片机汇编语言及内部RAM操作指令•4.4单片机IO端口与应用实例•4.5单片机指令与汇编语言程序设计第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用4.3.2、寻址方式系统4.3.3、51系列单片机汇编语言指令中常用符号4.3.1、MCS-51单片机指令系统目录第4.3节单片机汇编语言与内部RAM操作指令•本节要点1.掌握51单片机指令格式与寻址方式2.掌握RAM操作指令3.了解单片机运行过程4.3.4、内部RAM的操作指令4.3.5、单片机工作过程第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用4.3.1MCS-51单片机指令系统指令是指挥计算机工作的命令,一种计算机所能执行的指令集合称之为该种计算机的指令系统。指令机器指令0010010000001010B(二进制数表示)240A(十六进制数表示)汇编指令ADDA,#0AH一、指令第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用•MCS-51单片机用42种操作码助记符来描述33种操作功能。又因为该指令系统中的一种操作可以使用多种寻址方式,因此操作功能助记符与寻址方式组合可得到111条指令•数据传送类指令•算数运算类指令•逻辑操作类指令•控制转移类指令•位操作类指令二、51汇编语言指令的基本格式指令的表示形式称指令格式。编写程序时必须严格按指令格式书写。第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用51系列单片机汇编语言指令格式由4部分构成:[标号:]操作码[目的操作数,源操作数][;注释]。LOOP:MOVA,20H;将20H单元内容送累加器A(1)标号:为该指令的符号地址,根据需要设置。标号以字母开头,由字母、数字和下画线组成的字符串,字符串的最后必须有“:”,系统的保留字不能作为标号。标号是该指令的符号地址,它的实质是反映该指令在ROM中的地址(存放位置),因此在同一个程序中标号不可重复。标号在程序中主要是作为其它转移类指令的目的地址,或子程序的名称。(2)操作码操作码是每条汇编语言指令都必须有的,它是51系列单片机指令系统规定的助记符,规定某条指令的操作功能。(3)操作数操作数是参与操作的数据或地址。不同功能的指令,操作数的个数是不同的,在0~3个之间。在书写时操作数和操作码之间要留有空格,当有多个操作数时,操作数之间要用“,”隔开,前面的操作数称为目的操作数,后面的称为源操作数。(4)注释。是对该条指令的说明,便于阅读和理解程序功能。必须以“;”开始。第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用4.3.2、寻址方式系统4.3.3、51系列单片机汇编语言指令中常用符号4.3.1、MCS-51单片机指令系统目录第4.3节单片机汇编语言与内部RAM操作指令4.3.4、内部RAM的操作指令4.3.5、单片机工作过程第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用4.3.2寻址方式指令中,操作数可能是具体的数据,也可能是具体的存放数据的地址或符号,无论何种情况,都可由操作数取得参与指令运行的二进制数据。这个过程叫作寻址。寻指方式立即寻址方式直接寻址方式寄存器寻址方式寄存器间接寻址方式基址加变寻址方式位寻址方式相对寻址方式第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用1立即寻址方式所谓立即寻址就是操作数在指令中直接给出。立即寻址方式的操作数称立即数,立即数只能是源操作数,不能作为目的操作数。立即数有8位立即数和16位立即数。使用时在立即数前加“#”标志。例:MOVA,#20H;将数20H送入累加器MOVDPTR,#20D8H;将数20D8H送入地址指针DPTR,;即20H送入DPTH,D8H送入DPTL第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用2直接寻址方式直接寻址就是操作数直接以单元地址的形式给出。直接地址以存贮单元形式出现。例如指令:MOVA,20H08HA08HA21H20H1FHARAM第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用3寄存器寻址方式寄存器寻址就是操作数在寄存器中。例如指令:MOVA,R2A第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用4寄存器间接寻址方式寄存器间接寻址使用的寄存器为Ri和DPTR,使用时寄存器前面加“@“标志。即以下形式:MOVA,@RiMOVXA,@DPTR例如:(R1)=80H、(80H)=33H,则执行指令MOVA,@Ri后,累加器A的内容为33H而不是80H。寄存器间接寻址是以寄存器中的内容为地址取得操作数的方法。和寄存器寻址相比,寄存器寻址时,寄存器中存放的是操作数,而寄存器间接寻址中时,寄存器中存放的是操作数的地址。33HA33HA80H80H内部RAM第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用5基址加变址寻址方式基址加变址寻址就是以DPTR或PC为基址寄存器,以A为变址寄存器,以两者内容相加形成16位地址作为操作数地址。例如指令:MOVCA,@A+DPTR88HA09H1000H1009HRAMDPTR+…………100AH1009H1008H第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用6位寻址方式位寻址方式就是以位为操作数。MCS-51单片机有相当强的位处理功能,可以对位进行直接操作。例如指令:MOVC,4AH位寻址范围1)内部RAM的位寻址区2)可供位寻址的11个专用寄存器第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用7相对寻址方式相对寻址是在相对转移指令中,根据地址相对当前PC的偏移量得到操作数的方式。如:JZrel偏移量rel是一带符号8位二进数的补码数,范围为-128~+127。实际书写程序时往往先用地址标号代替,在汇编为机器指令时再计算出来。第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用〔例〕指出下列每一条指令的寻址方式。①MOV2FH,#40H②MOVA,@R0③MOVDPTR,#2020H④MOV45H,P0⑤MOVA,R1⑥MOVCA,@A+PC⑦JCLOOP①中的源操作数为立即寻址,目的操作数为直接寻址。②中的源操作数为寄存器间接寻址,目的操作数为寄存器寻址。③中的源操作数为16位立即寻址,目的操作数为寄存器寻址。④中的源操作数和目的操作数都是直接寻址。⑤中的源操作数和目的操作数都为寄存器寻址。⑥中的源操作数为基址加变址寻址,目的操作数为寄存器寻址。⑦中的操作数为相对寻址。第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用〔例〕判断下列指令是否正确,若不正确请指出错误:①MOVA,DPTR②MOVDPTR,#03H③MOV#80H,R7④MOVB,C〔解〕①不正确。A是8位寄存器,DPTR为16位寄存器,不匹配。②正确。③不正确。#80H为立即数,不能作为目的地址。④不正确。B为8位字节寄存器,C为1位位累加器,不匹配。第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用4.2.2、寻址方式系统4.2.3、51系列单片机汇编语言指令中常用符号4.3.1、MCS-51单片机指令系统目录第4.3节单片机汇编语言与内部RAM操作指令4.2.4、内部RAM的操作指令4.2.5、单片机工作过程第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用4.3.3、51系列单片机汇编语言指令中常用符号即操作数的符号。(1)Rn:当前工作寄存器区的8个工作寄存器R0~R7,n=0~7。(2)Ri:当前工作寄存器R0和R1,i=0,1。(3)direct:8位的直接地址,代表内部RAM00H~7FH单元,以及特殊功能寄存器的字节地址或名称。(4)@Ri:8位的间接地址,也代表内部RAM00H~7FH的某一单元,此时工作寄存器Ri的内容是多少,就代表相应的单元。用间址寻址的优点之一是循环方便。(5)#data:8位的立即数,所谓立即数就是指令中直接参与操作的数据。(6)#data16:16位的立即数。(7)bit:位地址。代表内部RAM位寻址区(20H~2FH)中可寻址位以及SFR中的可寻址位。具体的形式可以是位地址、位编号以及位定义。(8)addr16:十六位的目的地址。(9)addr11:11位的目的地址。(10)rel:带符号的8位偏移地址。范围是+127~–128。X:某寄存器或某单元(X):某寄存器或某单元中的内容。←:指令执行后数据传送的方向。第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用操作数在具体程序中是数字形式或标号,direct、data、bit可以用二进制数、十进制数或十六进制数书写,用十六进制数时,如果高位是A、B、C、D、E、F时,必须在数的前面加0,以便和标号区别开来。addr16、addr11、rel在程序中的形式就是编程者所起的标号名称。第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用4.3.2、寻址方式系统4.3.3、51系列单片机汇编语言指令中常用符号4.3.1、MCS-51单片机指令系统目录第4.3节单片机汇编语言与内部RAM操作指令4.3.4、内部RAM的操作指令4.3.5、单片机工作过程第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用4.3.4、内部RAM的操作指令1、内RAM间的数据传送指令MOV‹目的操作数›,‹源操作数›“MOV”是操作码,英语MOVE的简写,功能就是把源操作数传送到目的操作数,源操作数保持不变,操作数就是我们前面讲的A、Rn、direct、@Ri、data。(1)以累加器A为目的地址传送指令1)MOVA,Rn;A←Rn,Rn里的内容送;到累加器A2)MOVA,direct;A←(direct),direct;单元里的内容送A3)MOVA,@Ri;A←(Ri),内部RAM;某一单元里(以Ri里的;内容为地址的单元);的内容送到累加器A4)MOVA,#data;A←data8位的立即;数送到累加器A第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用(2)以工作寄存器Rn为目的地址传送指令1)MOVRn,A;Rn←A2)MOVRn,direct;Rn←(direct)3)MOVRn,#data;Rn←data注意:工作寄存器相互间、Rn与@Ri之间、@R0与@R1之间没有传送指令。(3)以direct为目的地址传送指令1)MOVdirect,A;(direct)←A2)MOVdirect,Rn;(direct)←Rn3)MOVdirect1,direct2;(direct1)←;(direct2)4)MOVdirect,@Ri;(direct)←;(Ri)5)MOVdirect,#data;(direct)←data第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用(4)以@Ri为目的地址传送指令1)MOV@Ri,A;(Ri)←A2)MOV@Ri,direct;(Ri)←(direct)3)MOV@Ri,#data;(Ri)←data2、累加器A的清零与取反指令CLRA;A←0,将累加器A的内容;清为0CPLA;将累加器A的内容按位;取反3.16位数据传送指令MOVDPTR,#data16;data16→DPTR第4.3节单片机汇编语言与内部RAM操作指令计算机在热加工中应用Direct(直接寻址)@R(间接寻址)iA(累加器)R(寄存器寻址)nData(立即数寻址)MOV指令8位数据传送路线示意图D