单片机历年考试题目.docx
《单片机历年考试题目.docx》由会员分享,可在线阅读,更多相关《单片机历年考试题目.docx(22页珍藏版)》请在冰豆网上搜索。
![单片机历年考试题目.docx](https://file1.bdocx.com/fileroot1/2022-11/24/8e06f3b7-447c-4283-97df-f25d2f31198f/8e06f3b7-447c-4283-97df-f25d2f31198f1.gif)
单片机历年考试题目
《单片机技术》历年考试题目
一、填空题
1、8051单片机的内部硬件结构包括了:
CPU、时钟电路、
中断控制系统、串行口以及片内数据存储器、片内程序存储器、并行I/O口、位处理器等部件,这些部件通过内部数据总线相连接。
(0707)(0801)(0607)
2、8051单片机的内部硬件结构包括了:
CPU,片内RAM,
片内ROM,定时/计数器以及并行I/O口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过内部数据总线相连接。
(0901)(0307)
3、MCS-51单片机的整个存储器系统是由芯片内存储器和芯片外扩展存储器两部分构成的。
MCS-51单片机的程序存储区的最大寻址范围为64K字节,字节内数据存储空间的最大寻址范围是256字节,片外数据存储空间的最大寻址范围是64K字节。
(0707)
4、MCS-51单片机中唯一一个供用户使用的16位寄存器是DPTR,该寄存器在访问外部数据存储器时作为地址指针使用。
(0807)(0601)
5、DPTR在访问外部数据存储器存储器时做地址指针用,DPTR是16位寄存器。
(0807)(0901)(0607)(0307)(0507)
6、MCS-51单片机的堆栈区只可设置在片内数据存储区(器),堆栈寄存器SP
是8位寄存器。
(0701)(0807)(0301)
7、MCS-51的堆栈是属于向上(向高位地址)生长型,这种堆栈的进栈操作规则是SP先加1,后写入数据(0901)(0607)(0307)
8、MCS-51单片机的P0—P3口均是并行I/O口,其中的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的数据总线和地址总线,在P0—P3口中,P0为真正的双向口,P1—P3为准双向口。
(0701)(0801)(0301)
9、MCS-96单片机的最大寻址空间是64K,该空间的地址范围为0000H—FFFFH,系统上电及复位的程序入口地址为2080H,芯片配置字节CCB的地址为2018H。
(0701)(0301)
10、变址寻址是以数据指针DPTR或程序计数器PC寄存器作为基地址寄存器,以累加器A作为变址寄存器,并以两者的内容相加形成的16位地址操作数地址,以达到访问程序存储器中数据表格的目的。
(0901)(0607)(0307)
11、MCS-51单片机的变址寻址是以DPTR或PC作基地址寄存器,以AC作变址寄存器,并以两者内容相加形成的16位地址作为操作数地址,以达到访问程序
存储区中的数据表格的目的。
(0401)
12、MCS-51单片机外部中断请求信号有电平方式和脉冲方式,在电平方式下,当采集到INT0、INT1的有效信号为低电平时,激活外部中断。
(0701)
13、MCS-51单片机的外部中断请求信号若设定为电平方式,只有在中断请求引脚上采样到有效的低电平信号时,才能激活外中断。
而在脉冲方式时,只有在中断请求引脚上采样到脉冲的后沿负跳有效信号时,才能激活外中断。
14、MCS-51单片机共有2个可编程的定时器/计数器,采用16位加法计数结构。
(0901)(0607)(0307)
15、定时器/计数器的工作方式3是指的将定时器/计数器0串行拆成两个独立的8位计数器。
而另一个定时器/计数器此时通常只可作为口的波特率发生器使用。
(0701)
16、单片机系统中经常采用的地址译码技术包括线选地址译码方法和
全地址译码方法。
17、MCS-51单片机外部中断请求信号有脉冲方式和电平方式,在脉冲方式下,当采集到INT0、INT1的有效信号为后沿负跳脉冲信号时,激活外部中断。
(0601)
18、MCS-51单片机的片内数据存储空间的128字节单元通常可划分为3个区域,这3个区域分别是寄存器区、位寻址区、用户RAM区。
19、溢出标志OV只有在进行符号数加法运算时才有意义,OV=0表示加法运算结果正确,OV=1表示加法运算结果超出了A所能表达的符号数有效范围。
(0401)
20、定时器的计数方式是对来自T0、T1引脚的脉冲计数,输入的外部脉冲在负跳变
时有效,计数器加1,定时功能也是通过计数器计数来实现的,定时功能下的计数脉冲来自单片机内部的时钟电路。
21、MCS-51单片机的一个机器周期包含了6个状态周期,每个状态周期又可划分为2个节拍,一个机器周期实际又包含了12个振荡器周期。
22、MCS-51单片机的运算电路包括了算术逻辑运算单元ALU、累加器A,
B寄存器以及状态寄存器PSW和暂存寄存器等部件。
23、MCS-51单片机的控制电路包括了程序计数器PC、指令寄存器、指令译码器和PC加1寄存器以及定时与控制电路等部件。
24、MCS-51单片机的最大程序寻址空间是64K,该空间的地址范围为:
0000H
至FFFFH,系统上电及复位的程序入口地址为0000H。
25、MCS-51单片机的片内数据存储空间的最大寻址范围是256字节、片外数据存储空间的最大寻址范围是64K字节。
(0501)
26、汇编语言指令中的操作数用于给指令的操作提供操作数据或地址。
27、MCS-51单片机的运算电路以算术逻辑运算单元(ALU)为核心,完成的算术运算包括了加、减、乘、除以及增量、减量、比较等
28、当MCS-51单片机采集到INT0、INT1引脚的有效信号为后沿负条脉冲信号激活外部中断,称为脉冲中断方式。
当采集到INT0、INT1引脚的有效信号为低电平激活外部中断称为电平中断方式。
29、从下表中,已知MCS-51单片机程序状态字PSW中的各位分别是F0、RS1、RS2、P,请在下表中添写PSW的剩余位,并简单说明所添写的PSW中各位的含义。
F0
RS1
RS0
/
P
PSW.7为CY:
进位标志位
PSW.6为AC:
辅助进位标志位
PSW.2为OV:
溢出标志位
30、在进行除法运算时,B寄存器中放入的数据为除数,除法指令执行完毕后,B寄存器中存放的数据为商。
31、定时器/计数器的工作方式0为13位计数结构,其计数器由TH0的高8位和TL0的低5位构成。
二、选择题:
1、片内RAM的00H—1FH为四组通用寄存器的地址,现要选择18H—1FH地址单元作为工作寄存器使用,PWS中的RS1、RS0应设置为(D)
A、00B、01
C、10D、11
2、片内RAM的20H—2FH为位寻址区,所包含的位地址是(B)
A、00H---20HB、00H—7FH
C、20H---2FHD、00H---FFH
3、当执行完毕MOVA,#00H指令后,(A)。
A、不影响PSWB、AC标志清0
C、C标志清0D、PSW清0
4、JMP@A+DPTR指令的寻址范围包括了(B)
A、片内、片外RAM区B、64K的ROM区
C、片外RAM区D、整个ROM、RAM空间
5、当MCS-51单片机接有外部存储器,P2口可作为(D)
A、数据输入口B、数据的输出口
C、准双向输入/输出口D、输出高8位地址
6、MCS-51单片机的堆栈区是设置在(C)中
A、片内ROM区B、片外ROM区
C、片内RAM区D、片外RAM区
7、在寄存器间接寻址方式中,间接寄存器中存放的数据是(B)
A、参与操作的数据B、操作数的地址值
C、程序的转换地址D、指令的操作码
三、简答题:
1、请简述单片机中的控制引脚信号ALE、/EA、/PSEN的功能(0807)(0901)(0601)(0307)
答:
ALE为地址锁存控制信号,作为P0口送出的低8位地址信号的锁存信号,可用于分离P0口的低8位地址与8位数据信号。
/EA为访问外部程序存储器的控制信号,当/EA=0时,单片机从外部ROM读取数据,/EA=1单片机从内部ROM开始读取数据并可以延伸至外部ROM。
/PSEN为访问外部程序存储器的读选通控制信号,当单片机读取外部ROM数据时,PSEN为“0”,以实现外部ROM的读操作。
2、已知一单片机系统的外接晶体振荡器的振荡频率为11.059HZ,请计算该单片机系统的节拍P、状态S、机器周期所对应的时间是多少?
指令周期中的单字节双周期指令的执行时间是多少?
(0801)(0301的参数计算题)
3、什么是MCS-51系列单片机的复位操作?
MCS-51系列单片机有几重复位方法?
请画出MCS-51系列单片机复位电路并解释该电路的基本工作原理。
答:
复位是单片机的初始化操作,单片机在启动运行时,都需要先进行复位操作。
此外当单片机处于死机状态时,也可以通过复位方式重新启动单片机系统。
MCS-51系列单片机共有上电复位和手动复位两种方式。
MCS-51系列单片机复位电路图见《单片机技术》教材34页图2-11(b)图
上电复位电路利用电容C充电来实现,上电瞬间,RC电路充电,单片机的
RST引脚端出现正脉冲,当该正脉冲保持2个周期以上的高电平,便可使单片机复位。
手动按键复位则是通过使复位端经R1与Vcc接通而实现的。
4、(19分)(0707)(0701)
1、MCS-51系列单片机具有几个中断源?
如何设置这些中断源的优先级?
2、各中断源对应的中断服务程序的入口地址是否能任意设定?
3、如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该做何种设置才能够转移到该中断服务程序执行?
请举例加以说明。
答1、具有5个中断源,分别是外部中断INT0和外部中断INT1、定时器溢出中断0和定时器溢出中断1以及串行中断,通过对中断优先级寄存器IP的设置,每个中断源都可以被定义为高优先级中断。
2、各中断源的入口地址已经在中断地址区中被定义了,不能任意设顶。
3、如果要将中断服务程序放置在程序存储区的任意区域,在程序中要通过在中断地址区的对应地址上设置跳转指令才可实现对中断服务程序的执行。
例如:
外部中断0的中断服务程序INT0-P放置在程序存储区的任意区域,此时,通过以下方式,可实现对中断服务程序的执行:
ORG0003H
JMPINT0-P
(列举其他中断跳转的例子也可,但叙述的中断源要与中断地址相对应才可得分,如外中断0对应0003H地址)
5、简述题
(1)MCS-51单片机的中断控制原则是什么?
(2)MCS-51单片机的CPU是如何判断中断源是否有中断请求发生的?
(3)如果某一单片机系统有一外部中断1的中断服务程序INTP1放置在程序存储区的2000H地址开始的一段存储空间中。
请问,在编程时应该作何种设置,才能在CPU响应外部中断1时找到对应的中断服务程序INTP1?
答:
(1)中断控制原则包括了三部分:
①低优先级中断不能打断高优先级中断,而高优先级重担可以打断低优先级中断,以实现中断嵌套;②如果一个中断请求已被响应,则同级的其他中断将被禁止,即同级中断不能嵌套;③如果同级的多个中断请求同时出现,则按CPU的同级查询次序确定那一中断先响应。
(2)CPU是通过测试TCON和SCON中各个标志位的状态来确定有没有中断请求发生以及是哪一个中断源的中断请求。
(3)MCS-51单片机外部中断1的中断地址区为0013H—001AH,当外部中断1的中断服务程序INTP1放置在程序存储区的2000H开始的存储区,此时,在编程时通过以下方式,可实现对中断服务程序的执行:
ORG0013H
JMPINTP1或(JMP2000H)
6、(0607)已知:
在某一子程序执行至RET指令时(尚未执行RET指令),堆栈指针(SP)=25H,程序计数器(PC)=5555H,片内RAM的(24H)=12H,(25H)=34H,(26H)=56H,在执行完了RET指令后,
(SP)=23H,(PC)=3412H
返回指令RET的操作为(PC15-8)←((SP))
(SP)←(SP)-1
(PC7—0)←((SP))
(SP)←(SP)-1
7、请简述一条单片机指令的执行过程。
答:
单片机的指令执行过程为:
在控制电路的控制下,首先从程序存储器中取出指令送指令寄存器保存,然后送指令译码器进行译码,译码结果送定时控制逻辑电路,由定时控制逻辑电路产生各种定时信号和控制信号,再送到系统的各个部件去进行相应的操作。
8、堆栈是什么?
请简述MCS-51单片机堆栈的功能,为什么说堆栈需要有足够的容量?
答:
堆栈是一种数据结构,对于MCS-51单片机而言,堆栈只能开辟在芯片内部数据存储区中。
堆栈的第一功能是保存断点地址,因为在单片机执行中断服务程序或进行子程序调用后,都将返回到断点处继续执行程序,为此应预先将断点地址保存在堆栈中,这一入栈、出栈过程是CPU自动完成的。
第二种功能是保护现场,即对于在主程序和中断程序、子程序中使用的同一个寄存器在进入中断程序和子程序执行之前要推入堆栈保护并在执行完中断程序和子程序后再加以恢复。
这一过程是通过入栈、出栈指令完成的。
由于单片机具有多级中断嵌套和多重子程序调用,所以要求堆栈具有足够的容量。
四、判寻址方式
指出下列各条指令中源操作数的寻址方式(10分)(0701)
1、MOVP1,R7寄存器寻址
2、MOV30H,50H直接寻址
3、MOVDPTR,#1050H立即寻址
4、MOVA,@R1寄存器间接寻址
5、MOVCA,@A+DPTR变址寻址
6、MOVC,10H位寻址
7、DJNZR7,rel相对寻址
8、XCHA,R7寄存器直接寻址
9、MOVCA,@A+PC变址寻址
10、MOV20H,A寄存器寻址
11、MOV30H,C位寻址
12、ANLA,20H直接寻址
13、ADDCA,#20H立即寻址
14、JZrel相对寻址
15、CLRC位寻址
16、RRA寄存器寻址
17、MOVR6,A寄存器寻址
18、MOVA,50H直接寻址
19、JCrel相对寻址
20、MOVXA,@DPTR寄存器间接寻址
21、MOVCA,@A+PC变址寻址
22、MULAB寄存器寻址
五、判断改错题(10分)
请判断MCS-51单片机的下列各条指令的书写格式是否有错误,如有请说明错误原因。
1、MULR0R1乘法指令应使用A、B寄存器操作
2、ADD30H,20H运算指令中的目的操作数必须为累加器A
3、MOVR1,C位寻址方式中的源操作数和目的操作数均应为位地址,R1是字节寄存器,这样书写是不对的。
4、MOVXA,@A+DPTR
MOVX指令为对外部数据存储区操作指令,使用的间接寄存器只能是DPTR,使用寄存器间接寻址方式,不可使用变址寻址方式。
5、MOVCB,@A+DPTR
MOVC指令为对程序存储区的操作指令,传送的目的寄存器只能为累加器A,不能传送给其他寄存器。
6、DJNZrel,R0
错误。
寄存器R0与相对转移地址写反了。
3、JMP@A+DPTR
正确
4、LJMP#1000
错误。
长转移指令中的操作数为16位转移地址,不能用立即数的形式表达。
5、DJNZ20H,NEXT正确
6、MOVA,@R7
错误。
间接寄存器使用R7有误,间接寄存器只能使用R0、R1
7、CLRR0
错误,CLR为位操作指令,不可对字节寄存器操作。
8、MOVDPTR,1050H
错误。
不能将直接地址1050H送入DPTR,DPTR只能接收立即数。
(或答:
第二操作数只能为立即数)
9、CJNEA,#50H,NEXT正确
10、MOVA,#3000H8位累加器A不能接受16位数据
11、MOVC@A+DPTR,A
MOVC指令为对程序存储区操作指令,累加器的内容不可通过变址方式送如程序存储器,两操作数写反了。
12、JMP@R0+DPTR
错。
变址寻址中的变址寄存器只可使用A与DPTR相加的形式完成。
13、XCHA,#00H
错。
交换指令只能在寄存器、寄存器与直接地址、间接地址之间进行数据交换,不能与立即数进行数据交换。
14、程序计数器PC的地址为D0H,是可以寻址的专用寄存器()
错,PC没有地址,是不可寻址的专用寄存器。
15、转移指令中的偏移量rel是一个无符号的8位二进制数。
()
错。
是一个以补码表示的8位二进制符号数。
16、MCS-51单片机的P3口是一个单一功能的准双向通用I/O口。
()
错。
P3口除了可作通用I/O口,P3口线还具有第二功能,为系统提供一些控制信号。
17、堆栈主要是为中断操作以及子程序调用而设立的,其功能主要是保护短点地址和保护现场。
()
对
18、D/A转换是指将一个随时间连续变化的模拟信号转换为计算机所能接受的数字量。
()
错。
D/A转换是将计算机处理后的数字量转换为时间连续的模拟信号。
19、对于需要外扩存储器的单片机系统,P0口主要是作为单片机系统的数据线使用。
()
错。
P0口主要是作为单片机系统的数据线与低8位地址线分时共用口使用。
20、当P1口作为输入口使用时,应先向其所存器写入“0”,使输出驱动电路的场效应管FET截止。
()
错。
应先向其锁存器写入“1”
21、程序计数器PC中的数据是当前正在执行的指令的地址。
()
错。
是下一条指令的地址。
22、MCS-51单片机的低8位地址线是由P1口提供的,高8位地址线是由P3口提供的。
()
错。
低8位地址线是由P0口提供,高8位地址线是由P2口提供。
23、A/D转换是将计算机处理后的数字量转化为时间连续的模拟信号输出。
()
错。
A/D转换是将一个随时间连续变化的模拟信号转换为计算机所能接受的数字量。
六、指令分析题(14分)(0807)
试比较下面每一组中两条指令的区别(可直接在每条指令后写出其区别)
1、MOVXA,@R1
以R1为地址指针的片外数据存储器的内容传送到累加器A中.
2、MOVX@R1,A
累加器A中的内容传送到以P1为地址指针的片外数据存储器中.
3、XCHA,R0
A与R0中的数据交换。
4、XCHA,20H
A与直接地址20H中的数据交换。
七、程序分析题
1、设在MCS-51单片机片内RAM中,(20H)=40H,(22H)=10H,(40H)=22H,P1=0CFH,当下列程序执行完毕后,各单元的内容分别为多少?
请填入给定的各个寄存器及片内单元中。
(0801)(0707)
MOVR0,#20H
MOVA,@R0
MOVR1,A
MOVB,@R1
MOV@R1,P1
MOVP3,P1
(A)=(B)=(R0)=(R1)=
(P1)=(P3)=(20H)=(40H)=
(A)=40H(B)=22H(R0)=20H(R1)=40H
(P1)=0CFH(P3)=0CFH(20H)=40H(40H)=0CFH
2、(16分)(0807)
分析下列程序段,当最后一条指令执行后,A中的结果为多少?
CY、AC、OV如何置位?
MOVA,#0C9H
MOVB,#8DH
SETBC
SUBBA,B
(A)=(CY)=(AC)=(OV)=
A=3BHCY=0AC=1OV=0
3、程序分析题(8分)(0607)(0907)
设在MCS-51单片机内RAM中,(20H)=10H,(40H)=10H,P1=0CFH,P3=0AAH,当下列程序执行至伪指令END处时,各相关单元的内容分别为多少?
请填入给定的各个寄存器及片内、片外存储器中。
MOVB,20H
MOVA,40H
MULAB
MOVP1,A
MOVP3,B
ADDA,B
MOVDPTR,#2000H
MOVX@DPTR,A
INCDPTR
MOVA,B
MOVX@DPTRA
END
(A)=,(B)=,(P1)=,(P3)=
(20H)=,(40H)=,(片外2000H)=
(片外2001H)=
解:
(A)=01H(B)=01H(P1)=00H
(P3)=01H(20H)=10H(40H)=10H
(片外2000H)=01H(片外2001H)=01H
4、程序分析及计算题(15分)(0901)(0607)(0307)
有一单片机系统,现启动了定时器0进行中断方式下的循环定时运行,要求每经过2ms进入一次定时器中断,完成将A中的内容左环移一次并送往P1口,编程的运行程序如下:
ORG0000H
LJMPMAIN
ORG000BH
T0INT:
MOVTL0,#30H
MOVTH0,#0F8H
RLA
MOVP1,A
RETI
ORG0100H
MAIN:
MOVTMOD,#01H
MOVTL0,#30H
MOVTH0,#0F8H
MOVA,#01H
SETBTR0
SETBET0
SETBEA
WAIT:
SJMPWAIT
请分析以上程序,利用题中已给出的数据计算:
单片机系统的机器周期为多少?
单片机的状态S为多少/
单片机系统所外接的晶体振荡器频率为多少?
答:
TMOD=01则:
定时器0工作在定时方式1(16位计数方式)
初装值:
F830H=63536(TH0=F8HTL0=30H)
计数值=65536-63536=2000
机器周期=2ms/2000=
5、请分析下列程序执行至伪指令END处时,各相关单元的内容分别为多少?
请填入给顶的各个寄存器中。
ORG20H
DATA:
DB11H,22H,33H,44H
MAIN:
MOVR3,#03H
MOVR0,#DATA
MOVR1,#DATA+1
CLRC
MOVA,@R0
LOOP:
ADDCA,@R1
MOV@R0,A
INCR0
INCR1
DJNZR3,LOOP
END
(A)=AAH(R0)=24H(R1)=25H(R3)=00H
(20H)=33H(21H)=66H(22H)=AAH(C)=0
6、请分析下列程序执行至伪指令END处时,各相关单元的内容分别为多少?
请填入给顶的各个寄存器中。
ORG20H
DATA:
DB22H,33H,44H
ORG24H
DATB:
DB01H,02H,03H
MAIN:
MOVR3,#03H
MOVR0,#DATA
MOVR1,#DATAB
CLRC
LOOP:
MOVA,@R0
ADDCA,@R1
MOV@R0,A
INCR0
INCR1
DJNZR3,LOOP
END
(A)=47H(R0)=22H(R1)=26H(R3)=00H
(20H)=23H(21H)=35H(22H)=47H(C)=0
八、参数计