西华大学单片机复习题集答案更全.docx

上传人:b****8 文档编号:28864658 上传时间:2023-07-20 格式:DOCX 页数:48 大小:273.09KB
下载 相关 举报
西华大学单片机复习题集答案更全.docx_第1页
第1页 / 共48页
西华大学单片机复习题集答案更全.docx_第2页
第2页 / 共48页
西华大学单片机复习题集答案更全.docx_第3页
第3页 / 共48页
西华大学单片机复习题集答案更全.docx_第4页
第4页 / 共48页
西华大学单片机复习题集答案更全.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

西华大学单片机复习题集答案更全.docx

《西华大学单片机复习题集答案更全.docx》由会员分享,可在线阅读,更多相关《西华大学单片机复习题集答案更全.docx(48页珍藏版)》请在冰豆网上搜索。

西华大学单片机复习题集答案更全.docx

西华大学单片机复习题集答案更全

西华大学---单片机复习题集--答案更全

西华大学单片机习题

一.填空

1.在MCS-51单片机中,若采用6MHz晶振,则1个机器周期为2us。

2.若A中的内容为63H,则标志位P的值为0。

3.MCS-51单片机复位后,R4对应的存储单元的地址为04H,若RS1=1,RS0=0,R4对应的存储单元地址又为14H。

4.使用8031时,需将

接低电平。

5.MCS-51单片机程序存储器的寻址范围为64KB,数据存储器的寻址范围为0000H~FFFFH。

6.11根地址线可以寻址2^11(2KB)个存储单元,16KB存储单元需要14根地址线。

7.写出下列每条指令源操作数的寻址方式:

MOVA,R0寄存器寻址;MOVA,@R0寄存器间接寻址,

MOVXA,@DPTR基址寄存器间接

(C)。

(A)自动进行的(B)通过传送指令进行的

(C)通过加1指令进行的(D)通过减1指令进行的

4.以下有关PC和DPTR的描述中错误的是(C)。

(A)DPTR是可以访问的而PC是不能访问的

(B)它们都是16位的寄存器(C)它们都有自动加1功能

(D)DPTR可以分为两个8位的寄存器使用,但PC不能

5.PC的值是(C)。

(A)当前正在执行指令前一条指令的地址

(B)当前正在执行指令的地址

(C)当前正在执行指令后一条指令的地址

(D)控制器中指令寄存器的地址

6.假定堆栈指针的值为39H,在进行了一条子程序调用指令后,SP的值为(C)。

(A)40H(B)3AH

(C)3BH(D)41H

7.在MCS-51单片机中,下列关于地址线的说法正确的是(C)。

(A)具有独立的专用的地址线(B)由P0口和P1口的口线作地址线

(C)由P0口和P2口的口线作地址线(D)由P1口和P2口的口线作地址线

8.MCS-51单片机在寄存器间接寻址方式中,寄存器中存放的是(B)。

(A)操作数(B)操作数地址

(C)转移地址(D)地址偏移量

9.对程序存储器的读操作,只能使用(D)。

(A)MOV指令(B)PUSH指令

(C)MOVX指令(D)MOVC指令

10.下列算术运算指令后可以进行十进制调整的是(C)。

(A)加法和减法(B)乘法和除法

(C)只有加法(D)只有减法

11.下列有关MCS-51单片机中断优先级控制的叙述中,错误的是(D)。

(A)低优先级不能中断高优先级,但高优先级能中断低优先级

(B)同级中断不能嵌套

(C)同级中断请求按请求的先后顺序执行

(D)多个同级的中断请求同时申请,将形成阻塞,系统无法相应

12.在MCS-51单片机中,需要外加电路实现中断撤除的是(D)。

(A)定时中断(B)脉冲触发方式的外部中断

(C)串行中断(D)电平触发方式的外部中断

13.CPU进行中断查询,查询的是(B)。

(A)中断请求信号(B)中断标志位

(C)中断允许控制位(D)外中断触发方式控制位

14.在MCS-51单片机的下列寄存器中,与定时器/计数器控制无关的是(C)。

(A)TCON(B)TMOD(C)SCON(D)IE

15.MCS-51单片机定时器/计数器在工作方式0下,其计数范围是(A)。

(A)1~8192(B)0~8191(C)0~8192(D)1~65536

三.简答题

1.简述MCS-51单片机P0~P3口的功能。

答:

P0:

该端口为漏极开路的8位双向口,它为外部低8位地址线和8位数据线复用端口,驱动能力为8个LSTTL负载。

P1:

它是一个内部带上拉电阻的8位准双向口I/O口,P1的驱动能力为4个LSTTL负载。

P2:

它是一个内部带上拉电阻的8位准双向口I/O口,P2的驱动能力也为4个LSTTL负载。

在访问外部存储器是作为8位地址线。

P3:

为内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,每一个引脚都具有第二功能。

2.MCS-51单片机的

引脚分别输入压力超限及温度超限中断请求信号,定时器/计数器0作定时检测的定时时钟,现要求中断优先权排队的顺序为:

压力超限→温度超限→定时检测,请确定IE、IP的值。

答:

D7

D6

D5

D4

D3

D2

D1

D0

EA

-

-

ES

ET1

EX1

ET0

EX0

1

0

0

0

0

1

1

1

D7

D6

D5

D4

D3

D2

D1

D0

-

-

-

PS

PX1

PX1

PT0

PX0

0

0

0

0

0

1

0

1

(1)中断控制寄存器各位定义:

D7:

CPU中断允许位EA,应设为1

D6:

未定义,可为随意量,取为0

D5:

定时器/计数器2中断允许位ET2,可取0

D4:

串行口中断允许位ES,可取0

D3:

定时器/计数器1中断允许位ET1,应取0

D2:

外部中断1中断允许位EX1,应取1

D1:

定时器/计数器0中断允许位ET0,应取1

D0:

外部中断0中断允许位EX0,应取1

故IE=87H

(2)由硬件确定的同一优先级中断源的优先权排队顺序如下:

由题意,根据IP各位的定义:

D7:

未定义,可为随意量,取为0

D6:

未定义,可为随意量,取为0

D5:

定时器/计数器2优先权选择位PT2,可取0

D4:

串行口优先权选择位PS,可取0

D3:

定时器/计数器1优先权选择位PT1,应取0

D2:

外部中断1优先权选择位PX1,应取1,应接温度超限信号

D1:

定时器/计数器0优先权选择位PT0,由于其优先级最低,所以应取0

D0:

外部中断0优先权选择位PX0,应取1,应接压力超限信号。

故IP=05H

综上:

IE=87H;IP=05H

3.常用的I/O端口编址有哪两种方式?

它们各有什么特点?

MCS-51单片机采用的是何种编址方式?

答:

一.独立编址方式:

独立编址方式就是I/O地址空间和存储器地址空间分开编址。

独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。

但是,却需要设置一套专门的读写I/O的指令和控制信号。

二.统一编址方式:

这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。

统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。

MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。

4.简述数码管动态显示的工作原理。

答:

静态显示方式时,各位的共阴极或共阳极连接在一起并接地,每位的断码线分别与一个8位的I/O口锁存器输出相连。

如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O锁存器锁存的段码输出将维持不变,直到送人另一个字符的段码为止。

动态显示方式是指无论在任何时刻只有一个LED数码管处于显示状态,即单片机采用’扫描’方式控制各个数码管轮流显示。

5.指出下列指令中的错误指令:

MOVA,P1MULA,BMOVA,@R2

MOVR1,R2SUBBA,@R0MOVXA,@A+PC

CJNER7,#77H,$INCDPTRDECDPTR

PUSHACCPUSHDPTRPOPR0

XCHDA,R3XCHA,R3MOVCA,@A+DPTR

答:

错误的指令如下:

MOVA,P1(p1不是操作数)

MULA,BAB中应无“,”

MOVA,@R2MOVA,@Ri其中i=0或1

MOVR1,R2不能从寄存器把数据在送到寄存器中去

DECDPTRDEC不能操作DPTR

PUSHACCPUSH只有PUSHdirect指令

PUSHDPTRPUSH只有PUSHdirect指令

POPR0POP只有PUSHdirect指令

XCHDA,R3XCHD只有XCHDA,@Ri指令

1.8051单片机的指令系统有何特点?

答:

8051的指令系统由111条指令组成。

如果按字节数分类,有49条单字节指令46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,以单周期指令为主。

8051的指令系统具有以下特点:

(1)存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O口中的内容传送到内部RAM单元中而不必经过累加器A或工作寄存器Rn。

这样可以大大提高传送速度和缓解累加器A的瓶颈效应。

(2)用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。

这为编成翻译算法提供了方便。

(3)在算术运算指令中设有乘法和除法指令

(4)指令系统中一些对I/O口进行操作的指令具有“读——修改——写”的功能。

这一功能指:

在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2度入内部,进行修改、改变,然后重新写到锁存器中去。

这种类型指令包含所有的逻辑操作和位操作指令。

(5)8051单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。

布尔操作类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。

2.8051单片机指令系统按功能可分为几类?

具有几种寻址方式?

它们的寻址范围如何?

答:

MCS-51单片机指令系统按功能可分为5类:

(1)数据传送指令

(2)算术运算指令

(3)逻辑运算和移位指令

(4)控制转移指令

(5)位操作指令

MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:

 寻址方式

使用的变量

    寻址范围

立即寻址

程序存储器

直接寻址

内部RAM低128个字节;

特殊功能寄存器SFR

寄存器寻址

R0~R7;A、B、DPTR、C

寄存器间接寻址

@R0、@R1、SP

内部RAM、堆栈指针SP

@R0、@R1、@DPTR

外部RAM

变址寻址

@A+PC、@A+DPTR

程序存储器

相对寻址

PC+偏移量

程序存储器

位寻址

内部RAM低128B位寻址区

可位寻址的特殊功能寄存器位

3.访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式?

答:

访问特殊功能寄存器,应采用直接寻址、位寻址方式。

访问外部数据存储器,应采用寄存器间接寻址方式。

在0~255B范围内,可用寄存器R0、R1间接寻址:

MOVXA,@R0或MOVXA,@R1

MOVX@R0,A或MOVX@R1,A

在0~64KB范围内,可用16位寄存器DPTR间接寻址:

MOVXA,@DPTR

MOVX@DPTR,A

4.“DAA”指令的作用是什么?

怎样使用?

答:

这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。

在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。

用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DAA”指令即可。

5.片内RAM20H~2FH单元中的128个位地址与直接地址00H~7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?

答:

虽然内部RAM位寻址区的位地址范围00H~7FH与低128个单元的单元地址范围00H~7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。

位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。

MOVC,bit

MOVbit,C

CLRbit

SETBbit

CPLbit

ANLC,bit

ANLC,/bit

JBbit,rel

JNBbit,rel

6.8051单片机指令系统中有长跳转LJMP,长调用LCALL指令,为何还没有设置了绝对跳转AJMP,绝对调用ACALL指令?

在实际使用是应怎样考虑?

答:

在实际应用中,可从寻址范围和指令长度两个方面来选择长跳转指令LJMP和短跳转指令AJMP、长调用指令LCALL和短调用指令ACALL。

长跳转LJMP在64KB范围内转移,而短跳转AJMP只能在2KB空间转移。

长调用LCALL调用位于64KB程序空间的子程序,而短调用ACALL调用位于2KB程序空间范围的子程序。

AJMP、ACALL指令代码长度为2个字节;LJMP、LCALL指令代码长度为3个字节。

7.SJMP,AJMP和LJMP指令在功能上有何不同?

答:

指令的转移范围不同。

SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。

8.MOVCA,@DPTR与MOVXA,@DPTR指令有何不同?

答:

指令的转移范围不同。

SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。

9.在“MOVCA,@A+DPTR”和“MOVCA,@A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?

使用中有何不同?

答:

使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。

使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。

10.设片内RAM中的(40H)=50H,写出执行下列程序段后寄存器A和R0,以及片内RAM中50H和51H单元的内容为何值?

MOVA,40H

MOVR0,A

MOVA,#00

MOV@R0,A

MOVA,#30H

MOV51H,A

MOV52H,#70H

答:

结果为:

(A)=30H(R0)=50H(50H)=00H(51H)=30H

11.设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。

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

答:

结果为:

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

(31H)=0FFHDPTR=2410H  SP=60H

12.在8051的片内RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。

分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。

MOVA,40H

MOVR0,A

MOVP1,#0F0H

MOV@R0,20H

MOV50H,R0

MOVA,@R0

MOVP2,P1

答:

指令源操作数的寻址方式执行指令后的结果

MOVA,40H直接寻址(A)=50H

MOVR0,A寄存器寻址(R0)=50H

MOVP1,#80H立即寻址(P1)=80H

MOV@R0,20H寄存器间接寻址(50H)=30H

MOVDPTR,#2000H立即寻址(DPTR)=2000H

MOV40H,30H直接寻址(40H)=40H

MOVR0,30H直接寻址(R0)=40H

MOVD0H,R0直接寻址(D0H)=40H

MOV10H,#10H立即寻址(10H)=10H

MOVA,@R0寄存器间接寻址(A)=50H

MOVP2,P1寄存器寻址(P2)=80H

13.完成以下的数据传送过程。

(1)R1的内容传送到R0。

(2)片外RAM20H单元的内容送R0。

(3)片外RAM20H单元的内容送片内RAM20H

(4)片外RAM1000H单元的内容送片内RAM20H

(5)片外RAM20H单元的内容送R0。

(6)片外RAM2000H单元的内容送片内RAM20H

(7)片外RAM20H单元的内容送片外RAM20H

答:

(1)R1的内容传送到R0;

MOVA,R1

MOVR0,A

(2)片外RAM20H单元内容送R0;

MOVDPTR,#0020H

MOVXA,@DPTR

MOVR0,A

(3)片外RAM20H单元的内容送片内RAM20H单元;

MOVDPTR,#0020H

MOVXA,@DPTR

MOV20H,A

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

MOVDPTR,#1000H

MOVXA,@DPTR

MOV20H,A

(5)ROM2000H单元的内容送R0单元;

MOVA,#00H

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOVR0H,A

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

MOVA,#00H

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOV20H,A

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

MOVA,#00H

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOVDPTR,#0020H

MOVX@DPTR,A

14.设有两个4位BCD码,分别存放在片内RAM的23H,22H单元和33H,32H单元中,求它们的和,并送入43H,42H单元中去。

(以上均为低位字节,高位在高字节)。

答:

ORG0000H

LJMPSTART

ORG0030H

START:

MOVA,22H

ADDA,32H

DAA

MOV42H,A

MOVA,23H

ADDCA,33H

DAA

MOV43H,A

SJMP$

END

15.编程将片内RAM的40H~60H单元中内容送到片外RAM以3000H开始的单元中。

答:

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVR7,#20H

MOVR1,#40H

MOVDPTR,#3000H

LOOP:

MOVA,@R1

MOVX@DPTR,A

INCR1

INCDPTR

DJNZR7,LOOP

SJMP$

END

16.编程计算片内RAM区30H~37H的8个单元中数的算术平均值,结果存在3AH单元中。

答:

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVR0,#30H

MOVR1,#00H

MOVR2,#00H

MOVR3,#07H

LP2:

MOVA,@R0

ADDA,R2

MOVR2,A

JNCLP1

INCR1

LP1:

INCR0

DJNZR3,LP2

MOVR3,#03H

LP3:

CLRC

MOVA,R1

RRCA

MOVR1,A

MOVA,R2

RRCA

MOVR2,A

DJNZR3,LP3

MOV3AH,R2

SJMP$

END

17.编写计算下式的程序,设乘积的结果均小于255,A,B值分别存放在片外RAM的2001H和2002H单元中,结果存于2000H单元中。

(A+B*(A+B)+10若(A+B)*(A+B)〈10

Y=(A+B)*(A+B)若(A+B)*(A+B)=10

(A+B)*(A+B)-10若(A+B)*(A+B)〉10

答:

ORG0000H

LJMPSTART

ORG0030H

START:

MOVDPTR,#2001H

MOVXA,@DPTR

MOV30H,A

MOVDPTR,#2002H

MOVXA,@DPTR

ADDA,30H

MOVB,A

MULAB

MOVR1,A

CJNEA,#10,NET1

MOVDPTR,#2000H

MOVX@DPTR,A

SJMPNET3

NET1:

JNCNET2

CLRC

MOVA,R1

ADDA,#10

MOVDPTR,#2000H

MOVX@DPTR,A

SJMPNET3

NET2:

MOVA,R1

SUBBA,#10

MOVDPTR,#2000H

MOVX@DPTR,A

NET3:

SJMP$

END

19.设有100个有符号数,连续存放在片外RAM以2200H为首地址的存储区中,试片成统计其中正数|、负数、零的个数。

答:

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVR2,#100

MOVR3,#00H

MOVR4,#00H

MOVR5,#00H

MOVDPTR,#2000H

LOOP:

MOVXA,@DPTR

CJNEA,#00H,NET1

INCR3

INCDPTR

DJNZR2,LOOP

SJMPNET3

NET1:

JCNET2

INCR4

INCDPTR

DJNZR2,LOOP

SJMPNET3

NET2:

INCR5

INCDPTR

DJNZR2,LOOP

NET3:

SJMP$

END

22.试编一查表程序,从首地址为2000H、长度为9FH的数据块中找出第一个ASCII码A,将其地址送到20A0H和20A1H单元中。

答:

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

LCALLSUBONE

AJMP$

;SUBONEusedptr,a,30h,31h

SUBONE:

MOVDPTR,#2000H

LOOP:

MOVXA,@DPTR

XRLA,#41H

JNZTT

MOVA,30H

MOVDPTR,#20A0H

MOVX@DPTR,A

MOVDPTR,#20A1H

MOVA,31H

MOVX@DPTR,A

RET

TT:

INCDPTR

MOV30H,DPH

MOV31H,DPL

MOVA,31H

CJNEA,@00H,LOOP

RET

END

 

四.阅读程序

1.下列程序段经汇编后,从2000H开始的各有关程序存储器单元的内容是什么?

ORG2000H

TAB:

EQU2010H

DB10H,10

DW2100H

ORG2050H

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

当前位置:首页 > 高等教育 > 管理学

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

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