当前位置:文档之家› 单片机第三章(3)

单片机第三章(3)

单片机第三章(3)
单片机第三章(3)

3.3 算术运算类指令

MCS-51 的算术指令包括:加法、带进位加法、带进位减法、加1、减1、十进制调整、乘法、除法等指令。算术运算类指令见表

3.3.1加法指令

一、不带进位的加法

1、ADD A,Rn

2、ADD A,direct

3、ADD A,@Ri

4、ADD A,#data

功能:加法,(A)=(A)+[源]

说明:加法运算中若第7位或第3位向高位有进位时,则分别将PSW 中C和AC标志位置1;否则清0。此外ADD 指令还将影响标志位OV和P。

无符号整数相加时,若C 位为1,说明和数有溢出(大于255)。

【例3.10】试分析指令的执行结果。

①MOV PSW, #00H ;其中标志(C)=0、(OV)=0、(AC)=0、(P)=0

②MOV A, #41H ;(A)=41H

③ADD A, #7FH ;(A)=(A)+7FH=B0H,且标志变化情况为(AC)=1,

;(C)=0,(OV)=1,(P)=0

二、带进位的加法

1、ADDC A,Rn

2、ADDC A,direct

3、ADDC A,@Ri

4、ADDC A,#data

功能:带进位加法。(A)=(A)+[源]+(C)。

说明:本指令对标志位的影响,进位和溢出情况与ADD指令完成相同。

多字节数相加时必须使用该指令,以保证低位字节的进位加到高位字节上。

【例3.11】试分析指令的执行结果。

①MOV PSW, #80H ;其中标志(C)=1、(0V)=0、(AC)=0、(P)=0

②MOV A, #0C3H ;(A)=C3H

③ADD C A, #0AAH ;(A)=(A)+AAH=6DH,且标志变化情况为(AC)=0,

; (C)=1,(OV)=1,(P)=1

【例3.12】编制一个将218A与3C90H相加的程序。将和的低8位放在30H单元中,和的高8位放在31H单元中,

MOV A,#8AH

ADD A,#90H

MOV 30H,A

MOV A,21H

ADDC A,3CH

MOV 31H,A

三、加一指令

1、INC A

2、INC Rn

3、INC direct

4、INC @Ri

5、INC DPTR

功能:目的←[目的]+1。“加1”

说明:若该字节的内容为FFH,加1后将溢出,结果为00H,但不影响进位标志。

【例3.13】试分析执行结果。

①MOV R0, #7EH ;(R0)=7EH

②MOV 7EH,#FFH ;(7EH)=FFH

③MOV 7FH,#48H ;(7FH)=48H

④INC @R0 ;((R0))=(7EH)=((R0))+1=(7EH)+1=FFH+1=00H

⑤INC R0 ;(R0)=(R0)+1=7EH+1=7FH

⑥INC @R0 ;((R0))=(7FH)=((R0))+1=(7FH)+1=48H+1=49H

3.3.2 减法指令

一、带进位减法指令

1、SUBB A,Rn

2、SUBB A,direct

3、SUBB A,@Ri

4、SUBB A,#data

功能:带进位减法,(A)=(A)-[源]-(C)。

说明:MCS-51 的减法指令,只有带进位减这一种形式,没有不带进位减的形式,但可以通过两条指令组合来实现纯减法功能。即CLR C

【例3.14】试分析指令的执行结果。

①MOV A, #0C9H ;(A)=C9H

②MOV R2, #54H ;(R2)=54H

③MOV PSW, #80H ;其中标志(C)=1

④SUBB A, R2 ;(A)=(A)-(R2)-(C)=C9H-54H-1=74H

;且标志(C)=0、(AC)=0、(OV)=1

二、减一指令

1、DEC A

2、DEC Rn

3、DEC direct

4、DEC @Ri

功能:字节内容减1,结果存原指定字节中。

说明:若原字节为00H,减1后将变为FFH,不影响标志(除DEC PSW 指令外)。

【例3.15】试分析指令的执行结果。

①MOV R0,#7FH ;(R0)=7FH

②MOV 7EH,#00H ;(7EH)=00H

③MOV 7FH,#40H ;(7FH)=40H

④DEC @R0 ;((R0))=(7FH)=(7FH)-1=3FH

⑤DEC R0 ;(R0)=(R0)-1=7FH-1=7EH

⑥DEC @R0 ;((R0))=(7EH)=(7EH)-1=FFH

3.3.3 乘除指令

一、乘法指令

MUL AB

功能:8 位二进制数乘法。

说明:MUL 指令把累加器A 中的8 位无符号数和寄存器B 中的8 位无符号数相乘,

16 位乘积的低8 位放在(A)中,高8位放在(B)中,如果乘积大于255,则(OV)=1;否则(OV)=0。进位标志总为0,即(C)=0。

【例3.16】试分析指令的执行结果。

①MOV A,#50H ;(A)=50H=80

②MOV B,#0A0H ;(B)=A0H=160

③MUL AB ;(A)×(B)=3200H=12800

结果:(B)=32H,(A)=00H

标志:(C)=0,(OV)=1

二、除法指令

DIV AB

功能:8 位二进制数除法。

说明:DIV 指令把累加器中的8 位无符号数除以寄存器B 中的8位无符号数,商的整数部分存(A)中,余数部分存寄存器B 中。若除数(B)原来为00H,则操作结果不定,且(OV)=1,否则(OV)=0。进位标志(C)=0(恒定)。

【例3.17】试分析指令的执行结果。

①MOV A, #FBH ;(A)=FBH=251

②MOV B, #12H ;(B)=12H=18

③DIV AB ;(A)=0DH=13(商),(B)=11H=17 (余数)

;(C)=0,(OV)=0

3.3.4十进制调整指令

DA A

功能:对累加器A中的BCD 码加法运算后的结果进行二—十进制调整。

其执行的规则是:

①若(A)3~0>9 或(AC)=1,则(A)3~0←(A)3~0+6;

②若(A)7~4>9 或(C)=1,则(A)7~4←(A)7~4+6 。

除此之外,累加器原数不变。

说明:DA 指令只能与加法(ADD 或ADDC)指令配对出现,它不能简单地把累加器中的16进制数变换成BCD 码数,实际是做十进制数加法运算。

【例3.18】试分析指令的执行结果。

①MOV PSW, #80H ;其中标志(C)=1

②MOV A, #56H ;(A)=56H 表示十进制数56为压缩BCD码数

③MOV A, #67H ;(A)=(A)+67H+(C)=BEH,(C)=0、(AC)=0

④DA A ;将累加器的内容再加66H,为十进制数124(BCD码)

【例3.19】编程进行BCD码55+69的运算

MOV A,55H

ADD A,#69H

DA A

单片机原理与运用_第三章答案

第三章单片机的汇编语言与程序设计习题 1.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值? MOV A,59H MOV R0,A MOV A,#00H MOV @R0,A MOV A,#25H MOV 51H,A MOV 52H,#70H 解:MOV A,59H ;A=50H MOV R0,A ;RO=50H MOV A,#00H ;A=00H MOV @R0,A ;50H=00H MOV A,#25H ;A=25H MOV 51H,A ;51H=25H MOV 52H,#70H ;52H=70H

所以:A=25H R0=50H ;50H=00H 51H=25H 2.请选用合适的指令对P0口内容做修改(例如使P0.0~P0.3不变,P0.4~P0.7为0)。 解:MOV A,P0 ANL A,0fh Mov P0,A 3.试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。解:访问外部数据存储器指令有: MOVX @DPTR,A MOVX DPTR,#0100H MOV @DPTR,A MOVX A,@DPTR MOVX DPTR,#0200H MOV A,@DPTR MOVX A,@Ri MOVX A,@R0 MOVX @Ri,A MOVX @RI,A 访问程序存储器指令有: MOVX A,@A+PC

MOVX A,@A+DPTR 4.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化? PUSH 30H PUSH 31H POP DPL POP DPH MOV 30H,#00H MOV 31H,#0FFH 解:PUSH 30H ;61H=24H PUSH 31H ;62=10H SP=62H POP DPL ;DPL=10H POP DPH ;DPH=24H SP=60H MOV 30H,#00H ;30H=00H MOV 31H,#0FFH ;31H=0FFH

第3章单片机原理课后答案

习题 1. 在MCS-51单片机中,寻址方式有几种? 答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。 2. 在MCS-51单片机中,哪些寻址方式访问的是片内RAM? 答:访问片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。 3. 在MCS-51单片机中,哪些寻址方式访问的是片外RAM? 答:只有寄存器间接寻址方式访问片外RAM寻址。 4. 在对片外RAM单元的寻址中,用Ri间接寻址与用DPTR间接寻址有什么区别? 答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR 作指针间接访问可访问整个64K字节。 5. 在MCS-51单片机中,相对寻址方式的目的地址如何计算? 答:目的地址=当前PC+rel=转移指令的地址+转移指令的字节数+rel 6. 在位处理中,位地址的表示方式有哪几种? 答:位地址的表示方式有4种: (1) 直接位地址(00H~0FFH)。例如,20H。 (2) 字节地址带位号。例如,20H.3表示20H单元的3位。 (3) 特殊功能寄存器名带位号。例如,P0.1表示P0口的1位。 (4) 位符号地址。例如,TR0是定时/计数器T0的启动位。 7. 写出完成下列操作的指令。 (1) R2的内容送到R3中。 MOV A,R2 MOV R3,A (2) 片内RAM的30H单元内容送到片内RAM的40H单元中。 MOV 40H,30H (3) 片内RAM的30H单元内容送到片外RAM的30H单元中。 MOV A,30H MOV R0,#30H MOVX @R0,A (4) 片内RAM的20H单元内容送到片外RAM的2000H单元中。 MOV A,20H MOV DPTR,#2000H MOVX @DPTR,A (5) 片外RAM的1000H单元内容送到片内RAM的20H单元中。 MOV DPTR,#1000H MOVX A,@DPTR MOV 20H,A (6) 片外RAM的1000H单元内容送到片外RAM的4000H单元中。 MOV DPTR,#1000H MOVX A,@DPTR MOV DPTR,#4000H

单片机课后第三章习题答案(DOC)

单片机原理与应用作业 第三章 1 设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值? MOV A,59H ;A=50H MOV R0,A ;R0=50H MOV A,#00H ;A=00H MOV @R0,A ;50H=00H MOV A,#25H ;A=25H MOV 51H,A ;51H=25H MOV 52H,#70H ;52H=70H A=25H R0=50H 50H=00H 51H=25H 2请选用适合的指令对P0口内容作修改(例如使P0.0~P0.3不变,P0.4~P0.7为0) mov A,P0 ANL A ,0fh mov P0,A 3访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。 答:访问外部数据存储器指令有: MOVX @DPTR,A MOV DPTR,#0100H MOV @DPTR,A MOVX A,@DPTR MOV DPTR,#0200H MOV A,@DPTR MOVX A,@Ri MOVX A,@R0 MOVX @Ri,A MOVX @R1,A 访问程序存储器指令有: MOVC A,@A+PC MOVC A,@A+DPTR 4设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化? PUSH 30H ;61H=24H PUSH 31H ;62H=10H SP=62H POP DPL ;DPL=10H POP DPH ;DPH=24H SP=60H MOV 30H,#00H ;30H=00H MOV 31H,#0FFH ;31H=0FFH

单片机第3章习题答案

第3章习题答案 一、选择题 1.在中断服务程序中,至少应该有一条( D )。 (A)传送指令(B)转移指令(C)加法指令(D)中断返回指令 2.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是( C )。 (A)MOV (B)MOVC (C)MOVX (D)以上都行 3.JNZ rel指令的寻址方式是( C )。 (A)立即寻址(B)寄存器寻址(C)相对寻址(D)位寻址 4.执行LCALL 1020H指令时,MCS-51所完成的操作是( D )。 (A)保护PC (B)PC←1020H (C)保护现场(D)PC+3入栈,PC←1020H 5.下面哪条指令产生WR信号( D )。 (A)MOVX A,@DPTR (B)MOVC A,@A+PC (C)MOVC A,@A+DPTR (D)MOVX @DPTR,A 6.在执行PUSH ACC指令时,MCS-51完成的操作是( A )。 (A)(SP)←(SP)+1,((SP))←(ACC) (B)(SP)←(ACC),((SP))←(SP)-1 (C)(SP)←(SP)-1,((SP))←(ACC) (D)((SP))←(ACC),(SP)←(SP)+1 7.MCS-51执行完MOV A,#08H后,PSW的哪一位被置位( D )。 (A)C (B)F0 (C)OV (D)P 8.指令AJMP的跳转范围是( C )。 (A)256B (B)1KB (C)2KB (D)64KB 9.在寄存器间接寻址方式中,指定寄存器中存放的是( B )。 (A)操作数(B)操作数地址(C)转移地址(D)地址偏移量 10.执行返回指令时,返回的断点是( C )。 (A)调用指令的首地址(B)调用指令的末地址 (C)调用指令下一条指令的首地址(D)返回指令的末地址 二、填空题: 1.8051指令基本格式由标号、操作码助记符、操作数和注释组成。 2.MOV A,20H源寻址方式为直接寻址。 3.执行ANL A,#0FH指令后,累加器A的高4位=0000B 。 4.JZ rel的操作码首地址为1000H,rel=20H,它的转移目的地址为1022H 。5.若R7的初值为00H的情况下,DJNZ R7,rel指令将循环执行 256 次。 6.SJMP rel的指令操作码首地址为0050H,rel=65H,那么它的转移目的地址为00B7H 。 7.指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H 入栈,37B0H→PC。8.RET是子程序指令,RETI是中断返回指令。 9.ORL A,#0F0H是将A的高4位置1,而低4位不变。 10.堆栈是在RAM中设定的存储区,栈底是固定的,栈顶是浮动的,存取数据的规则是先入后出,后入先出。 11.假定(A)=85H,(R0)=40H,(40H)=0AFH。执行指令:ADD A,@R0后,累加器A

最新单片机第三章作业参考答案汇编

1.指出下列指令中划线操作数的寻址方式和指令的操作功能 MOV A, #78H;立即寻址,将立即数送入累加器A MOV A, 78H;直接寻址,将内部RAM 78H单元内容送累加器A MOV A, R6;寄存器寻址,将R6内容送累加器A INC @R0;寄存器间接寻址,将指针R0指向的内部RAM单元内容加1 PUSH ACC;寄存器寻址,将累加器A的内容入栈 RL A;寄存器寻址,将累加器A的内容左移1位 CPL 30H;位寻址,将位变量30H的内容取反 SJMP $;相对寻址,死循环指令 MOVC A, @A+DPTR;基寄存器加变址寄存器间接寻址,从程序存储器中DPTR+A 对应的地址单元取数到累加器A 2.指出下列指令中哪些是非法的? DEC DPTR MOV A, @R2 MOV R1, @R0 MOV P1.1, 30H MOV #30H, A MOV OV, 30H MOV A, @A+DPTR RRC 30H RL B XRL C, 30H 3.如何将1个立即数30H送入内部RAM 90H单元?如何将立即数送特殊功能寄存器P1? (1)MOV R0, #90H MOV @R0, #30H (2)MOV P1, #30H 4.执行下列一段程序后,试分析有关单元内容。 MOV PSW, #0; MOV R0, #30H; MOV 30H, #40H MOV 40H, #50 MOV A, @R0 ADDC A, #0CEH INC R0 执行结果:(R0)=31H, (30H)=40H, (40H)=50, (A)=0EH, (PSW)=81H 5.试编写一段程序,内部RAM 40H、41H单元内容传送到外部RAM 2000H、2001H单 元中。 MOV DPTR, #2000H MOV R0, #40H MOV A, @R0

单片机第三章答案

3.2指出下列每条指令的寻址方式和功能: ○1MOV A, #50H 该指令是立即数寻址方式,功能:A←立即数52H,就是操作数包含在指令字节中,跟在指令操作码后面字节内容就是操作数本身,把立即数52H送到累加器中。 ○2MOV A, 50H 该指令是直接寻址方式,功能:A←50H,指令中直接给出该操作数所在的单元的地址,将50H 单元里的内容送到累加器中。 ○3MOV A, @R0 该指令是寄存器间接寻址方式,功能:A←(R0),指令中给出的某一个寄存器的内容是操作数所在的存储单元地址,从该地址去取操作数,把R0单元的操作数送到累加器里。 ○4MOV A, R7 该指令是寄存器寻址方式,功能:A←R7,指令中直接给出该寄存器的名称,将寄存器单元里的操作数送给累加器。 ○5MOVC A, @A+PC 该指令是变址寻址方式,功能:操作数的地址是由一个基地址加一个偏移地址组成。该指令把基址寄存器PC的内容为基本地址,加上变址寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。 ○6SJMP LOOP 该指令是相对转移指令该指令的寻址方式为相对寻址方式,功能:PC ←PC+2,PC←PC+LOOP 3.3设内部RAM中的69H单元的内容为50H,写出当执行下列程序段后寄存器A﹑R0和内部RAM中50H﹑51H单元的内容为何值? MOV A,69H ;A中的值为50H MOV R0,A ;将A中的值送到R0中 MOV A,#00H ;将立即数00H送到A中 MOV @R0,A ;将A中的内容送到间接寻址的内部RAM中50H单元中MOV A,#35H ;将立即数35H送到A中 MOV 51H,A ;将A中的值送到51H单元中 MOV 52H,#80H ;将立即数80H送到52H单元中 可以知道:完成这段程序后,A中的值为:35H,R0:50H,内部RAM中50H:00H,51H:35H 3.6设堆栈指针SP中的内容为60H,内部RAM中的30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR以及SP中内容将有何变化? PUSH 30H ;SP←SP+1,(SP)←(30H),SP=61H,(61H)=24H PUSH 31H ;SP←SP+1,(SP)←(31H),SP=62H,(62H)=10H POP DPL ;DPL←(SP),SP←SP-1,(82H)=10H,SP=61H POP DPH ;DPH←(SP),SP←SP-1,(83H)=24H,SP=60H MOV 30H,#00H ;30H←00H MOV 31H,#0FFH ;31H←0FFH 可以知道:完成这段程序后,61H中的内容为:24H,62H:10H,内部RAM中30H:00H,31H:0FFH,DPTR:2410H,SP:60H。 3.7用数据传送指令实现下列要求的数据传达:

单片机-第三章答案

思考题: 【3-1】汇编语言与C语言哪种语言的可读性和可移植性强?在对速度和时序敏感的场合应该使用什么语言?对于复杂的单片机系统一般采用C与汇编混合编程的形式这句话对吗? 【3-2】二进制机器语言与C和汇编语言两者之间是什么关系?用C或汇编编制的程序在ROM中是以编译后的二进制代码的形式存放这句话对吗? 【3-3】80C51系列单片机指令的格式包含哪几个部分?各部分之间的间隔符是什么?四个部分中哪个部分是必须存在的,哪几个部分是可有可无的?标号的格式和代表的意义是? 【3-4】80C51系列单片机有哪几种寻址方式? 【3-5】80C51单片机中立即数是存放在ROM中还是RAM中? 【3-6】判断下列说法是否正确。 (1)立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。()(2)指令周期是执行一条指令的时间。() (3)指令中直接给出的操作数称为直接寻址。() (4)内部寄存器Rn(n=0~7)可作为间接寻址寄存器。() 【3-7】80C51单片机可以进行直接寻址的区域是? 【3-8】80C51单片机可以进行寄存器寻址的范围是? 【3-9】80C51单片机可以进行寄存器间接寻址的寄存器是?寻址的范围是? 【3-10】在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的()。 【3-11】80C51单片机变址寻址方式中可以作基址的寄存器是?可以作变址的寄存器是?@A+PC,@A+DPTR所找到的操作数是在ROM中对吗? 【3-12】80C51单片机相对寻址改变的是PC的当前值,即改变的CPU执行指令的顺序这句话对否?【3-13】若访问特殊功能寄存器,只可以采用那种寻址方式? 【3-14】若访问外部RAM单元,只可以使用哪种寻址方式? 【3-15】若访问内部RAM单元,可使用哪些寻址方式? 【3-16】若访问内外程序存储器,可使用哪些寻址方式? 【3-17】80C51单片机可以进行位寻址的字节单元范围除11个可位寻址的特殊功能寄存器外还包括哪个区域?分别找出位地址是00H、08H、22H、7FH、D0H、E0H对应的字节地址? 【3-18】已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=0EFH,试写出执行以下程序段后有关单元的内容。 MOV R0,#30H MOV A,@R0 MOV R1,A MOV B,@Ri MOV @R1,P1 MOV P2,P1 MOV 10H,#20H MOV 30H,10H 【3-19】为什么对基本型的51子系列单片机(片内RAM为128B),其寄存器间接寻址方式(例如MOV A,@R0)中,规定R0或R1的内容不能超过7FH? 【3-20】外部RAM数据传送指令有几条?试比较下面每一组中两条指令的区别? (1)MOVX A,@R1 MOVX A,@DPTR (2)MOVX A,@DPTR MOVX @DPTR,A (3)MOV @R0,A MOVX @R0,A

单片机原理及应用第三章课后答案

第三章作业答案 2. MCS-51有(4)个8位并行I/O口,在作为通用I/O口使用时P0~P3是准双向口,所以由输出转输入时必须先写入(1)。 6. 设(TMOD)=0A5H,则定时器T0的状态是( 方式1计数),定时器T1的状态是( 方式2定时)。或 设(TMOD)=0A5H,则定时器T0的状态是( 软件控制的16位计数器),定时器T1的状态是(软硬件控制的可自动重装初值的8位定时器)。 27.请写出1 INT为低电平触发的中断系统初始化程序。 解: INT为低电平触发的中断系统初始化程序如下: 1 ORG 0000H LJMP MAIN ORG 0013H LJMP INTN1 ORG 0100H MAIN:MOV SP,#60H SETB EA SETB EX1;开1 INT中断 CLR PX1 ;令1 INT为低优先级 CLR IT1 ;令1 INT为电平触发 SJMP $ INTN1:…… RETI END 用MOV指令实现: MOV IE,#84H ANL IP,#0FBH(或ORL IP,#04H) ANL TCON,#0FBH 28.MCS-51单片机响应中断后,写出中断服务子程序的入口地址。 解:

36.使用一个定时器,如何通过软硬结合方法实现较长时间的定时? 解: 设定好定时器的定时时间,采用中断方式用软件进行溢出次数累计,从而得到较长的定时时间,定时时间=定时器的定时时间×软件累计的溢出次数。 37.利用定时器输出周期为2 ms的方波, 设单片机晶振频率为6 MHz。试编程实现之。 解: 选用定时器/计数器T0 作定时器,工作在方式1,输出为P1.0 引脚,2 ms 的方波可由1 ms的高低电平相间隔而成,因而只要每隔1 ms对P1.0 取反一次即可得到这个方波。初值的计算如下:T0=12/(6×106)= 2×10-6S TC=M-T/T0=216-1×10-3/2×10-6=65536-500=65036=FE0CH 当定时器/计数器采用方式0时,初值为: TC=M-T/T0=213-1×10-3/2×10-6=8192-500=7692=1E0CH, 则真正的16位计数初值为:1E0CH(高8位,低5位) 利用定时器/计数器时,必须用文字说明工作方式的设置,计算初值。 程序如下: ORG 0000H LJMP T0INT ;T0中断入口 START:MOV SP,#60H ;初始化程序 MOV TL0,#0CH ;T0赋初值 MOV TH0, MOV TMOD,#01H ;定时器/计数器0工作于方式1 SETB TR0 ;启动T0 SETB ET0 ;开T0中断 SETB EA ;开总允许中断 T0INT:PUSH ACC PUSH PSW MOV TL0, MOV TH0,#0FEH SETB TR0 ;启动T0 POP PSW POP ACC RETI END 当采用查询方式时: 兰色字部分应该为: LP1: JBC TF0, LP2

(完整版)单片机,第三章答案

思考题: 【3-1 】汇编语言与 C 语言哪种语言的可读性和可移植性强?在对速度和时序敏感的场合应该使用什么语言?对于复杂的单片机系统一般采用 C 与汇编混合编程的形式这句话对吗? 【3-2】二进制机器语言与C和汇编语言两者之间是什么关系?用C或汇编编制的程序在ROM中是 以编译后的二进制代码的形式存放这句话对吗? 【3-3】80C51系列单片机指令的格式包含哪几个部分?各部分之间的间隔符是什么?四个部分中哪 个部分是必须存在的,哪几个部分是可有可无的?标号的格式和代表的意义是? 【3-4 】80C51 系列单片机有哪几种寻址方式? 【3-5】80C51单片机中立即数是存放在ROM中还是RAM中? 【3-6 】判断下列说法是否正确。 (1)立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。()(2)指令周期是执行一条指令的时间。() (3)指令中直接给出的操作数称为直接寻址。() (4)内部寄存器Rn (n=0~7)可作为间接寻址寄存器。() 【3-7 】80C51 单片机可以进行直接寻址的区域是? 【3-8 】80C51 单片机可以进行寄存器寻址的范围是? 【3-9 】80C51 单片机可以进行寄存器间接寻址的寄存器是?寻址的范围是? 【3-10 】在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作 数的()。 【3-11 】80C51 单片机变址寻址方式中可以作基址的寄存器是?可以作变址的寄存器是?@A+P,C @A+DPT所找到的操作数是在ROM中对吗? 【3-12】80C51单片机相对寻址改变的是PC的当前值,即改变的CPU执行指令的顺序这句话对否? 【3-13 】若访问特殊功能寄存器,只可以采用那种寻址方式? 【3-14】若访问外部RAM单元,只可以使用哪种寻址方式? 【3-15】若访问内部RAM单元,可使用哪些寻址方式? 【3-16 】若访问内外程序存储器,可使用哪些寻址方式? 【3-17 】80C51 单片机可以进行位寻址的字节单元范围除11 个可位寻址的特殊功能寄存器外还包括 哪个区域?分别找出位地址是00H 08H 22H、7FH D0H E0H对应的字节地址? 【3-18】已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=0EFH试写出执行以下程序段后有关单元的内容。 MOV R0,#30H MOV A ,@R0 MOV R1,A MOV B ,@Ri MOV @R1,P1 MOV P2,P1 MOV 10H, #20H MOV 30H,10H 【3-19】为什么对基本型的51子系列单片机(片内RAM为128B),其寄存器间接寻址方式(例如MOV A,@R0中,规定R0或R1的内容不能超过7FH? 【3-20】外部RAM数据传送指令有几条?试比较下面每一组中两条指令的区别? ( 1 )MOVX A,@R1 MOVX A ,@DPTR (2)MOVX A,@DPTR MOVX @DPTR, A (3)MOV @R0, A MOVX @R0 , A

单片机课件-第三章作业

第三章作业 8.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H。执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容有何变化? PUSH 30H ;(SP)=61H, (61H)=24H PUSH 31H ;(SP)=62H, (62H)=10H POP DPL ;(DPL)=10H, (SP)=61H, POP DPH ;(DPH)=24H, (SP)=60H, MOV 30H, #00H ;(30H)=00H MOV 31H, #0FFH ;(31H)=FFH 执行后:(61H)=00H (62H)=00H (30H)=00H (31H)=FFH (DPTR)=2410H (SP)=60H 10.要完成以下的数据传送,应如何用MCS-51指令实现? (1)R1的内容传送到R0; MOV A, R1 MOV R0, A (3)片外RAM 20H单元的内容送片内RAM 20H单元; MOV R0, #20H MOVX A, @R0 MOV @R0, A / MOV 20H,A (4)片外RAM 1000H单元的内容送片内RAM20H单元; MOV P2,#10H MOV R0, #00H MOVX A, @R0 MOV 20H,A 或:MOV DPTR, #1000H MOVX A, @DPTR MOV 20H, A (6)ROM 2000H单元的内容送片内RAM20H单元; MOV A,#00H MOV DPTR, #2000H MOVC A, @A+DPTR MOV 20H, A (7)ROM 2000H单元的内容送片外RAM20H单元. MOV A,#00H MOV DPTR, #2000H MOVC A, @A+DPTR MOV R0,#20H MOVX @R0 ,A 11. 分析以下程序每一条指令执行的结果: MOV A, #25H ;(A)=25H MOV R1, #33H ;(R1)=33H MOV 40H, #1AH ;(40H)=1AH MOV R0, #40H ;(R0)=40H ADD A, R1 ;(A)=58H, (R1)=33H, (Cy)=0 ADDC A, @R0 ;(A)=72H, (R0)=40H, (40H)=1AH, (Cy)=0 ADDC A, 40H ;(A)=8CH, (40H)=1AH, (Cy)=0

单片机原理及应用及C51程序设计第三章习题答案

找到后第一时间上传,献给各位电子班的同学 习题三 1.在MCS-51单片机中,寻址方式有几种其中对片内RAM可以用哪几种寻址方式对片外RAM可以用哪几种寻址方式 答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。片外RAM寻址有:寄存器间接寻址方式。2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR间接寻址有什么区别 答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。 3.在位处理中,位地址的表示方式有哪几种 答:1.直接位地址(00H~0FFH)。例如:20H 2.字节地址带位号。例如:表示20H单元的3位。 3.特殊功能寄存器名带位号。例如:表示P0口的1位。 4.位符号地址。例如:TR0是定时/计数器T0的启动位。 4.写出完成下列操作的指令。 (1)R0的内容送到R1中。 MOV A,R0 MOV R1,A (2)片内RAM的20H单元内容送到片内RAM的40H单元中。 MOV 40H,20H (3)片内RAM的30H单元内容送到片外RAM的50H单元中。 MOV A,30H MOV R0,#50H MOVX @R0,A (4)片内RAM的50H单元内容送到片外RAM的3000H单元中。 MOV A,50H MOV DPTR,#3000H MOVX @DPTR,A (5)片外RAM的2000H单元内容送到片内RAM的20H单元中。 MOV DPTR,#2000H

单片机每章习题及答案

单片机每章习题及答案 第三节增选习题及解答 一、填空题 1.堆栈寄存器的符号是(),复位后它的内容为()。 2.累加器A的内容有偶数个1时,特殊功能寄存器()的()位内容为()。 3.内RAM的03H字节单元的地址符号另记为()。 4.堆栈操作遵循的原则是()。 5.8051单片机有4个I/O口,它们分别是(),复位后对应它们的寄存器的内容为()。 6.为了正确地读取8051的P1口引脚的状态值,应该先向它()。 7.8051的()引脚应该至少保持()个机器周期的()电平,才能使8051复位。 8.8051的封装形式为()。 9.利用8051组成的工作系统,程序放在内部ROM,它的引脚应该接()电平。EA 10.8051单片机的ALE引脚在CPU对外存非操作期间,它输出频率为晶体振荡器频率()的脉冲信号。 11.8051内部程序存储器的容量为()字节,8031的内部程序存储器的容量为()字节。 12.8031最大可以扩展()程序存储器,最大扩展的数据存储器的容量是()。

13.位寻址区在内RAM低128字节单元的()字节中,高128字节单元中有()个特殊功能寄存器的位可以进行位操作。14.当前工作寄存器的选择由特殊功能寄存器()的()位的内容决定。 15.用于位处理的布尔处理器是借用的特殊功能寄存器()的()位完成的。 16.一个机器周期包括()个振荡周期,具体分为()个状态周期。 17.按执行时间,8051的指令分为()周期、()周期和()周期指令共三种。 18.单片机由CPU、存储器和()三部分组成。 19.CPU由()和()两部分组成。 20.若不使用MCS-51片内程序存储器,引脚必须()。EA 21.当MCS-51引脚ALE信号有效时,表示从P0口稳定地送出了()地址。 22.当MCS-51的P0口作为输出端口时,每位能驱动()个TTL 负载。 23.MCS-51有()个并行I/O口,由于是准双向口,所以在输入时必须先()。 24.MCS-51中凡字节地址能被()整除的特殊功能寄存器均能位寻址。 25.MCS-51系统中,当信号有效时,表示CPU要从()读取信

单片机原理及应用第四版林立第三章习题答案

第三章选择题 (1)指令中包含“@Ri”或“@DPTR”形式操作数的寻址方式称为寄存器______。 A.变址寻址B.间接寻址C.直接寻址D.立即寻址 (2)能实现“先将操作数减1,若结果仍不为零则转移到目标地址”功能的汇编操作码是______。 A.DJNZ B.CJNE C.LJMP D.MOVX (3)已知P0 = #23H,执行下列第______项指令后可使其第3位置1。 A.ADD P0,#34H B.ANL P0,#3BH C.ORL P0,#3BH D.MOV P0,#34H (4)下列指令中,能访问外部数据存储器的正确指令为______。 A.MOV A,@DPTR B.MOVX A,Ri C.MOVC A,@A+DPTR D.MOVX A,@Ri (5)80C51汇编语言指令格式中,唯一不可缺少的部分是______。 A.标号 B.操作码 C.操作数 D.注释 (6)下列完成80C51片内RAM数据传送的指令是______。 A.MOVX A,@DPTR B.MOVC A,@A+PC C.MOV A,@Ri D.JMP @A+DPTR (7)80C51的立即寻址的指令中,立即数就是______。 A.放在寄存器R0中的内容 B.放在指令中的常数 C.放在A中的内容 D.放在B中的内容 (8)指令JB 0E0H,LP 中的0E0H是指______。 A.累加器A B.累加器A的最高位 C.累加器A的最低位 D.一个字节地址 (9)下列指令中条件转移指令是指______。 A.AJMP addr11 B.SJMP rel C.JNZ rel D.LJMP addr16 (10)80C51指令MOV R0,20H中的20H是指______。 A.立即数 B.内部RAM中的字节地址 C.内部RAM中的位地址 D.内部ROM中的字节地址 (11)在80C51指令中,下列指令______是无条件转移指令。 A.LCALL addr16 B.DJNZ direct,rel C.SJMP rel D.ACALL addr11 (12)设A=0AFH,(20H)=81H,指令ADDC A,20H执行后的结果是______。 A.A=81H B.A=30H C.A=0AFH D.A=20H (13)已知A=0DBH,R4=73H,CY=1,指令SUBB A,R4执行后的结果是______。 A.A=73H B.A=0DBH C.A=67H D.A=68H (14)下列指令判断若累加器A的内容不为0就转LP的是______。 A.JB A,LP B.JNZ A,LP C.JZ LP D.DJNZ A,#0,LP (15)设累加器A中为无符号数,B中数为2,下列指令中______的作用与其他几条不同。 A.ADD A,0E0H B.MUL AB C.RL A D.RLC A (16)能将A的内容向左循环一位,第7位进第0位的指令是______。 A.RLC A B.RRC A C.RL A D.RR A (17)将内部数据存储器53H单元的内容传送到累加器A,其指令是______。 A.MOV A,53H B.MOV A,#53H C.MOVC A,53H D.MOVX A,#53H (18)LJMP跳转空间最大可达______。 A.2KB B.256B C.128B D.64KB (19)在编程中适当采用伪指令的目的是指示和引导______。 A.如何进行手工汇编 B.编译程序如何汇编 C.源程序如何进行编辑

单片机原理及应用教程第3版习题课后答案

《单片机原理及应用程序》(第三版)习题参考答案 第一章 1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么? 在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机内部一切信息存储、处理和传送均采用二进制数的形式。可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。十六进制数可以简化表示二进制数。 2. (1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH (4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H 3. (1) 0B3H (2)80H (3) 17.AH (4) 0C.CH 4. (1)01000001B 65 (2) 110101111B 431 5. (1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100 (5) 10000001 11111110 11111111 6. 00100101B 00110111BCD 25H 7. 137 119 89 8.什么是总线?总线主要有哪几部分组成?各部分的作用是什么? 总线是连接计算机各部件之间的一组公共的信号线。一般情况下,可分为系统总线和外总线。 系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB) 地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址

信息由地址总线输出,然后经地址译码单元处理。地址总线为16位时,可寻址范围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的范围。在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。 控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。 数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设9.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线? CPU通过接口电路与外部输入、输出设备交换信息, 一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。 10. 存储器的作用是什么?只读存储器和随机存储器有什么不同? 存储器具有记忆功能,用来存放数据和程序。计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。只读存储器一般用来存放程序,计算机掉电时信息不会丢失。 11.某存储器的存储容量为64KB,它表示多少个存储单元?64×1024 12. 简述微型计算机硬件系统组成。

单片机,第三章答案

【3-1】汇编语言与C语言哪种语言的可读性和可移植性强?在对速度和时序敏感的场合应该使用什么语言?对于复杂的单片机系统一般采用C与汇编混合编程的形式这句话对吗? 【3-2】二进制机器语言与C和汇编语言两者之间是什么关系?用C或汇编编制的程序在ROM中是以编译后的二进制代码的形式存放这句话对吗? 【3-3】80C51系列单片机指令的格式包含哪几个部分?各部分之间的间隔符是什么?四个部分中哪个部分是必须存在的,哪几个部分是可有可无的?标号的格式和代表的意义是? 【3-4】80C51系列单片机有哪几种寻址方式? 【3-5】80C51单片机中立即数是存放在ROM中还是RAM中? 【3-6】判断下列说法是否正确。 (1)立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。()(2)指令周期是执行一条指令的时间。() (3)指令中直接给出的操作数称为直接寻址。() (4)内部寄存器Rn(n=0~7)可作为间接寻址寄存器。() 【3-7】80C51单片机可以进行直接寻址的区域是? 【3-8】80C51单片机可以进行寄存器寻址的范围是? 【3-9】80C51单片机可以进行寄存器间接寻址的寄存器是?寻址的范围是? 【3-10】在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的()。 【3-11】80C51单片机变址寻址方式中可以作基址的寄存器是?可以作变址的寄存器是?@A+PC,@A+DPTR所找到的操作数是在ROM中对吗? 【3-12】80C51单片机相对寻址改变的是PC的当前值,即改变的CPU执行指令的顺序这句话对否?【3-13】若访问特殊功能寄存器,只可以采用那种寻址方式? 【3-14】若访问外部RAM单元,只可以使用哪种寻址方式? 【3-15】若访问内部RAM单元,可使用哪些寻址方式? 【3-16】若访问内外程序存储器,可使用哪些寻址方式? 【3-17】80C51单片机可以进行位寻址的字节单元范围除11个可位寻址的特殊功能寄存器外还包括哪个区域?分别找出位地址是00H、08H、22H、7FH、D0H、E0H对应的字节地址?

单片机原理与运用 第三章答案

第三章 单片机的汇编语言与程序设计习题 1.设内部RAM 中59H 单元的内容为50H ,写出当执行下列程序段后寄存器 A , R0和 内部RAM 中50H ,51H 单元的内容为何值? 2.请选用合适的指令对P0 口内容做修改(例如使P0.0~P0.3不变,P0.4~P0.7为 0)。 试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。 MOV A , 59H MOV R0, A MOV A , #00H MOV @R0, A MOV A , #25H MOV 51H , A MOV 52H , #70H MOV A , 59H ; A=50H MOV R0, A ; RO=50H MOV A , #00H ; A=00H MOV @R0, A ; 50H=00H MOV A , #25H ; A=25H MOV 51H , A ; 51H=25H MOV 52H , #70H ; 52H=70H 解: 所 以: A=25H R0=50H MOV A , P0 ANL A , 0fh Mov P0, A 解: 50H=00H 51H=25H 3.

MOVX A , @A+PC MOVX A , @A+DPTR 4.设堆栈指针SP 中的内容为60H ,内部RAM 中30H 和31H 单元的内容分别为 24H 和10H ,执行下列程序段后,61H , 62H , 30H ,31H ,DPTR 及SP 中的内容 将有 何变化? (R1)=23H (40H)=05H 执行下列两条指令后,累加器 A 和R1以 @DPTR , A MOVX DPTR , #0100H MOV @DPTR , A A , @DPTR MOVX DPTR , #0200H MOV A , @DPTR A , @Ri MOVX A , @R0 @Ri , A MOVX @RI , A 解:访问外部数据存储器指令有: MOVX MOVX MOVX MOVX 访问程序存储器指令有: PUSH 30H PUSH 31H POP DPL POP DPH MOV 30H , #00H MOV 31H , #0FFH 解:P USH 30H ;61H=24H PUSH 31H ;62=10H POP DPL ;DPL=10H POP DPH ;DPH=24H MOV 30H , #00H ;30H=00H MOV 31H , #0FFH ;31H=0FFH SP=62H SP=60H 5.设(A)=40H,

单片机第三章作业

中级会员 关闭 个人中心可以申请新版勋章哦 立即申请知道了 加关注 发消息 只看楼主 倒序阅读 使用道具 0 发表于: 11小时前 1.单片机的指令有几种表示方法?单片机能直接执行的是什么指令格式? 答:单片机的指令有两种表示方法,一种是用汇编语言的助记符表示,另一种是用机器语言表示; 单片机能够直接执行的是机器语言指令形式的机器码。 2.什么叫寻址方式?MCS-51单片机有几种寻址方式?各自有什么特点?各涉及到哪些存储器空间? (1)指令寻找操作数地址的方式称为寻址方式。 (2)MCS-51指令系统共有7种寻址方式。 ①立即数寻址:操作数直接写在指令中,不需要从其它的存储空间中寻找和获取。 ②直接寻址:把存放操作数的内存单元的地址直接写在指令中。涉及的存储空间有内部RAM 区,特殊功能寄存器AFR 区。 ③寄存器寻址:操作数存放于寄存器中。涉及的存储空间有工作寄存器R0~R7,累加器A ,通用寄存器B ,地址寄存器DPTR 和C 。 ④寄存器间接寻址:将存放操作数的内部RAM 地址放在特定的寄存器中,指令中只给出寄存器。涉及的存储空间有R0,R1,DPTR 。 ⑤变址寻址:将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。涉及的存储空间有基址寄存器DPTR 和PC ,变址寄存器A 和程序存储器。 ⑥相对寻址:指程序寄存器PC 以当前值为基准,与指令的相对偏移量rel 相加,形成新的转移地址(下一个取指令的地址),该类寻址方式主要用于跳转指令。涉及的存储空间有程序计数器PC 。

⑦位寻址:指令中直接给出位地址,可以对有位地址的单元进行操作。涉及的存储空间有内部RAM的位寻址区,字节地址范围是20H~2FH,共16个RAM单元,对应的位地址为00H~7FH共128位,还有特殊寄存器SFR中有11个寄存器可以位寻址。 6.试编制程序段,实现把外部RAM 2000H单元的内容传到内部RAM20H中的操作。 答: MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A 8.给出三种交换内部RAM20H单元和30H单元的内容的操作方法。 答(1) MOV A,20H XCH A,30H MOV 20H,A (2) MOV A,20H MOV R1,30H XCH A,R1 MOV 20H,A MOV 30H,R1 ( 3)MOV A,20H MOV R1,30H MOV 30H,A MOV 20H,R1 16.若内部RAM(20H)=5EH,指出下列指令的运行结果。 (1)MOV A,20H; 答:将内部RAM20H单元中的内容5EH传给A.

相关主题
文本预览
相关文档 最新文档