单片机基础练习题及答案.docx

上传人:b****5 文档编号:29509782 上传时间:2023-07-24 格式:DOCX 页数:22 大小:31.40KB
下载 相关 举报
单片机基础练习题及答案.docx_第1页
第1页 / 共22页
单片机基础练习题及答案.docx_第2页
第2页 / 共22页
单片机基础练习题及答案.docx_第3页
第3页 / 共22页
单片机基础练习题及答案.docx_第4页
第4页 / 共22页
单片机基础练习题及答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

单片机基础练习题及答案.docx

《单片机基础练习题及答案.docx》由会员分享,可在线阅读,更多相关《单片机基础练习题及答案.docx(22页珍藏版)》请在冰豆网上搜索。

单片机基础练习题及答案.docx

单片机基础练习题及答案

单片机基础(第3版)

计算机基础知识第1章

(一)填空题的补码+100。

十进制数1.十进制数14对应的二进制数表示为(1110B),十六进制数表示为(0EH)-100的补码为(9CH),)。

为(64H4)倍。

2.在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(-51。

带符号二进制数转换成十进制数是()3.8位无符号二进制数能表示的最大十进制数是(255)。

4.可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)84)。

码是十六进制数5.已知字符D的ASCII44,则字符T的ASCII码是十进制数(,则表示该存储器共有(655360)个存储单元。

6.若某存储器容量为640KB。

Word)(Byte)7.在计算机中,二进制数的单位从小到大依次为(位)、(字节)和和((字),对应的英文名称分别是(bit)、00100100),A⊕B=()8.。

设二进制数A=,B=01110110,则逻辑运算A∨B=(),A∧B=(,机器数的真,机器数的真值是(+157或+89)-115)011011109.机器数的真值是(+110),机器数01011001的真值是(值是(+206或-50)。

(二)单项选择题1.用8位二进制补码数所能表示的十进制数范围是(D)B(-127~+127)-128~+128(A)(D(C)-127~+128)-128~+127下列等式中,正确的是(B)2.

1MB=1024×1024B)1KB=1024×1024B(B(A)()(C1KB=1024MBD)1MB=1024BC)3.程序与软件的区别是((A()程序小而软件大B)程序便宜而软件昂贵(D(C)软件包括程序)程序包括软件4.)存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A)容量)列号(DA()地址(B)字节(C85.位二进制数所能表示的最大无符号数是(B)127D)()B)256(C128255(A)(B)6.下列4个无符号数中,最小的数是((37(八进制)B)(A)(二进制)

(十六进制)D)2475(C)(十进制)()码最小的是(B7.下列字符中,ASCII(A)a(B)A(C)x(D)X

8.下列字符中,ASCII码最大的是(C)

(A)a(B)A(C)x(D)X

9.有一个数152,它与十六进制数6A相等,那么该数是(B)

)十六进制数D()十进制数C()八进制数B()二进制数A(.

单片机的硬件结构第80C512章

(一)填空题)的内容入栈,以进行断点保护。

调用返回时再进行出栈操作,把保护的断点1.通过堆栈实现子程序调用,首先要把(PC)送回(PC。

)和芯片外跨接的(石英晶体振荡器反相器单片机的时钟电路包括两部分内容,即芯片内的(高增益反相放大器2.80C51。

若调高单片机的晶振频率,则单片机的机器周期会变(短)。

晶振)与(两个微调电容),通用寄存器07H3.通常单片机有两种复位操作,即(上电复位)和(手动复位)。

复位后,PC值为(0000H),SP)值为(07H)到(。

的当前寄存器组为(第0)组,该组寄存器的地址范围是从(00H))个振)个拍节,一个拍节为(1状态周期又可划分为(24.80C51单片机中,一个机器周期包含(6)个状态周期,一个)个振荡脉冲周期。

12荡脉冲周期。

因此,一个机器周期应包含(DPH)和(DPL),5.80C51中惟一一个可供用户使用的16位寄存器是(DPTR)它可拆分为两个8位寄存器使用,。

名称分别为(PC为16位,因此程序存储器地址空间是(64KB)6.单片机程序存储器的寻址范围由PC的位数决定。

80C51的。

(二)单项选择题1.下列概念叙述正确的是(D)80C51中共有5个中断源,因此在芯片上相应地有5个中断请求输入引脚(A)B)特殊的存取规则使得堆栈已不是数据存储区的一部分(PC看成是数据存储空间的地址指针(C)可以把(D)CPU中反映程序运行状态和运算结果特征的寄存器是PSW取指操作后,PC的值是(C)2.

)当前指令前一条指令的地址(B)当前正在执行指令的地址(A(D)控制寄存器中指令寄存器的地址(C)下一条指令的地址

SP的值变为(C)为3.80C51单片机中,设置堆栈指针SP37H后就发生子程序调用,这时(D)3AH(B)38H(C)39H(A)37H

SP应指向(A)4.设置堆栈指针SP=30H后,进行一系列的堆栈操作。

当进栈数据全部弹出后,)2FH单元)31H单元(C(A)30H单元(B)07H单元(D下列关于堆栈的描述中,错误的是(C)5.

8位就够了的堆栈在内部RAM中开辟,所以SP只需(A)80C51的内容是堆栈栈顶单元的地址SP(B)堆栈指针/写操作没有区别中,堆栈操作过程与一般RAM单元的读(C)在80C51D)在中断响应时,断点地址自动进栈()6.在单片机芯片内设置通用寄存器的好处不应该包括(AB)提高程序运行速度(A()提高程序运行的可靠性

)减小程序长度D((C)为程序设计提供方便

D7.下列叙述中正确的是()内装的是堆栈栈顶单元的内容SPA()(指令,说明此次中断操作与堆栈无关POPPUSH)在中断服务程序中没有B和)在单片机中配合实现“程序存储自动执行”的寄存器是累加器C(.

中最低位的状态为0D)两数相加后,若A中数据为66H,则PSW(

单片机指令系统章80C51第3

(一)填空题)单元的内容送累”后,会把程序存储器(1031H,执行指令“A中的内容为30H1000H:

MOVCA,@A+PC1.假定累加器A。

加器,1)的内容为(34H),CY的内容为(”后,累加器A2.假定()=85H,(R0)=20H,(20H)=0AFH,执行指令“ADDA,@R0A。

的内容为

(1)AC的内容为

(1),OV

P1.2P1.1P1.0?

?

P3.0?

执行如下指令序列后,所实现的逻辑运算式为(3.)MOVC,

ANLC,

ANLC,/MOV,C)去执行。

”后,程序转移到地址(1100H的地址为1030H,执行指令“qaz:

AJMPaddr11假定4.addr11=000B,标号qaz中的数变为原来的”指令,则ACY清0后执行“RLCAA5.累加器中存放着一个其值小于或等于127的8位无符号数,)倍。

(2,请按要求填写各条指令的执行结果(每条指令均按已给定的原始数据进PSW=80H=A5H,,(30H)6.已知A=7AH,R0=30H行操作)。

)R0=((30H7AHXCHA,R0)A=,)A=XCHA,30H(0A5H)A=XCHA,@R0(0A5H

A,@R075HXCHD)A=(ASWAP

A=(0A7H)

)OV=(1CY=(0)A=ADDA,R0(0AAH,),OV=(0)(1ADDA,30H),A=(1FH),CY=A=(0AAH),CY=(0),OV=(1ADDA,#30H)

A=(20H),CY=(1ADDC),OV=(0)A,30H

A,30HSUBB1)CY=

(1),OV=(A=(0D4H),A,#30H

,OV=(SUBB

0)0A=(49H),CY=()

(二)单项选择题

1.下列指令或指令序列中,不能实现PSW内容送A的是(C)

(A)MOVA,PSW

(B)MOVA,0D0H

(D)PUSHPSW(C)MOVR0,0D0H

MOVA,@R0

POPACC

2.在相对寻址方式中,“相对”两字是指相对于(C)

(A)地址偏移量rel(B)当前指令的首地址

(D)DPTR值(C)下一条指令的首地址

)B的是(A单元内容传送给3355H下列指令或指令序列中,能将外部数据存储器3.

MOVDPTR,#3355HB)(A)MOVXA,3355H(MOVXA,@DPTR

)MOVP2,#33H(C)MOVP0,#33H(DMOVR0,#55HMOVR2,#55H

MOVXA,@R0MOVXA,@R2

D)4.对程序存储器的读操作,只能使用(B)(AMOV指令()PUSH指令(D(C)MOV

)MOVC指令X指令5.执行返回指令后,返回的断点是(C)(A)调用指令的首地址(B)调用指令的末地址(C)调用指令的下一条指令的首地址(D)返回指令的末地址

6.以下各项中不能用来对内部数据存储器进行访问的是(A)(B)数据指针DPTR)按存储单元地址或名称(A作间址寄存器SP(C)堆栈指针R1或R0)由D(

(三)其他类型题)判断下列指令的合法性(合法打“√”1.,非法打“×”INCDPTR(×)(√)MOVA,@R2(×)MOVR0,R1

DECDPTRMOVPC,#2222H(×)(×)RLCR0(×)MOV0E0H,@R0(√)(×)(×)CPLR5CLRR0

(×)CPLF0HPUSHDPTR(×)POP30H(√)(√)MOVA,1FH(√)MOVC,1FH(√)MOVXA,@R1

MOVP1,R3(√)MOVF0,CMOVF0,(×)(√)(√)MOVDPTR,#0FCH(×)CPL30HPUSHR0(×)(√)MOVA,#0D0HMOVC,#0FFH(×)利用位操作指令序列实现下列逻辑运算。

2.

CY)?

?

?

D=(10HP1.0)(11H

(1)MOVC,

ORLC,/10HMOVF0,CORLC,11HANLC,F0MOVD,CP2.0P2.7?

E=ACC.2?

?

ACC.12()MOVC,

ANLC,

ORLC,

ANLC,

MOVE,C

3.编写程序将内部RAM20H~23H单元的高4位写1,低4位写0。

分析:

就是把内部RAM20H~23H这4个单元写入0F0H。

用一个DJNZ的循环。

ORG0000H

MOVR0,#20H

;R0指向20H单元

;4MOVR1,#04H

个单元

LOOP:

MOV@R0,#0F0H;写入

INCR0

R1,LOOP;循环4次DJNZ

END4.在m和m+1单元中存有两个BCD数,将他们合并到m单元中,编写程序完成。

ORG0030H

MOVR0,#m

MOVA,@R0;将m单元中的BCD数送入累加器A

;把ANLA,#0FHm单元的高4位清0

;将SWAP

Am单元中的BCD数移入高4位

MOV@R0,A;m单元高4位为BCD数,低4位为0

;指向m+1单元INC

R0

MOVA,@R0;将m+1单元中的BCD数送入累加器A

;把m+1单元的高4位清0ANLA,#0FH

;指向mDEC

R0单元

ORLA,@R0;将和m+1单元和m单元内容合并

;合并后结果送m单元MOV@R0,A

END

5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元。

假定相加结果小于255。

编写程序完成。

ORG0030H

MOVR0,#10;给R0置计数器初值

;数据块首址送MOVR1,#data

R1

CLRA;A清零

LOOP:

ADDA,@R1;加一个数

INCR1;修改地址,指向下一个数

R0,LOOP;R0减1,不为零循环DJNZ

MOVsum,A;存10个数相加和

END6.假定8位二进制带符号数存于R0中,要求编写一个求补(取反)程序,所得补码放入R1中。

分析:

对存于R0中的二进制带符号数,如果是正数,则将其变成绝对值相等的负数(用补码表示);如果是负数(用补码表,则将其变成绝对值相等的正数。

示).

ORG0030HAMOVA,R0;将带符号数送入CPLA末位加1ADDA,#01H;

R1MOVR1,A补码存入;

END

单片机汇编语言程序设计第4章

(一)填空题。

03H)40H),(40H,(40H)=05H。

执行以下两条指令后,A=()25H=)(,R1=(R1=23H1.假定A=40H,R1=40H;A=23H,XCHA,R1

A,@R1,;A=20HXCHD

(40H)=03H6MHz,执行下列程序后,在引脚产生的方波宽度为()2.假定80C51的晶振频率为周期)(;置11START:

SETB

MOV30H,#03H;30HDL:

置初值(1周期)

DL0:

MOV31H,#0F0H(1周期);31H置初值31H,DL1DJNZ;31HDL1:

减1,不为0重复执行(2周期)30H,DL01,不为DJNZ

2周期)0转DL0(;30H减1;周期)取反(CPL

DLDL(2周期)SJMP

;转方波宽度={[(2*15*16+2+1)*3]+[(2*15*16+2+1)*3+1+2+1]}*2=5804s

3.下列程序中,X、Y和Z为输入的8位无符号二进制数,F为输出的逻辑运算结果。

试画出该程序所模拟的组合逻辑电路。

MOVA,X

ANLA,YMOVR1,MOVA,

XRLA,1CPLORLA,RMOVF,FZ

4.分析下列跳转程序,程序中A与30H单元中的数都是符号数,说明当(A=(30H))时转向LOOP1,当(A>(30H))时转向LOOP2,当(A<(30H))时转向LOOP3。

MOVR0,A;R0←A

ANLA,#80H

NEG,转;A<0NEG

JNZ

MOVA,30HANLA,#80H,转LOOP2≥0,(30H)<0JNZLOOP2;A,转COMP,SJMP

(30H)COMP

≥0;A≥0MOVA,30HNEG:

ANLA,#80H,转LOOP3(30H)≥0JZLOOP3;A<0,COMP:

MOVA,R0,转NEXT;A≠(30H)CJNEA,30H,NEXT

LOOP1,转;A=(30H)SJMP

LOOP1

LOOP2>(30H),转NEXT:

JNCLOOP2;ALOOP3,转LOOP3JC;A<(30H)。

)时转向LOOP3LOOP2,A<(30H)时转向综上分析可知,当A=(30H)时转向LOOP1,A>(30H

条指令机器41,后,下列程序的执行时间为()。

已知程序中前2条指令机器周期数为65.假定80C51的晶振频率为MHz。

周期数为21周期MOVR3,#15

1MOVR4,#255DL1:

周期2DL2:

周期MOVP1,R3

R4,DL2周期DJNZ2

R3,DL1周期DJNZ

2

RET

2周期

T={[(2+2)*255+2+1]*15+2+1}*2=30696s执行时间:

(二)编程题

1.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位于外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送完毕,试编程实现。

ORG0030H

MOVR0,#inbuf

MOVDPTR,#outbuf

MOVR4,#10H

LOOP:

MOVA,@R0;从内部RAM取数

;是否为回车符CRA,#0DH,LLCJNE

STOPSJMP

是回车符,则转;STOP,停止传送@DPTR,ALL:

MOVX;不是回车符,则传送到外部RAM

INCR0

INCDPTR

R4,LOOP沒传送完则循环;DJNZ

$SJMP

STOP:

2.内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以﹣1作结束标志。

编程实现找出表中最小数。

分析:

从list+1单元开始判断其中的数是否为-1,将比较得到的小数放入累加器A

ORG0030H

MOVR0,#list

A,@R0;MOV

取第一个正数

INC;指向下一个正数R0

LOOP:

30H,@R0MOV

;前一个数与后一个数比较CJNEA,30H,CHK

CHK:

JCLOOP1;前一个数小,则转LOOP1

MOV

;前一个数大,取后一个数A,30H

A,30HLOOP1:

XCH

CJNEA,#0FFH,LOOP;判断后一个数是否为-1

XCH

A,30H

;取最小数

SJMP$

3.内部RAM的X,Y单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中。

若X为正奇数,Z=X+Y;

若X为正偶数,Z=X∨Y;

若X为负奇数,Z=X∧Y;

若X为负偶数,Z=X⊕Y。

分析:

正数:

第7位为0,负数:

第7位为1;奇数:

第0位为1,偶数:

第0位为0

方法1:

利用ANL指令判断正负、奇偶

ORG0030H

MOVA,X

ANLA,#80H;判断X正负

JNZ

NEG

;若X为负,转NEG

;X为正MOVA,X

ANLA,#01H判断X奇偶;

JZEVEN1X为偶数,转EVEN1;若MOVA,X

ADDA,Y;若X为正奇数,Z=X+Y

RESULTSJMP

EVEN1:

MOVA,X

ORLA,Y=若;X为正偶数,ZX∨YSJMP

RESULT

;X为负NEG:

MOVA,X

ANLA,#01H

奇偶X判断;

JZEVEN2;若X为偶数,转EVEN2

MOVA,X

ANLA,Y;若X为负奇数,Z=X∧Y

RESULTSJMP

;若X为负偶数,Z=X⊕YEVEN2:

MOVA,X

XRLA,Y

MOVZ,ARESULT:

方法2:

RL指令将符号位移入CY判断正负,RR指令将最低位移入CY判断奇偶

MOVA,X

CLRCRLCA为负,转至NEGNEGJC;XRRCAARRC

EVEN1;X为偶数,转至JNCEVEN1

MOV

A,XADDA,Y;X为正奇数,Z=X+Y

SJMPRETULT

EVEN1:

MOV

A,X

A,Y

;X为正偶数,Z=X∨YORL

SJMPRETULT

NEG:

RRCA,

ARRC

EVEN2JNC

MOVA,X∧ANL

Y;X为负奇数,Z=XA,Y

SJMPRETULT

EVEN2:

MOV

A,X

A,Y

;X为负偶数,Z=X⊕YXRL

RETULT:

MOVZ,A

END

4.把一个8位二进制数的各位用ASCII码表示之(例如,为0的位用30H表示,为1的位用31H表示等)。

该数存放在内部RAM的byte单元中。

变换后得到的8个ASCII码存放在外部RAM以buf开始的存储单元中,试编程实现。

ORG0030H

MOVDPTR,#buf

MOVR0,#byte

MOVR7,#08H

MOVA,@R0

CLRC

LOOP1:

RRCA

MOVR6,A

JCONE

MOVA,#30H

SJMP

LOOP2

MOVA,#31HONE:

@DPTR,ALOOP2:

MOVX

INC

DPTR

MOVA,R6

DJNZ

R7,LOOP1

22b?

c?

aabc3个数分别存放于内部RAM的5.编程实现运算式DA、DB、DC单元中,另有平方运算子程序。

假定SQR、、供调用。

ORG0030H

MOVA,DA

PUSH

ACC

ACALLSQR

POPACC

MOVDC,A

MOVA,DB

PUSH

ACC

ACALLSQR

POPACC

ADDA,DC

MOVDC,A

SQR:

POPACC

MOVB,A

MULAB

PUSHACC

RET

END

6.试编程实现两个ASCII码字符串是否相等。

字符串的长度在内部RAM41H单元中,第1个字符串的首地址为42H,第2个字符串的首地址为52H。

如果两个字符串相等,则置内部RAM40H单元为00H;否则置40H单元为FFH。

ORG0030H

MOVR0,#42H

MOVR1,#52H

MOVR7,41H

MOV

A,@R0LOOP:

MOV30H,@R1

CJNEA,30H,LK

INCR0

INC

R1

R7,LOOPDJNZ

40H,#00HMOV

DDSJMP

MOV

40H,#0FFHLK:

DDSJMPDD:

首地址为1。

table的数据表中,有10字节数据。

试编程实现将每个字节的最高位无条件置7.在外部RAMORG0030HDPTR,#tableMOV

R6,#10MOV

A,@DPTRLOOP:

MOVX

SETB

@DPTR,AMOVX

INCDPTR

DJNZ

R6,LOOP

单片机的中断与定时第680C51章

(一)填空题1.中断技术是解决资源竞争的有效方法,因此,可以说中断技术实质上是一种资源(共享)技术。

计数/、(定时器0(定时器/计数器2.中断)、上电复位后

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

当前位置:首页 > 工程科技 > 电子电路

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

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