单片机复习题带答案版

AD30: ADD A,#30H

8、 编写程序,统计自P1口输入的数字串中的正数、负数及零的个数,统计的个数分别

存放在R0、R1、R2三个工作寄存器中。 START: CLR A MOV R0,A MOV R1,A MOV R2,A ENTER: MOV A,P1 JZ ZERO JB P1.7,NEG INC R0 SJMP ENTER

ZERO: INC R2 SJMP ENTER NEG: INC R1 SJMP ENTER

9、 编写程序,将外部数据存储器中的5000H—50FFH单元全部清零

MOV DPTR #5000H

MOV R0,#00H CLR A

LOOP: MOVX @DPTR,A INC DPTR DJNZ R0,LOOP

HERE:: SJMP HERE (RET ,SJMP $ 等) 10、分析下列程序的功能 PUSH ACC PUSH B POP ACC POP B

是通过累加器ACC与寄存器B数据交换

11、如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:

POP DPH; POP DPL; POP SP;

则:(DPH)= ___3CH___;(DPL)=_____5FH_____;(SP)=_____50H_____;

12、如果(DPTR)=5678H,(SP)=42H,(3FH)=12H ,(40H)=34H,(41H)=50H,(42H)=80H,则执行下列指令后:

POP DPH POP DPL RET

则:(PCH) =__34H__;(PCL)=___12H____ ;(DPH)=__80H__;(DPL)=___50H__;

13、分析以下程序的功能。程序执行后片内RAM42H、43H单元和进位标志位C 中内容为多少? MOV R0,#40H

片内 MOV A,@R0

RAM INC R0 ADD A,@R0 INC R0

40H 98H MOV @R0,A

CLR A 41H AFH ADDC A,#0 INC R0 MOV @R0,A

14、阅读并分析以下程序片段的功能。

START: MOV R0,#40H

MOV R1,#10H

LOOP: CLR C MOV A,@R0 INC R0 SUBB A,@R0 JNC NEXT MOV A,@R0 DEC R0 XCH A,@R0 INC R0 MOV @R0,A NEXT: DJNZ R1,LOOP

15、试编写程序段,将片内RAM的20H-2FH共16个连续单元清零。 16、分析下列程序段的功能。 MOV 30H,#0 MOV 31H,#0 MOV 32H,#0

MOV DPTR,2000H MOV R1,#100

L4:MOVX A,@DPTR

INC DPTR CJNE A,#0,L1 INC 32H SJMP L2 L1: JC L3 INC 30H SJMP L2

… … L3: INC 31H

L2: DJNZ R1,L4 SJMP $

17、读程序:

已知:在8051单片机的片内RAM中,(30H)=25H,(31H)=1DH

MOV R0,#30H MOV A,@R0 SWAP A INC R0

XCHD A,@R0 ;交换低半字节 MOV 30H,A

执行该程序后,片内RAM30H单元内的数据是___,31H单元内的数据是___。

(30H)=5DH,(31H)=12H

18、已知:片内RAM(30H)=98H,(31H)=AFH MOV R0,#31H MOV A,@R0 DEC R0 CLR C SUBB A,@R0 MOV B,#10 DIV AB MOV @R0,A INC R0 MOV @R0,B

执行该程序后,片内RAM30H内的数据是( ),31H内的数据是( )

01H 07H

19、已知:片内RAM(30H)=12H(31H)=34H,片外RAM(30H)=56H,(31H)=78H MOV R1,#30H MOVX,A,@R1 MOV @R1,A INC R1 MOVX A,@R1 MOV @R1,A 执行该程序后,片内RAM30H内的数据是( ),31H内的数据是( ) 56H 78H

20、设MCS-51晶振为12Mz,设计一个软件延时程序,延时时间为10ms。 21、已知:片内RAM(30H)=12H(31H)=34H,片外RAM(30H)=56H,(31H)=78H MOV R1,#30H MOVX,A,@R1 MOV @R1,A INC R1

MOV A,@R1 MOVX @R1,A 执行该程序后,片内RAM30H内的数据是( ),片外31H内的数据是( ) 56H 34H

22、编写程序将片外数据存储器地址为1000H~102FH的数据块,全部搬迁到片内RAM30H~5FH中,并将原数据块区域全部清零。 START: MOV DPTR,#1000H MOV R0,#30H MOV R1,#30H LOOP: MOVX A,@DPTR MOV @R1,A CLR A

MOVX @DPTR,A INC DPTR INC R1

DJNZ R0,LOOP

23、设ROM、片内RAM、片外RAM各有关单元的内容示如下图,问复位执行下列程序段后(A)=?

0000 AJMP 030H

ORG 0030H

0030 MOV R0,#32H

MOV A,@R0 MOV R1,A MOVX A,@R1

MOVC A,@A+ DPTR

24、在外部ROM/EPROM中,从2000H单元开始依次存放0~5的平方值:0、1、4、9、…25,要求依据累加器中的值(0~5)来查找所对应的平方值,分析下述程序的结果

MOV DPTR,#2000H

MOV A,#05H MOVC A,@A+DPTR 执行结果:(DPTR)=2000H,(A)=25

联系客服:779662525#qq.com(#替换为@)