Presentation is loading. Please wait.

Presentation is loading. Please wait.

单片机原理与应用.

Similar presentations


Presentation on theme: "单片机原理与应用."— Presentation transcript:

1 单片机原理与应用

2 第3章 MCS-51系列单片机指令系统

3 第3章 MCS-51系列单片机指令系统 本章要点: 指令格式 寻址方式 数据传送类指令 算术运算类指令 控制转移类指令 逻辑运算类指令

4 3.1 MCS-51指令系统概述 指令 指令系统 MCS-51系列单片机使用44种助记符,有51种基本操作。

5 3.1 MCS-51指令系统概述 按执行时间分类 单字节指令、双字节指令、三字节指令 单机器周期指令、双机器周期指令、四机 器周期指令

6 3.l.1 指令格式 指令格式指的是指令的表示方法,其内容包括指令的长度和指令内部信息的安排。 一条指令通常由操作码和操作数两部分组成。
第3章 MCS-51系列单片机指令系统 3.l.1 指令格式 指令格式指的是指令的表示方法,其内容包括指令的长度和指令内部信息的安排。 一条指令通常由操作码和操作数两部分组成。 指令格式如下: [标号]:操作码 [操作数];注释

7 3.l.1 指令格式 标号用于表示该指令的符号地址,一般由1~ 6个字符组成,与操作码之间用冒号分开。
第3章 MCS-51系列单片机指令系统 3.l.1 指令格式 标号用于表示该指令的符号地址,一般由1~ 6个字符组成,与操作码之间用冒号分开。 操作码规定了指令所能实现的功能,由助记符表示的字符串组成。 操作数是表示操作的对象。 注释部分对于汇编语言来说可有可无,是为了便于阅读理解而添加的。

8 3.1.2 寻址方式 ⒈ 立即寻址 寻址方式就是在指令中给出的寻找操作数或操作数所在地址的方法。执行任何一条指令都需要使用操作数。
第3章 MCS-51系列单片机指令系统 寻址方式 寻址方式就是在指令中给出的寻找操作数或操作数所在地址的方法。执行任何一条指令都需要使用操作数。 ⒈ 立即寻址 MOV DPTR,#1234H

9 第3章 MCS-51系列单片机指令系统 寻址方式 2.直接寻址 MOV A , 3AH

10 第3章 MCS-51系列单片机指令系统 寻址方式 3.寄存器寻址 INC R0

11 第3章 MCS-51系列单片机指令系统 寻址方式 4.寄存器间接寻址 ANL A,@R1

12 第3章 MCS-51系列单片机指令系统 寻址方式 ⒌ 相对寻址 目的地址=转移指令所在地址+转移指令字节数+rel JC 80H

13 第3章 MCS-51系列单片机指令系统 寻址方式 6.变址寻址 MOVC A,@A+DPTR

14 3.1.2 寻址方式 7.位寻址 位寻址的寻址范围: (1)片内RAM中的位寻址区 (2)可供位寻址的特殊功能寄存器位
第3章 MCS-51系列单片机指令系统 寻址方式 7.位寻址 位寻址的寻址范围: (1)片内RAM中的位寻址区 (2)可供位寻址的特殊功能寄存器位

15 3.1.2 寻址方式 表3-1 寻址方式与寻址空间 第3章 MCS-51系列单片机指令系统 寻址方式 寻址空间 寄存器寻址
寻址方式 寻址方式 寻址空间 寄存器寻址 R0~R7、A、B、CY(bit)、DPTR 直接寻址 内部RAM低128字节 特殊功能寄存器 寄存器间接寻址 立即寻址 程序存储器 变址寻址 相对寻址 程序存储器(PC+偏移量) 位寻址 内部RAM中有128个可位寻址 特殊功能寄存器中可位寻址 表3-1 寻址方式与寻址空间

16 3.1.3 指令中符号意义说明 第3章 MCS-51系列单片机指令系统 指令符号 含义 Rn(n=0~7)
指令中符号意义说明 指令符号 含义 Rn(n=0~7) 表示当前寄存器组的8个通用寄存器R0~R7中的一个。 Ri(i=0,l) 可用作间接寻址的寄存器,只能是R0、R1两个寄存器中的一个。 Direct 内部的8位地址,既可以指片内RAM的低128个单元地址,也可以指特殊功能寄存器的地址或符号名称,因此direct表示直接寻址方式。 #data 指令中所含的8位立即数 #data16 指令中所含的16位立即数 addr16 16位目的地址,只限于在LCALL和LJMP指令中使用 addr11 11位目的地址,只限于在ACALL和AJMP指令中使用 Rel 相对转移指令中的偏移量,为8位带符号数。为SJMP和所有条件转移指令所用。转移范围为相对于下一条指令笫一字节地址的-128~+127

17 3.1.3 指令中符号意义说明 第3章 MCS-51系列单片机指令系统 DPTR 数据指针 bit
指令中符号意义说明 DPTR 数据指针 bit 片内RAM(包括部分特殊功能寄存器)中的直接寻址位 A 累加器 B B寄存器 C 进位标志位,是布尔处理机中的累加器,也称之为累加位 间址寄存器的前缀标志 / 位地址的前缀标志,表示对该位操作数取反 (×) 某寄存器或某单元的内容 ((×)) 由×寻址的单元中的内容 箭头左边的内容被箭头右边的内容所取代

18 3.2 MCS-51指令分类介绍 MCS-51的指令系统,共有111条指令,按照功能又可分为5大类:
数据传送类指令29条,分别为片内RAM,片外RAM,程序存储器的传送指令,交换及堆栈操作指令。 算术运算类指令24条,分别为加、减、乘、除、带进位加、加1、减1指令。

19 3.2 MCS-51指令分类介绍 逻辑运算类指令24条,分别为逻辑与、或、异或、移位指令。
控制转移类指令17条,分别为无条件转移与调用、条件转移、空操作指令。 布尔(位)操作指令17条,分别为位数据传送、位与、位或、位转移指令。

20 第3章 MCS-51系列单片机指令系统 数据传送类指令

21 3.2.1 数据传送类指令 1.内部8位数据传送指令 传送指令的格式为: MOV [目的字节],[源字节]
第3章 MCS-51系列单片机指令系统 数据传送类指令 1.内部8位数据传送指令 传送指令的格式为: MOV [目的字节],[源字节] 5种。

22 3.2.1 数据传送类指令 表3-3 以累加器A为目的操作数的指令组 第3章 MCS-51系列单片机指令系统 指 令 功 能 寻址范围
数据传送类指令 指 令 功 能 寻址范围 机器码 MOV A,Rn; (A) ←(Rn) R0-R7 11101 rrr (E8-EFH) MOV A,direct; (A)←(direct) 00-FFH direct双字节 MOV (A)←((Ri)) r (E6-E7H) MOV A,#data; (A)←(#data) #00-#FFH data 表3-3 以累加器A为目的操作数的指令组 传送指令是以累加器A为中心的总体结构。绝大部分传送操作均需通过A进行的。

23 3.2.1 数据传送类指令 ⑵以工作寄存器Rn为目的操作数的指令组 MOV Rn,A ;(Rn)←(A)
第3章 MCS-51系列单片机指令系统 数据传送类指令 ⑵以工作寄存器Rn为目的操作数的指令组 MOV Rn,A ;(Rn)←(A) MOV Rn,direct ;(Rn)←(direct) MOV Rn,#data ;(Rn)←#data 该指令组的功能是把源操作数的内容送入当前工作寄存器组的R0~R7中的某一个寄存器。源操作数有寄存器寻址、直接寻址和立即寻址等寻址方式。

24 3.2.1 数据传送类指令 ⑶以直接地址direct为目的操作数的指令 MOV direct,A ;(direct)←(A)
第3章 MCS-51系列单片机指令系统 数据传送类指令 ⑶以直接地址direct为目的操作数的指令 MOV direct,A ;(direct)←(A) MOV direct,Rn ;(direct)←(Rn) MOV direct,direct ;(direct)←(direct) MOV direct, @Ri ;(direct)←((Ri)) MOV direct,#data ;(direct)←#data

25 3.2.1 数据传送类指令 MOV A,80H ;表示把片内RAM中地址为80H单元(即P1口)中的内容送A。
第3章 MCS-51系列单片机指令系统 数据传送类指令 MOV A,80H ;表示把片内RAM中地址为80H单元(即P1口)中的内容送A。 MOV 80H,#88H ;这是一条3字节指令,表示把立即数88H送到片内RAM中的80H地址单元中去。 MOV 80H,0E0H ;这是一条3字节指令,表示把E0H单元的内容送到80H单元中去。这是片内数据存储单元中的直接地址单元之间数据的直接传送。

26 3.2.1 数据传送类指令 2.16位数据传送指令 MOV DPTR,#data16 ;(DPTR)←#data16
第3章 MCS-51系列单片机指令系统 数据传送类指令 2.16位数据传送指令 MOV DPTR,#data16 ;(DPTR)←#data16 执行指令: MOV DPTR,#1234H 执行结果: (DPH)=12H,(DPL)=34H

27 3.2.1 数据传送类指令 3.外部数据的传送指令组 ⑴外部数据存储器或I/O内容送累加器A MOVX <目的字节>,<源字节>
第3章 MCS-51系列单片机指令系统 数据传送类指令 3.外部数据的传送指令组 MOVX <目的字节>,<源字节> ⑴外部数据存储器或I/O内容送累加器A MOVX i MOVX 说明:指令执行时,在P3.7引脚上输出RD有效信号,可用作外部数据存储器或I/O的读选通信号。P0口分时输出由Ri或DPL指定的低八位地址信息和输入累加器中的数据信息,P2口则输出DPH指定的高八位地址信息。

28 3.2.1 数据传送类指令 ⑵累加器A内容送外部数据存储器或I/O MOVX @Ri,A MOVX @DPTR,A
第3章 MCS-51系列单片机指令系统 数据传送类指令 ⑵累加器A内容送外部数据存储器或I/O MOVX @Ri,A MOVX @DPTR,A 说明:该组指令执行时,在P3.6引脚上输出WR有效信号,可以用作外部数据存储器或I/O的写选通信号。P0口分时输出由Ri或DPL指定的低八位地址信息和累加器中输出的数据信息,P2口则输出DPH指定的高八位地址信息。

29 3.2.1 数据传送类指令 MOVX A,@R1 ;(34H)=56H→A MOVX @R0,A;(A)=56H→片外12H单元中
第3章 MCS-51系列单片机指令系统 数据传送类指令 MOVX ;(34H)=56H→A MOVX @R0,A;(A)=56H→片外12H单元中 执行结果为片外RAM的(34H)=56H,(12H)=56H。 某应用系统外扩了8K字节RAM,要求把内部RAM的20H单元内容发送到外部RAM的800H单元中。 MOV DPTR, #800H ;外部数据存储器地址指针 MOV R0, #20H ;内部数据存储器地址指针 MOV ;取内部数据存储器20H单元内容 MOVX @DPTR,A ;送外部数据存储器800H单元

30 3.2.1 数据传送类指令 4.程序存储器数据传送指令(或称查表指令) MOVC A,@A+PC MOVC A,@A+DPTR
第3章 MCS-51系列单片机指令系统 数据传送类指令 4.程序存储器数据传送指令(或称查表指令) MOVC A,@A+PC MOVC 求平方数(远程查表法)。 MOV DPTR, #TABLE ;指向表首址 MOVC ;查表得到平方数 MOV 20H,A ;存平方数 HERE: SJMP HERE TABLE∶ DB 00,01,04,09 ;平方表02-92 DB 16,25,36 DB 49,64,81

31 3.2.1 数据传送类指令 求平方数(近程查表)。 ADD A,#rel ;修正偏移量 MOVC A,@A+PC ;查表得到平方数
第3章 MCS-51系列单片机指令系统 数据传送类指令 求平方数(近程查表)。 ADD A,#rel ;修正偏移量 MOVC ;查表得到平方数 MOV 20H,A ;存平方数 HERE∶ SJMP HERE TABLE∶ DB 00,01,04,09,16 ;平方表02-92 DB 25,36,49,64,81 说明: rel=TABLE-(查表指令地址+1) ;MOVC指令为单字节。

32 3.2.1 数据传送类指令 5.以间接寻址寄存器Ri为目的操作数的指令组
第3章 MCS-51系列单片机指令系统 数据传送类指令 5.以间接寻址寄存器Ri为目的操作数的指令组 ;((Ri))←(A) ;((Ri))←(A) ;((Ri))←#data 该指令组的功能是把源操作数的内容送入由 R0或R1的内容所指的内部 RAM中的存储单元。源操作数有寄存器寻址、直接寻址和立即寻址等寻址方式。

33 3.2.1 数据传送类指令 设(R0)=30H(A)=3FH 片内 (30H)=BBH。 执行指令 XCH A,@R0
第3章 MCS-51系列单片机指令系统 数据传送类指令 设(R0)=30H(A)=3FH 片内 (30H)=BBH。 执行指令 XCH 执行结果 (A)=BBH,(30H)=3FH

34 3.2.1 数据传送类指令 ⑵半字节交换指令组 XCHD A,@Ri
第3章 MCS-51系列单片机指令系统 数据传送类指令 ⑵半字节交换指令组 XCHD 该指令将Ri间接寻址单元的低4位内容与累加器A的低4位内容互换,而它们的高4位内容均不变。此指令不影响标志位。 设(R0)=20H,(A)=36H( B),内部RAM中(20H)=75H( lB)。 执行指令∶XCHD, A,@R0 执行结果∶(20H)= B=76H,(A)= B=35H

35 3.2.1 数据传送类指令 7.堆栈操作指令组 PUSH direct POP direct
第3章 MCS-51系列单片机指令系统 数据传送类指令 7.堆栈操作指令组 PUSH direct POP direct 中断响应时(SP)=30H,DPTR的内容为0123H,执行入栈指令其结果怎样? PUSH DPL;低8位数据指针寄存器DPL内容入栈 PUSH DPH;高8位数据指针寄存器DPH内容入栈。 执行结果: 第一条指令(SP)+1=31H→(SP),(DPL)=23H→(31H) 第二条指令(SP)+1=32H→(SP),(DPH)=01H→(32H) 即片内RAM中,(31H)=23H,(32H)=01H,(SP)=32H。

36 3.2.1 数据传送类指令 设(SP)=32H,片内RAM的30H~32H单元中的内容分别为20H,23H,01H,执行下列指令的结果怎样?
第3章 MCS-51系列单片机指令系统 数据传送类指令 设(SP)=32H,片内RAM的30H~32H单元中的内容分别为20H,23H,01H,执行下列指令的结果怎样? POP DPH ;((SP))=(32H)=01H→DPH ;(SP)-1=32H-1=31H→SP POP DPL ;((SP))=(31H)=23H→DPL ;(SP)-1=31H-1=30H→SP POP SP ;(SP)-1=2FH→SP ;((SP))=(30H)=20H→SP 以上第三条指令为特殊情况,先执行(SP)-1=2FH,后装入由栈顶退出的值,所以执行后(SP)=20H。

37 第3章 MCS-51系列单片机指令系统 数据传送类指令 检查传送结果 已知内部RAM (10H)=00H,(30H)=40H,(40H)=10H,P1口为 B,分析指令执行后各单元内容。 MOV R0,#30H ;R0=30H MOV ;A=40H MOV R1,A ;R1=40H MOV ;B=10H MOV @R1,P ;(40H)= B MOV P2,P1 ;P2= B MOV 10H,#20H ;(10H)=20H 执行结果:(10H)=20H, (30H)=40H, (40H)=CAH, P1=P2=CAH A=40H, B=10H, R0=30H, R1=40H

38 第3章 MCS-51系列单片机指令系统 算术运算类指令 算术运算类指令都是通过算术逻辑运算单元ALU进行数据运算处理的指令。它包括各种算术操作,其中有加、减、乘、除四则运算。MCS-51单片机还有带借位减法、比较指令。加法类指令包括加法、带进位的加法、加1以及二一十进制调整。

39 第3章 MCS-51系列单片机指令系统 算术运算类指令 1.加法指令 ADD A,Rn ;(A)+(Rn)→(A) ADD A,direct ;(A)+(direct)→(A) ADD ;(A)+((Ri))→(A) ADD A,#data ;(A)+data→(A) 该组指令是将工作寄存器Rn、片内RAM单元中的内容、间接地址存储器中的8位无符号二进制数及立即数与累加器A中的内容相加,相加的结果仍存放在A中。

40 3.2.2 算术运算类指令 设(A)=C3H,(R0)=AAH。 执行指令:ADD A,R0,则操作如下所示:
第3章 MCS-51系列单片机指令系统 算术运算类指令 设(A)=C3H,(R0)=AAH。 执行指令:ADD A,R0,则操作如下所示: B B B 执行结果:(A)=6DH,(CY)=1,(OV)=1,(AC)=0。

41 第3章 MCS-51系列单片机指令系统 算术运算类指令 2.带进位位加法指令 ADDC A,Rn ;(A)←(A)+(Rn)+(CY) ADDC A,direct ;(A)←(A)+(direct)+(CY) ADDC ;(A)←(A)+((Ri))+(CY) ADDC A,#data ;(A)←(A)+#data+(CY) 该组指令是将工作寄存器Rn、片内RAM单元中的内容、间接地址存储器中的8位无符号二进制数及立即数与累加器A的内容和当前进位标志CY的内容相加,相加的结果仍存放在A中。

42 3.2.2 算术运算类指令 设(A)=C3H,(R0)=AAH,(CY)=1。 执行指令:ADDC A,R0,操作过程如下:
第3章 MCS-51系列单片机指令系统 算术运算类指令 设(A)=C3H,(R0)=AAH,(CY)=1。 执行指令:ADDC A,R0,操作过程如下: (CY) 执行结果:(A)=6EH,(CY)=1,(OV)=l, (AC)=0。

43 3.2.2 算术运算类指令 已知(A)=B3H,(R1) =56H。 执行ADD A,R1指令,执行过程如下:
第3章 MCS-51系列单片机指令系统 算术运算类指令 已知(A)=B3H,(R1) =56H。 执行ADD A,R1指令,执行过程如下: B 3H + 5 6H 1 0 9H CY= CY=1,OV=0,AC=0 说明:若二个数是无符号数,则B3H+56H=109H,答案正确;若二个数是带符号数,则B3H的原码是–77D,56H原码为86D,(–77D) +86D=09D, 答案也是正确的,因为OV=0。

44 3.2.2 算术运算类指令 3.增量(加1)指令 INC Rn ;(Rn)←(Rn)+1
第3章 MCS-51系列单片机指令系统 算术运算类指令 3.增量(加1)指令 INC Rn ;(Rn)←(Rn)+1 INC direct ;(direct)←(direct)+1 INC @Ri ;((Ri))←((Ri))+1 INC A ;(A)←(A)+l INC DPTR ;(DPTR)←(DPTR)+1 该组指令是将工作寄存器Rn、片内RAM单元中的内容 、间接地址存储器中的8位无符号二进制数、累加器A和数据指针DPTR的内容加1,相加的结果仍存放在原单元中。

45 3.2.2 算术运算类指令 INC @R0 ;0FFH+1=00H 仍存入7EH单元
第3章 MCS-51系列单片机指令系统 算术运算类指令 设(R0)=7EH,(7EH)=0FFH,(7FH)=40H执行以下指令: INC @R ;0FFH+1=00H 仍存入7EH单元 INC R ;7EH+1=7FH 存入(R0) INC @ R0 ;40H+1=41H 存入(7FH) 执行结果为(R0)=7FH,(7EH)=00H.(7FH)=41H

46 3.2.2 算术运算类指令 4.二~十进制调整指令 DA A
第3章 MCS-51系列单片机指令系统 算术运算类指令 4.二~十进制调整指令 DA A 该指令是对BCD码的加法结果进行调整。两个压缩型BCD码按二进制数相加之后,必须经此指令的调整才能得到压缩型BCD码的和数。 十进制调整的修正方法为: (1)当累加器低四位大于9或半进位标志AC=1时,则进行低四位加6修正(A0~3)+6→(A0~3),其中(A0~3)表示累加器A的低四位,即(A)=(A) +06; (2)当累加器高四位大于9或进位标志CY=1时, 进行高四位加6修正(A4~7)+6→(A4~7) , 其中(A4~7)表示累加器A的高四位,即(A) =(A) +60H 。

47 第3章 MCS-51系列单片机指令系统 算术运算类指令 设(A)= B=56 BCD,(R3)= B=67BCD,(CY)=1。执行下述二条指令: ADDC A,R3 DA A 执行 ADDC A,R3 (A) (56 BCD) (R3) (67 BCD) + (CY) 再执行 DA A (高、低四位均大于9) (加66H操作) Cy= (124 BCD) 即BCD码数56+67+1=124。经DA A指令校正后,答案正确。

48 第3章 MCS-51系列单片机指令系统 算术运算类指令 例:二个多字节无符号数相加。设有二个四位BCD码分别存在内部RAM的50H、51H和60H、61H单元中,试编写程序,求二个BCD码数之和,结果存入内部40H、41H单元。 MOV R0,#50H ;被加数首址 MOV R1,#60H ;加数首址 MOV ;取被加数 ADD ;与加数相加 DA A ;二-十进制调整 MOV 40H,A ;存和 INC R ;高位相加 INC R1 MOV ADDC DA A MOV 41H,A

49 3.2.2 算术运算类指令 对累加器A中压缩BCD码数减1。 ADD A,#99H
第3章 MCS-51系列单片机指令系统 算术运算类指令 对累加器A中压缩BCD码数减1。 ADD A,#99H DA A HERE: SJMP HERE 累加器A允许的最大BCD码数为99BCD,当对A实行加99BCD码数时,必然形成对BCD码百位数的进位,而剩在A中的内容正是压缩BCD码数减1。如BCD的59H,经DA A的调整后,为58H且CY=1,不考虑进位CY,则BCD码59-1=58。

50 3.2.2 算术运算类指令 5.带借位减法指令 SUBB A,Rn ;(A)-(Rn)-(CY)→(A)
第3章 MCS-51系列单片机指令系统 算术运算类指令 5.带借位减法指令 SUBB A,Rn ;(A)-(Rn)-(CY)→(A) SUBB A,drect ;(A)一(drect)一(CY)→(A) SUBB ;(A)一((Ri))一(CY)→(A) SUBB A,#data ;(A)-data-(CY)→(A) 该组指令是从A中减去进位位CY和指定的变量,结果(差)存入A中。

51 3.2.2 算术运算类指令 1100 1001 设(A)=0C9H,(R2)=54H,(CY)=1。
第3章 MCS-51系列单片机指令系统 算术运算类指令 设(A)=0C9H,(R2)=54H,(CY)=1。 执行指令SUBB A,R2,执行过程如下: 执行结果(A)=74H,(CY)=0,(AC)=0,(OV)=1。

52 3.2.2 算术运算类指令 6.减1指令 DEC Rn ;(Rn)-1→(Rn)
第3章 MCS-51系列单片机指令系统 算术运算类指令 6.减1指令 DEC Rn ;(Rn)-1→(Rn) DEC direct ;(direct)-1→(direct) DEC @Ri ;((Ri))-1→((Ri)) DEC A ;(A)-1→(A) 该组指令是将工作寄存器Rn、片内RAM单元中的内容、间接地址存储器中的8位无符号二进制数和累加器A的内容减1,相减的结果仍存放在原单元中。这类指令位不影响各个标志位。

53 3.2.2 算术运算类指令 设(R0)=7FH,(7EH)=00H,(7FH)=40H。 执行指令:
第3章 MCS-51系列单片机指令系统 算术运算类指令 设(R0)=7FH,(7EH)=00H,(7FH)=40H。 执行指令: DEC @R0 ;(7FH)一1=40H—l=3FH→(7FH) DEC R ;(R0)一l=7FH—l=7EH→(R0) DEC @R0 ;(7EH)一l=00H—l=FFH→(7EH) 执行结果: (R0)=7EH,(7EH)=FFH,(7FH)=3FH。

54 3.2.2 算术运算类指令 7.乘法/除法指令 ⑴乘法指令。 MUL AB
第3章 MCS-51系列单片机指令系统 算术运算类指令 7.乘法/除法指令 ⑴乘法指令。 MUL AB 该指令是将A和B中两个无符号8位二进制数相乘,所得的16位积的低8位存于A中,高8位存于B中。

55 3.2.2 算术运算类指令 设(A)=50H(80D),(B)=A0H(160D)。 执行指令:
第3章 MCS-51系列单片机指令系统 算术运算类指令 设(A)=50H(80D),(B)=A0H(160D)。 执行指令: MUL AB ;80×160=12800=3200H 执行结果: 乘积 3200H(12800),(A)=00H,(B)=32H,(OV)=1,(CY)=0。

56 第3章 MCS-51系列单片机指令系统 算术运算类指令 ⑵除法指令。 DIV AB 该指令是将A中无符号8位二进制数除以B中的无符号8位二进制数,所得商的二进制数部分存于A,余数部分存于B中,并将CY和OV置0。

57 3.2.2 算术运算类指令 执行指令: DIV AB 设(A)=0FBH(251D),(B)=12H(18D)。 执行结果:
第3章 MCS-51系列单片机指令系统 算术运算类指令 设(A)=0FBH(251D),(B)=12H(18D)。 执行指令: DIV AB 执行结果: (A)=0DH(商13),(B)=11H(余数I7),(OV)=0,(CY)=0。

58 第3章 MCS-51系列单片机指令系统 算术运算类指令 例3:数的码制转换。把累加器A中无符号二进制整数(00-FFH)转换为三位压缩BCD码(0~255),并存入内存30H和31H单元。 BINBCD:MOV B,#100 DIV AB ;A÷10,百位数在A,余数在B MOV 30H,A ;百位数送30H MOV A,B MOV B,#0AH DIV AB ;余数÷10 ,十位数在A低四位, 个位数在B SWAP A ;十位数放A的高四位 ADD A,B ;十位数和个位数组合后送31H MOV 31H,A RET

59 第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 逻辑运算类指令主要包括:与、或、异或、清除、求反、移位等,主要用于对两个操作数进行逻辑运算。操作结果保存到累加器A或直接寻址单元。该类指令执行时一般不影响程序状态字PSW,仅当操作数为累加器A时将影响奇偶标志位P,带进位的移位指令将影响CY位。该指令的助记符主要有ANL、ORL、XRL、RL、RLC、RR、RRC、CPL、CLR等。

60 3.2.3 逻辑运算及移位类指令 1.逻辑“与”运算指令 这组指令的助记符为ANL,用符号“∧”表示:
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 1.逻辑“与”运算指令 这组指令的助记符为ANL,用符号“∧”表示: ANL 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) ANL direct,#data ;(direct)←(drect)∧#data 该组指令是将目的地址单元中的数和源地址单元中的数按“位”相“与”,其结果放回目的地址单元中。

61 3.2.3 逻辑运算及移位类指令 设(A)=A3H(1010 0011B),(R0)=AAH(1010 1010B)。
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 设(A)=A3H( B),(R0)=AAH( B)。 执行指令: ANL A,R0 执行结果: (A)= A2H( B)。 设P1=FFH 执行指令: ANL P1,#0F0H P1=F0H,这时P1.7至P1.4位状态不变,P1.3至P1.0位被清零。

62 3.2.3 逻辑运算及移位类指令 2.逻辑“或”运算指令 这组指令的助记符为ORL,用符号“∨”表示:
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 2.逻辑“或”运算指令 这组指令的助记符为ORL,用符号“∨”表示: ORL 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) ORL direct,#data ;(direct)←(direct)∨#data 该组指令是将目的地址单元中的数和源地址单元中的数按“位”相“或”,其结果放回目的地址单元中。

63 3.2.3 逻辑运算及移位类指令 设(A)=0A3H(10100011B),(R0)=45H(01000101B)。
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 设(A)=0A3H( B),(R0)=45H( B)。 执行指令: ORL A, R0 执行结果:(A)=E7H( B)。 注: 逻辑或运算指令用于强制将指定位置位。即给某些位置1,也就是合并二个数中的“1”。

64 3.2.3 逻辑运算及移位类指令 3.逻辑“异或”运算指令 这组指令的助记符为XRL,用符号“⊕”表示: 【规则】0⊕0=0 1⊕1=0
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 3.逻辑“异或”运算指令 这组指令的助记符为XRL,用符号“⊕”表示: 【规则】0⊕0=0 1⊕1=0 0⊕1=1 1⊕0=1 【格式】 XRL A,Rn ;(A)←(A)⊕(Rn) XRL A,drect ;(A)←(A)⊕(direct) XRL A,@Ri ;(A)←(A)⊕((Ri)) XRL A,#data ;(A)←(A)⊕#data XRL direct,A ;(direct)←(direct)⊕(A) XRL direct,#data ;(direct)←(direct)⊕#data

65 3.2.3 逻辑运算及移位类指令 设(A)=0A3H(10100011B),(R0)=045H(01000l0lB)。
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 设(A)=0A3H( B),(R0)=045H(01000l0lB)。 执行指令:XRL A,R0,执行过程为: 执行结果:(A)=E6H(111001l0B)。

66 3.2.3 逻辑运算及移位类指令 4.累加器移位/循环指令
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 4.累加器移位/循环指令 累加器移位/循环指令包括带进位C和不带进位C的循环左移和循环右移等四条指令。对于带进位的循环移位,C的状态由移入的数位决定,其他状态标志位不受影响。 (1)循环右移指令: RR A 该指令的功能是将累加器的内容逐位循环右移一位,并且a0的内容移到a7,如图3-9(a)所示。此操作不影响标志位。

67 3.2.3 逻辑运算及移位类指令 设(A)=0A6H(10100110B), 执行RR A指令,执行结果=53H(01010011B)。
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 设(A)=0A6H( B), 执行RR A指令,执行结果=53H( B)。

68 3.2.3 逻辑运算及移位类指令 (2)带进位循环右移指令: RRC A
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 (2)带进位循环右移指令: RRC A 该指令的功能是将累加器的内容和进位位一起循环右移一位,并且a0移入进位位CY,CY的内容移到a7,如图3-9(b)所示。此操作不影响CY之外的标志位。 设(A)=0B4H( B),(CY)=1, 执行指令:RRC A, 执行结果:(A)=0DAH ( B),(CY)=0

69 3.2.3 逻辑运算及移位类指令 (3)循环左移指令: RL A
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 (3)循环左移指令: RL A 该指令是将累加器的内容逐位循环左移一位,并且a7的内容移到a0,如图3-9(c)所示。此操作不影响标志位。 设(A)=3AH( B), 执行指令:RL A 执行结果:(A)=74H(01110l00B)。

70 3.2.3 逻辑运算及移位类指令 (4)带进位循环左移指令: RLC A
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 (4)带进位循环左移指令: RLC A 该指令的功能是将累加器的内容和进位位一起循环左移一位,并且a7移入进位位CY,CY的内容移到a0,见图 3-9(d)所示。此操作不影响CY之外的标志位。 设(A)=3AH( B),(CY)=1。 执行指令:RLC A 执行结果:(A)=75H( B),(CY)=0

71 3.2.3 逻辑运算及移位类指令 5.累加器按位取反指令 CPL A
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 5.累加器按位取反指令 CPL A 该指令的功能是对进行累加器的内容逐位取反,结果仍存在A中。此操作不影响标志位。 设(A)=21H( B) 执行指令:CPL A 执行结果:(A)=DEH ( B)。

72 3.2.3 逻辑运算及移位类指令 6.累加器清0指令 CLR A 该指令的功能对累加器进行清0,此操作不影响标志位。 设(A)=44H,
第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 6.累加器清0指令 CLR A 该指令的功能对累加器进行清0,此操作不影响标志位。 设(A)=44H, 执行指令:CLR A 执行结果:(A)=00H。

73 第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 例:数据的拆分与拼装,要求:从(30H)== X7X6X5X4X3X2X1X0中取出高5位,从(31H)=Y7Y6Y5Y4Y3Y2Y1Y0中取出低3位,拼装后存入40H中,(40H)=Y2Y1Y0X7X6X5X4X3 ORG H MOV A,30H SWAP A ;X3X2X1X0 X7X6X5X4 RL A ;X2X1X0 X7X6X5X4X3 左移了5位 MOV 40H, A ;此时地址40H中的低5位已经实现题中要求 ANL 40H, # B ;该指令屏蔽掉地址40H所存数据的 高3位,仅留低5位X7X6X5X4X3

74 第3章 MCS-51系列单片机指令系统 逻辑运算及移位类指令 MOV A, 31H MOV B,#20H MUL AB ;Y2Y1Y0 Y7Y6Y5Y4Y3,左移了5位 ANL A, # B ;屏蔽A的低5位,仅留高3位Y2Y1Y0 ORL 40H, A ;通过将A和地址40H的值进行或运算,实现了 (40H)=Y2Y1Y0X7X6X5X4X3 HERE :AJMP HERE 实现左移5位,采用了两种方法,即移位和乘法。通过将A与#20H相乘实现A的左移5位。因为A左移1位相当于将A的值乘2,故左移5位就要乘32,对应的16进制值就是#20H。

75 第3章 MCS-51系列单片机指令系统 控制转移类指令 控制转移类指令采用助记符有:AJMP、LJMP、SJMP、JZ、JNZ、CJNE、DJNZ、ACALL、LCALL、RET、RETI、NOP等。控制类转移指令又分为无条件转移、条件转移、绝对转移、相对转移、长转移、短转移、间接转移等

76 3.2.4 控制转移类指令 1.无条件转移指令 SJMP rel AJMP addrll LJMP addrl6 JMP @A+DPTR
第3章 MCS-51系列单片机指令系统 控制转移类指令 1.无条件转移指令 SJMP rel AJMP addrll LJMP addrl6 JMP @A+DPTR 该指令是程序无条件地转移到各自指定的目标地址去执行,不同的指令形成的目标地址不同。

77 第3章 MCS-51系列单片机指令系统 控制转移类指令 ⑴短转移指令 SJMP rel 其目标地址是由当前PC(程序计数器)值和指令的第二字节提供的8位带符号的相对地址相加而成的。指令可转向指令前128 B或指令后127 B。rel为8位带符号数。 ⑵绝对转移指令 AJMP addr11 设(PC)=0456H,标号JMPADR所指的单元为0123H。 执行指令为 AJMP JMPADR 机器码为 执行结果程序转向为(PC)=0123H。

78 3.2.4 控制转移类指令 ⑶长转移指令 LJMP addr16
第3章 MCS-51系列单片机指令系统 控制转移类指令 ⑶长转移指令 LJMP addr16 该指令提供16位地址,目标地址由指令第二字节(高八位地址)和第三字节(低八位地址)组成。因此,程序转向的目标地址可以包含程序存储器的整个64 KB空间。 设(PC)=0123H,标号ADR所指单元地址为3456H。 执行指令: LJMP ADR 执行结果:(PC)=3456H 即程序转向3456H单元执行。

79 3.2.4 控制转移类指令 ⑷间接转移指令 JMP @A+DPTR 设(A)=05H,(DPTR)=4567H。
第3章 MCS-51系列单片机指令系统 控制转移类指令 ⑷间接转移指令 JMP @A+DPTR 设(A)=05H,(DPTR)=4567H。 执行指令: JMP @A+DPTR 执行结果::(PC)=(A)+(DPTR)=05H + 4567H=456CH 即程序转向456CH单元执行。

80 3.2.4 控制转移类指令 例:散转程序设计,根据A中的数值实现程序散转
第3章 MCS-51系列单片机指令系统 控制转移类指令 例:散转程序设计,根据A中的数值实现程序散转 MOV R1,A RL A ADD A,R ;(A)×3 MOV DPTR , #TABLE ;散转表首地址送DPTR JMP @A+DPTR TABLE: LJMP PM ;转程序PM0 TABLE+3: LJMP PM1;转程序PM1 PM0: …… LJMP是一个三字节指令,因此转移指令入口地址相隔3个字节,A中内容需是3的倍数。

81 第3章 MCS-51系列单片机指令系统 控制转移类指令 2.条件转移指令 与无条件转移指令不同,条件转移指令仅仅在满足指令中规定的条件(如累加器内容是否为零,二个操作数是否相等)时才执行无条件转移,否则程序顺序执行,相当于执行空操作。这类指令共有6条,可分为判零转移指令和比较转移指令两部分。

82 3.2.4 控制转移类指令 ⑴累加器判零转移指令 JZ rel ;若(A)=0,则(PC)=(PC+2)+rel
第3章 MCS-51系列单片机指令系统 控制转移类指令 ⑴累加器判零转移指令 JZ rel ;若(A)=0,则(PC)=(PC+2)+rel ;若(A)≠0,则(PC)=(PC)+2 JNZ rel ;若(A)≠0,则(PC)= (PC+2)+rel ;若(A)=0,则(PC)=(PC)+2 由上面的指令可以看出,这类指令都是以相对转移的方式转向目标地址的。偏移量rel的计算方法是: rel=目标地址一PC的当前值

83 3.2.4 控制转移类指令 ⑵数值比较转移指令 CJNE A,direct,rel CJNE A,#data,rel
第3章 MCS-51系列单片机指令系统 控制转移类指令 ⑵数值比较转移指令 CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,# data,rel CJNE @Ri,#data,rel

84 第3章 MCS-51系列单片机指令系统 控制转移类指令 例:某温度控制系统,A中存有温度采样值Ta,(20H)=温度下限值T20,(30H)=温度上限值T30。若Ta>T30,程序转降温JW;若Ta<T20,程序转升温SW;若T30≥Ta≥T20程序转FH返回主程序。 CJNE A,30H LOOP ;当A中的值Ta与地址30H中的 值T30不相等时,去执行LOOP AJMP FH ;Ta等于T30时,转FH LOOP:JNC JW;Ta大于T30,转去执行降温程序段JWC NE A,20H,LOOP1 ;当A中的值Ta与地址20H中的值T20不相等时;转去执行LOOP1 AJMP FH ;Ta等于T20,转FH LOOP1:JC SW Ta小于T20,转去执行升温程序段SW FH: ;保温程序段 JW:------ SW∶------

85 3.2.4 控制转移类指令 3.循环转移指令 DJNZ Rn,rel DJNZ direct,rel
第3章 MCS-51系列单片机指令系统 控制转移类指令 3.循环转移指令 DJNZ Rn,rel DJNZ direct,rel 每执行一次循环指令时,先将指定的Rn或direct的内容减1,再判断其内容是否为0。若不为0,转向目标地址,继续执行循环程序;若为0,则结束循环程序段,程序往下执行。这类指令在计数循环结构程序编写时很有用。

86 3.2.4 控制转移类指令 从P1.7引脚输出5个方波,如图所示。 MOV R2,#10;设定需要输出5个方波,10个状态
第3章 MCS-51系列单片机指令系统 控制转移类指令 从P1.7引脚输出5个方波,如图所示。 MOV R2,#10;设定需要输出5个方波,10个状态 LOOP:CPL P1.7 ;P1.7状态变反 DJNZ R2 ,LOOP ;未到设定输出数则转到LOOP执行

87 3.2.4 控制转移类指令 例:将2000H单元开始的一批数据传送到从3000H开始的单元中,数据长度在内部RAM的30H中。
第3章 MCS-51系列单片机指令系统 控制转移类指令 例:将2000H单元开始的一批数据传送到从3000H开始的单元中,数据长度在内部RAM的30H中。 MOV DPTR,#2000H ;源数据区首址 PUSH DPL ;源数据区首址压栈保护 PUSH DPH MOV DPTR,#3000H ;目的数据区首址 MOV R6,DPL ;目的数据区首址存入寄存器 MOV R7,DPH LP:POP DPH ;取源数据区地址指针 POP DPL MOVX ;取源数据 INC DPTR

88 3.2.4 控制转移类指令 PUSH DPL PUSH DPH ;更新源数据地址,并将该新地址压栈保护
第3章 MCS-51系列单片机指令系统 控制转移类指令 PUSH DPL PUSH DPH ;更新源数据地址,并将该新地址压栈保护 MOV DPL,R ;取目的数据区首地址指针 MOV DPH,R7 MOVX @DPTR,A ;将取得的源数据存入目的数据区 INC DPTR MOV R6,DPL MOV R7,DPH ;更新目标数据地址,并将该新地址存入到R6和R7中 DJNZ 30H,LP ;若数据块未移完(即地址30H中的值不为0),则继续 POP DPH POP DPL SJMP $

89 3.2.4 控制转移类指令 4. 子程序调用指令 ⑴绝对调用指令
第3章 MCS-51系列单片机指令系统 控制转移类指令 4. 子程序调用指令 ⑴绝对调用指令 ACALL addr11 设(SP)=60H,(PC)=0123H,子程序SUBRTN的首地址为0456H。 执行指令:ACALL SUBRTN 执行结果:(PC)+2=0123H+2=0125H→(PC) 将(PC)=0125H压入堆栈: 25H压入(SP)+1=61H 01H压入(SP)十l=62H 此时(SP)=62H PC=0456H

90 3.2.4 控制转移类指令 ⑵长调用指令 设(SP)=60H,(PC)=0123H,子程序SUBRTN的首地址为3456H。
第3章 MCS-51系列单片机指令系统 控制转移类指令 ⑵长调用指令 LCALL addr16 设(SP)=60H,(PC)=0123H,子程序SUBRTN的首地址为3456H。 执行指令:LCALL SUBRTN 执行结果:(PC)+3=0123H+3=0126H→(PC)。 将(PC)压入堆栈: 26H压入(SP)+l=6lH, 0lH压入(SP)+l=62H中 此时(SP)=62H, (PC)=3456H

91 3.2.4 控制转移类指令 5.返回指令 ⑴子程序返回指令 RET 设(SP)=62H,RAM中的(62H)=0lH,(61H)=26H。
第3章 MCS-51系列单片机指令系统 控制转移类指令 5.返回指令 ⑴子程序返回指令 RET 设(SP)=62H,RAM中的(62H)=0lH,(61H)=26H。 执行指令:RET 执行结果∶(SP)=60H,PC=0126H。

92 第3章 MCS-51系列单片机指令系统 控制转移类指令 ⑵中断返回指令 RETI 设(SP)=62H,中断时断点是0123H,RAM中的(62H)=0lH,(61H)=23H。 执行指令:RETI 执行结果:(SP)=60H,PC=0123H 程序回到断点0123H处继续执行。并清除了内部相应的中断状态寄存器。

93 第3章 MCS-51系列单片机指令系统 位操作类指令 MCS-51系列单片机内部有一个布尔(位)处理器,具有较强的布尔变量处理能力。布尔处理器实际上是一位的微处理机,它以进位标志CY作为位累加器,以内部RAM的20H至2FH单元及部分特殊功能寄存器为位存储器,以P0、P1、P2、P3为位I/O。对位地址空间具有丰富的位操作指令,包括布尔传送指令、布尔状态控制指令、位逻辑操作指令及位条件转移指令。助记符有MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB、JBC等11种。

94 3.2.5 位操作类指令 1.布尔传送指令 MOV C,bit ;(C)←(bit) MOV bit,C ;(bit)←(C)
第3章 MCS-51系列单片机指令系统 位操作类指令 1.布尔传送指令 MOV C,bit ;(C)←(bit) MOV bit,C ;(bit)←(C) 该指令的功能是将源操作数(位地址或布尔累加器)送到目的操作数(布尔累加器或位地址)中去。 设(C)=0,执行指令为 MOV P1.3,C,执行结果为P1.3口线输出0。

95 3.2.5 位操作类指令 2.布尔状态控制指令 ⑴位清除(CLR)指令 CLR C ;(C)←0 CLR bit ;(bit)←0
第3章 MCS-51系列单片机指令系统 位操作类指令 2.布尔状态控制指令 ⑴位清除(CLR)指令 CLR C ;(C)←0 CLR bit ;(bit)←0 该指令的功能是将C或指定位(bit)清0。 ⑵位置1(SETB)指令 SETB C ;(C)←l SETB bit ;(bit)←1 该指令的功能是将C或指定位(bit)置1。 ⑶位取反(CPL)指令 CPL C ;(C)←(/C) CPL bit ;(bit)←(/bit) 该指令的功能是将C或指定位(bit)取反。

96 3.2.5 位操作类指令 3.布尔(位)逻辑操作指令 ⑴位逻辑“与”(ANL)操作指令 ANL C,bit ;(C)←(C)•(bit)
第3章 MCS-51系列单片机指令系统 位操作类指令 3.布尔(位)逻辑操作指令 ⑴位逻辑“与”(ANL)操作指令 ANL C,bit ;(C)←(C)•(bit) ANL C,/bit ;(C)←(C)•(/bit) 该指令的功能是将指定位(bit)的内容或指定位内容取反后(原内容不变)与C的内容进行逻辑与运算,结果仍存于C中。 ⑵位逻辑“或”(ORL)操作指令 ORL C,bit ;(C)←C)十(bit) ORL C,/bit ;(C)←(C)十(/bit) 该指令的功能是将指定位(bit)的内容或指定位内容取反后(原内容不变)与C的内容进行逻辑或运算。结果仍存于C中。

97 3.2.5 位操作类指令 4.布尔(位)条件转移指令 ⑴布尔累加器条件转移指令 JC rel JNC rel
第3章 MCS-51系列单片机指令系统 位操作类指令 4.布尔(位)条件转移指令 ⑴布尔累加器条件转移指令 JC rel JNC rel 该指令的功能是对布尔累加器C进行检测,对应于上面的两条指令而言,当C分别为1或0时,程序转向由当前PC值(转移指令地址+2)与第二字节中带符号的相对地址(rel)之和得到的目标地址,否则程序往下顺序执行。因此转移的范围是-128~+127 B。操作不影响标志位。

98 3.2.5 位操作类指令 ⑵位测试条件转移指令 JB bit,rel JNB bit,rel
第3章 MCS-51系列单片机指令系统 位操作类指令 ⑵位测试条件转移指令 JB bit,rel JNB bit,rel 该指令的功能是检测指定位,对应于上面的两条指令而言,当位变量分别为1或0时,程序转向当前PC值(转移指令地址+2)与第二字节中带符号的相对地址(rel)之和的目标地址,否则程序往下顺序执行。因此转移的范围是–128~127B。此操作不影响标志位。

99 3.2.5 位操作类指令 ⑶位测试条件转移并清0指令 JBC rel
第3章 MCS-51系列单片机指令系统 位操作类指令 ⑶位测试条件转移并清0指令 JBC rel 该指令的功能是检测指定位,当位变量为1时,则将该位清0,且程序转向当前PC值(转移指令地址+2)与第二字节中带符号的相对地址(rel)之和的目标地址,否则程序往下顺序执行。因此转移的范围是–128~127 B。操作不影响标志位。

100 JB ACC.0,MM ;当A的第0位ACC.0为1时,转去执行 MM SETB C ;当ACC.0为0时,将C置1 并转去执行OUT
第3章 MCS-51系列单片机指令系统 位操作类指令 例:试编写程序实现下述逻辑表达式的功能 Y= X0X1X2+X0X1X2+X0X1X2X3+X4X5X6X7 说明:设八位输入信号X0、X1、…、X7 从P1口输入,Y信号从P3.0输出。经化简得到 Y=X0+X1X2+X1X2+X4X5X6X7 MOV A,P ;将8位输入信号传到A中 JB ACC.0,MM ;当A的第0位ACC.0为1时,转去执行 MM SETB C ;当ACC.0为0时,将C置1 并转去执行OUT SJMP OUT ;X0=1,转出口

101 3.2.5 位操作类指令 MM: MOV C,ACC.1 ANL C,/ACC.2 JC OUT ;X1X2=1,转出口
第3章 MCS-51系列单片机指令系统 位操作类指令 MM: MOV C,ACC.1 ANL C,/ACC.2 JC OUT ;X1X2=1,转出口 MOV C,ACC.2 ANL C,/ACC.1 MOV C,ACC.7 ANL C,/ACC.4 ANL C,/ACC.5 ANL C,/ACC.6 ;X4X5X6X7 OUT:MOV P3.0,C

102 3.2.5 位操作类指令 CHK1:CJNE A,#1,CHK2 INC 21H ;是“1”,则“1”计数单元加1 SJMP END0
第3章 MCS-51系列单片机指令系统 位操作类指令 CHK1:CJNE A,#1,CHK2 INC 21H ;是“1”,则“1”计数单元加1 SJMP END0 CHK2:CJNE A,#2,CHK3 INC 22H ;是“2”,则“2”计数单元加1 CHK3:CJNE A,#3,CHK4 INC 23H ;是“3” ,则“3” 计数单元加1 CHK4:CJNE A,#4,CHK5 INC 24H ;是“4”,则“4”计数单元加1 CHK5:CJNE A,#5,CHK6 INC 25H ;是“5”,则“5”计数单元加1

103 3.2.5 位操作类指令 CHK6:CJNE A,#6,CHK7 INC 26H ;是“6”,则“6”计数单元加1 SJMP END0
第3章 MCS-51系列单片机指令系统 位操作类指令 CHK6:CJNE A,#6,CHK7 INC 26H ;是“6”,则“6”计数单元加1 SJMP END0 CHK7:CJNE A,#7,CHK8 INC 27H ;是“7”,则“7”计数单元加1 CHK8:CJNE A,#8,CHK9 INC 28H ;是“8”,则“8”计数单元加1 CHK9:CJNE A,#9,ERR INC 29H ;是“9”,则“9”计数单元加1 END0:DJNZ R0,READ ;判是否全部统计完? HERE:SJMP HERE ERR:… ;非0~9,出错


Download ppt "单片机原理与应用."

Similar presentations


Ads by Google