第三章 MCS51指令系统习题答案.docx

上传人:b****7 文档编号:25362928 上传时间:2023-06-07 格式:DOCX 页数:18 大小:53.84KB
下载 相关 举报
第三章 MCS51指令系统习题答案.docx_第1页
第1页 / 共18页
第三章 MCS51指令系统习题答案.docx_第2页
第2页 / 共18页
第三章 MCS51指令系统习题答案.docx_第3页
第3页 / 共18页
第三章 MCS51指令系统习题答案.docx_第4页
第4页 / 共18页
第三章 MCS51指令系统习题答案.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

第三章 MCS51指令系统习题答案.docx

《第三章 MCS51指令系统习题答案.docx》由会员分享,可在线阅读,更多相关《第三章 MCS51指令系统习题答案.docx(18页珍藏版)》请在冰豆网上搜索。

第三章 MCS51指令系统习题答案.docx

第三章MCS51指令系统习题答案

第三章MCS-51指令系统

5题分析下面程序段的执行功能。

CLRA

R2

MOVR2,A

R0

R1

MOVR7,#4

LOOP:

CLRC

0000

MOVA,R0

RLCA

MOVR0,A

MOVA,R1

RLCA

MOVR1,A

MOVA,R2

RLCA

MOVR2,A

DJNZR7,LOOP

SJMP$

答:

将R2:

R1:

R0所表示的24位二进制数左移4位。

(相当×16)

6题设系统晶振为12MHZ,阅读下列程序,分析其功能。

START:

SETBP1.0

NEXT:

MOV30H,#10

LOOP2:

MOV31H,#0FAH

LOOP1:

NOP

NOP

DJNZ31H,LOOP1

DJNZ30H,LOOP2

CPLP1.0

AJMPNEXT

SJMP$

答:

((2+1+1)*250+2+2)*10+2=10.042(ms)在P1.0引脚上输出周期为20ms

的方波。

7题阅读下列程序,分析其功能。

MOVR7,#10

MOVA,#30H

MOVDPTR,#2000H

LOOP:

MOVX@DPTR,A

INCA

INCDPL

DJNZR7,LOOP

SJMP$

答:

在外部数据存储器中的以下地址内存放数据:

(2000H)=30H

(2001H)=31H

(2002H)=32H

┇┇

(2009H)=39H

8题简述下列程序段完成的功能,程序完成后SP指针应指向哪里?

MOVSP,#2FH

MOVDPTR,#2000H

MOVR7,#50H

NEXT:

MOVXA,@DPTR

PUSHA

INCDPL

DJNZR7,NEXT

SJMP$

答:

以内部存储器地址30H作为栈底,从30H开始一直到7FH依次存放外部数据存储器中2000H一直到204FH地址中的数据。

7FH作为栈顶。

程序完成后SP=7FH。

9题分析下列程序段执行结果,程序执行完后,SP指向哪里?

MOVSP,#3FH

MOVR0,#40H

MOVR7,#10H

NEXT:

POPA

MOV@R0,A

DECR0

DJNZR7,NEXT

SJMP$

答:

将栈中3FH,3EH一直到30H地址中的内容依次放入40H,3FH,…,31H单元中。

执行完后SP=2FH。

10题分析下列程序段执行结果。

XCHA,30H

MOVB,A

ANLA,#0FH

MOV33H,A

MOVA,B

SWAPA

ANLA,#15

MOV34H,A

SJMP$

答:

将30H单元中的数的高四位放入34H中,低四位放入33H中。

14题阅读

(1)

(2)(3)程序段,分析其功能。

运算结果存在哪里?

(1)MOVA,R2

ADDA,R0

MOV30H,A

MOVA,R3

ADDCA,R1

MOV31H,A

MOVA,#0

ADDCA,#0

MOV32H,A

SJMP$

(2)CLRC

MOVA,R4

SUBBA,R2

MOVR0,A

MOVA,R5

SUBBA,R3

MOVR1,A

(3)MOVA,R1

MOVB,R0

MULAB

MOV30H,A

MOV31H,B

MOVA,R2

MOVB,R0

MULAB

ADDA,31H

MOV31H,A

MOVA,B

ADDCA,#0

MOV32H,A

SJMP$

答:

(1)将R3:

R2和R1:

R0中的两个16位数相加,结果存放在32H:

31H:

30H中。

(2)用R5:

R4中的16位数减去R3:

R2中16位数,结果存放在R1:

R0中。

(3)R2:

R1中的16位数乘以R0中的数,结果存放在32H:

31H:

30H中。

 

23题有四个变量U、V、W、X分别从P1.0~P1.3输入,阅读如下程序,写出逻辑表达式并画出逻辑电路图。

请使用ORG、END、BIT等伪指令重新编写该程序段。

MOVP1,#0FH

MOVC,P1.0

ANLC,P1.1

CPLC

MOVACC.0,C

MOVC,P1.2

ORLC,/P1.3

ORLC,ACC.0

MOVF,C

SJMP$

答:

电路图如下:

 

逻辑表达式:

重新整理编写程序如下:

ORG0000H

UBITP1.0

VBITP1.1

WBITP1.2

XBITP1.3

MOVC,U

ANLC,V

CPLC

MOVACC.0,C

MOVC,W

ORLC,/X

ORLC,ACC.0

MOVF,C

SJMP$

END

 

24题用布尔指令,求解逻辑方程。

(1)PSW.5=P1.3∧ACC.2∨B.5∧P1.1

(2)PSW.5=P1.5∧B.4∨ACC.7∧P1.0

答:

(1)MOVC,P1.3

ANLC,ACC.2

MOVACC.0,C

MOVC,B.5

ANLC,P1.1

ORLC,ACC.0

MOVPSW.5,C

(2)MOVC,P1.5

ANLC,B.4

MOVACC.0,C

MOVC,ACC.7

ANLC,P1.0

ORLC,ACC.0

CPLC

MOVPSW.5,C

第四章汇编语言程序设计

1题若晶振为12MHz,试编制延时2ms和1s子程序。

答:

延时2ms:

DELY:

MOVR7,#10

DLY0:

MOVR6,#98

NOP

DLY1:

DJNZR6,DLY1

DJNZR7,DLY0

RET

延时1s:

DELY:

MOVR0,#50

LP11:

MOVR1,#100

LP22:

MOVR2,#100

LP33:

DJNZR2,LP33

DJNZR1,LP22

DJNZR0,LP11

RET

4题试求20H和21H单元中16位带符号二进制补码数的绝对值,并送回20H和21H单元,高位在先,低位在后。

答:

方法一:

先判断符号位,若为0则不作任何处理(因为正数的补码数与原数相同,而0的补码数就是0)。

若符号位为1,则用0减去该数即可。

编程如下:

ORG0000H

MOVA,20H

JNBACC.7,DONE

CLRC

CLRA

SUBBA,21H

MOV21H,A

CLRA

SUBBA,20H

MOV20H,A

DONE:

SJMP$

END

方法二:

可用变反加“1”来完成。

ORG0000H

MOVA,20H

JNBACC.7,DONE

CPLA

MOV20H,A

MOVA,21H

CPLA

MOV21H,A

CLRC

MOVA,21H

ADDA,#1

MOV21H,A

MOVA,20H

ADDCA,#0

MOV20H,A

DONE:

SJMP$

END

5题试求内部RAM30~37H单元8个无符号数的算术平均值,结果存入38H单元。

答:

方法一:

相加后和放在R3:

38H中,然后将结果整体右移3位,得数放在38H单元中。

ORG0000H

START:

MOVR7,#07H

MOVR3,#00H

MOVA,30H

MOVR0,#31H

LOOP:

ADDA,@R0

JNCNEXT

INCR3

NEXT:

INCR0

DJNZR7,LOOP

MOV38H,A

MOVR7,#3

LOOP1:

CLRC

MOVA,R3

RRCA

MOVR3,A

MOVA,38H

RRCA

MOV38H,A

DJNZR7,LOOP1

SJMP$

END

方法二:

相加后和放在R3:

38H中,然后将R3中的数乘以25,将38H中的数除以23,然后将两个结果相加,放入38H单元中。

ORG0000H

START:

MOVR7,#07H

MOVR3,#00H

MOVA,30H

MOVR0,#31H

LOOP:

ADDA,@R0

JNCNEXT

INCR3

NEXT:

INCR0

DJNZR7,LOOP

MOV38H,A

PR:

MOVA,R3

MOVB,#32

MULAB

MOVR3,A

MOVA,38H

MOVB,#8

DIVAB

ADDA,R3

MOV38H,A

6题试编一数据块搬迁程序。

将外部RAM2000H~204FH单元中的数,移入内部RAM30H~7FH单元中。

编程如下:

ORG0000H

MOVR0,#50H

MOVR1,#30H

MOVDPTR,#2000H

LP1:

MOVXA,@DPTR

MOV@R1,A

INCR1

INCDPTR

DJNZR0,LP1

END

第五章MCS-51定时/计数器、串行口及中断系统

31题阅读T0、T1初始化程序,回答右边几个问题(设主频为6MHZ)

MOVA,#11H

MOVTMOD,A

MOVTH0,#9EH

MOVTL0,#58H

MOVTH1,#0F0H

MOVTL1,#60H

CLRPT0

SETBPT1

SETBET0

SETBET1

SETBEA

*MOVA,#50H

*MOVTCON,A

┇┇

 

1T0,T1各用何种方式工作?

几位计数器?

2T0,T1各自定时时间或计数次数是多少?

3T0,T1的中断优先级?

4T0,T1的中断矢量地址?

最后两条带*号的指令功能是什么?

µ

答:

①T0、T1都以方式1工作,16位计数器。

②T0的定时时间=2*(M-定时初值)=2*[65536-(9E58)16]=2*[65536-40536]

=50000(微秒)=0.05秒

T1的定时时间=2*(M-定时初值)=2*[65536-(F060)16]=2*[65536-61536]

=8000(微秒)=0.008秒

③T0设为低优先级,T1设为高优先级。

④T0的中断矢量地址:

000BH

T1的中断矢量地址:

001BH

⑤TCON的内容:

01010000

作用:

TR1和TR0被置1,使计数器T0和T1启动。

 

第六章单片机系统扩展设计

13题若用8片6116构成的外部数据存储器,地址为0000H~3FFFH;试编写一存储器诊断程序(诊断到某片)。

答:

编程如下:

MOVDPTR,#0000H

MOVR0,#31H;存放诊断结果

LP1:

MOVA,#0

MOVX@DPTR,A

MOVXA,@DPTR

JNZERR

MOVA,#0FFH

MOVX@DPTR,A

MOVXA,@DPTR

CPLA

JNZERR

INC1:

INCDPTR

MOVA,#3FH

CJNEA,DPH,LP1

MOVA,#0FFH

CJNEA,DPL,LP1

SJMP$

ERR:

PUSHDPL

POPACC;存放出错点的地址

MOV@R0,A

INCR0

PUSHDPH

POPACC

MOV@R0,A

INCR0

SJMPINC1

END

 

11题试设计以8031为主机,用74LS138为译码器,采用1片27128作ROM,地址为0000H~3FFFH;采用2片6264作RAM,4000H~7FFFH的扩展系统(加1个与门),地址不允许重叠,画出电路图。

如果RAM地址为8000H~BFFFH或C0000H~FFFFH,2片6264的片选CE端与译码器的输出应如何连接?

解:

先把所有参与译码的地址列出:

这些地址是存储器芯片的地址

这三位地址参与片选

译码(作138的输入)

8031:

P27P26P25P24P23P22P21P20P07~P00

存储器地址:

A15A14A13A12A11A10A9A8A7~A0

8KB

0

0

0

Y0

0000H~1FFFH

0

0

1

Y1

2000H~3FFFH

0

1

0

Y2

4000H~5FFFH

0

1

1

Y3

6000H~7FFFH

1

0

0

Y4

8000H~9FFFH

1

0

1

Y5

A000H~BFFFH

1

1

0

Y6

C000H~DFFFH

1

1

1

Y7

E000H~FFFFH

 

18题8155与8031的连接如图6-28所示。

1若将8155的PA0~PA7与PB0~PB7用跨接线连接,C口的PC0~PC5接6个发光二极管,试编制I/O口诊断程序,即从B口输出数据,经A口读回,若正确则C口发光二极管左循环点亮否则同时点亮。

2试编制8155RAM诊断程序,并记录出错地址。

3设8155的TIN接2MHz时钟,试编制定时5ms的定时程序,并从TOUT输出一单次方波。

答:

①设C口高电平时二极管发光

MOVDPTR,#7F00H

MOVA,#01001110B

MOVX@DPTR,A

MOVDPTR,#7F02H

MOVA,#01010101B;测试数据

MOVX@DPTR,A

MOVDPTR,#7F01H

MOVXA,@DPTR

CJNEA,#01010101B,LP

LP3:

MOVA,#1

MOVR7,#6

MOVDPTR,#7F03H

LP1:

MOVX@DPTR,A

RLA

LCALLDLY

DJNZR7,LP1

SJMPLP3

LP:

MOVA,#0FFH

MOVDPTR,#7F03H

MOVX@DPTR,A

SJMP$

DLY:

MOVR0,#50;12MHz延时1s

L1:

MOVR1,#100

L2:

MOVR2,#100

L3:

DJNZR2,L3

DJNZR1,L2

DJNZR0,L1

RET

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

当前位置:首页 > 人文社科 > 广告传媒

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

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