您好,欢迎访问三七文档
“MCS-51单片机基础”课程习题与解答第一章1-3:单片机与普通计算机的不同之处在于其将()()和()三部分集成于一块芯片上。答:微处理器、存储器、I/O口1-7:8051与8751的区别是:A、内部数据存储但也数目的不同B、内部数据存储器的类型不同C、内部程序存储器的类型不同D、内部的寄存器的数目不同答:C1-8:家用电器中使用单片机属于微机的:答案:B控制应用第二章2-3:在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为()。答:2us。析:机器周期为振荡周期的1/6。2-5:内部RAM中,位地址为30H的位,该位所在字节的字节地址为()。答:26H2-6:若A中的内容为63H,那么,P标志位的值为()。答:0析:P为偶校验位,因为A中1的个数为偶数,所以P=0。2-7:判断下列说法是否正确:A、8031的CPU是由RAM和EPROM所组成。B、区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。C、在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1。D、PC可以看成使程序存储器的地址指针。答:错、错、对、对2-8:8031单片机复位后,R4所对应的存储单元的地址为(),因上电时PSW=()。这时当前的工作寄存器区是()组工作寄存器区。答:04H、00H、02-10:判断以下有关PC和DPTR的结论A、DPTR是可以访问的,而PC不能访问。B、它们都是16位的存储器C、它们都有加1的功能。D、DPTR可以分为两个8位的寄存器使用,但PC不能。答:对、对、对、对2—11、内部RAM中,哪些单元可作为工作寄存器区,哪些单元可以进行位寻址?写出它们的字节地址。答:地址为00H-1FH的32个单元是4组通用工作寄存器区,每个区包括8个8位工作寄存器,编号为R0-R7。字节地址为20H-2FH的16个单元可进行位寻址。2-12:使用8031芯片时,需将/EA引脚接()电平,因为其片内无()存储器。答:低、程序2-13:片内RAM低128个单元划分为哪3个主要部分?各部分的主要功能是什么?答:工作寄存器区、位寻址区、用户RAM区2-14:判断下列说法是否正确A、程序计数器PC不能为用户编程时直接使用,因为它没有地址。B、内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。C、8031共有21个特殊功能寄存器,它们的位都是可以用软件设置的,因此,是可以进行位寻址的。答:对、错、错2-15:PC的值是A、当前正在执行指令的前一条指令的地址B、当前正在执行指令的地址C、当前正在执行指令的下一条指令的地址D、控制器中指令寄存器的地址答:C2-16:通过堆栈操作实现子程序调用,首先就要把()的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到()。答:PC、PC2-17:MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51的PC是16位的,因此其寻址的范围为()KB。答:642-19:当MCS-51单片机运行出错或程序陷入死循环时,如何来摆脱困境?答:复位2-20:判断下列说法是否正确?A、PC是1个不可寻址的特殊功能寄存器。B、单片机的主频越高,其运算速度越快。C、在MCS-51单片机中,1个机器周期等于1us。D、特殊功能寄存器SP内装的是栈顶首地址单元的内容。答:错、对、错、错第三章3-1:判断下列指令的正误:1)MOV28H,@R22)DECDPTR3)INCDPTR4)CLRR05)CPLR56)MOVR0,R17)PUSHDPTR8)MOVF0,C9)MOVF0,ACC.310)MOVXA,@R111)MOVC,30H12)RLCR0答:错、错、对、错错、错、错、对错、对、对、错3-2:判断下列说法是否正确。A、立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。B、指令周期是执行一条指令的时间。C、指令中直接给出的操作数称为直接寻址。答:对、对、错3-3:在基址加变址寻址方式中,以()作变址寄存器,以()或()作基址寄存器。答:累加器A,DPTR、PC3—6:访问SFR,可使用哪些寻址方式?答:一般采用直接寻址,对于SFR中字节地址能被8整除的SFR可以使用位寻址,对于SFR中的A、B、DPTR寄存器可以采用寄存器寻址。3-8:假定累加器A中的内容为30H,执行指令1000H:MOVCA,@A+PC后,把程序存储器()单元的内容送入累加器A中。答:1031H3-9:在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的()。答:地址3-10:下列程序段的功能是什么?PUSHAPUSHBPOPAPOPB答:交换A、B的内容3-11:已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后:POPDPHPOPDPLMOVDPTR,#4000HRLAMOVB,AMOVCA,@A+DPTRPUSHAMOVA,BINCAMOVCA,@A+DPTRPUSHARETORG4000HDB10H,80H,30H,50H,30H,50H请问:A=(),SP=(),(51H)=(),(52H)=(),PC=()。答:A=50H,SP=50H,(51H)=30H,(52H)=50H,PC=5030H3—12写出完成如下要求的指令,但是不能改变未涉及位的内容。(1)把Acc.3,Acc.4,Acc.5和Acc.6清0。解:ANLA,#87H(2)把累加器A的中间4位清0。解:ANLA,#0C3H(3)使Acc.2和Acc.3置1。解:ORLA,#0CH3—13试编写1个程序,将内部RAM中38H单元的高4位置1,低4位清0。解:MOVA,38HANLA,#0F0HORLA,#0F0HMOV38H,A3-16:假定A=83H,(R0)=17H,(17H)=34H,执行以下指令:ANLA,#17HORL17H,AXRLA,@R0CPLA后,A的内容为()。答:0CBH3-18:假定A=55H,R3=0AAH,在执行指令ANLA,R3后,A=(),R3=()。答:00H、0AAH3-19:如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:POPDPHPOPDPLPOPSP则:DPH=(),DPL=(),SP=()答:DPH=3CH,DPL=5FH,SP=4FH3-20:指令格式是由()和()所组成,也可能仅由()组成。答:操作码、操作数、操作码3—21:MCS-51单片机对片外数据存储器采用(寄存器间接)寻址方式。3—22:试编写程序,查找在内部RAM的20H~40H单元中是否有0AAH这一数据。若有,则将41H单元置为“01H”;若未找到,则将41H单元置为“00H”。START:MOVR0,#20HMOVR2,#21H;设置循环次数LOOP:MOVA,@R0CJNEA,#0AAH,NEXT;比较不相等则转移MOV41H,#01HLJMPEXIT;跳转指令NEXT:INCR0;R0增1DJNZR2,LOOP;R2先减1,若不为0则转移MOV41H,#00HEXIT:RET3—23:试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数。并将查找到的结果存入41H单元。START:MOV41H,#00HMOVR0,#20HMOVR2,#21HLOOP:MOVA,@R0JNZNEXT;A不为0则转移INC41HNEXT:INCR0DJNZR2,LOOPRET3—24:若SP=60H,标号LABEL所在的地址为3456H。执行指令2000H:LCALLLABEL后,堆栈指针SP和堆栈内容发生了什么变化?PC的值等于什么?如果将指令LCALL直接换成ACALL是否可以?如果换成ACALL指令,可调用的地址范围是什么?答:堆栈指针SP的内容为62H,堆栈内容(61H)=03H,(62H)=20H;PC值为3456H;不能将LCALL换为ACALL,因为LCALL可调用64KB范围内的子程序,而ACALL所调用的子程序地址必须与ACALL指令下一条指令的第一个字节在同一个2KB区内(即16位地址中的高5位地址相同);如果换为ACALL,可调用的地址范围为2000H-27FFH。第四章4-4:外部中断1所对应的中断入口地址为()H。答:00134-5:下列说法错误的是:A、各中断发出的中断请求信号,都会标记在MCS-51系统的IE寄存器中。B、各中断发出的中断请求信号,都会标记在MCS-51系统的TMOD寄存器中。C、各中断发出的中断请求信号,都会标记在MCS-51系统的IP寄存器中。D、各中断发出的中断请求信号,都会标记在MCS-51系统的TCON与SCON寄存器中。答:ABC4-7:中断查询确认后,在下列各种8031单片机运行情况中,能立即进行响应的是:A、当前正在执行高优先级中断处理B、当前正在执行RETI指令C、当前指令是DIV指令,且正处于取指令的机器周期D、当前指令是MOVA,R3答:D4-8:8031单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把()的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送(),使程序执行转向()中的中断地址区。答:PC、PC、程序存储器4-9:编写出外部中断1为跳沿触发的中断初始化程序。答:SETBIT1SETBEX1SETBEA4-10:在MCS-51中,需要外加电路实现中断撤除的是:A、定时中断B、脉冲方式的外部中断C、外部串行中断D、电平方式的外部中断答:D4-12:下列说法正确的是:A、同一级别的中断请求按时间的先后顺序响应。B、同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。C、低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。D、同级中断不能嵌套。答:ACD第五章5—1:如果采用晶振的频率为3MHz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?解答:因为机器周期)(410312126sfTOSCcy,所以定时器/计数器工作方式0下,其最大定时时间为131362241032.768()MAXCTTms;同样可以求得,方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1.024ms。5—3:定时器/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?答:定时器/计数器被选定为定时器工作模式时,计数输入信号是内部时钟脉冲,每个机器周期产生1个脉冲使计数器增1,因此,定时器/计数器的输入脉冲的周期与机器周期一样,为时钟振荡频率的1/12。定时时间与时钟频率、定时初值、工作方式有关。5—4:采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1ms后,又转为计数方式,如此循环不止。假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写出程序。解答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作模式设置在主程序完成外,后面的定时或计数工作模式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作模式。1、计算初值机器周期612122()610cyOSCTsf,计数初值:216-100=65436=FF9CH即TH0=0FFH,TL0=9CH定时初值:(216-X)210-6=10-3X=65036=FE0CH,即TH0=0FEH,TL0=0CH2、编写程序如下:ORG0000HLJMPMAINORG000BHLJMPPT0JORG0100HMAIN:MOVTMOD,#05H;T0为方式1计数MOVTL0,#9CH;计数100个脉冲的初值赋值MOVTH0,#0FFHSETBTR0;启动T0,开始计数SETBET0;允许T0中断SETBEA;CP
本文标题:单片机练习题及答案
链接地址:https://www.777doc.com/doc-2606629 .html