单片机试题及其答案
一 填空题
1. AT89S51单片机芯片共有个引脚,MCS-51系列单片机为
2. AT89S51单片机有
3. AT89S51内部数据存储器的地址范围是,位地址空间的字节地址范围是 20H-2FH ,对应的位地址范围是 00H-7FH ,外部数据存储器的最大可扩展容量是64k字节。
4. 单片机也可称为
5.当MCS-51执行MOVC A,@A+PC指令时,伴随着
6. 当单片机复位时PSW=,当前的工作寄存器区是R4所对应的存储单元地址为04H。
7. MCS-51系列单片机指令系统的寻址方式有 寄存器寻址 、直接寻址、
寄存器间接寻址、立即寻址、 基址加变址 、 位寻址 。 (相对寻址也可)
8. 51系列单片机的典型芯片分别为 AT89S51 、 8031 、 AT89C51 。
9. AT89S51的p3口为双功能口。
10. 由AT89S51组成的单片机系统在工作时EA引脚应该接
二 选择题
1.如果(A)=45H,(R1)=20H,(20H)=12H,执行XCHD A, @ R1;结果(A)=( A )
A.42H B.20H C.12H D.15H
2. AT89S51复位后,PC与SP的值为分别为( B )
A.0000H、00H B.0000H、07H C.FFFFH、00H D.0000H、FFH
3. 堆栈数据的进出原则是( B )
A.先进先出 B.先进后出 C.后进后出 D.进入不出
4. 已知:R0=28H (28H)=46H,顺序执行下面三条指令后
MOV A,#32H; MOV A,45H ; MOV A,@R0
执行结果A的内容为(A )
A.46H B.28H C.45H D.32H
5. AT89S51单片机中,唯一 一个用户不能直接使用的寄存器是( C ).
A. PSW B.DPTR C . PC D. B
三 判断题
1.AT89S51单片机可执行指令:MOV 35H,@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.为什么基本型51单片机指令MOV A,@R0;规定R0内容不能超过7FH,而增强型的没有此限制?
答:因为寄存器间接寻址方式中R0或R1的内容是操作数的RAM地址,内部RAM的寻址范围是00H~7FH。
2.简述中断响应需要满足的条件。
答:1有中断源发出中断请求;
2中断总允许位EA=1,即CPU开中断;
3申请中断的中断源的中断允许位为1,即中断没有屏蔽;
4无同级或更高级中断正在被服务;
5当前的指令周期已经结束;
6若现在指令为RETI或者是访问IE或IP指令,则该指令以及紧接着的另一条指令已执行完
3.定时器/计数器用作定时器模式时,计数脉冲又谁提供?定时时间和哪些因素有关? 答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。
4.为什么定时器T1作为串行口波特率发生器时,常采用方式2?若已知时钟频率、串行口通信波特率、如何计算装入T1的初值?
答:方式2的8位计数器(最大计数值=2^8=256d) ,
每次计数溢出时,由硬件电路自动重装计数初值。
初装值计算举例如下:
波特率=((2的SMOD次方)x F)/(32x12x(256-N)
其中:SMOD是特殊功能寄存器PCON的第7位,取1或0(波特率倍增,或不倍增)。 晶振为11.0592MHZ,
当SMOD取0,波特率 = F/(32x12x(256-N)),
计数初装值N=256-F/(波特率x32x12)=256-1105920/(9600x32x12)=253 即0FDh
五 图为8段共阴数码管,请写出如下数值的段码
答案 0 3FH 1 06H 2 5BH 3 4FH 4 66H 5 6DH P 73H 7 07H 8 7FH C 39H
六 分析下面程序的功能:(1) 写出每条指令的功能 (2) 分析程序的总体功能。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: JNB P1.0, MAIN
MOV TMOD,#05H ;定时器/计数器T0为计数方式1
SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
SETB EA ;CPU开中断
WAIT: JB P1.2, WAIT
CLR EA
CLR TR0
MOV R1,TH0
MOV R0,TL0
AJMP $
IT0P: INC R2在电平负跳变前,如果计数器溢出,则进位存入R2
RETI
七 试编写程序,查找在内部RAM的30H~50H单元中是否有0BBH这一数据。如果有,则将51H单元置为“01H” ;如果没有,则将51H单元置为“00H”
START: MOV R0,#30H
MOV R2,#20H
LOOP: MOV A,@R0
CJNE A,#0BBH,NEXT
MOV 51H,#01H
LJMP EXIT
NEXT: INC R0
DJNZ R2,LOOP
MOV 51H,#00H
EXIT: RET
一 填空题
1.单片机与普通微型计算机的不同之处在于其将CPU、存储器和(I/O口)三部分,通过内部总线连接在一起,集成在一块芯片上。
2.AT89S51内部数据存储器的地址范围是 00H~7FH ,位地址空间的字节地址范围是20H~2FH,对应的位地址范围是 00H~7FH ,外部数据存储器的最大可扩展容量64K。
3.如果(A)=34H,(R7)=0ABH,执行XCH A, R7;结果(A)= 0ABH ,(R7)=34H
4.若A中的内容为67H,那么,P标志位为 1 。
5.AT89S51复位后,PC与SP的值为分别为000H 和 07H
6.AT89S51的P0口为高8位地址总线口。
7.数据指针DPTR有16位,程序计数器PC有16位
8.当单片机的PSW=01H时,这时当前的工作寄存器区是0区,R4所对应的存储单元地址为04H
9.串行口方式2接收到的第9位数据送SCON寄存器的RB8位中保存。
10.欲使P1口的低4位输出0,高4位不变,应执行一条ANL P1, #0F0H命令。
二 选择题 (每题2分 共10分)
1.( C )
A.内部RAM单元数目不同 B.内部RAM存储器的类型不同
C. 内部程序存储器的类型不同 D.内部寄存器数目不同
2.对于程序存储器的操作,只能使用( D )
A.MOV指令 B.PUSH指令 C.MOVX指令 D.MOVC指令
3.串行口工作方式1的波特率是( D )
A.固定的,为fosc/32 B. 固定的,为fosc/16.
C.固定的,为fosc/64 D.可变的,由定时器T1的溢出率决定
4.AT89S51只有( )为单一功能口,其余都是多功能口。
A.P0 B.P1 C.P2 D.P3
5.串行口的方式0的波特率为 ( A )
A.fosc/12 B.fosc/6 C.fosc/32 D.fosc/64
三 判断题
1.AT89S51单片机可执行指令:MOV 35H,@R3。( × )
2.程序计数器PC中装的内容是当前正在执行指令的地址。( × )
3.指令中直接给出的操作数称为直接寻址 ( × )
4.当向堆栈压入一个字节的数据后,SP中的内容减1( × )
5.当EA脚接高电平时,对ROM的读操作只访问片外程序存储器(× )
6.某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址(√ )
7.逐次比较型A/D转换器与双积分A/D转换器比较,转换速度比较慢( × )
8.内部RAM的位寻址区,既能位寻址,又可字节寻址 (√ )
9.串行口工作方式1的波特率是固定的,为fosc/32(× )
10. 定时器的方式2可以作为串行口波特率发生器( √ )
四 简答题
1. 简述AT89S51单片机片内集成了哪些功能部件?
答:1个CPU;128B的RAM单元 ;4KB程序存储器;4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);1个全双工串行口;定时器/计数器;一个中断系统,5个中断源,2个优先级;一个片内振荡器及时钟电路;可寻址64KB外部数据存储器和64KB外部程序存储器空间的控制电路
2. 简述定时器/计数器方式2有什么特点?适用于哪些应用场合?
答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。
3.简述AT89S51串行口有几种工作方式?各种工作方式的波特率如何确定?
答:串行口有 4 种工作方式:方式 0、方式 1、方式 2、方式 3;
方式1的波特率=2^SMOD/32×定时器T1的溢出率
方式2的波特率=2^SMOD/64×fosc
方式3的波特率=2^SMOD/32×定时器T1的溢出率
4.采用6MHz的晶振,定时5ms,用定时器方式1时的初值应为多少?
答: 机器周期 =12/Fosc=12/(6x10^6Hz) =2μs
定时5ms的计数值=5000μs/2μs =2500d
约定T1工作方式1,是16位计数器,
初装值 = 2^16 - 2500d = 65536d -2500d = 63036d = F63Ch
TH1←F6H, TL1←3CH
五 简述行列式键盘线反转法识别按键的工作原理
答: 第1步:让行线编程为输入线,列线编程为输出线,使输出线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。
第2步:再把行线编程为输出线,列线编程为输入线,使输出线输出为全低电平,则列线中电平由高变低的所在列为按键所在列。
综合上述两步,可确定按键所在行和列。
六 分析下面程序的功能:(1) 写出每条指令的功能 (2) 分析程序的总体功能。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: JNB P1.0, MAIN
MOV TMOD,#05H ;
SETB TR0 ;
SETB ET0 ;
SETB EA ;
WAIT: JB P1.2, WAIT
CLR EA
CLR TR0
MOV R1,TH0
MOV R0,TL0
AJMP $
IT0P: INC R2
RETI
七 试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据。如果有,则将51H单元置为“01H” ;如果没有,则将51H单元置为“00H”
答:START: MOV R0,#30H
MOV R2,#20H
LOOP: MOV A,@R0
CJNE A,#0AAH,NEXT
MOV 51H,#01H
LJMP EXIT
NEXT: INC R0
DJNZ R2,LOOP
MOV 51H,#00H
EXIT: RET