参考题与习题参考答案Word文件下载.docx
《参考题与习题参考答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《参考题与习题参考答案Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
对
(D)PC可以瞧成就是程序存储器得地址指针。
8。
803 1单片机复位后,R4 所对应得存储单元得地址为(04H ),因上电时PSW=(00H )。
这时当前得工作寄存器区就是(0)组工作寄存器区。
9.什么就是机器周期?
如果采用12MHz晶振,一个机器周期为多长时间?
CPU完成一个基本操作所需要得时间称为机器周期。
如果采用12MHz晶振,一个机器周期为1us。
10.内部RAM中,哪些单元可作为工作寄存器区,哪些单元可以进行位寻址?
写出它们得字节地址。
地址为00H~1FH得32个单元为4组通用工作寄存器区。
地址为20H~2FH得16个单元可进行位寻址,这些单元构成了1位处理机得存储器空间。
11.使用8031单片机时,需要将引脚接(低 )电平,因为其片内无(程序)存储器。
12。
片内RAM低128个单元划分为哪三个主要部分?
各部分得主要功能就是什么?
(1)地址为00H~1FH得32个单元就是4组通用工作寄存器区,每个区含8个8位寄存器,编号为R0~R7。
(2)地址为20H~2FH得16个单元可进行共128位得位寻址,这些单元构成了1位处理机得存储器空间。
单元得每一位都有自己得位地址,这16个单元也可以进行字节寻址。
(3)地址为30H~7FH得单元为用户RAM区,只能进行字节寻址.
13。
判断下列说法就是否正确
(A)内部RAM得位寻址区,只能供位寻址使用,而不能供字节寻址使用.错
(B)8031共有21个特殊功能寄存器,它们得位都就是可用软件设置得,因此,就是可以进行位寻址得。
错,只有字节地址末位为“0”或“8”得SFR支持案位访问。
14.单片机程序存储器得寻址范围就是由程序计数器PC得位数决定得,MCS—51得PC为16位,因此其寻址得范围就是(64KB )。
15、写出P3口各引脚得第二功能.
16.当MCS-51单片机程序陷人死循环时,如何退出死循环?
借助于复位或WDT技术。
17.判断下列说法就是否正确
(A)PC就是一个不可寻址得特殊功能寄存器。
(B)单片机得主频越高,其运算速度越快。
(C)在MCS-1单片机中,一个机器周期等于1/fosc.错
(D)特殊功能寄存器SP内装得就是栈顶首地址单元得内容。
3章参考题与习题
1.判断以下指令得正误:
(1)MOV 28H,R1
(2)DEC DPTR(3)INCDPTR(4)CLR R0
(5)CPLR2 (6)MOVR0,R1(7)PUSHDPTR(8)MOV F0,C
(9)MOVF0,Acc。
3 (10)M0VXA,@R1(l1)MOVC,30H(12)RLCR0
(1)对;
ﻩ(2)错;
(3)对;
ﻩ(4)错;
ﻩ(5)错;
ﻩ(6)错;
(7)错;
ﻩ(8)对;
(9)错;
(10)对;
ﻩ(11)对;
ﻩ(12)错;
2.判断下列说法就是否正确。
(A)立即寻址方式就是操作数本身在指令中,而不就是它得地址在指令中。
(B)指令周期就是执行一条指令得时间。
(C)操作数直接出现在指令中称为直接寻址。
(A)对;
ﻩ(B)对;
ﻩ(C)错;
3.在基址加变址寻址方式中,以( A)作变址寄存器,以(PC )或(DPTR)作基址寄存器。
4。
MCS—51单片机共有哪几种寻址方式?
寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、基址加变址寻址。
MCS-51单片机指令按功能可以分为哪几类?
分5类:
1)数据传送类,用于数据传送;
2)算术运算类,用于算术运算;
3)逻辑运算类,用于逻辑运算;
4)控制转移类,用于转移;
5)位操作类,用于按位操作。
6。
访问特殊功能寄存器SFR,使用哪种寻址方式?
访问52系列单片机内部RAM得高端128B使用哪种寻址方式?
访问SFR,只能使用直接寻址方式;
访问高端128B内部RAM,只能使用间接寻址方式.
7,指令MOVC与MOVX有什么不同之处?
前者访问ROM区,后者访问外部数据区。
8、假定累加器A中得内容为30H,执行指令:
1000HM0VCA,@A+PC
后,把程序存储器(1031H)单元得内容送入累加器A中。
9、 寄存器间接寻址方式中,其“间接”体现在指令中寄存器得内容不就是操作数,而就是操作数得(地址)。
10。
下列程序段得功能就是什么?
PUSHA
PUSH B
POP A
POP B
A、B中得内容相互交换。
11.已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH.下述程序执行后:
POP DPH
POP DPL
MOVDPTR,#4000H
RL A
MOV B,A
M0VC A,@A+DPTRﻩ
PUSH Aﻩ
MOV A,B
INC Aﻩﻩ
M0VC A,@A+DPTR
PUSHA
RET
ORG 400OH
DB 10H,80H,30H,50H,30H,50H
请问:
A=( 50)H;
SP=(50)H;
(51H)=(30)H;
(52H)=(50)H;
PC=(5030)H.
12.写出完成如下要求得指令,但就是不能改变未涉及位得内容。
(1)把Acc.3,Acc.4,Acc。
5与Acc、6清“0"
(2)把累加器A得中间4位清“0”。
(3)使Acc.2与Ac。
3置“1”.
(1)ANLA,#10000111Bﻩ
(2) ANLﻩA,#11000011Bﻩ
(3)ORLﻩA,#00001100B
13。
试编写一段程序,将内部RAM中38H单元得高4位置1,低4位清0。
MOVﻩ38H,#0F0H
14.假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:
ANL A,#17H
0RL17H,A
XRLA,@R0 '
CPLA
后,A得内容为(CBH)。
15。
假设A=55H,R3=0AAH,在执行指令“ANL A,R3”后,A=(00),R3=(0AAH)。
16。
如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后,DPH=(3CH),DPL=(5FH),B=(50H)。
POPDPH
POPDPL
POPB
17、指令格式就是由(操作码)与(操作数)所组成,也可能仅由(操作码)组成。
18.MCS-51单片机对片外数据存储器采用得就是(寄存器间接)寻址方式。
19。
试编写程序,查找在内部RAM得20H~40H单元中就是否有55H这一数据.若有,则将A置为“01H”;
若未找到,则将A置为“00H”.
SEARCH:
ﻩﻩﻩMOVﻩR0,#20H
ﻩﻩMOVﻩR2,#33
L:
ﻩﻩCJNEﻩR0,#0AAH,L1
ﻩﻩﻩMOV41H,#01H
ﻩﻩRET
L1:
ﻩINCﻩR0
ﻩﻩDJNZR2,L
ﻩMOVﻩ41H,#00H
RET
20。
试编写程序,查找在内部RAM得20H~40H单元中出现“00H"
这一数据得次数。
并将查找到得结果存入A。
SEARCH:
MOVﻩﻩA,#0
ﻩﻩMOVﻩR0,#20H
ﻩﻩMOVﻩﻩR2,#33
L:
ﻩCJNER0,#00H,L1
ﻩﻩINCﻩA
ﻩL1:
INCﻩR0
DJNZﻩR2,L
ﻩRET
21.若SP=60H,标号LABEI所在得地址为3456H。
执行“LCALLLABEL”
指令后,堆栈指针SP=(62H),PC=(3456H)。
22.假设外部数据存储器2000H单元得内容为80H,执行下列指令后,累加器A中得内容为(80H ).
MOV P2,#20H
MOV R0,#00H
M0VXA,@R0
23。
下列程序段经汇编后,从1000H开始得各有关存储单元得内容将就是什么?
ORG 1000H
TAB1EQUl234H
TAB2EQU 300OH
DB“ABCD"
DWTAB1,TAB2,70H
41H,42H,43H,44H,12H,34H,30H,00H,00H,70H
24、写出5条指令,分别为寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器间接寻址方式。
寄存器寻址:
MOVﻩA,R0;
直接寻址:
MOVA,30H;
ﻩ
寄存器间接寻址:
MOVA,R0;
ﻩ立即寻址:
MOVA,#30H;
基址加变址寻址:
MOVCﻩﻩA,A+DPTR
25、 编制一段子程序将内部RAM中20H~3FH32字节数传送至与40H~5FH中。
MOVE:
ﻩMOVﻩﻩR0,#20H
ﻩMOVﻩR1,#40H
MOVﻩR2,#32
L1:
ﻩMOVﻩﻩA,R0
ﻩMOVR1,A
ﻩINCR0
ﻩINCﻩR1
ﻩDJNZR2,L1
ﻩﻩRET
26、 编制一查表子程序实现:
子程序执行前A中存下表中第一行某数,子程序执行后A中存第二行中对应得数.
1
2
3
4
5
6
7
8
9
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
7FH
6FH
ﻩCHECK_TAB:
MOVCﻩA,A+DPTR
ﻩﻩﻩRET
27、 请说明:
(1)当执行完以下前4条指令后,A=(44H)、B=(33H)。
(2)当执行完前6条指令后,(SP)=(61H)、内部RAM中(60H)=(44H)、(61H)=(33H).
(3)当执行完8条指令后,SP=(5FH)、(A)=(33H)、(B)=(44H )。
①ﻩMOVﻩSP,#5FH
②MOVA,#33H
③MOVﻩB,#44H
④ﻩXCHﻩA,B
⑤ﻩPUSHA
⑥ﻩPUSHﻩB
⑦ﻩPOPﻩA
⑧ﻩPOPﻩB
28、编制一段子程序将IRAM中30H~33H 4字节二进制数减去40H~43H4字节二进制数,其差存放在30H~33H中.数得存放规则:
高位在前,低位在后。
SUB:
MOVﻩﻩR0,#33H
MOVﻩR1,#43H
MOVﻩﻩR2,#4
ﻩﻩﻩCLRﻩC
SUB1:
ﻩMOVﻩﻩA,R0
ﻩﻩSUBBA,R1
ﻩﻩMOVﻩR0,A
ﻩﻩﻩDECﻩR0
DECR1
ﻩﻩDJNZﻩR2,SUB1
ﻩRET
29.请说明:
当执行完以下几条指令后,A=(58H)。
CLRA
ORLﻩﻩA,#55H
ANLA,#0FH
RLﻩA
SETBC
RRCA
SWAPﻩA
30、编写一段子程序,将A与B中得内容比较,若A〉B,则令A=1;
若A=B,则令A=2;
若A〈B,则令A=3.
P:
ﻩCJNEA,B,P1
MOVﻩA,#2
ﻩﻩRET
P1:
ﻩJCP2
ﻩﻩMOVﻩA,#1
P2:
ﻩMOVA,#3
ﻩRET
31、在某一两位式温度控制系统中,按下述控制规则进行控制:
当温度大于200℃时,关断加热器(写一条指令:
CLRP1、2即可);
当温度小于198℃时,接通加热器(写一条指令:
SETBﻩP1、2即可);
除此,不进行关断、接通加热器得处理.若系统得实测温度已存放在A中,编写一段程序实现上述控制规则.(提示:
请调用习题30编写得子程序)
CTR_TEM:
MOVﻩﻩR0,ﻩA
ﻩMOVﻩB,#200
ﻩﻩLCALLP
ﻩﻩCJNEA,#1,C_T1
ﻩCLRP1、2
ﻩﻩRET
C_T1:
MOVﻩﻩA,R0
ﻩMOVB,#198
ﻩﻩﻩLCALLP
ﻩﻩCJNEﻩA,#3,C_T2
ﻩSETBP1、2
C_T2:
RET
32、 编写一段程序实现:
将系统堆栈设置在0D0H~0FFH;
使用第一组通用工作寄存器.(共分0、1、2、3组)
INIT:
ﻩMOVﻩﻩSP,#0CFH
ﻩCLRﻩRS1
ﻩﻩSETBRS0
ﻩﻩRET
33、问:
当下述前8条指令执行完后,转去执行第(9)条指令还就是第(30)条指令?
ﻩ
(1)ﻩMOVﻩP1,#55Hﻩﻩ
ﻩ
(2)ﻩMOVﻩP2,#0AAH
(3)ﻩﻩMOVﻩ20H,P1
(4)ﻩﻩMOVﻩ21H,P2
ﻩ(5)MOVﻩC,00H
ﻩ(6)ANLﻩC,02H
ﻩ(7)ﻩORLC,08H
(8)ﻩJCﻩﻩL1
ﻩ(9)JBﻩ09H,L2
(10)…
ﻩ(30)L1:
MOVﻩA,B
转去执行第30条指令。
4章参考题与习题
1、编程确定:
T0工作于方式1,对外部脉冲计数,受引脚控制;
T1工作于方式2,定时器方式,不受引脚控制。
MOVﻩTMOD,#00101101B
SETBﻩTR0
SETBﻩTR1
2、编程实现:
若引脚P1、0为高电平,则在引脚P1、1输出2000HZ方波信号;
若引脚P1、0为低电平,则在引脚P1、1输出4000HZ方波信号;
方波信号占空比为50%,系统得晶体振荡频率为12MHZ
ﻩﻩORG00000H
ﻩﻩLJMPMAIN
MAIN:
MOVSP,#0EFH
ﻩﻩLCALLﻩINIT_T0
MAIN1:
ﻩJNBTF0,$
CLRﻩTF0
ﻩCPLﻩP1、1
ﻩLJMPﻩMAIN1
INIT_T0:
ﻩMOVﻩTMOD,#02H
ﻩSETBTR0
JBP1、0,INIT_T01
ﻩMOVﻩTH0,#256-125
RET
INIT_T01:
ﻩMOVﻩTH0,#256-250
RET
3。
如果采用得晶振得频率为12MHz,定时器/计数器T0工作在方式0、1、2下,其最大得定时时间各为多少?
答:
机器周期=12*(1/晶振频率)=1us
方式0:
Tmax=213us
方式1:
Tmax=216us
方式2:
Tmax=28us
4.定时器/计数器T0作为计数器使用时,其计数频率不能超过晶振频率得( 1/24)?
5.定时器/计数器用作定时器时,其计数脉冲由谁提供?
定时时间与哪些因素有关?
计数脉冲来自于单片机得时钟信号,频率为fosc/12;
定时时间与工作方式、时钟频率有关。
定时器/计数器得工作方式2有什么特点?
适用于什么应用场合?
自动重装计数初值,能产生精确得时间间隔,适用于精确定时场合。
7。
一个定时器得定时时间有限,如何实现两个定时器得串行定时,来实现较长时间得定时?
可让T0工作于方式1,定时方式,当T0溢出时,执行以下指令
ﻩL1:
JFBﻩTF0,L1
ﻩﻩﻩCLRTF0
ﻩﻩﻩINCﻩTL1
ﻩﻩﻩMOVﻩA,TL1
ﻩCJNEﻩA,#0,L1
ﻩﻩINCTH1
ﻩﻩLJMPL1ﻩﻩ
8.定时器/计数器测量某正单脉冲得宽度,采用何种方式可得到最大量程?
若时钟频率为6MHz,求允许测量得最大脉冲宽度就是多少?
设置:
将外部脉冲引至/INT0因脚上,T0为方式1,GATE设置为1,TR0为1。
最大脉冲宽度:
65536×
2 μS.
9。
判断下列说法就是否正确?
(1)特殊功能寄存器SCON,与定时器/计数器得控制无关。
(2)特殊功能寄存器TCON,与定时器/计数器得控制无关。
(3)特殊功能寄存器TMOD,与定时器/计数器得控制无关。
(1)对;
(2)错;
ﻩﻩ(3)错。
10.编程实现,T2作为波特率产生器使用,使串行通讯得接收/发送波特率均为4800,系统晶体振荡频率fosc=12MHz。
11.编程实现,T2输出方波信号,频率为500KHz,系统晶体振荡频率fosc=12MHz.
12.编程实现,T2每隔100mS溢出一次,系统晶体振荡频率fosc=
5章 思考题与习题
1.串行通讯相对并行通讯有何特点?
通讯介质成本低,主要用于长距离通讯.常见得各种计算机网络都采用串行通讯。
2.简述串行通讯4种工作方式得帧格式。
方式0:
I/O扩展方式,RXD收发数据,TXD串行时钟,8位数据,波特率:
fosc/12。
方式1:
8位通讯,波特率=(2SMOD/32)(T1得溢出率)。
方式2:
9位通讯,波特率=(2SMOD/64)×
fosc.
方式3:
9位通讯,波特率=(2SMOD/32)(T1得溢出率)。
3.帧格式为1个起始位,8个数据位与1个停止位得异步串行通讯方式就是方式().
方式1
4.串行通讯工作于方式1、3时,波特率如何确定?
波特率=(2SMOD/32)(T1得溢出率)
5。
假定串行口串行发送得字符格式为1个起始位,8个数据位,1个奇校验位,1个停止位,请画出传送字符“A”得帧格式。
串行通讯工作于方式3时,下列说法就是否正确:
(1)第9数据位得功能可由用户定义.
(2)发送得第9数据位通过设置TB8实现。
(3)串行通讯发送时,指令把TB8位得状态送人发送SBUF中。
(4)接收到得第9位数据送SCON寄存器得RB8中保存。
(5)波特率就是可变得,通过改变定时器/计数器T1得溢出率设定。
(1)对;
ﻩ(2)对;
(3)错;
(4)对;
ﻩ(5)对。
7、串行通讯工作于方式1时得波特率就是:
(1)固定得,为时钟频率得1/32。
错;
(2)固定得,为时钟频率得1/16.错;
(3)可变得,通过定时器/计数器T1得溢出率设定。
对;
(4)固定得,为时钟频率得1/64.错;
8.在串行通讯中,收发双方对波特率得设定应该就是(一致)得。
9、编程确定:
串行通讯工作于方式1,波特率为4800bps(晶体振荡器频率为11、0592MHz)。
MOVSCON,#50H
ﻩﻩMOVﻩTMOD,#20H
ﻩﻩMOVﻩﻩTH1,#244
ﻩﻩSETBﻩTR1
ﻩMOVPCON,#80H
10、简述利用串行口进行多机通讯得原理。
当网络中所有节点设备均工作在多机通信方式时,主机发送第一帧信息为地址帧,即设置TB8=1,低8位发送得就是指定与其通信得从机地址。
所有从机能收到地址帧,此后,主机发送其她信息时,设置TB8=0,采用非多机通信方式。
当指定从机收到地址后,立即设置为非多机通信方式,就能够收到主机发出得地址帧以后得信息,在主机与其过程中,双方采用非多机通信方式.
由此,除了地址帧外,其她从机收不到主机与指定从机得通信内容,保证最大程度得减轻从机CPU得负担。
11.编程实现:
甲、乙双机通讯,甲机发送字符串:
“123456”,乙机接收,收到存储到内部RAM地址为30H开始得几个单元中。
通讯协议:
波特率=9600、每帧8位数据,不带奇偶校验,时钟频率为fosc=12MHz。
在给定fosc=12MHz情况下,由于波特率误差远大于2、5%,因此无法实现要求。
12.编程实现:
串行通讯工作于方式3,8位数据位,每帧数据带奇偶校验,波特率为1200(晶体振荡器频率为11、0592MHz)。
ﻩMOVﻩﻩSCON,#0D0H
ﻩMOVﻩﻩPCON,#80H
ﻩMOVﻩTMOD,#20H
ﻩﻩMOVﻩﻩTH1,#208
ﻩﻩSETB TR1
串行传送数据得帧格式为1个起始位,8个数据位,1个奇偶校验位与1个停位,若每分钟传送1800帧数据,试说明串行通讯得波特率。
波特率=1800×
11/60
14.编程实现:
(1)串行通讯,工作于方式1;
(2)多机通讯,工作于方式3。
(1)MOVﻩSCON,#50H
(2)ﻩMOVﻩSCON,#0F0H
15、波特率设置:
当串行通讯工作于方式1、方式3,fosc=12MHz时,编程设置T1,使波特率:
(1)为2400。
(2)为4800.
(3)为9600.
(1)
ﻩMOVﻩSCON,#50H
MOVﻩPCON,#80H
ﻩﻩMOVﻩTMOD,#20H
ﻩMOVﻩTH1,#230
SETB TR1
(2)
ﻩMOVﻩSCON,#50H
ﻩMOVﻩPCON,#80