单片机应用技术思考题与习题Word文件下载.docx

上传人:b****6 文档编号:8685895 上传时间:2023-05-12 格式:DOCX 页数:32 大小:123.76KB
下载 相关 举报
单片机应用技术思考题与习题Word文件下载.docx_第1页
第1页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第2页
第2页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第3页
第3页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第4页
第4页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第5页
第5页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第6页
第6页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第7页
第7页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第8页
第8页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第9页
第9页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第10页
第10页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第11页
第11页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第12页
第12页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第13页
第13页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第14页
第14页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第15页
第15页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第16页
第16页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第17页
第17页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第18页
第18页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第19页
第19页 / 共32页
单片机应用技术思考题与习题Word文件下载.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机应用技术思考题与习题Word文件下载.docx

《单片机应用技术思考题与习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机应用技术思考题与习题Word文件下载.docx(32页珍藏版)》请在冰点文库上搜索。

单片机应用技术思考题与习题Word文件下载.docx

01111111B

00000000B

01010101B

0FEH

00000011B

03H

8.将下列有符号数的二进制补码转换为十进制数,并注明它的正负。

(1)B

(2)01111111B

(3)B(4)B

(5)00000011B(6)01111100B

(1)-1

(2)+127(3)-125(4)-4(5)+3(6)+124

9.一个字节的十六进制数最大值相当于多大的十进制数,两个字节的十六进制数最大值相当于多大的十进制数?

一个字节十六进制数最大值为0FFH,相当于十进制数255,两个字节的十六进制数最大值为0FFFFH,相当于十进制数65535。

第二章思考题与习题

1.微型计算机由哪几个功能部件组成?

各功能部件的作用如何?

微型计算机由CPU、三总线、存储器、I/O接口电路及外围设备组成。

CPU作为系统的运算中心和控制中心;

三总线用于完成微处理器、内存储器和I/O接口电路之间信息的相互交换;

存储器用于程序与数据的存储;

I/O接口电路作为CPU与外部设备的联接桥梁,用于信号的标准化;

外围设备可实现显示、输入、打印、通信等功能。

2.三总线是指什么?

它们的主要功能是什么?

三总线是指数据总线(DataBus)、地址总线(AddressBus)和控制总线(ControlBus)。

数据总线(DB)的功能是完成微处理器与内存、I/O接口电路之间的数据传送;

地址总线(AB)是微处理器向内存和I/O接口电路传送地址信息的通路;

控制总线(CB)是微处理器向内存和I/O接口电路发出的命令信息或由外界向微处理器传送状态的信息通路。

3.微型计算机存储器的地址线与存储容量有什么关系?

如果存储器的地址线有13根,则存储容量为多大?

地址线的多少与存储容量的关系满足:

存储容量=2n(n为地址线的数量),如果存储器的地址线有13根,则存储容量为8KB。

4.89S51单片机的存储器从物理结构上分别可划分为几个空间?

89S51单片机的存储器在物理结构上有4个存储空间:

片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。

5.89S51单片机采用何种方式区分内外程序存储器及内外数据存储器?

单片机的程序存储器是在片内存储器还是片外存储器,取决于单片机外围引脚

的状态。

片内和片外数据存储器采用不同的指令加以区别,在访问片内数据存储器时,可使用MOV指令;

要访问片外数据存储器可使用MOVX指令。

6.89S51单片机内部数据存储器分为几个空间?

每个空间有何特点?

89S51单片机的内部数据存储器分为00~7FH及80H~FFH两块空间。

片内数据存储区地址为00~7FH空间划分为工作寄存器区、位寻址区及用户RAM区三个空间;

80H~FFH地址空间中只有26个存储空间被特殊功能寄存器(SFR)占用。

工作寄存器区共32个存储单元,分为4组,每组由8个地址单元组成通用寄存器R0~R7,每组寄存器均可作为CPU当前的工作寄存器。

位寻址区共16个字节,每个字节8位,共128位,这128位用位地址编号,范围为00H~7FH,位寻址区既可采用位寻址方式访问,也可以采用字节寻址方式访问。

用户RAM区共80个单元,可作为堆栈或数据缓冲使用。

特殊功能寄存器SFR专门用来设置单片机内部的各种资源,记录电路的运行状态,参与各种运算及输入/输出操作。

7.程序状态字PSW的作用是什么?

常用状态位是哪些?

作用是什么?

程序状态字PSW用来存放与当前指令执行结果相关的状态。

常用的状态位有CY、AC、OV、P、RS1、RS0等。

CY用于标志运算过程中是否有进位或借位;

AC用于标志累加器中D3位向D4位是否存在进位或借位;

OV用于标志有符号数运算过程中是否存在超出范围的情况;

P用于指示累加器A中操作结果的“1”的个数的奇偶性,在串行通信中做数据校验;

RS1、RS0用于选择工作寄存器组别。

8.89S51单片机内部有几个特殊功能存储单元?

分别有何用途?

89S51单片机内部有26个特殊功能存储单元,各自用途请参见表2-3。

9.89S51单片机复位后,CPU使用的是哪一组工作寄存器?

它们的字节地址分别是什么?

CPU如何确定和改变当前工作寄存器组?

89S51单片机复位后,CPU使用的是第0组工作寄存器,它们的字节地址为00H~07H。

CPU通过标志寄存器中的RS1、RS0两位状态确定和改变当前工作寄存器组。

10.89S51单片机的4个I/O端口P0~P3在结构上有何异同?

使用时应注意什么?

89S51各端口中P0口既可作地址/数据总线口,又可作通用I/O口。

在作地址/数据总线口时,它是真正的双向口,可以直接驱动MOS输入,不需要加上拉电阻。

当它作通用I/O口时,应注意必须外接上拉电阻才能驱动MOS输入。

对P1、P2、P3口而言,内部已接有上拉电阻,因此不必外接任何电阻就可驱动MOS输入。

P0口和P1、P2、P3口作通用I/O口时一样,在输入时分为“读锁存器”和“读引脚”两种操作,这两种操作是用不同的指令区分的。

11.简述89S51中下列各引脚信号的作用:

、ALE

读信号

写信号

读片外部程序存储器选通信号

片外程序存储器选择信号ALE:

地址锁存允许信号

12.什么是时钟周期、机器周期、指令周期?

它们之间有何关系?

时钟电路产生的最小时序单位称为时钟周期;

单片机执行一次基本操作所需要的时间单位为一个机器周期;

单片机执行一条指令所需要的时间称为指令周期。

1个机器周期=12个时钟周期,1个指令周期,通常由1~4个机器周期组成。

13.“复位”的含义是什么?

89S51单片机常用的复位电路有哪些?

复位后各内部存储器的值分别为多少?

复位就是对单片机进行初始化操作,使单片机内部各寄存器处于一个确定的初始状态。

89S51单片机常用的复位电路有上电复位和按钮复位两种。

复位后SP为07H,P0~P3为0FFH,SBUF不定,除SP、P0~P3及SBUF外,其余各寄存器值均为0。

第三章思考题与习题

1.MCS-51单片机指令格式是怎样的?

各有何含义?

汇编语言表示的指令格式为:

[标号:

]操作码助记符[操作数1,操作数2,操作数3][;

注释]

标号:

表示该指令所在的地址。

操作码:

表示该语句要执行的操作内容。

操作数:

表示操作码的操作对象。

注释:

为阅读程序方便而加的解释说明。

2.MCS-51单片机有几种寻址方式?

描述这些寻址方式的执行过程?

MCS-5l系列单片机共有7种寻址方式,立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、相对寻址、变址寻址、位寻址。

立即寻址:

操作数直接由指令给出,寻址时直接到程序存储器中查找操作数。

直接寻址:

操作数在指令给出的地址单元中,寻址时直接到数据存储器中查找操作数。

寄存器寻址:

所需查找的操作数在寄存器中。

寄存器间接寻址:

所要查找的操作数位于以寄存器的内容为地址的单元中。

寻址时从寄存器中查找的值做为地址再次查找操作数。

相对寻址:

不是寻找操作数的地址,而是要得到程序跳转位置对应的目标地址。

变址寻址:

以16位寄存器(数据指针DPTR或程序计数器指针PC)作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成新的16位地址作为操作数所在的地址,查找操作数。

位寻址:

将位地址中的内容做为操作数。

3.指出在下列各条指令中,30H分别代表什么含义?

MOVA,#30H;

为立即数

MOVA,30H;

为直接地址

MOV30H,#30H;

30H为直接地址,#30H为立即数

MOV30H,28H;

30H为直接地址

MOVC,30H;

为位地址

4.设(A)=0FH,(R0)=30H,内部RAM的(30H)=12H,(31H)=0BH,(32H)=0CH,请指出每条指令中源操作数的寻址方式,并写出执行下列程序段后上述各单元内容的变化结果。

MOVA,@R0;

寄存器间接寻址,(A)=12H

MOV@R0,32H;

直接寻址,(30H)=0CH

MOV32H,A;

寄存器寻址,(32H)=12H

MOVR0,#31H;

立即寻址,(R0)=31H

寄存器间接寻址,(A)=0BH

5.用指令实现下列数据传送。

(1)内部RAM20H单元内容送内部RAM30H单元。

MOV30H,20H

(2)外部RAM20H单元内容送内部RAM30H单元。

MOVR0,#20H

MOVXA,@R0

MOV30H,A

(3)外部RAM1000H单元内容送寄存器R2中。

MOVDPTR,#1000H

MOVXA,@DPTR

MOVR2,A

(4)内部RAM20H单元内容送外部RAM1000H单元。

MOVA,20H

MOVX@DPTR,A

(5)外部RAM20H单元内容送外部RAM1000H单元。

(6)ROM2000H单元内容送内部RAM30H单元。

MOVDPTR,#2000H

CLRA

MOVCA,@A+DPTR

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

MOVX@R0,A

(8)ROM2000H单元内容送外部RAM1000H单元。

6.设(A)=5AH,(R0)=20H,(20H)=6BH,(B)=02H,(PSW)=80H。

写出下列指令执行后的结果及对标志位的影响。

(每条指令都以题中规定的原始数据参加操作)。

(1)ADDA,R0;

(A)=7AH,(PSW)=01H

(2)ADDCA,20H;

(A)=0C6H,(PSW)=44H

(3)SUBBA,#20H;

(A)=39H,(PSW)=00H

(4)INCA;

(A)=5BH,(PSW)=81H

(5)MULAB;

(A)=0B4H,(B)=00H,(PSW)=00H

(6)DIVAB;

(A)=2DH,(B)=00H,(PSW)=00H

(7)ANL20H,#45H;

(20H)=41H,(PSW)=80H

(8)ORLA,#32H;

(A)=7AH,(PSW)=81H

(9)XRL20H,A;

(20H)=31H,(PSW)=80H

(10)XCHA,20H;

(A)=6BH,(20H)=5AH,(PSW)=80H

(11)SWAPA;

(A)=0A5H,(PSW)=80H

(12)CPLA;

(13)RRA;

(A)=2DH,(PSW)=80H

(14)RLCA;

(A)=0B5H,(PSW)=01H

7.写出执行下列程序段的运行结果。

(1)MOVA,#20H

MOVDPTR,#2030H

MOVX@DPTR,A

MOV30H,#50H

MOVR0,#30H

MOVXA,@R0

外部RAM(2030H)=20H,(DPTR)=2030,(30H)=50H,(R0)=30H,(A)=0FFH

(2)MOVA,#79H

MOV20H,#88H

ADDA,20H

DAA

SWAPA

内部RAM(20H)=88H,(A)=76H,(PSW)=0C1H

8.试写出达到下列要求的程序。

(1)将外部RAM1000H单元中的低4位清0,其余位不变,结果存回原处。

DPTR,#1000H

ANLA,#0F0H

MOVX@DPTR,A

(2)将内部RAM50H单元中的高3位置1,其余位不变,结果存回原处。

ORL50H,#0E0H

(3)将内部RAM20H单元中的高4位置1,低4位清0,结果存回原处。

ANL20H,#0F0H

ORL20H,#0F0H

(4)将DPTR的中间8位取反,其余位不变,结果存回原处。

XRLDPL,#0F0H

XRLDPH,#0FH

9.用三种方法实现累加器A中的无符号数乘2运算。

(1)MOVR0,A

ADDA,R0

(2)MOVB,#02H

MULAB

(3)CLRC

RLA

10.编程实现两个16位二进制数8E52H、47A4H相减的运算,结果放在内部RAM的20H与21H单元中,前者放低8位,后者放高8位。

CLRC

MOVA,#52H

SUBBA,#0A4H

MOV20H,A

MOVA,#8EH

SUBBA,#47H

MOV21H,A

11.SJMP指令和AJMP指令都是两字节转移指令,它们有什么区别?

各自的转移范围是多少?

能否用AJMP代替SJMP?

为什么?

两条指令区别在于转移范围不同,SJMP转移范围256B,AJMP转换范围2K,通常可以用AJMP代替SJMP,AJMP的转移范围比SJMP转换范围大,但必须保证地址前5位不变。

12.已知(SP)=35H,(34H)=12H,(35H)=34H,(36H)=56H。

问此时执行“RET”指令后,(SP)=?

(PC)=?

(SP)=33H,(PC)=1234H

13.若(SP)=35H,(PC)=2345H,标号LOOP所在的地址为3456H。

执行长调用指令“LCALLLOOP”后,堆栈指针和堆栈的内容发生什么变化?

PC的值为多少?

若将上述指令改为“ACALLLOOP”是否可以?

(SP)=37H,(36H)=48H,(37H)=23H,(PC)=3456H

若将上述指令改为“ACALLLOOP”是不行的,因为“ACALL”指令只能在2K范围内调用。

14.试编写程序完成将内部RAM30H为首地址的20个数据传送至外部RAM以1000H为首地址的区域中。

MOVR0,#30H

MOVDPTR,#1000H

MOVR7,#20

LOOP:

MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTR

DJNZR7,LOOP

RET

15.试编程实现:

若累加器A的内容为正数,则将内部RAM20H单元内容清零,否则置FFH。

MOV20H,#00H

JNB,LOOP

MOV20H,#0FFH

RET

16.试编程实现:

查找内部RAM的20H~50H单元中出现00H的次数,并将查找结果存入R1单元。

MOVR0,#20H

MOVR7,#31H

MOVR1,#00H

JNZNZERO

INCR1

NZERO:

INCR0

RET

第四章思考题与习题

1.汇编语言程序设计分哪几个步骤?

汇编语言程序设计一般有以下几步:

(1)分析问题,明确任务;

(2)确定算法;

(3)制订程序流程图;

(4)编写源程序;

(5)汇编与调试。

2.什么叫“伪指令”?

伪指令与指令有什么区别?

它们的用途是什么?

伪指令是指在单片机的指令系统中为汇编程序提供相关信息的特定指令。

与指令不同之处在于,伪指令在汇编时不产生目标代码,不影响程序执行。

它们主要用于为汇编程序提供汇编的信息,例如为程序指定起始点和结束点等。

3.基本程序结构有哪几种?

各有什么特点?

基本程序结构主要有顺序结构、分支结构和循环结构三种。

顺序结构是从第一条指令开始依次执行每一条指令,直到执行完毕。

分支结构是通过对条件是否满足的判断,产生一个或多个分支以决定程序的流向。

循环结构是可对同一组操作重复执行多次的程序结构。

4.试对下列程序进行汇编,并用流程图说明程序的功能。

ORG0100H

MOVA,30H

JNB,ZHENG

CPLA

ADDA,#01H

ORLA,#80H

ZHENG:

MOV32H,A

SJMP$

END

该程序的功能:

对30H中的数据进行求补运算,并将结果存入32H单元。

5.子程序调用时,参数的传递方法有哪几种?

子程序调用时,参数传递方法有三种:

(1)通过工作寄存器或累加器传递参数;

(2)通过指针寄存器传递参数;

(3)通过堆栈传递参数。

6.设内部RAM50H和51H单元中存放有二个8位有符号数,试编程找出其中的大数,将其存入60H单元中。

ORG0100H

MOVA,50H

XRLA,51H

JB,LOOP

CLRC

SUBBA,51H

JCLOOP1

MOV60H,50H

SJMPERET

LOOP1:

MOV60H,51H

MOVA,50H

JB,LOOP1

ERET:

SJMP$

7.编程将外部RAM2000H~202FH单元中的内容,移入内部RAM20H~4FH单元中,并将原数据块区域全部清0。

MOVDPTR,#2000H

MOVR7,#30H

CHUAN:

MOVXA,@DPTR

MOV@R0,A

CLRA

DJNZR7,CHUAN

SJMP$

8.编程计算内部RAM50H~57H连续8个单元中所有数的算术平均值,将结果存放在5AH中。

假设所有数据和不超过255。

MOVR0,#50H

MOVR1,#8

SUM:

ADDA,@R0

DJNZR1,SUM

MOVB,#8

DIVAB

MOV5AH,A

9.设有100个有符号数,连续存放在以2000H为首地址的存储区中,试编程统计其中正数、负数、零的个数,并将其分别存入40H、41H和42H单元中。

MOVR7,#100

PD:

JZZERO

INC41H

INCDPTR

DJNZR7,PD

ZERO:

INC42H

SJMPLOOP

INC40H

10.编程设计发光二极管的闪烁程序。

要求8只发光二极管每隔两只点亮一只,反复循环不止,变换时间为100ms,已知时钟频率为6MHZ。

若时钟频率为6MHZ,则机器周期为2μs,100ms延时子程序DELAY如下:

DELAY:

MOVR6,#100

DEL:

MOVR7,#250

DJNZR7,$

DJNZR6,DEL

发光二极管闪烁程序如下(设发光二极管为共阳极,低电平驱动,接P1口):

MOVA,#0FEH

MOVP1,A

ACALLDELAY

(略)

11.编程将外部RAMDATA1单元开始的50个字节数据逐一移至DATA2单元为起始地址的存储区中。

MOVDPTR,#DATA1

MOVR0,#DTEP

MOVR7,#50

MOVDPTR,#DATA2

MOVA,@R0

INCDPTR

DJNZR7,LOOP1

12.分别用数据传送指令和位操作指令编写程序,将内部RAM位寻址区128个位全部清零。

(1)用数据传送指令

MOVR7,#10H

MOV@R0,A

(2)用位操作指令

CLR00H

CLR01H

CLR7FH

13.把长度为10H的字符串从内部RAM的输入缓冲区INBUF向位于外部RAM的输出缓冲区OUTBUF进行传送,当遇到字符

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2