单片微机原理及应用徐春辉第5章习题答案.docx

上传人:b****5 文档编号:5710846 上传时间:2022-12-31 格式:DOCX 页数:8 大小:21.23KB
下载 相关 举报
单片微机原理及应用徐春辉第5章习题答案.docx_第1页
第1页 / 共8页
单片微机原理及应用徐春辉第5章习题答案.docx_第2页
第2页 / 共8页
单片微机原理及应用徐春辉第5章习题答案.docx_第3页
第3页 / 共8页
单片微机原理及应用徐春辉第5章习题答案.docx_第4页
第4页 / 共8页
单片微机原理及应用徐春辉第5章习题答案.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

单片微机原理及应用徐春辉第5章习题答案.docx

《单片微机原理及应用徐春辉第5章习题答案.docx》由会员分享,可在线阅读,更多相关《单片微机原理及应用徐春辉第5章习题答案.docx(8页珍藏版)》请在冰豆网上搜索。

单片微机原理及应用徐春辉第5章习题答案.docx

单片微机原理及应用徐春辉第5章习题答案

单片微机原理及应用-徐春辉第5章--习题答案

练习与思考题5

1.用于程序设计的语言分为哪几种?

它们各有什么特点?

答:

51系列单片机的编程语言可以分为汇编语言和高级语言(如C语言)两种,各自的特点如下:

名称

特点

缺点

优点

适用场合

汇编语言

用符号书写指令(用助记符表示操作码,特殊符号表示操作数)

机器不能直接识别;程序员必须了解机器的结构和指令系统,不易推广和普及;不能移植,不具备通用性

较易为人们识别、记忆和读写

实时控制系统

高级语言

用以英语为基础的语句编程

机器不能直接识别;执行时间长

易于推广和交流;不依赖于机器,具有通用性

科学运算和数据处理

2.说明伪指令的作用。

“伪”的含义是什么?

常用的伪指令有哪些?

其功能是什么?

答:

伪指令是在“机器汇编”过程中,用来对汇编过程进行某种控制或者对符号和标号进行赋值。

“伪”的含义是指这些指令不属于指令系统中的指令,汇编时也不产生机器代码。

常用伪指令有ORG、EQU、DATA、DB、DW、DS、BIT、END。

功能:

ORG--指出后面程序块或数据块在程序存储器中存放的起始地址。

EQU--赋值命令

DATA--对数据地址或代码地址赋予规定的字符名称

DB--定义字节数据

DW--定义字数据

DS--从指定的地址单元开始,保留若干单元备用。

BIT --定义位地址符号命令

END --汇编结束命令

3.设常量和数据标号的定义为:

ORG2000H

DAT1:

DB1,2,3,4,5

DAT2:

DB‘ABCD’

DAT3:

DW1200H,-2

TAB:

DWDAT1,DAT3

(1)画出上述数据或地址的存储形式。

(2)写出各标号的地址。

答:

(1)

地址

内容(H)

2000H

01

02

03

04

05

2005H

41

42

43

44

2009H

12

00

FF

FE

200DH

20

00

20

09

(2)DAT1=2000H;DAT2=2005H;DAT3=2009H;TAB=200DH

4.编写双字节加法程序。

要求:

被加数放在内部RAM的30H(高字节)、31H(低字节)单元中,加数存放在内部RAM的32H(高字节)和33H(低字节)中,运算结果放存放在30H,31H中,进位存放在位寻址区的00H位。

答:

ORG0000H

MOVA,31H

ADDA,33H

MOV31H,A

MOVA,30H

ADDCA,32H

MOV30H,A

MOV00H,C

SJMP$

END

5.试编写程序,找出片内RAM30H~5FH单元中无符号数的最大数,并将结果存入60H单元。

答:

ORG0000H

MOVR0,#30H

MOVR7,#2FH

MOVA,@R0

AGAIN:

INCR0

MOVB,A

CLRC

SUBBA,@R0

JNCL1

MOVA,@R0

AJMPL2

L1:

MOVA,B

L2:

DJNZR7,AGAIN

MOV60H,A

SJMP$

END

6.试编写程序,统计片内RAM的20H~5FH单元中出现55H的次数,并将统计结果送60H单元。

答:

TABEQU20H

ORG0000H

START:

MOV60H,#0

MOVR0,#TAB

LOOP2:

MOVA,#55H

CLRC

SUBBA,@R0

JNZNEXT

INC60H

NEXT:

INCR0

CJNER0,#60H,LOOP2

SJMP$

END

7.编写程序,将片外数据存储区中3000H~30FFH单元全部清零。

答:

ORG0000H

START:

MOVA,#0

MOVR7,#0

MOVDPTR,#3000H

LOOP:

MOVX@DPTR,A

INCDPTR

DJNZR7,LOOP

SJMP$

END

8.将外部RAM8000H开始的20个字节数据传送到外部RAM8100H开始的地址单元中去。

答:

DATA1EQU8000H

DATA2EQU00H

ORG0000H

START:

MOVDPTR,#DATA1

MOVR0,#DATA2

MOVR7,#20

LOOP:

MOVXA,@DPTR

MOVP2,#81H

MOVX@R0,A

INCR0

INCDPTR

DJNZR7,LOOP

SJMP$

END

9.编程统计累加器A中“1”的个数。

答:

以下程序将A中“1”的个数放在30H单元。

DATEQU37H

ORG0000H

START:

PUSHACC

MOVA,#DAT

MOV30H,#0

NEXT:

JZEXIT

CLRC

RLCA

JNCL1

INC30H

L1:

AJMPNEXT

POPACC

EXIT:

SJMP$

END

10.编写程序,将30H~34H单元中压缩的BCD码数(每个字节存放两个BCD码数)转换为ASCII码数,并将结果存放在片内RAM60H~69H单元。

答:

ORG0000H

START:

MOVR0,#30H

MOVR1,#60H

MOVR7,#2

AGAIN:

MOVA,@R0

ANLA,#0F0H

SWAPA

ADDA,#30H

MOV@R1,A

MOVA,@R0

ANLA,#0FH

ADDA,#30H

INCR1

MOV@R1,A

INCR0

INCR1

DJNZR7,AGAIN

SJMP$

END

11.将内部RAM30H单元的内容转换成三位BCD码(百位、十位、个位),并将结果存入外部RAM1000H开始的单元。

答:

ORG0000H

START:

MOVA,30H

MOVDPTR,#1000H

MOVB,#100

DIVAB

MOVX@DPTR,A

INCDPTR

MOVA,B

MOVB,#10

DIVAB

MOVX@DPTR,A

MOVA,B

INCDPTR

MOVX@DPTR,A

SJMP$

END

12.请使用位操作指令,编程实现

,其中,20H、2FH、2AH都是位地址。

答:

ORG0000H

MOVC,20H

ANLC,2FH

CPLC

ORLC,2AH

MOVP1.0,C

SJMP$

END

13.简述利用KeilμVision调试汇编语言程序的主要步骤。

答:

利用KeilμVision调试软件的主要步骤包括:

建立工程(project)→编写汇编语言源程序并保存→在工程中添加源文件→设置工程→编译并连接,创建目标文件→调试程序。

14.如何产生.hex文件?

答:

编译并连接时,在“ProjectWorkspace”窗口中,右键Target1,选择OptionsForTarget‘Target1’选项,弹出“optionforTarget”对话窗,选Output选项卡,选中CreateHEXFile。

15.在KeilμVision环境中,如何查看寄存器和数据存储单元内容?

答:

点击“Regs”

,可查看寄存器的内容。

在Keil的菜单栏中,选择View→MemoryWindow选项,打开Memory对话窗,在Address栏中输入地址“D:

0030H”,查看片内RAM中0030H的内容。

(X:

外部数据存储器,C:

程序存储器)

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

当前位置:首页 > 医药卫生 > 基础医学

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

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