单片机习题参考答案Word文档下载推荐.docx

上传人:b****5 文档编号:16708520 上传时间:2022-11-25 格式:DOCX 页数:30 大小:192.16KB
下载 相关 举报
单片机习题参考答案Word文档下载推荐.docx_第1页
第1页 / 共30页
单片机习题参考答案Word文档下载推荐.docx_第2页
第2页 / 共30页
单片机习题参考答案Word文档下载推荐.docx_第3页
第3页 / 共30页
单片机习题参考答案Word文档下载推荐.docx_第4页
第4页 / 共30页
单片机习题参考答案Word文档下载推荐.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

单片机习题参考答案Word文档下载推荐.docx

《单片机习题参考答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机习题参考答案Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。

单片机习题参考答案Word文档下载推荐.docx

A=30H,CY=0,OV=0,AC=0,P=0

84DIVAB;

A=01H,B=10H,CY=0,OV=0,AC=0,P=1

9.试编程将片外数据存储器60H中的内容传送到片内RAM54H单元中。

MOVDPTR,#0060H

MOVXA,@DPTR

MOV54H,A

(MOVP2,#0

MOVR0,#60H

MOVXA,@R0

MOV54H,A)

10.试编程将寄存器R7内容传送到R1中去。

MOVA,R7

MOVR1,A

12.试说明下段程序中每条指令的作用,并分析当执行完指令后,R0中的内容是什么?

MOVR0,#0A7H;

R0=A7H

XCHA,R0;

A=A7H,A的内容暂存R0

SWAPA;

A=7AH

R0=7AH,A的内容恢复

16.试编程将片外RAM中30H和31H单元的内容相乘,结果存放在32H和33H单元中,高位存放在33H单元中。

MOVP2,#0

MOVR0,#30H

MOVB,A

INCR0

MULAB

MOVX@R0,A

MOVA,B

MOVDPTR,#30H

MOVXA,@DPTR

INCDPTR

MOVX@DPTR,A

17.试用三种方法将累加器A中无符号数乘2。

(1)CLRC

RLCA

(2)MOVR0,A

ADDA,R0

或ADDA,ACC

(3)MOVB,#2

MULAB

18.请分析依次执行下面指令的结果:

MOV30H,#0A4H;

(30H)=A4H

MOVA,#0D6H;

A=D6H,P=1

MOVR0,#30H;

R0=30H

MOVR2,#47H;

R2=47H

ANLA,R2;

A=46H,P=1

ORLA,@R0;

A=E6H,P=1

SWAPA;

A=6EH,P=1

CPLA;

A=91H,P=1

XRLA,#0FFH;

ORL30H,A;

(30H)=EEH

19.求执行下列指令后,累加器A及PSW中进位位CY、奇偶位P和溢出位OV的值。

(1)当A=5BH时;

ADDA,#8CH

01011011

+)10001100

11100111

结果:

A=E7H,CY=0,OV=0,P=0,AC=1

(2)当A=5BH时;

ANLA,#7AH

∧)01111010

01011010

结果:

A=5AH,P=0

(3)当A=5BH时;

XRLA,#7FH

⊕)01111111

00100100

A=24H,P=0

(4)当A=5BH,CY=1时;

SUBBA,#0E8H

01011011或将减法转换成补码加法01011011

11101000-E8H的补码00011000

-)1-1的补码+)11111111

01110010101110010

A=72H,CY=1,OV=0,P=0,AC=0

23.执行下述程序后,SP=?

A=?

B=?

解释每一条指令的作用,并将其翻译成机器码。

地址(H)机器码(H)ORG200H

0200758140MOVSP,#40H;

SP=40H

02037430MOVA,#30H;

A=30H

0205120250LCALL250H;

调用250H开始的子程序SP=42H,

(42H)=02H,(41H)=08H

02082410ADDA,#10H;

此句没有执行

020AF5F0MOVB,A;

B=30H

020C80FEL1:

SJMPL1;

ORG0250H

025090020AMOVDPTR,#20AH;

DPTR=020AH

0253C082PUSHDPL;

DPL进栈,SP=43H,(43H)=0AH

0255C083PUSHDPH;

DPH进栈,SP=44H,(44H)=02H

025722RET;

返回,此处是利用RET将栈顶内容弹出

PC=020AH,SP=42H

44H

02H

43H

0AH

栈区42H

41H

08H

40H

执行程序后,SP=42H,A=30H,B=30H

27.试编一程序将外部数据存储器2100H单元中的高4位置“1”,其余位清”0”。

MOVDPTR,#2100H

MOVXA,@DPTR

ANLA,#0F0HMOVA,#0F0H

ORLA,#0F0H

28.试编程将内部数据存储器40H单元的第0位和第7位置”1”,其余位变反。

MOVA,40H

CPLA

SETBACC.0(或ORLA,#81H)

SETBACC.7

MOV40H,A

29.请用位操作指令,求下面逻辑方程:

MOVC,P2.1

ORLC,B.0

ANLC,ACC.0

ORLC,/P3.2

MOVP1.7,C

MOVC,P1.3

ANLC,ACC.2

ORLC,B.5

ANLC,/P1.1

MOVPSW.5,C

MOVC,B.4

ANLC,/P1.5

ORLC,/ACC.7

ANLC,P1.0

MOVP2.3,C

第五章P1121,3,6,7,11,20

1.编程将片内40H~60H单元中内容送到以3000H为首的片外RAM存储区中

方法1:

MOVR0,#40H

MOVDPTR,#3000H

MOVR2,#21H

LOOP:

MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTR

DJNZR2,LOOP

方法2:

MOVR0,#40H

MOVDPTR,#3000H

MOVR2,#0

INCR2

CJNER2,#21H,LOOP

方法3:

CJNER0,#61H,LOOP

补充:

编程将ROM中3000H~3020H单元的内容送片内RAM40H~60H单元中去。

MOVDPTR,#3000H

MOVR2,#21H

CLRA

MOVCA,@A+DPTR

MOV@R0,A

INCR0

INCDPTR

DJNZR2,LOOP

3.编程计算片内RAM区50H~57H8个单元中数的算术平均值,结果存放在5AH中。

解:

ORG2000H

MOVR0,#50H

CLRA

MOVR2,A

ADDA,@R0

JNCDOWN

INCR2

DOWN:

INCR0

CJNER0,#58H,LOOP

MOVR7,#3

SHIFT:

XCHA,R2

CLRC

RRCA

XCHA,R2

DJNZR7,SHIFT

MOV5AH,A

6.设有100个有符号数,连续存放在以2000H为首地址的片外RAM存储区中,试编程统计其中正数、负数、零的个数。

CLRA

MOVR5,A;

存零的个数

MOVR6,A;

存负数的个数

MOVR7,A;

存正数的个数

MOVR2,#100

MOVDPTR,#2000H

MOVXA,@DPTR

JNZNZERO

INCR5

SJMPDOWN

NZERO:

JNBACC.7,PLUS

INCR6

PLUS:

INCR7

INCDPTR

DJNZR2,LOOP

MOVR5,A;

MOVR6,A;

MOVR7,A;

MOVR2,#100

MOVDPTR,#2000H

MOVXA,@DPTR

INCDPTR

CJNEA,#0,NZERO

INCR5

SJMPDOWN

JCNEGATIVE

INCR7

NEGATIVE:

INCR6

7.请将片外数据存储器地址为1000H~1030H的数据块,全部搬迁到片内RAM30H~60H中,并将原数据块区域全部清“0”。

ORG1000H

MOVDPTR,#1000H

MOVR0,#30H

MOVR2,#31H

MOVX@DPTR,A

8.试编写一子程序,使间址寄存器R1所指向的2个片外RAM连续单元中的高4位二进制数合并为1个字节装入累加器A中。

已知R0指向低地址,并要求该单元高4位放在A的高4位中。

XX:

MOVXA,@R1

ANLA,#0F0H

MOVB,A

INCR1

MOVXA,@R1

SWAPA

ORLA,B

RET

10.试编一查表程序,从首地址为1000H、长度为100的数据块中找出ASCII码A,将其地址送到10A0H和10A1H单元中。

MOVDPTR,#1000H

MOVR7,#100

LOOP:

MOVXA,@DPTR

CJNEA,#’A’,NXET

MOVA,DPL

MOVB,DPH

MOVDPTR,#10A0H

MOVX@DPTR,A

MOVA,B

SJMP$

NEXT:

DJNZR7,LOOP

11.设在200H~204H单元中存放有5个压缩BCD码,编程将它们转换成ASCII码,存放到以205H单元为首地址的存储区中。

MOVP2,#02H

MOVR0,#00H

MOVR1,#05H

MOVR2,#05

MOVXA,@R0

ANLA,#0FH

ORLA,#30H

MOVX@R1,A

MOVXA,@R0

MOVR2,#02H

MOVR3,#00H

MOVR4,#05H

MOVR7,#05

MOVDPH,R2

MOVDPL,R3

MOVB,A

MOVR3,DPL

MOVDPL,R4

MOVA,B

MOVR4,DPL

DJNZR7,LOOP

13.试编程实现下列逻辑表达式的功能。

设P1.7~P1.0为8个变量的输入端,而其中P1.7又作为变量输出端。

X0BITP1.0

X1BITP1.1

X2BITP1.2

X3BITP1.3

X4BITP1.4

X5BITP1.5

X6BITP1.6

X7BITP1.7

MOVC,X0

ANLC,X1

ANLC,/X2

ORLC,/X3

ORLC,X4

ANLC,X5

ANLC,X6

ORLC,/X7

MOVP1.7,C

ONEBIT20H;

存第一项逻辑值

TWOBIT21H;

存第二项逻辑值

X0BITP1.0

MOVC,X0

CPLC

MOVONE,C

MOVC,X2

ANLC,X3

ANLC,X4

MOVTWO,C

MOVC,X5

ANLC,X7

ORLC,TWO

ORLC,ONE

20.根据图5.6的线路设计灯亮移位程序,要求8只发光二极管每次亮一个,点亮时间为40ms。

顺次一个一个地循环右移点亮,循环不止。

已知时钟频率为24MHz。

MOVA,#01H

MOVP1,A

LCALLD40MS

RRA

SJMPLOOP

D40MS:

MOVR2,#160

EXTERNAL:

MOVR3,#250

INTERNAL:

DJNZR3,INTERNAL

DJNZR2,EXTERNAL

RET

第六章P1555,6,8

5.已知80C51单片机系统时钟频率为24MHz,请利用定时器T0和P1.2输出矩形脉冲其波形如下:

选择T0工作于方式2(8位重置初值)定时50μs

fosc=24MHz

(28-X)×

0.5μS=50μsX=156=9CH

MOVTMOD,#02H

MOVTH0,#9CH

MOVTL0,#9CH

CLRP1.2;

P1.2=0

SETBTR0

HIGH:

SETBP1.2;

P1.2=1,输出50μs高电平

HIGH1:

JBCTF0,LOW;

50μs到清TF0,转输出低电平

AJMPHIGH1;

50μs未到,转HIGH1等待

LOW:

MOVR7,#7;

350μs=7×

50μs

P1.2=0输出350μs低电平

LOW1:

JBCTF0,LOW2;

50μs到清TF0,转LOW2

AJMPLOW1

LOW2:

DJNZR7,LOW1;

7次未到,转LOW1

AJMPHIGH;

7次到,转HIGH,输出50μs高电平

MOVTMOD,#02H;

设置T0为方式2定时

MOVTH0,#9CH;

赋初值

CLRP1.2

SETBTR0;

启动T0工作

L1:

MOVR7,#8

DEL:

JBCTF0,REP;

AJMPDEL

REP:

CLRP1.2;

DJNZR7,DEL

AJMPL1

选择T0工作于方式1定时50μs

(216-X)×

0.5μS=50μsX=65436=FF9CH

选择T0工作于方式1定时350μs

0.5μS=350μsX=64836=FD44H

START:

MOVTMOD,#01H;

设置T0为方式1定时

LP0:

MOVTH0,#0FFH;

赋初值定时50μs

SETBP1.2

LP1:

JBCTF0,LP2;

SJMPLP1

LP2:

CLRP1.2

MOVTH0,#0FDH;

赋初值定时350μs

MOVTL0,#44H

LP3:

JBCTF0,LP4;

P1.2=1,输出350μs低电平

SJMPLP3

LP4:

SJMPLP0

6.在80C51单片机中,已知时钟频率为12MHz,请编程使P1.0和P1.1分别输出周期为2ms和500μs的方波。

选择T0工作于方式1定时250μs

fosc=12MHz

1μS=250μsX=65286=FF06H

MOVTMOD,#01H

MOVTH0,#0FFH

MOVTL0,#06H

SETBTR0

MOVR7,#4;

1ms=4×

250μs

D250:

JBCTF0,D2;

250μs到清TF0,转移

AJMPD250;

250μs未到,等待

D2:

CPLP1.1

MOVTH0,#0FFH;

重装初值

DJNZR7,D250;

4次未到,转D500

CPLP1.0

AJMPDEL;

4次到,转DEL

选择T0工作于方式2定时250μs

1μS=250μsX=6

MOVTMOD,#02H

MOVTH0,#06H

4次未到,转D250

选择T0工作于方式2定时250μs,中断

T1工作于方式1定时1ms,中断

1μS=1000μsX=64536=FC18H

ORG0000H

LJMPMAIN

ORG000BH

LJMPT00

ORG001BH

LJMPT11

MAIN:

MOVTMOD,#12H

MOVTH1,#0FCH

MOVTL1,#18H

MOVIE,#8AH

SETBTR1

T00:

RETI

T11:

MOVTH1,#0FCH

方法4:

选择T0工作于方式3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1