单片机试题及答案.docx
《单片机试题及答案.docx》由会员分享,可在线阅读,更多相关《单片机试题及答案.docx(49页珍藏版)》请在冰豆网上搜索。
单片机试题及答案
试题1参考答案一、填空题(25分,每空1分)
1.AT89S51单片机为8位单片机
2.MCS-51系列单片机的典型芯片分别为8031、8051、8751。
3.AT89S51的异步通信口为全双工(单工/半双工/全双工)
4.AT89S51有2级中断,5个中断源
5.AT89S51内部数据存储器的地址范围是00H~7FH,位地址空间的字节地址范围是20H~2FH,对应的位地址范围是00H~7FH,外部数据存储器的最大可扩展容量是64K。
6.AT89S51单片机指令系统的寻址方式有__寄存器寻址__、____直接寻址____、___寄存器间接寻址_____、_立即寻址____、基址寄存器加变址寄存器寻址。
7.如果(A)=34H,(R7)=0ABH,执行XCHA,R7;结果(A)=0ABH,
(R7)=34H。
8.82C55可以扩展3个并行口,其中8条口线具有位操作功能;
9.当单片机复位时PSW=00H,这时当前的工作寄存器区是0区,R4所对应的存储单元地址为04H。
10.若A中的内容为67H,那么,P标志位为1。
11.74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中8片芯片。
二、判断以下指令的正误:
(5分)
(1)MOV28H,@R4;(×)
(2)INCDPTR;(√)
(3)DECDPTR;(×)
(4)CLRR0;(×)
(5)MOVT0,#3CF0H;(×)
三、简答题
1、如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:
POPDPH;
POPDPL;
POPSP;
则:
(DPH)=___3CH___;(DPL)=___5FH___;(SP)=___50H___;(6分)
2、采用6MHz的晶振,定时1ms,用定时器方式0时的初值应为多少?
(请给出计算过程)(6分)
解:
∵采用6MHZ晶振
∴机器周期为2us
(213-X)×2×10-6=1×10-3
∴X=7692(D)=1E0CH=1111000001100(B),
化成方式0要求格式为111100001100B
即0F00CH
综上可知:
TLX=0CH,THX=0F0H
3.分析下列程序的功能(5分)
PUSHACC
PUSHB
POPACC
POPB
解:
该程序的功能是通过累加器ACC与寄存器B数据交换。
四、图为8段共阴数码管,请写出如下数值的段码。
abcdefgh
D0D1D2D3D4D5D6D7
0__3FH___1__06H___2_5BH
3_4FH__4_66H_56DH___
P__73H__7_03H___8_7FH__
C_39H_
五、简述MCS-51系列单片机主从结构多机通信原理,设有一台主机与三台从机通信,其中一台从机通信地址号为01H,请叙述主机呼叫从机并向其传送一个字节数据的过程。
(请给出原理图)(10分)
从机从机从机从机
答:
原理图如上图所示,假设主机呼叫01H从机,首先呼叫:
主机发送地址帧000000011(TB8)此时各从机的SM2位置1,且收到的RB8=1,故激活RI。
各从机将接收到的地址与地机地址比较,结果1#机被选中,则其SM2清零;0#、2#机不变。
接着传数;主机发送数据帧,××××××××0,此时1#机SM2=0,RB8=0则激活RI,而0#,2#机SM2=1,RB8=0则不激活RI,然后数据进入1#机的缓冲区。
六、简述一种多外部中断源系统的设计方法。
(给出图和程序)(10分)
答:
原理电路如图所示
程序如下:
INT:
PUSHPSW
PUSH A
JNBP1.0,IR0;扫描中断请求
JNBP1.1,IR1
JNBP1.2,IR2
JNBP1.3,IR3
INTIR:
POP A ;返回
POP PSW
IR0:
中断服务子程序;中断服务
AJMPINTIR
IR1:
中断服务子程序
AJMPINTIR
IR2:
中断服务子程序
AJMPINTIR
IR3:
中断服务子程序
AJMPINTIP
七、简述行列式扫描键盘的工作原理。
(8分)
答:
扫描键盘工作原理
(1)首先X0~X3,始终接高电平,Y0~Y3给低电平,扫描P1.0~P1.3若全为高电平,则没有键按下,若有低电平,则有键按下。
(2)接着Y0输出低电平,Y1~Y3输出高平,扫描P1.0~P1.3,若全为高电平,则没有键按下,若有低电平,则找出相位,得到所按的键。
(3)再Y1输出低电平,Y0,Y2,Y3输出高电平,重复第2步骤作.
(4)再Y2输出低电平,Y0,Y1,Y3输出高电平扫描
(5)再Y3输出低电平,Y0,Y1,Y2输出高电平扫描
根据据以上扫描,确定以上各键是否按下。
八、请回答:
(共20分)
1、下图中外部扩展的数据存储器容量是多少?
(2分)
2、三片6264的地址范围分别是多少?
(地址线未用到的位填1)(6分,)
3、若外部程序存储器已扩展(未画出),请编写程序,要求:
(1)将30H~3FH中的内容送入62641#的前16个单元中;(6分)
(2)将62642#的前32个单元的内容送入40H~5FH中;(6分)
解:
1.外部扩展的数据存储器为3片8K的RAM,外扩容量为24K
2.A15A!
4A13地址范围
0116000H~7FFFH
101A000H~BFFFH
3.
(1)程序如下:
ORG0000H
RESET:
AJMPMAIN;复位,转主程序
ORG0100H
MAIN:
MOVDPL,#00H;初始化DPTR
MOVDPH,#60H
MOVR0,#30H.;初始化R0
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
CJNER0,#40H,LOOP
NOP
RET
(1)程序如下:
ORG0000H
RESET:
AJMPMAIN;转主程序
ORG0100H
MAIN:
MOVDPL#00H;初始化DPTR
MOVDPH,#0A0H
MOVR0,#40H;初始化R0
LOOP2:
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
CJNER0,#60H,LOOP2
NOP
RET
试题2参考答案
一、填空题(24分,每空1分)
1.AT89S51单片机是(8)位的单片机。
2.AT89S51单片机有(5)个中断源,
(2)级优先级中断。
3.串行口方式3发送的第9位数据要事先写入(SCON)寄存器的(TB8)位。
4.串行口的方式0的波特率为(fOSC/12)。
5.AT89S51内部数据存储器的地址范围是(00-7FH),位地址空间的字节地址范围是(20-2FH),对应的位地址范围是(00-7FH)外部数据存储器的最大可扩展容量是(64KB)。
6.在内部RAM中可位寻址区中,位地址为40H的位,该位所在字节的字节地址为(28H)。
7.如果(A)=58H,(R1)=49H,(49H)=79H,执行指令XCHA,@R1后;结果(A)=(49H),(49H)=(58H)。
8.利用81C55可以扩展(3)个并行口,(256)个RAM单元。
9.当单片机复位时PSW=(00)H,SP=(07H),P0~P3口均为(高)电平。
10.若A中的内容为88H,那么,P标志位为(0)。
11.当AT89S51执行MOVCA,@A+DPTR指令时,伴随着(PSEN*)控制信号有效。
12.AT89S51访问片外存储器时,利用(ALE)信号锁存来自(P0口)发出的低8位地址信号。
13.已知fosc=12MHz,T0作为定时器使用时,其定时时间间隔为(1us)。
14.若AT89S51外扩8KB程序存储器的首地址若为1000H,则末地址为(2FFF)H。
二、判断对错,如对则在()中写“√”,如错则在()中写“×”。
(10分)
1.AT89S51单片机可执行指令:
MOV35H,@R3。
(×)
2.8031与8751的区别在于内部是否有程序存储器。
(√)
3.当向堆栈压入一个字节的数据后,SP中的内容减1。
(×)
4.程序计数器PC中装的内容是当前正在执行指令的地址。
(×)
5.某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址。
(√)
6.AT89S51单片机中的PC是不可寻址的。
(√)
7.当AT89S51执行MOVX@DPTR,A指令时,伴随着WR*信号有效。
(×)
8.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期。
(×)
9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被WR*还是被PSEN*信号连接。
(√)
10.各中断源发出的中断请求信号,都会标记在AT89S51的TCON寄存器中。
(×)
三、简答题
1.如果(DPTR)=5678H,(SP)=42H,(3FH)=12H,(40H)=34H,(41H)=50H,(42H)=80H,则执行下列指令后:
POPDPH
POPDPL
RET
则:
(PCH)=_34H_;(PCL)=_12H__;(DPH)=__80H__;(DPL)=__50H__;(4分)
2.AT89S51采用6MHz的晶振,定时2ms,如用定时器方式1时的初值(16进制数)应为多少?
(写出计算过程)(6分)
答:
机器周期6×106=2×10-6s=2uS
又方式1为16进制定时器.故
(216—X)×2×10-6=2×10-3=>216-X=1000
=>X=65536-1000=64536即初值=FC18H
3.AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么?
(6分)
答:
不发生数据冲突的原因是:
AT89S51中访问程序存储器和数据存储器的指令不一样。
选通信号也就不一样,前者为PSEN,后者为WR与RD。
程序存储器访问指令为MOVCA,@DPTR;MOVCA,@A+pc。
数据存储器访问指令为:
movxA,@DPTR;MOVXA,@Ri;MOVX@DPTR,A。
4.说明AT89S51的外部引脚EA*的作用?
(4分)
答:
当EA*为高电平时,AT89S51访问内部程序存储器,但当地址大于0FFF时,自动转到外部程序存储器;当EA*为低电平时,AT89S51只读取外部程序存储器。
5.写出AT89S51的所有中断源,并说明说明哪些中断源在响应中断时,由硬件自动清除,哪些中断源必须用软件清除,为什么?
(6分)
答:
外部中断INT0*
定时器/计数器中断T0
外部中断INT1*
定时器/计数器中断T1
串行口中断
其中串行口中断TI与RI必须用软件清“0”,因为串口中断的输出中断为TI,输入中断为RI,故用软件清“0”。
四、下图为某AT89S51应用系统的3位LED8段共阳极静态显示器的接口电路,
(1)该静态显示器电路与动态扫描的显示器电路相比有哪些优缺点?
(2)写出显示字符“3”、“8”、“5”的段码,注意:
段码的最低位为“a”段,段码的最高位为“dp”段(3)已知8255A的PA口、PB口和PC口的地址分别为FF7CH、FF7DH、FF7EH,且8255A的这3个端口均已被编写完毕的初始化程序初始化为方式0输出,请编写出使3位LED共阳极显示器从左至右显示“3.85”的程序段。
(14分)
82C55
解:
(1)优点是:
亮度高,字符不闪烁,占用CPU资源少。
缺点是:
占用的I/O口太多,当需要的LED数目较多时,需要外扩展的I/0口。
(2)3.:
→B0H
8:
→80H
5:
→92H
(3)MOVDPTR,#0FF7CH
MOVA,#30H
MOVX@DPTR,A
MOVDPTR,#0FF7DH
MOVA,#80H
MOVX@DPTR,A
MVOX@DPTR,#0FF7EH
MOVA,#92H
MOVX@DPTR,A
RET
五、画出AT89S51系列单片机利用串行口进行1台主机与4台从机多机串行通讯连线图,其中1台从机通讯地址号为02H,请叙述主机向02H从机发送一个字节数据的过程(10分)
答:
主机发送数据过程如下:
(1)将从机00~03H的REN置1,SM2=1,并使它们工作在串行口工作方式2或3。
(2)由主机向4个从机发出一帧地址址信息02H,第9位为1。
从机接到信息后均发生中断,执行中断服务程序,将02H与自身地址做比较。
若相同,则清SM2=0,若不同则SM2不变仍为1。
(3)主机发送一帧数据信息,第9位为0,从机接到信息后,只有SM2=0的从机发生中断,将数据信息收取,其余SM2=1的从机不放出中断,信息丢失,从而实现主机向02H从机发送一个字节数据的功能。
六、请回答:
(共16分)
1.下图中外部扩展的程序存储器和数据存储器容量各是多少?
(2分)
2.两片存储器芯片的地址范围分别是多少?
(地址线未用到的位填1)(6分,)
3.请编写程序,要求:
(1)将内部RAM30H~3FH中的内容送入1#6264的前16个单元中;(4分)
(2)将2#6264的前4个单元的内容送入40H~43中;(4分)
●
解:
1.外扩程序存储器的容量是8K,外扩数据存储器的容量是16K
2.2764范围:
C000H~DFFFH
1#范围:
A000H~BFFFH
2#范围:
6000H~7FFFH
3.请编写程序
(1)MOVR1,#10H
MOVDPTR,@0A000H
MOVR0,#30H
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCDPTR
INCR0
DJNZR1,LOOP
RET
(2)MOVR1,#04H
MOVDPTR,#6000H
MOVR0,#40H
LOOP:
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
DJNZR1,LOOP
RET
试题3参考答案
一、填空题(31分,每空1分)
1.AT89S51单片机有
(2)级优先级中断。
2.串行口方式2接收到的第9位数据送(SCON)寄存器的(RB8)位中保存。
3.当单片机复位时PSW=(00)H,这时当前的工作寄存器区是(0)区,R6所对应的存储单元地址为(06)H。
4.利用82C55可以扩展(3)个并行口,其中(8)条口线具有位操作功能;
5.AT89S51访问片外存储器时,利用(ALE)信号锁存来自(P0口)发出的低8位地址信号。
6.若AT89S51外扩32KB数据存储器的首地址若为4000H,则末地址为(BFFF)H。
7.当AT89S51执行MOVCA,@A+PC指令时,伴随着(PSEN*)控制信号有效。
8.若A中的内容为67H,那么,P标志位为
(1)。
9.AT89S51单片机的通讯接口有(串行)和(并行)两种形式。
在串行通讯中,发送时要把(并行)数据转换成(串行)数据。
接收时又需把(串行)数据转换成(并行)数据。
10.AT89S51内部数据存储器的地址范围是(00-7FH),位地址空间的字节地址范围是(00-2FH),对应的位地址范围是(00-7FH),外部数据存储器的最大可扩展容量是(64KB)。
11.AT89S51单片机指令系统的寻址方式有(寄存器寻址方式)、(直接寻址方式)、(立即寻址方式)、(寄存器间接寻址方式)、(位寻址方式)、(基址寄存器加变址寄存器)、(相对寻址方式)。
12.AT89S51内部提供
(2)个可编程的(16)位定时/计数器,定时器有(4)种工作方式。
二、判断对错,如对则在()中写“√”,如错则在()中写“×”。
(10分)
1.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期。
(×)
2.判断指令的正误:
MOVT0,#3CF0H;(×)
3.定时器T0中断可以被外部中断0中断(×)
4.指令中直接给出的操作数称为直接寻址。
(×)
5.内部RAM的位寻址区,既能位寻址,又可字节寻址。
(√)
6.特殊功能寄存器SCON与定时器/计数器的控制无关。
(√)
7.当AT89S51执行MOVXA,@R1指令时,伴随着WR*信号有效。
(×)
8.串行口工作方式1的波特率是固定的,为fosc/32。
(×)
9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被RD*还是被PSEN*信号连接。
(×)
10.逐次比较型A/D转换器与双积分A/D转换器比较,转换速度比较慢。
(×)
三、简答题
1.AT89S51采用12MHz的晶振,定时1ms,如用定时器方式1时的初值(16进制数)应为多少?
(写出计算过程)(6分)
解:
采用12MHZ的晶振,Tcy=1/fosc×12=1/12×10-6×12=1us
采用定时器方式1(为16位)
定时1ms,设初值为X,则:
(216-X)×1×10-6=1×10-3
则=>X=64536将其转换成二进的为:
1111110000011000
再将其转化为16进制数为:
FC18
初值为TXH=FCHTXL=18H
2.中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别?
(4分)
答:
RETI除了将压栈的内容出栈外(即现场恢复),还清除在中断响应时被置1的AT89S51内部中断优先级寄存器的优先级状态。
3.AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么?
(6分)
答:
AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突。
这是因为它们的控制信号不同:
(1)外扩程序存储器是PSEN*信号为其控制信号
外扩数据存储器是RD*与WR*信号为其控制信号
(2)指令不同,程序存储器用MOVC读取,数据存储器用MOVX存取
4.图为8段共阴数码管,请写出如下数值的段码。
(5分)
D0D1D2D3D4D5D6D7
3FH06H5BH
4FH66H6DH
73H07H7FH
39H
0____________________1____________________2____________________
3____________________4____________________5____________________
P____________________7____________________8____________________
C____________________
5.LED的静态显示方式与动态显示方式有何区别?
各有什么优缺点?
(4分)
答:
静态:
显示期间,锁存器输出的段码不变;亮度大,各位LED的段选分别控制;位数多硬件电路复杂
动态:
所有位段码线并连一起,各位的亮灭靠片选控制端控制,亮度较低,多位控制电路简单
四、程序分析:
(10分)
外部RAM3000H,3001H单元的内容分别为55H,0DDH,试分析如下程序,并回答问题。
程序1:
MOVDPTR,#3000H
4000H
3001H
3000H
MOVR1,#40H
MOVXA,@DPTR
MOV@R1,A
DD
55
INCR1
INCDPTR
MOVXA,@DPTR
MOV@R1,A
问题1:
若执行上述程序,则结束后,DPTR值为3001H,R1的内容为41H,8031内部RAM41H单元的内容DDH,40H单元内容为__55H__。
在上程序中,若继续执行如下程序
程序2:
START:
MOVDPTR,#3000H
MOVR1,#40H
MOVA,@R1
MOVX@DPTR,A
问题2、START执行结束后,DPTR的值为_3000H_,4000H单元的内容为_55H_,R1的内容为__40H___。
问题3:
执行如下程序,填出A寄存器的内容。
程序3、MOVA、#88H
MOVR7,#AAH
ORLA、R7:
A的内容为:
__AAH__
MOVA,#37H
MOVR7,#89H
ANLA,R7A的内容为:
__01H_
XRLA,R7A的内容为:
__88H_
RET
五、简述一种多外部中断源系统的设计方法。
(给出图和程序)(10分)
答:
程序如下:
ORG0013H;的中断入口
LJMPINT1;
┇
INT1:
PUSHPSW;保护现场
PUSHACC
JBP1.0,IR1;P1.0高,IR1有请求
JBP1.1,IR2;P1.1高,IR2有请求
JBP1.2,IR3;P1.2脚高,IR1有请求
JBP1.3,IR4;P1.4脚高,IR4有请求
INTIR:
POPACC;恢复现场
POPPSW
RETI;中断返回
IR1:
IR1的中断处理程序
AJMPINTIR;IR1中断处理完毕,跳标号INTIR处执行
IR2:
IR2的中断处理程序
AJMPINTIR;IR2中断处理完毕,跳标号INTIR处执行
IR3:
IR3的中断处理程序
AJMPINTIR;IR3中断处理完毕,跳标号INTIR处执行
IR4:
IR4的中断处理程序
AJMPINTIR;IR4中断处理完毕,跳标号INTIR处执行
六、请回答:
(共14分)
1.下图中外部扩展的程序存储器和数据存储器容量各是多少?
(2分)
2.三片存储器芯片的地址范围分别是多少?
(地址线未用到的位填1)(4分,)
3.请编写程序,要求:
(3)将内部RAM40H-4FH中的内容送入1#6264的前16个单元中;(4分)
(4)将2#6264的前4个单元的内容送入50H-53H中;(4分)
●
答:
1.解外部扩展的程序存储器容量为:
8KB
外部扩展的数据存储器容量为:
8KB×2=16kb
2.程序存储器2764地址的高3位: