单片机练习题Word文档格式.docx

上传人:b****5 文档编号:16213625 上传时间:2022-11-21 格式:DOCX 页数:14 大小:22.26KB
下载 相关 举报
单片机练习题Word文档格式.docx_第1页
第1页 / 共14页
单片机练习题Word文档格式.docx_第2页
第2页 / 共14页
单片机练习题Word文档格式.docx_第3页
第3页 / 共14页
单片机练习题Word文档格式.docx_第4页
第4页 / 共14页
单片机练习题Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机练习题Word文档格式.docx

《单片机练习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机练习题Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

单片机练习题Word文档格式.docx

2.MCS-51的堆栈区在A中。

A.内部RAMB.外部RAMC.内部ROMD.外部ROM

3.MCS-51有4个三种不同的寄存器。

其中B的寻址范围是00H—7FH/FFH。

A.内部ROMB.内部RAMC.外部ROMD.外部RAM

4.对8751编程时,其片内所需12位地址码是由C端口输入的。

A.P1.3-P1.0和P0B.P2.3-P2.0和P0

C.P2.3-P2.0和P1D.P3.3-P3.0和P2

5.对8751校验时,其读出数据由A端口输出。

A.P0B.P1C.P2D.P3

6.在8031的CPU中,驱动力最大的端口是A。

7.8031执行MOVXA,@DPTR指令时,需要两次访问内存,访问次序为B。

A.外部RAM和外部RAMB.外部ROM和外部RAM

C.外部RAM和外部ROMD.外部ROM和外部ROM

8.8031在执行MOVCA,@A+PC指令时,需要两次访问内存,其次序是D。

9.如下引脚中,C是外部ROM存储器的选通线。

A.RD和WRB.EAC.PSEND.ALE

10.如下两条指令执行后,累加器A和PSW中的内容是A。

MOVA,#19H

ADDA,#66H

A.7FH和01HB.85H和01HC.85H和03HD.7FH和03H

第三章MCS-51单片机指令系统

1.填空题

1.MCS-51指令系统中的指令采用单地址指令格式,每条指令均由操作码和操作数/操作数地址等字段组成。

其中,操作码字段是必选段,下地址字段隐含在程序计数器PC中。

2.指令码中含有操作数本身的指令,其寻址方式比为立即型寻址。

3.指令码中含有操作数所在寄存器号的指令,其源操作数的寻址方式一定是寄存器间接寻址。

4.在SJMPrel指令中,以其在只读存储器中始址为参考点可以在-126—+129范围内寻址。

5.MCS-51有两条查表指令,指令的通式是MOVCA,@A+DPTR和MOVCA,@A+PC。

6.只能读外部RAM零页单元中的内容的指令时MOVXA,@Ri。

7.除INCSP指令外,还有PUSHdirect和调用指令执行时可以使SP中内容加1。

8.除DECSP指令外,还有POPdirect和RET/RETI(或返回)指令可以使SP中内容加1。

9.不带Cy的移位指令有两条,一条是RLA,另一条是RRA。

10.能对PC中内容运算处理为目的的指令,必然属于控制转移类指令。

11.MCS-51有两条可以根据累加器A中的内容为判断条件的转移指令,这两条指令时JZrel和JNZrel。

12.MCS-51有两条减1条件转移指令,通常在循环程序设计中使用。

该指令通式是:

DJNZRn,rel和DJNZdirect,rel。

13.调用指令的作用有两个:

一个是断点地址入栈;

另一个是子程序始址送PC。

14.返回指令的作用是:

断点地址(栈内)恢复到PC。

15.MCS-51有两条可以根据Cy中内容为条件的转换指令,它们是JCrel和JNCrel。

16.MCS-51有三条可以根据位地址中内容为判断条件的转移指令,它们是:

JBbit,rel、JNBbit,rel和JBCbit,rel。

1.MCS-51中无D指令。

A.单字节B.双字节C.三字节D.四字节

2.MCS-51中无C指令。

A.单机器周期B.双机器周期C.三机器周期D.四机器周期

3.如下指令中的源操作数,B是直接寻址。

A.MOVA,#20HB.MOVA,20HC.MOVA,R0D.MOVA,@R0

4.如指令中的源操作数,A是位寻址。

A.SETB20HB.MOVA,20HC.MOVA,#20HD.DJNZ20H,rel

5.如下指令中,C指令的源操作数寻址方式不属于变址寻址。

A.MOVCA,@A+PCB.MOVCA,@A+DPTR

 C.MOVXA,@DPTRD.JMP@A+DPTR

6.如下指令中,D是合法指令。

A.MOVR1,R0B.MOV@R0,R5

C.MOV#20H,AD.MOV20H,#20H

7.C指令的转移范围最小。

A.LJMPaddr16B.AJMPaddr11

C.SJMPrelD.JMP@A+DPTR

8.如下指令中,B指令是以判断Cy中内容为条件的转移指令。

A.JZrelB.JCrelC.JBbit,relD.JBCbit,rel

9.A是字节型指令。

A.CLRAB.CLRCC.CLR20HD.SETBC

10.如下指令中,C指令执行后均能使bit中内容始终为零。

A.JBbit,relB.JNBbit,relC.JBCbit,rel

11.如下指令中,D指令的寻址方式是变址寻址。

A.LJMPaddr16B.AJMPaddr11

12.如下指令中,B类指令执行时均能使SP内容加1.

A.XCHA,R2B.PUSHACC

RLALCALLSQR

C.DJNZR2,LOOPD.ADDA,#20H

CJNEA,R2,NEXTSUBBA,R2

第四章汇编语言程序设计

1.机器语言有两种形式,一种是二进制形式;

另一种是16进制形式,二进制形式的机器语言可以为CPU直接执行。

2.汇编语言是一种符号语言,因机器而异,所编程序需汇编成机器语言才能直接为CPU执行。

其优点是可直接操作到机器内部的寄存器和RAM单元。

3.MCS-51的汇编语句采用典型的四分段格式:

标号段、操作码段、操作数段和注释段。

其中,操作码段是必选段,用来指示CPU执行何种操作。

4.注释段以分号开头,指示指令段或程序段的作用;

标号段是以大写字母开头的字母数字串(最多8个),标号段中禁止使用保留字和寄存器号作标号。

5.MCS-51宏汇编中,有两条可以为变量赋值的伪指令,他们是EQU和DATA/XDATA。

6.如下程序为汇编程序识别和执行后,(1500H)=00H,(1501H)=45和(1502H)=41H。

ORG1500H

TAB:

DW45

DB'

A'

7.可以定义存储空间的伪指令是DS。

8.可以定义位地址的伪指令是BIT。

9.用户程序编写好后,必须汇编成机器码才能为机器执行。

MCS-51源程序的汇编有人工汇编和机器汇编两种,但原理相同。

机器汇编需要汇编程序对用户程序进行两次扫描才能完成。

第一次扫描主要是确定每条指令的指令码,第二次扫描是计算机指令码的标号值和地址偏移量。

10.在机器汇编的第二次扫描中,标号值或地址偏移量的计算公式是地址偏移量=目的地址-转移指令始址-转移指令字节数。

11.简单程序又称顺序程序或直线程序,有时又称为无分支程序,其特点是程序中不含有转移指令。

12.分支程序有时也称为散转程序,其特点是程序中含有无条件转移指令。

13.MCS-51循环程序有循环初始化、循环体和循环结束处理等三部分组成。

其中循环初始化程序段中通常要给循环变量(地址指针)和循环计数器赋初值;

循环体中必定含有一条减一条件判断指令。

14.循环程序有两种类型:

一是先判断后处理,二是先处理后判断。

15.查表指令有两条:

一条是用PC作为基址来查表,另一条是用DPTR作为基址来查表,但查表原理相同。

后者在查表前DPTR中应放有被查表的始址,前者在查表时PC中的基址不等于被查表始址,故它在查表指令前必须有一条ADDA,#date指令,以便使PC+date=被查表始址。

16.子程序设计时应注意四点:

一是子程序前要冠以标号,标号应以子程序任务定名;

二是主程序中要有一条调用指令才能转入子程序执行;

三是子程序中必须安排一条返回指令才能使CPU回到主程序主程序执行;

四是CPU转入子程序或从子程序返回主程序前都需要有参数传递。

17.带符号补码数/或减运算的算法:

一是先对两数进行符号数扩展;

二是对符号数扩展后的两数进行加/减运算。

18.带符号补码数的乘除法算法:

一是符号位单独处理;

二是把参加运算的两数变成绝对值;

三是对绝对值进行乘除运算;

四是把运算结果变成补码。

2.指出下列程序的运行结果

1.已知:

(20H)=X(X≤50)和A=00H,如下程序为CPU执行后的DA中的内容是什么?

ORG0100H

MOVDPTR,#1000H

JMP@A+DPTR

DONE:

MOVDA,A

SJMP$

ORG1000H

MOVA,20H答案:

(DA)=2X

RLA

SJMPDONE

ORG1080H

MOVA,20H

SJMPDONE

END

2.上例中,若累加器A中内容为80H,则重新执行上述程序后DA中内容是什么?

MOVA,20H

RLA答案:

(DA)=4X

3.已知:

(71H)=X,SP=71H和外部RAM的(2000H)=Y。

试问如下程序执行后外部RAM的2500H单元中内容是什么?

(X和Y均不超过63)。

ORG0300H

MOVDPTR,#2000H

MOVXA,@DPTR

MOVR2,A

POPACC

ADDA,R2答案:

(2500H)=2(X+Y)

MOVDPTR,#2500H

MOVX@DPTR,A

4.已知:

a和b是两个小于8的二进制数,分别放在DA和DB单元。

试问如下程序执行后DC单元中的内容是什么?

ORG0400H

MOVA,DA

ACALLSQR

MOVR1,A

MOVA,DB

ACALLAQR

ADDA,R1

MOVR1,A

MOVB,DB

MULAB

MOVDC,A

SQR:

INCA

MOVCA,@A+PC

RET

SQRTAB:

DB0,1,4,9,16,25,36,49,64,81

END答案:

(DC)=a2+2ab+b2

5.如下程序执行后累加器A和70H单元中内容是什么?

ORG0500H

MOVA,#0AAH

MOVDPTR,#0070H

MOVR0,#70H答案:

A=BAH(70H)=ABH

MOV@R0,A

MOVA,#0BBH

XCHDA,@R0

6.已知:

外部RAM(1000H)=X,如下程序执行后20H和SP中的内容是什么?

(X≤85)

ORG0600H

MOVSP,#60H

MOVB,A

(20H)=3XSP=60H

ADDA,B

MOV61H,A

INCSP

POP20H

7.已知:

内部RAM(20H)=FFH(-1),如下程序执行后30H单元中内容是什么?

(X≤127)

ORG0700H

JNBACC.7,NEXT

MOV30H,#X答案:

(30H)=X

NEXT:

MOV30H,#2X

8.已知:

内部RAM(20H)=90H,如下程序执行后30H单元中的内容是什么?

ORG0800H

ADDA,#80H

MOV30H,#X答案:

(30H)=2X

9.如下程序执行到MOV30H,#X时,71H、72H和SP中的内容是什么?

ORG0900H

MOVSP,#70H

LCALLSQR答案:

(71H)=断点地址高8位

SJMP$(72H)=断点地址低8位

MOV30H,#XSP=72H

10.如下程序执行后会产生什么效果?

为什么?

ORG0A00H

MOVDPTR,#2000H

MOVRO,#20H

LOOP:

MOVR2,#0AH

MOVXA,@DPTR

MOV@R0,A

INCDPTR

INCR0

DJNZR2,LOOP

答案:

该程序执行后会进入死循环。

因为R2中内容始终都不会为0.

 

3.编程题

1.从外部RAM的SOUCE(二进制8位)开始有一数据块,该数据块以字符$结尾。

请编写程序,把他们传送到以内部RAM的DIST为起始地址的区域($字符也要传送,它的ASCII码为24H)。

SOUCEDATA30H

DISTDATA20H

MOVR0,#SOUCE;

R0←源地址

MOVR1,#DIST;

R0←目标地址

MOVXA,@R0;

A←源数

CJNEA,#24H,NEXT;

若A<

>

$,则NEXT

MOV@R1,A;

传送$符

MOV@R1,A;

传送数据

INCR0;

源指针加1

INCR1;

目的指针加1

SJMPLOOP

2.外部RAM从2000H到2100H有一数据块,请编写将他们传送到从3000H到3100H区域的程序。

MOVDPTR,#3000H;

目标地址送3000H

PUSHDPL;

目标地址送栈

PUSHDPH

MOVDPTR,#2000H;

源地址送DOTR

MOVR2,#01H;

块长送R3R2

MOVR3,#01H

MOVXA,@DPTR;

源数送A

MOVR5,DPH;

源针加1送R5R4

MOVR4,DPL

POPDPH;

目标地址送DPTR

POPDPL

MOVX@DPTR,A;

送数

INCDPTR;

目标地址加1

送栈

MOVDPH,R5;

源针送DPTR

MOVDPL,R4

CLRC;

Cy清零

MOVA,R2;

R2-1送R2

SUBBA,#01H

MOVA,R3;

R3-Cy送R3

SUBBA,#00H

MOVR3,A

ORLA,R2;

R3VR2送A

JNZLOOP;

R2VR3<

0,则LOOP

SJMP$;

否则,停机

3.设在片内RAM的20H单元中有一数,其值范围是0—100,要求利用查表法求此数的平方值并把结果存入片外RAM的20H和21H中(20H中为低字节),试编写相应的程序。

MOVR0,#20H;

R0←外20H

MOVA,20H;

A←源数

MOVB,A

ADDA,#0BH;

修改A

MOVCA,@A+PC;

A←平方值L

MOVX@R0,A;

送存

MOVA,B

ADDA,#03H;

INCA;

指向结果H地址偏移量

查表得平方值H

SJMP$

SQRTAB:

DW0,1,4,9,……,10000

附:

课本重要知识点及重要例题

第1章1.1计算机中数制及数的转换

1.3.1机器数的原码、反码和补码

1.4.1BCD码和ASCII码

第2章2.1.1CPU结构

2.1.2存储器的结构(P53的表2-2和P57表2-5

2.1.3I/O端口非常重要,老师说肯定会

2.2.1引脚及其功能出一个题目)

2.4.1机器周期和指令周期

第3章全部

重要例题:

P100例3.14P112例3.29

P114例3.31P121例3.38、例3.39

第4章全部

P138例4.2P139例4.3P140例4.5

P142例4.7P146例4.9P147例4.10

P152例4.13P156例4.16P157例4.17

注:

P143例4.8、P148例4.12不用看!

第6章6.1概述

6.2MCS-51的中断系统

6.4.2采用查询法扩展外部中断源

预祝大家取得好成绩!

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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