1、参考题与习题1章 参考题与习题1单片机的原名是什么?。MICROCONTROLLER2微处理器、微处理机、单片机之间有何区别?微处理器:一般仅指CPU,内含ALU和控制部件;微处理机:以微处理器为核心的微机系统,包含CPU、常用外围电路、外存、键盘、鼠标、显示器等;单片机:单个芯片内集成组成一台计算机的常用功能电路。仅是一个集成电路。3单片机与微处理器的不同之处是什么?前者内部不仅有微处理器,还有组成一台计算机必备的功能电路,如ROM、RAM、CTC、UART、中断系统等。后者仅是微处理器,具有ALU单元和控制单元。4单片机的发展大致分为哪几个阶段?4位机、1位机、8位机、16位机5,单片机根
2、据其数据总线宽度可分为哪几种类型?1位、4位、8位、16位6MCS51系列单片机的典型产品分别为(8031)、(8051)和(8751)。78031与8051的区别在于(D)(A)内部数据存储容量不同(B)内部数据存储器的类型不同(C)内部程序存储器的类型不同(D)内部没有程序存储器88051与8751的区别在于(C)(A)内部数据存储容量不同(B)内部数据存储器的类型不同(C)内部程序存储器的类型不同(D)内部没有程序存储器9举例说明单片机在工业测控领域、家用电器领域的应用。2章 参考题与习题1MCS51单片机的片内都集成了哪些功能部件?各个功能部件的主要功能是什么?(1)微处理器 (2)数
3、据存储器 (3)程序存储器 (4)中断系统(5)定时器/计数器 (6)串行口 (7)并行I/O口2说明MCS51单片机上电后,运行片内程序还是片外程序是怎样控制的。EA引脚接高电平时,上电复位后程序将从片内程序存储器开始执行。EA引脚接低电平时,上电复位后将从片外程序存储器开始执行。3在MCS51单片机中,如果采用12MHz晶振,一个机器周期为(12)时钟周期?4写出各中断向量地址。外部中断0 0003H 定时器0 000BH 外部中断1 0013H 定时器1 001BH串行口 0023H5内部RAM中,位地址为30H的位,该位所在字节的字节地址为(26H)。6若A中的内容为63H,那么,P标
4、志位的值为(0)。7判断下列说法是否正确:(A)8031的CPU是由RAM和EPROM所组成。错(B)区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的地端还是高端。错(C)在MCS51单片机中,为使准双向的I/O口工作在输入方式,必须保证它的输出锁存器被事先预置1。对(D)PC可以看成是程序存储器的地址指针。对8803 1单片机复位后,R4 所对应的存储单元的地址为(04H),因上电时PSW =(00H)。这时当前的工作寄存器区是(0)组工作寄存器区。9什么是机器周期?如果采用12MHz晶振,一个机器周期为多长时间? CPU完成一个基本操作所需要的时间称为机器周期。如果采用
5、12MHz晶振,一个机器周期为1us。10内部RAM中,哪些单元可作为工作寄存器区,哪些单元可以进行位寻址?写出它们的字节地址。地址为00H1FH的32个单元为4组通用工作寄存器区。 地址为20H2FH的16个单元可进行位寻址,这些单元构成了1位处理机的存储器空间。11使用8031单片机时,需要将引脚接(低)电平,因为其片内无(程序)存储器。12片内RAM低128个单元划分为哪三个主要部分?各部分的主要功能是什么?(1)地址为00H1FH的32个单元是4组通用工作寄存器区,每个区含8个8位寄存器,编号为R0R7。 (2)地址为20H2FH的16个单元可进行共128位的位寻址,这些单元构成了1位
6、处理机的存储器空间。单元的每一位都有自己的位地址,这16个单元也可以进行字节寻址。 (3)地址为30H7FH的单元为用户RAM区,只能进行字节寻址。13判断下列说法是否正确(A)内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。错(B)8031共有21个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的。错,只有字节地址末位为“0”或“8”的SFR 支持案位访问。14单片机程序存储器的寻址范围是由程序计数器PC的位数决定的,MCS51的PC为16位,因此其寻址的范围是(64KB)。15.写出P3口各引脚的第二功能。16当MCS51单片机程序陷人死循环时,如何退出死
7、循环?借助于复位或WDT技术。17判断下列说法是否正确(A)PC是一个不可寻址的特殊功能寄存器。错(B)单片机的主频越高,其运算速度越快。对(C)在MCS1单片机中,一个机器周期等于1/fosc。错(D)特殊功能寄存器SP内装的是栈顶首地址单元的内容。错3章 参考题与习题1判断以下指令的正误:(1)MOV 28H,R1(2)DEC DPTR (3)INC DPTR (4)CLR R0(5)CPL R2 (6)MOV R0,R1(7)PUSH DPTR (8)MOV F0,C (9)MOV F0,Acc3(10)M0VX A,R1(l1)MOV C,30H (12)RLC R0(1) 对; (2
8、)错; (3)对; (4)错; (5)错; (6)错;(7)错; (8)对; (9)错; (10)对; (11)对; (12)错;2判断下列说法是否正确。(A)立即寻址方式是操作数本身在指令中,而不是它的地址在指令中。(B)指令周期是执行一条指令的时间。(C)操作数直接出现在指令中称为直接寻址。(A)对; (B)对; (C)错;3在基址加变址寻址方式中,以(A)作变址寄存器,以(PC)或(DPTR)作基址寄存器。4MCS51单片机共有哪几种寻址方式?寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、基址加变址寻址。5MCS51单片机指令按功能可以分为哪几类?分5类:1) 数据传送类,用于数据传送
9、;2) 算术运算类,用于算术运算;3) 逻辑运算类,用于逻辑运算;4) 控制转移类,用于转移;5) 位操作类,用于按位操作。6访问特殊功能寄存器SFR,使用哪种寻址方式?访问52系列单片机内部RAM的高端128B使用哪种寻址方式?访问SFR,只能使用直接寻址方式;访问高端128B内部RAM,只能使用间接寻址方式。7,指令MOVC与MOVX有什么不同之处?前者访问ROM区,后者访问外部数据区。8. 假定累加器A中的内容为30H,执行指令:1000HM0VC A,APC后,把程序存储器(1031H)单元的内容送入累加器A中。9. 寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,
10、而是操作数的(地址)。10下列程序段的功能是什么?PUSH APUSH BPOP APOP BA、B中的内容相互交换。11已知程序执行前有A=02H,SP52H,(51H)FFH,(52H)FFH。下述程序执行后:POP DPHPOP DPLMOV DPTR,4000HRL A MOV B,AM0VC A,ADPTRPUSH AMOV A,BINC AM0VC A,ADPTRPUSH ARETORG 400OHDB 10H,80H,30H,50H,30H,50H请问:A(50)H;SP(50)H;(51H)(30)H;(52H)(50)H;PC(5030)H。12写出完成如下要求的指令,但是不
11、能改变未涉及位的内容。(1)把Acc3,Acc4,Acc5和Acc.6清“0”。(2)把累加器A的中间4位清“0”。(3)使Acc2和Ac。3置“1”。(1) ANL A,#10000111B (2) ANL A,#11000011B (3) ORL A,#00001100B13试编写一段程序,将内部RAM中38H单元的高4位置1,低4位清0。MOV 38H,#0F0H14假定A83H,(R0)=17H,(17H)34H,执行以下指令:ANL A,17H0RL 17H,AXRL A,R0 CPL A后,A的内容为(CBH)。15假设A55H,R3=0AAH,在执行指令“ANL A,R3”后,A
12、(00),R3(0AAH)。16如果DPTR=507BH,SP32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后,DPH=(3CH),DPL(5FH),B=(50H)。POP DPHPOP DPLPOP B17. 指令格式是由(操作码)和(操作数)所组成,也可能仅由(操作码)组成。18MCS51单片机对片外数据存储器采用的是(寄存器间接)寻址方式。19试编写程序,查找在内部RAM的20H40H单元中是否有55H这一数据。若有,则将A置为“01H”;若未找到,则将A置为“00H”。SEARCH: MOV R0,#20H MOV R2,#33L: CJNE R0,
13、#0AAH,L1 MOV 41H,#01H RETL1: INC R0 DJNZ R2,L MOV 41H,#00H RET20试编写程序,查找在内部RAM的20H40H单元中出现“00H”这一数据的次数。并将查找到的结果存入A。SEARCH: MOV A,#0 MOV R0,#20H MOV R2,#33L: CJNE R0,#00H,L1 INC A L1: INC R0 DJNZ R2,LRET21若SP60H,标号LABEI所在的地址为3456H。执行“LCALL LABEL”指令后,堆栈指针SP=(62H ),PC=(3456H)。22假设外部数据存储器2000H单元的内容为80H,
14、执行下列指令后,累加器A中的内容为(80H)。MOV P2,20HMOV R0,00HM0VX A,R023下列程序段经汇编后,从1000H开始的各有关存储单元的内容将是什么?ORG 1000HTAB1 EQU l234HTAB2 EQU 300OHDB “ABCD”DW TAB1,TAB2,70H41H,42H,43H,44H,12H,34H,30H,00H,00H,70H24. 写出5条指令,分别为寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器间接寻址方式。寄存器寻址:MOV A,R0; 直接寻址:MOV A,30H; 寄存器间接寻址:MOV A,R0; 立即寻址:
15、MOV A,#30H;基址加变址寻址:MOVC A,A+DPTR25. 编制一段子程序将内部RAM中20H3FH 32字节数传送至与40H5FH 中。MOVE: MOV R0,#20H MOV R1,#40H MOV R2,#32L1: MOV A,R0 MOV R1,A INC R0 INC R1 DJNZ R2,L1 RET26. 编制一查表子程序实现:子程序执行前A中存下表中第一行某数,子程序执行后A中存第二行中对应的数。01234567893FH06H5BH4FH66H6DH7DH07H7FH6FHCHECK_TAB: MOVC A,A+DPTR RET27. 请说明:(1)当执行完以
16、下前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 MOV A,#33H MOV B,#44H XCH A,B PUSH APUSH B POP A POP B28. 编制一段子程序将IRAM中30H33H 4字节二进制数减去40H43H 4字节二进制数,其差存放在30H33H中。数的存放规则:高位在前,低位在后。SUB: MOV R0,#33H MOV R1,#43H
17、MOV R2,#4 CLR C SUB1: MOV A,R0 SUBB A,R1 MOV R0,A DEC R0 DEC R1 DJNZ R2,SUB1 RET29. 请说明:当执行完以下几条指令后,A=(58H)。CLR AORL A,#55HANL A,#0FHRL ASETB CRRC ASWAP A30. 编写一段子程序,将A与B中的内容比较,若AB,则令A=1;若A=B,则令A=2;若AB,则令A=3。COMP: CJNE A,B,COMP1 MOV A,#2 RETCOMP1: JC COMP2 MOV A,#1 RETCOMP2: MOV A,#3 RET31. 在某一两位式温度
18、控制系统中,按下述控制规则进行控制:当温度大于200时,关断加热器(写一条指令:CLR P1.2即可);当温度小于198时,接通加热器(写一条指令:SETB P1.2即可);除此,不进行关断、接通加热器的处理。若系统的实测温度已存放在A中,编写一段程序实现上述控制规则。(提示:请调用习题30编写的子程序)CTR_TEM: MOV R0, A MOV B,#200 LCALL COMP CJNE A,#1,C_T1 CLR P1.2 RETC_T1: MOV A,R0 MOV B,#198 LCALL COMP CJNE A,#3,C_T2 SETB P1.2C_T2: RET32. 编写一段程
19、序实现:将系统堆栈设置在0D0H0FFH;使用第一组通用工作寄存器。(共分0、1、2、3组)INIT: MOV SP,#0CFH CLR RS1 SETB RS0 RET33. 问:当下述前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)ORL C,08H(8)JC L1(9)JB 09H,L2(10)(30)L1:MOV A,B转去执行第30条指令。4章 参考题与习题1. 编程确定:T0工作于方式1,对外部脉冲计数
20、,受引脚控制;T1工作于方式2,定时器方式,不受引脚控制。MOV TMOD,#00101101BSETB TR0SETB TR12.编程实现:若引脚P1.0为高电平,则在引脚P1.1输出2000HZ方波信号;若引脚P1.0为低电平,则在引脚P1.1输出4000HZ方波信号;方波信号占空比为50%,系统的晶体振荡频率为12MHZORG 00000H LJMP MAINMAIN: MOV SP,#0EFH LCALL INIT_T0MAIN1: JNB TF0,$ CLR TF0 CPL P1.1 LJMP MAIN1INIT_T0: MOV TMOD,#02H SETB TR0 JB P1.0,
21、INIT_T01 MOV TH0,#256-125 RETINIT_T01: MOV TH0,#256-250 RET3如果采用的晶振的频率为12MHz,定时器计数器T0工作在方式0、1、2下,其最大的定时时间各为多少?答:机器周期=12*(1/晶振频率)=1us方式0: Tmax=213us方式1: Tmax=216us方式2: Tmax=28us4定时器计数器T0作为计数器使用时,其计数频率不能超过晶振频率的(1/24)?5定时器计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?计数脉冲来自于单片机的时钟信号,频率为fosc/12;定时时间与工作方式、时钟频率有关。6定时器计
22、数器的工作方式2有什么特点?适用于什么应用场合?自动重装计数初值,能产生精确的时间间隔,适用于精确定时场合。7一个定时器的定时时间有限,如何实现两个定时器的串行定时,来实现较长时间的定时?可让T0工作于方式1,定时方式,当T0溢出时,执行以下指令 L1: JFB TF0,L1 CLR TF0 INC TL1 MOV A,TL1 CJNE A,#0,L1 INC TH1 LJMP L18定时器计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为6MHz,求允许测量的最大脉冲宽度是多少?设置:将外部脉冲引至/INT0因脚上,T0为方式1,GATE设置为1,TR0为1。 最大脉冲宽度
23、:655362 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串行通讯相对并行通讯有何特点?通讯介质成本低,主要用于
24、长距离通讯。常见的各种计算机网络都采用串行通讯。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个停止位的异步串行通讯方式是方式()。方式14串行通讯工作于方式1、3时,波特率如何确定?波特率=(2SMOD/32)(T1的溢出率)5假定串行口串行发送的字符格式为1个起始位,8个数据位,1个奇校验位
25、,1个停止位,请画出传送字符“A”的帧格式。6串行通讯工作于方式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)固定的,为时钟频率
26、的1/64。错;8在串行通讯中,收发双方对波特率的设定应该是(一致)的。9. 编程确定:串行通讯工作于方式1,波特率为4800bps(晶体振荡器频率为11.0592MHz)。MOV SCON,#50H MOV TMOD,#20H MOV TH1,#244 SETB TR1 MOV PCON,#80H10. 简述利用串行口进行多机通讯的原理。当网络中所有节点设备均工作在多机通信方式时,主机发送第一帧信息为地址帧,即设置TB8=1,低8位发送的是指定与其通信的从机地址。所有从机能收到地址帧,此后,主机发送其他信息时,设置TB8=0,采用非多机通信方式。当指定从机收到地址后,立即设置为非多机通信方式
27、,就能够收到主机发出的地址帧以后的信息,在主机与其过程中,双方采用非多机通信方式。由此,除了地址帧外,其他从机收不到主机与指定从机的通信内容,保证最大程度的减轻从机CPU的负担。11编程实现:甲、乙双机通讯,甲机发送字符串:“123456”,乙机接收,收到存储到内部RAM 地址为30H开始的几个单元中。通讯协议:波特率=9600、每帧8位数据,不带奇偶校验,时钟频率为fosc=12MHz。在给定fosc=12MHz情况下,由于波特率误差远大于2.5%,因此无法实现要求。12编程实现:串行通讯工作于方式3,8位数据位,每帧数据带奇偶校验,波特率为1200(晶体振荡器频率为11.0592MHz)。
28、MOV SCON,#0D0H MOV PCON,#80H MOV TMOD,#20H MOV TH1,#208SETB TR113串行传送数据的帧格式为1个起始位,8个数据位,1个奇偶校验位和1个停位,若每分钟传送1800帧数据,试说明串行通讯的波特率。波特率=180011/6014. 编程实现:(1)串行通讯,工作于方式1;(2)多机通讯,工作于方式3。(1) MOV SCON,#50H (2) MOV SCON,#0F0H15. 波特率设置:当串行通讯工作于方式1、方式3,fosc=12MHz时,编程设置T1,使波特率:(1)为2400。(2)为4800。(3)为9600。(1) MOV
29、SCON,#50H MOV PCON,#80H MOV TMOD,#20H MOV TH1,#230 SETB TR1(2) MOV SCON,#50H MOV PCON,#80H MOV TMOD,#20H MOV TH1,#243 SETB TR1(3)在给定fosc=12MHz情况下,由于波特率误差远大于2.5%,因此无法实现要求6章 参考题与习题1. MCS-51 单片机有几个中断源,几级中断?5个:IE0、IE1、TF0、TF1、(TI+R1);2级2编程设定:外部中断开放中断、下降沿触发中断、低级中断;外部中断开放中断、低电平触发中断、高级中断;按照上述设置,若两个中断同时申请,说明先响应哪个中断? SETB EX0 SETB IT0 SETB EX1 SETB PX1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1