单片机原理及应用试题pptConvertor.docx
- 文档编号:8621763
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:28
- 大小:33.36KB
单片机原理及应用试题pptConvertor.docx
《单片机原理及应用试题pptConvertor.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用试题pptConvertor.docx(28页珍藏版)》请在冰豆网上搜索。
单片机原理及应用试题pptConvertor
一、1.写出-120的原码、反码、补码的16进制值。
答案:
120=1111000B
120-120
原码01111000B(78H)11111000(F8H)
反码01111000B(78H)10000111(87H)
补码01111000B(78H)10001000(88H)
2.十进制数105,化成二进制数是__________,化成十六进制数是__________。
答案:
01101001,69
3.十进制数-43,在八位计算机中的表示__________。
答案:
10101011
4.将八进制数75.615转换成二进制数是—————。
答案:
111101.110001101
6.将十进制数0.6875转换成二进制数是————。
答案:
0.1011
5.将十六进制数BA4.5转换为二进制数是______。
答案:
101110100100.0101
7.与二进制01010100对应的十进制数是————。
答案:
84
第二章MCS-51结构及引脚
1.什么是单片机?
其主要特点是什么?
答案:
单片机具有体积小、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点。
2.MCS-51系列的典型产品8051、8751和8031的区别是什么?
答案:
8051、8751和8031均为8位单片机,其内部结构是基本相同的。
其不同为:
8051内部有4KBROM,8751内部有4KBEPROM,而8031内部无程序存储器。
3.单片机主要应用在什么领域?
答案:
单片机主要应用在:
智能仪表、机电一体化、实时控制、分布式多机系统、家用电器等,对各个行业的技术改造和产品的更新换代起重要的推动作用。
4.单片机包括哪两种复位方式?
在单片机应用系统中为何需要系统复位?
答案:
单片机可通过上电自动复位和人工复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。
答案:
64K字节程序存储器空间(0-0FFFFH)立即寻址和基寄存器加变址寄存器间接寻址
256字节内部RAM空间(0-0FFH)、(00-7FH)寄存器间接寻址和直接寻址,(80-8FH)寄存器间接寻址
128字节内部特殊功能寄存器空间(80-0FFH)直接寻址,位寻址空间(0-0FFH)位寻址
64K字节数据存储器空间(0-0FFFFH)寄存器间接寻址
5.什么是指令周期?
8051的指令周期一般由几个机器周期构成?
答案:
CPU取出一条指令至该指令执行完所需要的时间称为指令周期。
大多数8051指令执行时间为一个机器周期或两个机器周期。
6.8051的一个机器周期包括几个状态、几个时钟周期(振荡器频率)?
机器周期与时钟周期(振荡器频率)的关系是怎样的?
答案:
一个机器周期由六个状态组成,每个状态为二个时钟周期,即一个机器周期由六个状态构成,所以一个机器周期T=12/f0sc
7.MCS-51的存储器空间分为哪些部分(五个独立的存储空间的划分)?
各空间的寻址范围、寻址方式是什么?
字节地址20H~2FH——既可作为普通的字节寄存器,也可作为位寻址区,每个字节均可分为8个可位寻址的存储元(bit,位),此区间128个存储元按位另外统一编址(即位地址),分别从00H~7FH,常用来存放实际控制中的各种状态信息。
字节地址30H~7FH——普通的字节寄存器,常用来存放临时数据,又称数据缓冲区。
其中最高端的若干字节常用于教学开发机各LED数码管的数据缓冲区,配合监控程序中的显示模块使用。
例如江苏启东厂的教学开发机就是将7EH~79H这6个存储单元当做LED显示缓冲区,无论用户,预制内容是BGD码还是七段代码,都可以在监控程序中找到对应的显示模块,通过调用来完成用户所需的数值显示。
片内高端l28字节的RAM区只有21个字节有效,这21个字节既有地址,又有各自独特的名称,且用途各异,因此称为特殊功能寄存器(SFR)空间,其中凡字节地址能被8整除的SFR均可实现位寻址,其也有独立的位地址,且编号规律与低端位寻址区不同,与各自所在SFR字节地址相关。
10.内部RAM低128B从功能和用途方面,可划分为哪三个区域?
答案:
工作寄存器区、位寻址区、堆栈和数据缓冲区
11.8051内部RAM有几组工作寄存器?
每组工作寄存器有几个工作寄存器?
寄存器组的选择由什么决定?
答案:
0~1FH为四组工作寄存器区,寄存器组的选择由PSW中的RS1、RS0两位决定,每组有8个工作寄存器R0~R7。
12.什么是特殊功能寄存器?
分布在哪里?
答案:
8051内部的I/O口锁存器以及定时器、串行口、中断等各种控制积存器和状态积存器都称为特殊功能积存器。
分布在80H~FFH的地址空间。
13.8051的外部RAM和I/O口是如何编址的?
其寻址空间在哪里?
答案:
是统一编址的,均在64KB的外部数据存储器空间,CPU对它们具有相同的操作功能。
14.MCS-51的程序存储器的寻址空间是多少?
如何区别片内程序存储器和片外程序存储器的?
答案:
为64K字节。
若接VCC,则程序PC的值在0至0FFFFH之间时,CPU取指令时访问内部的程序存储器,PC的值大于0FFFH时,访问外部的程序存储器;若接VSS,则内部的程序存储器被忽略,CPU总是从外部的程序存储器中取指令。
15.8051的位寻址区在哪里?
位寻址空间是多少?
答案:
内部RAM的20~2FH为位寻址区,这16个单元的每一位(16*8)都有一个位地址,它们占据位地址空间的0~7FH。
16.什么是SP?
什么是堆栈?
答案:
SP是堆栈指针,指出栈顶位置。
后进先出的缓冲器称为堆栈。
17.8051的堆栈开辟在什么地方?
其堆栈指针是什么?
复位后堆栈指针初值是多少?
一般将SP设置为多少?
答案:
堆栈设在30~7FH的范围内。
SP是堆栈指针。
复位后是07H。
一般设置为6FH。
18.8051的数据缓冲区一般在什么地方?
19.在计算机中,为什么要采用多级结构的存储器系统?
它的应用是建立在程序的什么特性之上的?
答案:
为了缓解主存储器读写速度慢,不能满足CPU运行速度需要的矛盾,另一方面又要解决主存储器容量小,存不下更多规模更大的程序与更多的数据难题,当前计算机系统中,广泛采用了多级结构的存储器体系结构,建立在程序运行的局部性原理之上。
答案:
在内部的0~7FH,除了实际用到的工作寄存器、位标志和堆栈区以外的单元,都可以作为数据缓冲器使用,存放输入的数据或运算的结果。
第三章MCS-51指令系统
1.什么是指令?
什么是指令系统?
什么是伪指令?
答案:
指令是指示计算机执行某种操作的命令,指令是以一组二进制码表示的,称为机器指令。
计算机只能识别和执行机器指令。
通常把一台计算机所能执行的全部指令的集合称为指令系统。
伪指令也称为汇编命令,大多数伪指令汇编时不产生机器语言指令,仅提供汇编控制信息。
2.什么是总线?
总线有哪些分类?
答案:
总线是计算机中各个功能部件之间传送信息的公用通道,是连接各个功能部件并为它们服务的一组信息传递导线,总线可分为单向总线和双向总线,并行总线和串行总线,若按传递信息的属性不同,可分为地址总线、数据总线和控制总线。
3.立即寻址,其操作数是在存储器中。
这句话是否正确?
答案:
错误。
操作数是在程序存储器中。
4.一条指令通常由哪两部分组成?
指令的操作码一般有几种组织方式?
各自应用在什么场合?
各自的缺点是什么?
答案:
一条指令由操作码和操作数地址码两部分组成。
对操作码的组织与编码有以下三种:
5.计算机指令字中要用的操作数一般来自那些部件?
如何在指令中表示这些操作数的地址?
通常使用那些寻址方式?
答案:
(1)CPU内部的同用寄存器:
给出用到的寄存器编号,寄存器内容可以是运算用的数据或操作数地址。
(2)外围设备(接口)中的一个寄存器:
用设备编号或设备入出端口地址或设备映像地址表示
(3)内存储器的一个存储单元:
存储单元地址
寻址方式:
立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、基地址寻址、间接寻址、堆栈寻址
6.什么是形式地址?
简述对变址寻址、相对寻址、基地址寻址应在指令中给出些什么信息?
如何得到相应的实际(有效)地址?
各自有什么样的主要用法?
答案:
表示在指令中的操作数地址称为形式地址。
(1)变址寻址:
应在指令中给出一个数值(称为变址偏移量)及一个寄存器(称为变址寄存器)的编号。
实际地址(又称有效地址)=变址寄存器的内容+变址偏移量
主要用于处理数组型数据。
(2)相对寻址:
应在指令中给出一个数值(称为相对寻址偏移量)
实际地址(又称有效地址)=程序计数器PC的内容+相对寻址偏移量
主要用于相对转移指令。
(3)基地址寻址:
应在指令中给出一个寄存器(称为基址寄存器)的编号。
实际地址(又称有效地址)=程序中的地址+基址寄存器
主要用于多道程序或浮动地址程序定位存储器空间。
答案:
寄存器寻址:
在指令字中直接给出操作数所在的通用寄存器的编号
寄存器间接寻址:
在寄存器中给出的不是一个操作数,而是操作数地址。
7.寄存器寻址和寄存器间接寻址的区别?
说明下列指令中源操作数采用的寻址方式。
MOVR5,R7
MOVA,55H
MOVA,#55H
JMP@A+DPTR
MOV30H,C
MOVA,@R0
MOVXA,@R0
寄存器寻址方式
直接寻址方式
立即寻址方式
变址寻址方式
位寻址方式
间接寻址方式
间接寻址方式
判断以下各条指令是否正确(LL1和PROC为标号)
(1)MOV@R0,R7(×)
(2)XCHDA,30H(×)
(3)MOVXA,R3(×)
(4)ADDA,R7(○)
(5)SUBR1,R2(×)
(6)ANL36H,#99H(○)
(7)MOVC,ACC.0(○)
(8)ORLP1.0,C(×)
(9)JBC20H.0,LL1(○)
(10)LCALLPROC(○)
下列各条指令其源操作数的寻址方式是什么?
各条指令单独执行后,A中的结果是什么?
设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH,(DPTR)=2000H,(2000H)=AAH,(2019H)=23H
(1)MOVA,#48H
(2)ADDA,60H
(3)ANLA,@R0
(4)XCHDA,@R0
(5)MOVXA,@DPTR
(6)MOVA,R0
(7)MOVCA,@A+DPTR
(A)=48H立即寻址
(A)=4EH直接寻址
(A)=09H寄存器间接寻址
(A)=1FH,(30H)=09H寄存器间接寻址
(A)=0AAH寄存器间接寻址
(A)=30H寄存器寻址
(A)=23H基变址寻址
阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?
(1)MOVR1,#30H;(R1)=
MOVA,#64H;(A)=
ADDA,#47H;(A)=
DAA;(A)=
MOV@R1,A;(R1)=
(2)阅读程序:
若(A)=80H,(R0)=17H,(17H)=34H,执行下列程序段后,(A)=?
ANLA,#17H(A)=
ORL17H,A(17H)=
XRLA,@R0(A)=
CPLA(A)=
30H
64H
0ABH
11H
30H,(30H)=11H
00H
34H
34H
0CBH
设(A)=0FH,(R0)=30H
内部RAM(30H)=0AH,(31H)=0BH(32H)=0CH
请写出在执行各条列指令后,所示单元的内容
MOVA,@R0;(A)=
MOV@R0,32H;(30H)=
MOV32H,A;(32H)=
MOVR0,#31H;(R0)=
MOVA,@R0;(A)=
第四章汇编语言程序设计
将内部RAM的40H~4FH单元置初值A0H~AFH。
(用循环程序)
MOV R7,#10H
MOV A,#0A0H
MOV R0,#40H
LOOP:
MOV@R0,A
INCA
INCR0
DJNZ R7,LOOP
RET
MOV DPTR,#2000H
MOVX A,@DPTR
XCH A,B
MOV DPTR,#3000H
MOVX A,@DPTR
XCH A,B
MOVX @DPTR,A
MOV DPTR,#2000H
XCH A,B
MOVX @DPTR,A
RET
题目:
试编程实现外部RAM2000H单元的内容与3000H单元内容互换。
题目:
编写程序,把外部RAM1000H~10FFH区域
内的数据逐个搬到从2000H开始的区域。
MOVDPL,#00H
MOVR7,#0FFH
LOOP:
MOVDPH,#10H
MOVXA,@DPTR
MOVDPH,#20H
MOVX@DPTR,A
INCDPL;此题中DPL可公用
DJNZR7,LOOP
END
题目:
分析下面个程序段中指令的执行结果
(1)MOVSP,#50H
MOVA,#0F0H
MOVB,#0FH
PUSHACC;(SP)=;(51H)=
PUSHB;(SP)=;(52H)=
POPB;(SP)=;(B)=
POPACC;(SP)=;(A)=
(2)MOVA,#30H
MOVB,#0AFH
MOVR0,#31H
MOV30H,#87H
XCHA,R0;(A)=;(R0)=
SWAPA;(A)=
题目:
编写一循环程序,求出内部RAM20H单元二进制数中含"1"的个数,并将结果存入21H单元。
MOV21H,#00H
MOVA,20H
MOVR7,#08H
LOOP:
RLCA;左循环一位,最高位到C
JNCNEXT;C为0
INC21H;C为1,21H内容+1
NEXT:
DJNZR7,LOOP
END
题目:
编写一循环程序,查找内部RAM30H~50H单元中出现FFH个数,并将查找搭结果存入51H单元。
MOVR0,#30H;数据区首地址
MOVR7,#20H;数据个数
MOV51H,#00H;先设只有0个0ffh
LOOP:
MOVA,@R0
INCR0
CJNEA,#0FFH,NEXT;比较,不等于0ffh转NEXT
;等于0ffh,继续执行
INC51H
NEXT:
DJNZR7,LOOP
END
题目:
查表程序设计
1.用DPTR查表(查0~9平方表)
1000C083TA:
PUSHDPH
1002C082PUSHDPL
1004902000MOVDPTR,#TAB
100793MOVCA,@A+DPTR
1008D082POPDPL
100AD083POPDPH
100C22RET
ORG2000H
TAB:
DB00H,01H,04H,09H
200000
200101
200204
200309
题目:
用PC查表(查0~9平方表)
ORG1000H
1000C083TA:
ADDA,#01H;#01H为偏移量
100283MOVCA,@A+PC
100322RET
100400DB00H,01H,04H,09H
100501END
100604
100709
偏移量=表首地址-(查表指令下一条指令地址)
=1004H-1003H
=01H
题目:
循环程序设计
延时50ms程序
DEL:
MOVR7,#200
DEL1:
MOVR6,#125
DEL2:
DJNZR6,DEL2;125*2=250us
DJNZR7,DEL1;0.25ms*200=50ms
RET
使用12MHz晶振时,一个机器周期为1us,
执行DJNZ指令为2us,加其他指令的时间
(250+1+2)*200+1=50.301ms
题目:
计算几个数据的和
例题:
对内部RAM50h开始的10个无符号数求和。
源程序:
ADD1:
MOVR7,#10;循环次数n=10
MOVR3,#0;存放结果的高8位
MOVR4,#0;存放结果的低8位
MOVR0,#50H;求和的数据存放在从内部RAM50h开始的
;单元中,。
注意:
(50h)=?
不知道
LOOP:
MOVA,R4;
ADDA,@R0;(R4)+(5?
H)→A
MOVR4,A;结果送回R4
CLRA;
ADDCA,R3;把进位位C加到高8位去
MOVR3,A
INCR0;为下一轮循环作准备
DJNZR7,LOOP
END
解释:
高8位低8位
(R3)(R4)
+(50h)
C(A)
MOVA,R4ADDA,@R0MOVR4,A
CLRA
ADDCA,R3
MOVR3,A
(50h)中是什么,不知道,
不能用ADDA,#50H
题目:
分支程序设计
基本分支程序:
(1)若(A)<14H,转NEXT,否则继续执行
(2)若(A)≤14H,转NEXT,否则继续执行
(3)若(A)≥14H,转NEXT,否则继续执行
(4)若(A)>14H,转NEXT,否则继续执行
(A)≤14H
相当于(A)<15H
CJNEA,#15H,LOOP
LOOP:
JCNEXT
……
(A)>14H
相当于(A)≥15H
CJNEA,#15H,LOOP
LOOP:
JNCNEXT
……
CJNEA,#14H,LOOP
LOOP:
JNCNEXT
……
CJNEA,#14H,LOOP
LOOP:
JCNEXT
……
CJNEA,#data,rel;(A)=#data,继续Cy←0
(A)>#data,转Cy←0
(A)<#data,转Cy←1
特点:
只有<时,Cy←1
例1:
按下面公式编写程序,
x为无符号数,存在20h单元
y存放在21h单元。
ORG0030H
MOVA,20H
CJNEA,#21H,LOOP1
LOOP1:
JCNEXT1
CJNEA,#40H,LOOP2
LOOP2:
JNCNEXT2
MOVB,#2
MULAB
AJMPNEXT2
NEXT1:
CPLA
NEXT2:
MOV21H,A
END
最终结果存在21h中
题目:
分支程序例
题目:
分支程序例
从内部RAM22h单元开始存有一个无符号数数据块,长度n存于21h中。
求出数据块中的最小数,存于20h中。
ORG0030H
MOVR0,#22H;数据块起始地址
MOVR1,21H;数据个数n
MOV20H,#0FFH;最大数
LOOP:
MOVA,@R0;取新数
INCR0;为取下一个新数作准备
CJNEA,20H,LOOP1;与原最大数比较
LOOP1:
JNCNEXT;大,原最小数保留
MOV20H,A;小,改变最小数
NEXT:
DJNZR1,LOOP;循环
END
FRT:
MOVA,40H;取行李重量G放在40H
MOVR3,A
MOVB,#03H;M=G×3
MULAB
MOVR2,A;暂存3×G在R2
MOVA,R3;取回G
CJNEA,#06H,L1;G≤5?
L1:
JCWETC;是,转至WETC
SUBBA,#05H;否则M=3G+2(G-5)
RLCA
ADDA,R2
WETC:
MOV41H,A;最后结果M存41H
end
题目:
行李计价:
当G≤5,M=G×3;
当G>5,M=G×3+(G-5)×(5-3)
题目:
散转程序设计
根据R7中的内容,转向各个子程序。
R7=0,转入Prog0
R7=1,转入Prog1
R7=2,转入Prog2
……
R7=n,转入Progn
ORG0030H
JUMP1:
MOVDPTR,#TAB
CLRA
MOVA,R7
ADDA,R7
AJMP@A+DPTR
ORG0100H
TAB:
AJMPProg0
AJMPProg1
AJMPProg2
……
*AJMP…即把PC指向子程序的起始地址;
*R7x2是AJMP@A+DPTR的机器码匹配;此处n<127;
*如用LJMP@A+DPTR,则R7x3,程序还要作相应修改。
题目:
数制转换程序设计
例:
8位二进制转换成BCD码。
(用十进制表达的二进制码)
;程序名:
BINBCD1
;功能:
0~FFH内的二进制数转换为BCD数
;入口:
A存要转换的二进制数
;出口:
R0存放BCD数百、十、个位数的地址
BINBCD1:
MOVB,#100
DIVAB
MOV@R0,A
INCR0
MOVA,#10
XCHA,B;(A)=原(B),(B)=10
DIVAB
MOV@R0,A
INCR0
XCHAB
MOV@R0,A
RET
题目:
设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,请注释每条指令执行后的结果
MOVR0,#30H;(R0)=
MOVA,@R0;(A)=
MOVR1,A;(R1)=
MOVB,R1;(B)=
MOV@R1,P1;(5AH)=
MOVA,P1;(A)=
MOV40H,#20H;(40H)=
MOV30H,40H;(30H)=
题目:
阅读程序,指出程序功能
MOVR0,#31H
MOVR3,#3
MOVR1,#00H
MOVR2,#00H
LOOP:
MOVXA,@R0;取一个加数
ADDCA,R2;单字节数
MOVR2,A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 试题 pptConvertor