天津大学出版社的单片机课后习题答案.docx

上传人:b****5 文档编号:4108438 上传时间:2022-11-27 格式:DOCX 页数:29 大小:28.99KB
下载 相关 举报
天津大学出版社的单片机课后习题答案.docx_第1页
第1页 / 共29页
天津大学出版社的单片机课后习题答案.docx_第2页
第2页 / 共29页
天津大学出版社的单片机课后习题答案.docx_第3页
第3页 / 共29页
天津大学出版社的单片机课后习题答案.docx_第4页
第4页 / 共29页
天津大学出版社的单片机课后习题答案.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

天津大学出版社的单片机课后习题答案.docx

《天津大学出版社的单片机课后习题答案.docx》由会员分享,可在线阅读,更多相关《天津大学出版社的单片机课后习题答案.docx(29页珍藏版)》请在冰豆网上搜索。

天津大学出版社的单片机课后习题答案.docx

天津大学出版社的单片机课后习题答案

第二章习题答案

2-2 8051单片机内部包含哪些主要逻辑部件?

各自的功能是什么?

答:

8051单片机内部包含:

1、       中央处理器CPU:

它是单片机内部的核心部件,决定了单片机的主要功能特性,由运算器和控制器两大部分组成。

2、       存储器:

8051单片机在系统结构上采用了哈佛型,将程序和数据分别存放在两个存储器内,一个称为程序存储器,另一个为数据存储器。

在物理结构上分程序存储器和数据存储器,有四个物理上相互独立的存储空间,即片内ROM和片外ROM,片内RAM和片外RAM。

3、       定时器/计数器(T/C):

8051单片机内有两个16位的定时器/计数器,每个T/C既可以设置成计数方式,也可以设置成定时方式,并以其定时计数结果对计算机进行控制。

4、       并行I/O口:

8051有四个8位并行I/O接口(P0~P3),以实现数据的并行输入输出。

5、       串行口:

8051单片机有一个全双工的串行口,可实现单片机和单片机或其他设备间的串行通信。

6、       中断控制系统:

8051共有5个中断源,非为高级和低级两个级别。

它可以接收外部中断申请、定时器/计数器申请和串行口申请,常用于实时控制、故障自动处理、计算机与外设间传送数据及人机对话等。

2-3 8051单片机的存储器分哪几个空间?

通过什么信号来区别不同空间的寻址?

答:

有四个物理上相互独立的存储空间:

片内ROM地址为0000H-0FFFH此时/EA=1;片外ROM地址为0000H-0FFFFH此时/EA=0。

片内数据存储器地址为00H-0FFH;片外数据存储器地址为0000H-0FFFFH;区分片内片外数据存储器通过指令MOV与MOVX。

2-6 内部RAM低128单元划分为哪三个主要部分?

各部分主要功能是什么?

   答:

分为三部分:

工作寄存器去,位寻址区,用户RAM区(堆栈、数据缓冲)。

    工作寄存器区(00H-1FH):

32个RAM单元共分四组,每组8个寄存单元(R0-R7)。

寄存器常用于存放操作数及中间结果等。

位寻址区(20H-2FH):

此部分16个单元的每一位都有一个8位表示的位地址,位寻址取得每一个单元既可作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作。

用户RAM区:

也是数据缓冲区,一般用于存放用户数据及作堆栈区使用。

第三章习题答案

3-1 MCS-51的寻址方式及特点

MCS-51的寻址方式有七种:

1.直接寻址:

指令中直接给出操作数所在的单元地址或位地址                      P68

2.立即寻址:

在指令中紧跟在操作码之后的字节是操作数                          P69

3.寄存器寻址:

操作数在指令中给出的寄存器内                                  P69

4.寄存器间接寻址:

指令中指定的寄存器内存的是操作数的地址                    P70

5.变址寻址:

指令中给出由基址加变址形成的16位地址作为操作数的地址           P71

6.相对寻址:

指令中给出相对偏移量,该相对偏移量与PC当前值求和得到转移地址  P72

7.位寻址:

指令中给出的位地址或位寄存器里存是所寻的位操作数                   P71

3-2  MCS-51的指令按功能分类及各类的作用

MCS-51的指令按功能分5类:

1.数据传送指令:

主要用于数据的传送与交换和栈操作。

      P74

2.算术运算指令:

主要用来作算术四则运算、增量、减量及二—十进制调整。

                 P81

3.逻辑运算指令:

主要用来作“与”、“或”、“异或”、“清除”“求反”及“左右移位”等逻辑运算。

   P88

4.位操作指令:

主要用来作“与”、“或”、“清除”、“置位”“求反”等布尔操作及“位传送”操作。

P90

5.控制转移指令:

主要用于改变程序计数器PC的值,  以控制程序执行的走向,有转移、调用及返回操作.P91

3-3 变址寻址和相对寻址中偏移量的异同点

变址寻址:

@A+DPTR   ;基址:

DPTR,       变址:

A

           @A+PC      ;基址:

PC当前值,   变址:

A

        变址:

A  中为8位二进制无符号数偏移量(A)∈[0,255]  即[00H,0FFH]

相对寻址:

相对偏移量为8位二进制带符号数的补码

                      rel∈[-128,+127]

                      [rel]补码∈[00H,0FFH]

相同点:

偏移量∈[00H,0FFH]

不同点:

变址寻址中偏移量为8位二进制无符号数;相对寻址中偏移量为8位二进制带符号数的补码

3-4 指出下面每条指令的寻址方式:

MOVA,#30H  –寄存器、立即–30H立即数

MOVC,30H   –寄存器、位   –30H  位地址

MOVXA,@DPTR  –寄存器、间接

jC  LAB1  –相对

MOV  30H,@R1  –直接、间接  –30H  字节地址

MOV30H,R5  –直接、寄存器  –30H字节地址

MOVCA,@A+PC  –寄存器、变址

sjmpLAB2  –相对

3-5 运行下列程序后各单元及A、PSW的内容

(1)

1.

MOVA,#2      ;(A)=02H                00000001(psw)

MOVR1,#30H    ;(R1)=30H               00000001

MOV@R1,A      ;((R1))=(30H)=02H      00000001

MOV35H,R1     ;(35H)=30H              00000001

XCHA,R1        ;(A)=30H,(R1)=02H   00000000

 

 

2.

MOVA,#0F5H     ;(A)=0F5H              00000000

MOV30H,#9BH    ;(30H)=9BH

MOVR0,#30H     ;(R0)=30H

ADDA,#28H      ;(A)=1DH              10000000

ADDCA,@R0     ;(A)=0B9H              01000001

3.

CLRC             ;(CY)=0

MOV40H,#7AH       ;(40H)=7AH

MOVA,#92H          ;(A)=92H          00000001

MOVR0,#40H        ;(R0)=40H

SUBBA,@R0         ;(A)=92H-7AH-0=18H,(PSW)=44H

4.

MOVA,#79H        ;(A)=79H             00000001

MOV30H,#89H      ;(30H)=89H

ADDA,30H         ;(A)=02H             11000001

DAA              ;(A)=68H             10000001

SWAP  A           ;(A)=86H             10000001

3-6 写出能完成下列数据传送的指令

⑴ R1内容传送到R0 

MOVA,R1;   MOVR0,A

(2)内部RAM25H单元内容送到35H单元 

MOV  35H,25H或MOVA,25H;   MOV35H,A   ;MOV35H,25H

(3)内部RAM25H单元内容送到P1口

① MOVA,25H;  MOVP1,A    ;

② MOVP1,25H    ;

③ MOV90H,25H

(4)内部RAM40H单元内容送外部RAM2005H单元

MOVA,40H;MOVDPTR,#2005H;MOVX@DPTR,A

(5)外部RAM3000H单元内容送内部RAM25H单元

MOVDPTR,#3000H;MOVXA,@DPTR;MOV25H,A

(6)外部ROM1000H单元内容送内部RAM35H单元

MOVDPTR,#1000H;CLRA;MOVCA,@A+DPTR;MOV35H,A      

(7)外部ROM4000H单元内容送外部RAM4000H单元

MOVDPTR,#4000H;CLRA;MOVCA,@A+DPTR;MOVX@DPTR,A

(8)外部RAM1000H单元内容送SP堆栈指针

 MOVDPTR,#1000H;MOVXA,@DPTR;  MOVSP,A

3-7 BCD码减法,求7954H-4157H=3797H。

算法1:

 

   999AH-4157H=5843H

   5843H+7954H并调整

       ORG0000H

BCDS:

 MOVA,#9AH

        CLRC

        SUBBA,#57H

        MOV   30H,A

        MOVA,#99H

        SUBBA,#41H

        MOV31H,A

MOVA,#54H

ADDA,30H

DA  A

MOV20H,A

MOV   A,#79H

ADDCA,31H

DA  A

MOV21H,A

CPLC

MOV2FH,C

SJMP$

END

循环程序

ORG  0000H

BCDS1:

   MOV20H,#54H

         MOV21H,#79H

             MOV30H,#57H

         MOV  31H,#41H

         MOVR0,#30H

         CLRC

         MOVA,#9AH

         SUBBA,@R0

         MOV40H,A

         INCR0

         MOVA,#99H

         SUBBA,@R0

         MOV41H,A

CLRC

         MOVR0,#40H

         MOVR1,#20H

         MOVR2,#2

LOOP:

    MOVA,@R0

         ADDCA,@R1

         DA  A

         MOV@R0,A

        INCR0

         INCR1

         DJNZR2,LOOP

         CPLC

         MOV  7FH,C

    SJMP$

         END

 

3-7 顺序程序      算法2

ORG  0000H

BCDS1:

   MOV20H,#54H

         MOV21H,#79H

         MOV30H,#57H

         MOV  31H,#41H

         MOVR0,#30H

         CLRC

         MOVA,#9AH

         SUBBA,@R0  ;

         ADDA,20H     ;

         DA    A  ;         CY)=0

         MOV40H,A

          CPL  C     ;     (CY)=1

         INCR0

MOVA,#9AH

         SUBBA,@R0   ;(CY)=0

         ADD   A,21H

         DA    A

         MOV41H,A              

         CPLC

         MOV  7FH,C

         SJMP  $

         END

 

3-8写出下段程序中每一步A、B中的结果

MOVA,#22H    ;(A)=22H

MOVB,#05H    ;(B)=05H

MOVR0,#08H

MULAB        ;(A)=0AAH,(B)=0         00000000

MOVB,R0             

DIV  AB       ;(A)=15H,(B)=02H           00000001

3-9试写出完成如下操作的程序

(1)   ORG  0000H

     MOVDPTR,#1000H

      MOVXA,@DPTR

      ANLA,#11110000B

     MOVX@DPTR,A

     SJMP   $

(2)  ORL  50H,#00001111B

(3)  XRL  50H,#11100000B

(4)  MOV  50H,#11110000B

(5)  XRL  50H,#0FFH

 

 

 

3-10 30H开始的20个单元数据传送到外部3000H

ORG0000H

     MOVR0,#30H

     MOVDPTR,#3000H

     MOVR7,#20

Loop1:

  MOVA,@R0

     MOVX@DPTR,A

     INCR0

     INCDPTR

     DJNZR7,Loop1  

    SJMP$

     END

3-11 根据R3条件转移   1

ORG0000H

     CjneR3,#15,NEQ

     sjmpL1      ;=15

NEQ:

jnCL1     ;>15

     sjmp$        ;<15

L1:

  nop            ;≥15

       .

         ORG0000H

     CjneR3,#15,NEQ

     sjmpHalt

NEQ:

jCL1      ;<15

     sjmpHalt  

L1:

  nop           ;<15

Halt:

    sjmp$   ;≥15

 

ORG0000H

     CjneR3,#15,NEQ

     sjmpL1

NEQ:

jCL1

     sjmp$

L1:

  nop      ;≤15

 

    ORG0000H

     CjneR3,#15,NEQ

     sjmpHalt

NEQ:

jnCL1

     sjmpHalt

L1:

  nop         ;>15

Halt:

    sjmp$

 

3-11 根据R3条件转移   2

 

  ORG0000H

    CLRC

    MOVA,R3

    SUBBA,#15

    JNC   GE15  ;≥15

    ….  

           (R3)-15 

   ORG0100H

    CLRC

    MOVA,R3

    SUBBA,#15

    JC   GE15      ;<15

    ….  

     (R3)-15

ORG0000H

    CLRC

    MOVA,#15

    SUBBA,R3

    JNC   GE15  ;≤15

    ….   

   15-(R3)

ORG0000H

    CLRC

    MOVA,#15

    SUBBA,R3

    JC   GE15  ;>15

    ….  

    15-(R3)

3-12 已知(SP)=53H,(PC)=37FEH执行:

ACALL3A00H后:

 

(SP)=(SP)+2=55H

(PC)=3A00H

((SP-1))=(54H)=00H;PCL

((SP))=(55H)=38H   ;PCH

37FEH:

ACALL3A00H

3800H:

第四章汇编语言程序设计  思考题与习题4及答案

4-13 试编程实现将20H单元的两位BCD数相乘,结果以BCD码的形式存于21H单元当中。

4-13-1      ORG0000H

  MOV20H,#56H

  MOVA,20H

  ANLA,#0FH

  MOVB,A

  MOVA,20H

  ANLA,#0F0H

  SWAPA

  MOVR2,A

  DECB

LOOP:

ADDA,R2

  DAA

  DJNZB,LOOP

  MOV21H,A

  SJMP$

  END

4-13-2

  ORG0000H

  MOV20H,#56H

  MOVA,20H

  MOVR0,#21H

  MOV21H,#0

  XCHDA,@R0

  MOVB,@R0

  SWAPA

  MOVR2,A

  DECB

LOOP:

ADDA,R2

  DAA

  DJNZB,LOOP

  MOV21H,A

  SJMP$

  END

4-7 设一个加数在50H~52H单元中,另一个加数在53H~55H中,进位存放在位地址00中,试编程实现两数求和。

ORG000H

ONE     DATA  50H

TWO     DATA  53H

WEI     BIT   00H

        MOVR0,#ONE

        MOVR1,#TWO

;       MOVC,WEI

      CLRC

        MOVR2,#3

LOOP:

   MOVA,@R0

        ADDCA,@R1

        MOV@R0,A

        INCR0

        INCR1

        DJNZR2,LOOP

        MOVWEI,C

        SJMP$

        END

4-7-2

ORG0000H

ONE     DATA  50H

TWO     DATA  53H

WEI     BIT   00H

        MOVR0,#ONE

        MOVR1,#TWO

       CLRC

        MOVR2,#3

        SETBRS0

        MOVR0,#58H

        CLRRS0

LOOP:

   MOVA,@R0

        ADDCA,@R1

        INCR0

        INCR1

        SETBRS0

        MOV@R0,A

        INCR0

        CLRRS0

        DJNZR2,LOOP

        MOVWEI,C

        SJMP$

        END

4-11试用除法指令将20H单元的两位BCD码变成ASCII码后存入21H和22H单元。

  ORG0000H

  MOV20H,#67H

  MOVA,20H

  MOVB,#10H

  DIVAB

  ADDA,#30H

  MOV21H,A

  ORLB,#30H

  MOV22H,B

  SJMP$

        END

4-1从20H单元开始存放一组带符号数,其数目已存在1FH单元。

要求统计出大于0、小于0和等于0的个数并存于ONE、TWO、THREE三个单元。

       ORG0000H

ONE     EQU  30H

TWO     EQU  31H

THREE       EQU  32H

NUM  EQU  1FH

        MOVNUM,#0FH

MOV  R0,#20H;-1,2,34,0A0H,0....

MOVR1,#ONE

LOOP:

   MOV@R1,#0

INCR1

CJNER1,#34H,LOOP

LOOP1:

  MOVA,@R0

JZ  MTHREE

JBACC.7,MTWO

INCONE

SJMPDJNZZ

MTHREE:

INCTHREE

SJMPDJNZZ

MTWO:

  INCTWO

DJNZZ:

INCR0

        DJNZNUM,LOOP1;NUM=0FH

SJMP$

        END

4-5在用JMP指令实现128分支的程序中,试用LJMP代替AJMP指令。

修改后的程序有何特点?

最多能实现多少分支?

4-5

AJMP指令表  128分支占128*2=256字节MEMORY

LJMP指令表  可以实现256/3=85  个分支 

 特点:

各分支可在64KB存储器中转移。

 

4-2设自变量X为一无符号数,存放在内部RAM的VAX单元,函数Y存放在FUNC单元,请编出满足如下关系的程序:

 

X    X≥50

Y=    5X   50>X≥20

2X   X<20

        ORG0000H

VAX      EQU  30H

FUNC     EQU  31H

        MOVVAX,#55;15;20;25;50;55

        MOVA,VAX

        CJNEA,#20,DO1

DO1:

JNC  DO2

MOVB,#2

        MULAB

        SJMPMEM

DO2:

   CJNEA,#50,DO3

DO3:

   JNC  MEM

        MOVB,#5

        MULAB

MEM:

   MOVFUNC,A             

        SJMP$

        END

X

Y

X

Y

15

2X=30=14H

50

X=50=32H

20

5X=100=64H

55

X=55=37H

25

5X=125=7DH

 

 

 

4-3外部RAM从2000H到2100H有一数据块,请编出将它们传送到外部RAM3000H到3100H区域的程序。

4-7  ORG0000H

MOVDPTR,#2000H

MOVP2,#30H

MOVR0,#00H

MOVR2,#0

LOOP:

MOVXA,@DPTR

MOVX@R0,A

INCDPTR

INCR0

DJNZR2,LOOP                ;0—FF--0

MOVXA,@DPTR                ;(DPTR)=2100H

INCP2                       ;31H

MOVX@

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

当前位置:首页 > PPT模板 > 其它模板

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

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