《单片机原理及接口技术修订本》部分习题与参考答案.docx

上传人:b****2 文档编号:24621285 上传时间:2023-05-29 格式:DOCX 页数:38 大小:61.20KB
下载 相关 举报
《单片机原理及接口技术修订本》部分习题与参考答案.docx_第1页
第1页 / 共38页
《单片机原理及接口技术修订本》部分习题与参考答案.docx_第2页
第2页 / 共38页
《单片机原理及接口技术修订本》部分习题与参考答案.docx_第3页
第3页 / 共38页
《单片机原理及接口技术修订本》部分习题与参考答案.docx_第4页
第4页 / 共38页
《单片机原理及接口技术修订本》部分习题与参考答案.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

《单片机原理及接口技术修订本》部分习题与参考答案.docx

《《单片机原理及接口技术修订本》部分习题与参考答案.docx》由会员分享,可在线阅读,更多相关《《单片机原理及接口技术修订本》部分习题与参考答案.docx(38页珍藏版)》请在冰豆网上搜索。

《单片机原理及接口技术修订本》部分习题与参考答案.docx

《单片机原理及接口技术修订本》部分习题与参考答案

《单片机原理及接口技术(修订本)》部分习题与参考答案

第1章绪论

1-2 什么叫单片机?

一个完整的单片机芯片至少有哪些部件?

答:

将微处理器(CPU)、存储器、定时/计数器及输入输出接口电路等部件集成在一块集成电路上,称为单片微型计算机,简称单片机。

一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。

1-5Intel公司的主要单片机产品分为哪几大系列?

各系列的区别何在?

答:

Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;

48系列的单片机在片内集成4位CPU,片内含有多种I/O接口,有的根据不同用途还配有许多专用接口,价格便宜,控制功能强。

51系列的单片机在片内集成8位CPU、片内RAM为128字节,ROM为4K字节,4个并行I/O口、2个16位定时/计数器、串行接口、5个中断源。

96系列单片机CPU为16位,片内RAM为232字节,ROM为8K字节,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理为8级。

1-6 叙述51子系列与52子系列的区别?

答:

51子系列包含8031/8051/8751三种型号,它们的基本组成、基本性能都相同,都具有一个8位CPU、片内数据存储器RAM128B、2个16位定时/计数器、有5个中断源,一个全双工串行接口,它们之间的区别在于片内程序存储器配置:

8031片内没有ROM,使用时需在片外接EPROM。

8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。

8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。

52子系列包含8032/8052/8752三种型号,52子系列与51子系列的区别在于:

片内ROM和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。

 

第2章MCS-51系列单片机的结构及原理

2-2 MCS-51单片机的

引脚有何功能?

在使用8031时

如何接法?

使用8751时

如何接法?

答:

引脚是片内外程序存储器的选择信号。

端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。

端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。

由于8031片内没有程序存储器,所以在使用8031时,

引脚必须接低电平。

2-4 MCS-51单片机的内部存储空间是怎样分配的?

答:

MCS-51单片机的内部存储空间分为数据存储器和程序存储器。

内部数据存储器:

共256字节单元,包括低128个单元和高128个单元。

低128字节又分成3个区域:

工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。

高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。

内部程序存储器:

在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。

2-5 如何从MCS-51单片机的4个工作寄存器组中选择当前工作寄存器组?

答:

MCS-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过PSW中的RS1和RS0来进行选择。

具体关系如下表:

 

RS1

RS0

当前寄存器组

0

0

第0组工作寄存器

0

1

第1组工作寄存器

1

0

第2组工作寄存器

1

1

第3组工作寄存器

 

2-6 内部RAM低128个单元是如何划分的?

答:

内部RAM低128个单元按用途分成3个区域:

工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)。

2-7 DPTR是什么寄存器?

它的作用是什么?

它由哪几个寄存器组成?

答:

DPTR是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器RAM中的数据进行操作。

DPTR由高位字节DPH和低位字节DPL组成。

2-8 什么是堆栈?

堆栈有何作用?

为什么在程序初始化时要对SP重新赋值?

答:

所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。

堆栈是在内存中专门开辟出来的按照“先进后出,后进先出”的原则进行存取的RAM区域。

堆栈的用途是保护现场和断点地址。

在8051单片机复位后,堆栈指针SP总是初始化到内部RAM地址07H。

从08H开始就是8051的堆栈区,这个位置与工作寄存器组1的位置相同。

因此,在实际应用中,通常要根据需要在程序初始化时对SP重新赋值,以改变堆栈的位置。

2-9 试述程序状态字寄存器PSW各位的含义。

答:

程序状态字寄存器PSW是8位寄存器,用于存放程序运行的状态信息。

CY(PSW.7):

进位标志位。

AC(PSW.6):

辅助进位标志位。

F0(PSW.5)、F1(PSW.1):

用户标志位。

RS1(PSW.4)、RS0(PSW.3):

工作寄存器组选择位。

OV(PSW.2):

溢出标志位。

P(PSW.0):

奇偶标志位。

2-10 P0、P1、P2、P3口的结构有何不同?

使用时要注意什么?

各口都有什么用途?

答:

P0口由一个所存器、两个三态输入缓冲器、场效应管、控制与门、反相器和转换开关组成;作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁存器写“1”;作为普通I/O口使用或低8位地址/数据总线使用。

P1口内没有转换开关,但有上拉电阻;只用作普通I/O口使用。

P2口比P1口多了一个转换控制开关;作为普通I/O口使用或高8位地址线使用。

P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功能。

上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。

2-11 请说出指令周期、机器周期、状态和拍的概念。

当晶振频率为12MHz、8MHz时,一个机器周期为多少微秒?

答:

指令周期:

执行一条指令所需要的时间。

机器周期:

CPU完成一个基本操作所需要的时间。

状态:

振荡脉冲经过二分频后,得到的单片机的时钟信号。

拍:

振荡脉冲的周期。

当晶振频率为12MHz时,一个机器周期为1μs;当晶振频率为8MHz时,一个机器周期为3μs。

2-12 什么是单片机复位?

复位后单片机的状态如何?

答:

在时钟电路工作后,只要在单片机的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。

复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除SP=07H,P0~P3口为FFH外,其余寄存器均为0。

 

第3章MCS-51系列单片机的指令系统

3-3 MCS-51系列单片机有哪几种寻址方式?

各种寻址方式所对应的寄存器或存储器寻址空间如何?

答:

MCS-51系列单片机提供了7种寻址方式:

(1)立即寻址:

操作数在指令中直接给出,立即数前面有“#”。

(2)直接寻址:

在指令中直接给出操作数地址。

对应片内低128个字节单元和特殊功能寄存器。

(3)寄存器寻址:

以寄存器的内容作为操作数。

对应的寄存器有:

R0~R7、A、AB寄存器和数据指针DPTR。

(4)寄存器间接寻址:

以寄存器的内容作为RAM地址,该地址中的内容才是操作数。

对应片内RAM的低128个单元采用R0、R1作为间址寄存器,片外RAM低256个单元可用R0、R1作为间址寄存器,整个64KB空间可用DPTR作为间址寄存器。

(5)变址寻址:

以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数地址。

对应片内、片外的ROM空间。

(6)相对寻址:

只在相对转移指令中使用。

对应片内、片外的ROM空间。

(7)位寻址:

对可寻址的位单独进行操作。

对应位寻址区20H~2FH单元的128位和字节地址能被8整除的特殊功能寄存器的相应位。

3-4 若访问特殊功能寄存器,可使用那些寻址方式?

答:

直接寻址方式。

3-5 若访问外部RAM单元,可使用那些寻址方式?

答:

寄存器间接寻址方式。

3-6       若访问内部RAM单元,可使用那些寻址方式?

答:

立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。

3-7       若访问内外程序存储器,可使用那些寻址方式?

答:

变址寻址方式

3-9外部数据传送指令有几条?

试比较下面每一组中两条指令的区别。

(1)MOVX A,@R1      ,MOVX A,@DPTR

(2)MOVX A,@DPTR   ,MOVX @DPTR,A

        (3)MOV  @R0,A      ,MOVX @R0,A

(4)MOVC A,@A+DPTR ,MOVX A,@DPTR

 

答:

外部数据传送指令有6条:

    MOVX  A,@DPTR            MOVX  @DPTR,A

    MOVX  A,@Ri              MOVX  @Ri,A

    MOVC  A,@A+DPTR          MOVC  A,@A+PC

(1)MOVX A,@R1              MOVX  A,@DPTR

   都是访问片外RAM,但二者寻址范围不同。

   前1条指令是对片外RAM低256个单元的“读”操作。

   后1条指令是对片外RAM64KB空间的“读”操作。

(2)MOVX A,@DPTR     MOVX  @DPTR,A

   访问空间相同,但数据传送方向不同。

   前1条指令是对片外RAM64KB空间的“读”操作。

   后1条指令是对片外RAM64KB空间的“写”操作。

(3)MOV      @R0,A       MOVX  @R0,A

   二者访问的空间不同。

   前1条指令是对片内RAM低128个单元的“写”操作。

   后1条指令是对片外RAM低256个单元的“写”操作。

(4)MOVC A,@A+DPTRMOVX  A,@DPTR

   二者访问的空间不同,寻址方式不同。

   前1条指令是变址寻址方式,对ROM操作。

   后1条指令是寄存器间接寻址方式,对片外RAM操作。

3-10 已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=EFH,试写出执行以下程序段后有关单元的内容。

MOV R0, #30H

MOV A,  @R0

MOV R1, A

MOV B,  @R1

MOV @R1, P1

MOV P2,   P1

MOV 10H, #20H

MOV 30H, 10H

答:

 R0←30H,(R0)=30H

A←((R0)),(A)=40H

R1←(A),(R1)=40H

B←((R1)),(B)=10H

(R1)←(P1),((R1))=(40H)=EFH

P2←(P1),(P2)=EFH

10H←20H,(10H)=20H

30H←(10H),(30H)=20H

结果:

(R0)=30H,(A)=40H,(R1)=40H,(B)=10H,(40H)=EFH,(P2)=EFH,(10H)=20H,(30H)=20H

3-11 试写出完成以下数据传送的的指令序列。

  

(1)R1的内容传送R0;

  

(2)片外RAM60H单元的内容送入R0;

  (3)片外RAM60H单元的内容送入片内RAM40H单元;

(4)片外RAM1000H单元的内容送入片外RAM40H单元;

  (5)ROM2000H单元的内容送入R2;

  (6)ROM2000H单元的内容送入片内RAM40H单元;

  (7)ROM2000H单元的内容送入片外RAM0200H单元。

答:

(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器A。

        MOVA,R1

        MOVR0,A

(2)片外RAM向片内RAM传送数据,不能直接进行,需要借助累加器A。

由于片外RAM是60H单元,地址小于FFH,所以间址寄存器使用Ri即可。

        MOV   R1,#60H

        MOVX  A,@R1

        MOV   R0,A

(3)  MOV   R1,#60H

        MOVX  A,@R1

        MOV   40H,A

(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。

        MOV   DPTR,#1000H

        MOVX  A,@DPTR

        MOV   R1,#40H

        MOVX  @R1,A

(5)ROM中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从ROM中读数据。

        MOV   DPTR,#2000H

        MOV   A,#00H

        MOVC  A,@A+DPTR

        MOV   R2,A

(6)  MOV   DPTR,#2000H

        MOV   A,#00H

        MOVC  A,@A+DPTR

        MOV   40H,A

(7)  MOV   DPTR,#2000H

        MOV   A,#00H

        MOVC  A,@A+DPTR

        MOV   DPTR,#0200H

        MOVX  @DPTR,A

3-12 试编程,将外部RAM1000H单元中的数据与内部RAM60H单元中的数据相互交换。

答:

片外RAM与片内RAM之间的数据传送不能直接进行,需要借助累加器A。

数据交换需要使用数据交换指令XCH。

        MOV   DPTR,#1000H

        MOVX  A,@DPTR

        XCH   A,60H

        MOVX  @DPTR,A

3-14 已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,试写出各条指令的执行结果,并说明程序状态字的状态。

(1)XCH A,R1                

(2)XCH A, 40H

(3)XCH A,@R1               (4)XCHD A,@R1

(5)SWAP A                    (6)ADD A,  R1

(7)ADD  A, 40H            (8)ADD A, #40H

(9)ADDC A, 40H           (10)SUBB A,40H

(11)SUBB A, #40H

答:

(1)结果:

(A)←→(R1),(A)=40H,(R1)=5BH,(PSW)=81H

(2)结果:

(A)←→(40H),(A)=C3H,(40H)=5BH,(PSW)=80H

(3)结果:

(A)←→((R1)),(A)=C3H,((R1))=(40H)=5BH,(PSW)=80H

(4)结果:

(A)0~3←→((R1))0~3,(A)=53H,((R1))=(40H)=CBH,(PSW)=80H

(5)结果:

(A)0~3←→(A)4~7,(A)=B5H,(PSW)=81H

(6)结果:

A←(A)+(R1),(A)=9BH,(PSW)=05H

(7)结果:

A←(A)+(40H),(A)=1EH,(PSW)=80H

(8)结果:

A←(A)+40H,(A)=9BH,(PSW)=05H

(9)结果:

A←(A)+(40H)+CY,(A)=1FH,(PSW)=81H

(10)结果:

A←(A)-(40H)-CY,(A)=97H,(PSW)=85H

(11)结果:

A←(A)-40H-CY,(A)=1AH,(PSW)=01H

3-26 已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,试写出各条指令的执行结果,并说明程序状态字的状态。

(1)XCH A,R1                

(2)XCH A, 40H

(3)XCH A,@R1               (4)XCHD A,@R1

(5)SWAP A                    (6)ADD A,  R1

(7)ADD  A, 40H            (8)ADD A, #40H

(9)ADDC A, 40H           (10)SUBB A,40H

(11)SUBB A, #40H

答:

指令LJMP    addr16是长转移指令,指令中提供了16位目的地址,寻址范围是64KB。

指令AJMP    addr11是绝对转移指令,指令中11位目的地址,其中a7~a0在第二字节,a10~a8则占据第一字节的高3位,寻址范围是与PC当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2K的区域内。

3-27 试分析以下两段程序中各条指令的作用。

程序执行完将转向何处?

   

(1)MOV  P1,#0CAH

         MOV  A,#56H                                               

         JB   P1.2,L1                                                

         JNB ACC.3,L2                                                         

           …                                                                         

L1:

┇                                                               

L2:

┇                                                               

   

(2)MOV  A,#43H                                                

         JB  ACC.2,L1                                                

         JBC ACC.6,L2                                                

          …                                                            

L1:

┇                                                       

L2:

┇           

答:

(1)    MOV   P1,#0CAH        ;P1←CAH,P1=CAH=11001010B

        MOV   A,#56H      ;A←56H,A=56H=01010110B

        JB    P1.2,L1         ;若P1.2=1,则转移至L1

        JNB   ACC.3,L2        ;若ACC.3=0,则转移至L2

        …

L1:

    …

L2:

    …

执行完本段程序后将转移至L2,因为P1.2=0,ACC.3=0,所以转至L2。

(2)    MOV   A,#43H      ;A←43H,A=43H=01000011B

        JB    ACC.2,L1        ;若ACC.2=1,则转移至L1

        JBC   ACC.6,L2        ;若ACC.6=1,则转移至L2,同时将ACC.6清零

        …

L1:

    …

L2:

    …

执行完本段程序后将转移至L2,因为ACC.2=0,ACC.6=1,所以转至L2,并且将ACC.6清零。

 

第4章汇编语言程序设计

   4-3 存放在内部RAM的DATA单元中的变量X是一个无符号整数,试编程计算下面函数的函数值并存放到内部RAM的FUNC单元中。

                         

答:

         ORG   0300H

        MOV   A,DATA

        CJNE  A,#20,LOP1

LOP1:

  JC    LOP3

        CJNE  A,#50,LOP2

LOP2:

  JC    LOP4

        MOV   B,#1

        LJMP  LOP5

LOP3:

  MOV   B,#2

        LJMP  LOP5

LOP4:

  MOV   B,#5

LOP5:

  MUL   AB

        MOV   FUNC,A

        RET

4-5 某单片机应用系统有4×4键盘,经键盘扫描程序得到被按键的键值(00H~0FH)存放在R2中,16个键的键处理程序入口地址分别为KEY0、KEY1、KEY2、…、KEY15。

试编程实现,根据被按键的键值,转对应的键处理程序。

答:

  ORG   0500H

        MOV   DPTR,#JPTAB

        MOV   A,R2

        RL    A

        JMP   @A+DPTR

 

JPTAB:

 AJMP  KEY0

        AJMP  KEY1

        AJMP  KEY2

        ……

        AJMP  KEY15

KEY0:

  …

KEY1:

  …

KEY2:

  …

 ……

KEY15:

 …

4-6 试编程将片内40H~60H单元中内容传送到外部RAM以2000H为首地址的存储区中。

答:

  ORG   0600H

        MOV   R0,#40H

        MOV   DPTR,#2000H

        MOV   R7,#21H

LOOP:

  MOV   A,@R0

        MOVX  @DPTR,A

        INC   

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

当前位置:首页 > 农林牧渔 > 林学

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

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