单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx

上传人:b****5 文档编号:19503196 上传时间:2023-01-07 格式:DOCX 页数:43 大小:540.29KB
下载 相关 举报
单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx_第1页
第1页 / 共43页
单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx_第2页
第2页 / 共43页
单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx_第3页
第3页 / 共43页
单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx_第4页
第4页 / 共43页
单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx

《单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx(43页珍藏版)》请在冰豆网上搜索。

单片机原理及接口技术第二版余锡存著课后习题答案Word文件下载.docx

(1)振荡周期:

也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期。

(2)状态周期:

每个状态周期为时钟周期的2倍,是振荡周期经二分频后得到的。

(3)机器周期:

一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期在一个机器周期内,CPU可以完成一个独立的操作

(4)指令周期:

它是指CPU完成一条操作所需的全部时间。

每条指令执行时间都是有一个或几个机器周期组成。

MCS-51系统中,有单周期指令、双周期指令和四周期指令。

当单片机的时钟频率为12MHz时,一个机器周期是多少1蚁微秒);

ALE引脚的输出频率是多少2g(微秒)。

第三章

1.MCS-51指令系统按功能分为几类?

具有几种寻址方式?

他们的寻址范围如何?

1按功能分为5类,分别是:

数据传送类、算术操作类、逻辑操作类、控制转移类和位操作类;

2具有7种寻址方式;

3立即寻址,寻址范围是程序存储器;

直接寻址,寻址范围是内部RAM低128字节和高128字节;

寄存器寻址,寻址范围是四组工作寄存器R0〜R7;

寄存器间接寻址,寻址范围是内部RAM的低128和外部RAM低64K可寻址空间;

基址寄存器加变址寄存器间接寻址,寻址范围是程序存储器;

相对寻址,寻址范围是以下一条指令为相对地址的-128〜+127字节范围内;

位寻址,寻址范围是可位寻址空间,包括内部RAM的可寻址位,特殊功能

寄存器中的可寻址位

2.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器

A,R0,和内部RAM中50H、51H单元的内容为和值?

MOV

A,59H

;

(A)=(59H)=50H

R0,A;

(R0)=50H

A,#00;

(A)=00

@R0,A

((R0))=(50H)=00

A,#25H

(A)=25H

51H,A

(51H)=25H

52H,#70H;

(52H)=70H

执行下列程序段后:

(A)=25H,(R0)=50H,(50H)=00、(51H)=25H

3.PSW中Cy与OV有何不同?

下列程序段执行后(Cy)=?

(OV)=?

MOVA,#56H

ADDA,#74H

Cy—进位、借位标志位;

OV—溢出标志位。

MOVA,#56H;

(A)=56H=01010110B

ADDA,#74H;

(A)=56H+74H=0CAH=11001010B,

程序执行后:

(Cy)=0(OV)=1

4.MOVCA,@A+DPTR与MOVXA,@DPTR指令有何不同?

1MOVCA,@A+DPTR;

寻找的操作数在程序存储器中,地址是:

(A)

+(DPTR);

2MOVXA,@DPTR;

寻找的操作数在外部数据存储器中,地址是:

(DPTR)。

5.AJMP、LJMP、SJMP指令功能上有何不同?

相同之处,都是无条件转移指令。

①AJMPaddr11;

下调指令为基准的2KB范围内的跳转指令。

②LJMPaddr16;

转移的目标地址可以在64KB程序存储器的任何地方。

3SJMPrel;

下调指令为基准的-128B〜+127B范围内的短跳转指令。

6.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别

为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?

PUSH

30H

31H

POP

DPL

DPH

30H,#00H

MOV31H,#0FFH

(61H)

=(30H)=24H

(62H)=

(31H)=10H

(DPL)=

(62H)=10H

(DPH)=

(61H)=24H

(30H)

=00H

31H,#0FFH

(31H)

=0FFH

=00H,(31H)=

中的内容将为何值?

(61H)=24H,(62H)=10H,(30H)

0FFH,(DPTR)=2410H

7.试分析下列程序段,当程序执行后,位地址00H和01H

P1口的8条I/O线为何状态?

CLRC

MOVA,#66H

JCLOOP1

CPLC

SETB01H

LOOP1:

ORLC,ACC.0

JBACC.2,LOOP2

 

(Cy)=0

A,#66H

(A)=66H=01100110B

JC

LOOP1

因此时(Cy)=0,所以不跳转

CPL

C;

(Cy)=1

SETB

01H;

(01H)=1

ORL

C,ACC.0;

(Cy)=(Cy)V(ACC.O)=1

JBACC.2,LOOP2;

因(ACC.2)=1

LOOP2:

MOVP1,A;

(P1)=01100110B

8.要完成以下的数据传送,应如何用MCS-51指令实现?

⑴R1的内容传送到R0;

⑵片外RAM20H单元的内容送R0;

⑶片外RAM20H单元的内容送片内RAM20H单元;

⑷片外RAM1000H单元的内容送片内RAM20H单元;

ROM2OOOH

单元的内容送RO;

单元的内容送片内RAM2OH

单元;

单元的内容送片外RAM2OH

单元。

⑴R1

的内容传送到

RO;

MOVA,R1

MOVR0,A

MOVXA,@R1

MOVR1,#20H

MOV20H,A

MOVDPTR,#20H

MOVXA,@DPTR

⑸ROM2000H单元的内容送R0;

MOVDPTR,#2000H

CLRA

MOVCA,@A+DPTR

⑹ROM2000H单元的内容送片内RAM20H单元;

⑺ROM2000H单元的内容送片外RAM20H单元。

MOVR0,#20H

MOVX@R0,A

9.分析以下程序每条指令执行的结果:

A,#25H

(A)=25H

R1,#33H

(R1)=33H

40H,#1AH

(40H)=1AH

R0,40H

(R0)=1AH

ADD

A,R1

(A)=25H+33H=58H

ADDC

A,@R0

(A)=58H+(1AH)+(Cy)=58H

A,40H

(A)=58H+1AH+(Cy)=72H

10.设A=83H,R0=17H

,(17H)=34H,执行下列程序后,(A)=?

ANL

A,#17H

(A)=10000011BA00010111B=0000

0011B

ORL

17H,A

(17H)=00110100BV00000011B=0011

0111B

XRL

(A)=00000011B©

00110111=00110100B

A

(A)=11001011B

11.两个4位BCD码数相加,被加数和加数分别存于30H、31H和40H、

41H单元中(次序为千位、百位在低地址中,十位、个位在高地址中),和数放

在50H、51H

、52H中(52H用于存放最高位的进位),试编写加法程序。

解:

ORG00H

30H,#12H;

31H,#34H

J

40H,#56H

41H,#78H

A,31H;

取被加数十个位

A,41H;

相加,(A)=(31H)+(41H)

DA

十进制调整

存十位个位运算结果

A,30H

取被加数千百位

A,40H

相加,(A)=(30H)+(40H)

A;

十进制调整

50H,A

存千位百位运算结果

CLR

清A

A,#0

将进位加到A中

52H,A;

存进位

SJMP

$

12.试编写一程序,查找内部RAM单元的20H〜50H中是否有OAAH这一数据,若有,则将51H单元置为01H,若没有,则使51H单元置0。

ORG00H

MOV30H,#0AAH;

MOVR0,#20H

BIJIAO:

MOVA,@R0

CJNEA,#0AAH,LOOP;

51H,#01H

JIESHU

LOOP:

INC

R0

DJNZ

R1,BIJIAO

51H,#00H

JIESHU:

第四章

个程序实现X*10+Y

1、若有两个符号数X,丫分别存放在内部存储器50H、51H单元中,试编写一

1

ORG

00H

0000

7850

2

MOVR0,#50H

0002

E6

3

0003

75F00A

4

MOVB,#0AH

0006

A4

5

MUL

AB

0007

08

6

INC

0008

26

7

0009

8

000A

A6F0

9

@R0,B

000C

10

000D

F6

11

,结果存入52H、53H中

的数,试编写程序将它们转换成BCD码,并以压缩BCD形式存放在以2000H

为首地址的外部RAM

中。

903000

MOVDPTR,#3000H

原始数据首地址

7807

R0,#07;

循环次数

0005

7930

R1,#30H;

转换结果暂存区指

E0

CH1:

550F

A,#00001111B

C4

SWAPA

000B

F5F0

B,A

A3

DPTR

000E

2、在以3000H为首地址的外部

RAM中,存放了14个以ASCII码表示的0~9

000F550F

0011

45F0

12

ORLA,B

0013

F7

13

@R1,A

0014

09

14

R1

0015

15

0016

D8EF

16

R0,CH1

0018

902000

17

DPTR,#2000H;

转换结果存储

11ANLA,#00001111B

001B

7A07

18

R2,#07H

001D

19

R1,#30H

001F

E7

20CH2:

MOVA,@R1

3、采样的5个值分别存放在

R0、R1、

R2、R3、

并存放在

R2中。

R4

结果个数

,求出它们的中间值,

>

0000

7805

MOVR0,#5

7906

MOVR1,#6

0004

MOVR2,#7

7B08

MOVR3,#8

7C09

MOVR4,#9

E4

CLRA;

C3

CLRC;

E8

MOVA,R0;

29

ADDA,R1

2A

ADDA,R2;

000F

2B

ADDA,R3

0010

2C

ADDA,R4

75F005

MOVB,#5

84

DIVA

FA

MOVR2,A

18END

4、以BUF1为起始地址的外部数据存储区中存放着16个单字节的无符号数,求其平均值并送入R2中。

BUF1

EQU#1000H

901000

DPTRBUF1

AA00

R2,0

7816

MOVR0,#16H

SUM:

MOVXA,@DPTR

A,R2

R2,A

D8FA

R0,SUM

75F010

B,#10H

DIV

14END

5、试编写程序,将内部RAM单元中DATA1开始的20个单字节数依次与

DATA2单元为起始地址的20个单字节数据进行交换。

1DATA1EQU#30H

DATA2EQU#50H

3LENEQU#164ORG0H

00007830

5MOVR0,DATA1

7A10

R2,LEN

EXC:

MOVA,@R0

C7

XCH

A,@R1

DAF9

R2,EXC

END

00027950

6MOVR1,DATA2

6、某场歌手赛,共有

10个评委,试编写一程序,输入

10个评分,去掉最高分

和最低分,求平均分(均为BCD码)

ORG0H

NEQU#5

BLOCKEQU#30H

ISELSORT:

MOVR7,N

DECR7

MOVR1,BLOCK

ISST1:

MOVR0,BLOCK

MOVA,R7

R6,A

ISST2:

INCR1

C

SUBB

A,B

JCISST3

B,@R1

ISST3:

DJNZR6,ISST2

B,R2

@R1,B

R7,ISST1

R0,BLOCK

@R0,#0;

去掉最低分

A,BLOCK

A,#9

MOV@R0,#0;

去掉最高分

AD:

INCRO

MOVR1,#8

MOVB,#0

ADL:

ADDA,@R0

DAA

ADDCA,#0

MOVB,A

MOVA,R2

DJNZR1,ADL

MOVR5,0

MOVR4,B

MOVR3,A

MOVR2,#0

MOVR1,#8

R5R4R3/R2R1=R4R3

MOVR1,#00H

MOVR2,#0FH

MOVR3,#04H

MOVR4,#05H

MOVR5,#06H

LCALL_DIV

AJMP$

_DIV:

;

{

MOV30H,#0

MOV31H,#0

MOV32H,#0_DIV_LOOP:

CLRC

MOVA,R3

SUBBA,R1

MOVR3,A

MOVA,R4

SUBBA,R2

MOVR4,A

MOVA,R5

SUBBA,#0

MOVR5,A

JC_DIV_END

INC_SHANG:

A,30H

A,#1

30H,A

A,31H

31H,A

A,32H

32H,A

LJMP

_DIV_LOOP

DIV_END:

A,R3

A,R4

R3,30H

R4,31H

7、编写将一个十六进制数转换为十进制数的子程序

000078FE2MOVR0,#FEH

HEXBCD:

75F064

B,#100

740A

A,#10

C5F0

XCHA,B

0012

A7F0

15RET

8、在内部RAM的BLOCK开始的单元中有一无符号数据块,数据长度为LEN试编程求其中最大的数并存入

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

当前位置:首页 > 解决方案 > 工作计划

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

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