您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《单片机基础》李广弟_课后题及答案-史上最全最准
单片机基础(第3版)第1章计算机基础知识(一)填空题1.十进制数14对应的二进制数表示为(1110B),十六进制数表示为(0EH)。十进制数-100的补码为(9CH),+100的补码为(64H)。2.在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。3.8位无符号二进制数能表示的最大十进制数是(255)。带符号二进制数11001101转换成十进制数是(-51)。4.可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。5.已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。6.若某存储器容量为640KB,则表示该存储器共有(655360)个存储单元。7.在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit)、(Byte)和(Word)。8.设二进制数A=10101101,B=01110110,则逻辑运算A∨B=(11111111),A∧B=(00100100),A⊕B=(11011011)。9.机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101的真值是(+141或-115),机器数10001101的真值是(+206或-50)。说明:机器数是指计算机中使用的二进制数,机器数的值称为真值。机器数可表示无符号数也可表示带符号数,其中计算机中的带符号数一般为补码形式。10001101若为无符号数,则其真值为+141;若为带符号数,由于最高位(符号位)为1,所以为负数(补码形式),则其真值为-115。(二)单项选择题1.用8位二进制补码数所能表示的十进制数范围是(D)(A)-127~+127(B)-128~+128(C)-127~+128(D)-128~+1272.下列等式中,正确的是(B)(A)1KB=1024×1024B(B)1MB=1024×1024B(C)1KB=1024MB(D)1MB=1024B3.程序与软件的区别是(C)(A)程序小而软件大(B)程序便宜而软件昂贵(C)软件包括程序(D)程序包括软件4.存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A)(A)地址(B)字节(C)列号(D)容量5.8位二进制数所能表示的最大无符号数是(B)(A)256(B)255(C)128(D)1276.下列4个无符号数中,最小的数是(B)(A)11011001(二进制)(B)37(八进制)(C)75(十进制)(D)24(十六进制)7.下列字符中,ASCII码最小的是(B)(A)a(B)A(C)x(D)X8.下列字符中,ASCII码最大的是(C)(A)a(B)A(C)x(D)X9.有一个数152,它与十六进制数6A相等,那么该数是(B)(A)二进制数(B)八进制数(C)十进制数(D)十六进制数第2章80C51单片机的硬件结构(一)填空题1.通过堆栈实现子程序调用,首先要把(PC)的内容入栈,以进行断点保护。调用返回时再进行出栈操作,把保护的断点送回(PC)。2.80C51单片机的时钟电路包括两部分内容,即芯片内的(高增益反相放大器反相器)和芯片外跨接的(石英晶体振荡器晶振)与(两个微调电容)。若调高单片机的晶振频率,则单片机的机器周期会变(短)。3.通常单片机有两种复位操作,即(上电复位)和(手动复位)。复位后,PC值为(0000H),SP值为(07H),通用寄存器的当前寄存器组为(第0)组,该组寄存器的地址范围是从(00H)到(07H)。4.80C51单片机中,一个机器周期包含(6)个状态周期,一个状态周期又可划分为(2)个拍节,一个拍节为(1)个振荡脉冲周期。因此,一个机器周期应包含(12)个振荡脉冲周期。5.80C51中惟一一个可供用户使用的16位寄存器是(DPTR),它可拆分为两个8位寄存器使用,名称分别为(DPH)和(DPL)。6.单片机程序存储器的寻址范围由PC的位数决定。80C51的PC为16位,因此程序存储器地址空间是(64KB)。(二)单项选择题1.下列概念叙述正确的是(D)(A)80C51中共有5个中断源,因此在芯片上相应地有5个中断请求输入引脚(B)特殊的存取规则使得堆栈已不是数据存储区的一部分(C)可以把PC看成是数据存储空间的地址指针(D)CPU中反映程序运行状态和运算结果特征的寄存器是PSW2.取指操作后,PC的值是(C)(A)当前指令前一条指令的地址(B)当前正在执行指令的地址(C)下一条指令的地址(D)控制寄存器中指令寄存器的地址3.80C51单片机中,设置堆栈指针SP为37H后就发生子程序调用,这时SP的值变为(C)(A)37H(B)38H(C)39H(D)3AH4.设置堆栈指针SP=30H后,进行一系列的堆栈操作。当进栈数据全部弹出后,SP应指向(A)(A)30H单元(B)07H单元(C)31H单元(D)2FH单元5.下列关于堆栈的描述中,错误的是(C)(A)80C51的堆栈在内部RAM中开辟,所以SP只需8位就够了(B)堆栈指针SP的内容是堆栈栈顶单元的地址(C)在80C51中,堆栈操作过程与一般RAM单元的读/写操作没有区别(D)在中断响应时,断点地址自动进栈6.在单片机芯片内设置通用寄存器的好处不应该包括(A)(A)提高程序运行的可靠性(B)提高程序运行速度(C)为程序设计提供方便(D)减小程序长度7.下列叙述中正确的是(D)(A)SP内装的是堆栈栈顶单元的内容(B)在中断服务程序中没有PUSH和POP指令,说明此次中断操作与堆栈无关(C)在单片机中配合实现“程序存储自动执行”的寄存器是累加器(D)两数相加后,若A中数据为66H,则PSW中最低位的状态为0第3章80C51单片机指令系统(一)填空题1.假定累加器A中的内容为30H,执行指令“1000H:MOVCA,@A+PC”后,会把程序存储器(1031H)单元的内容送累加器A。说明:MOVCA,@A+PC是单字节指令,当前PC即为1001H,故题中指令的含义即为把A+PC=1031H单元的内容送入累加器A。2.假定(A)=85H,(R0)=20H,(20H)=0AFH,执行指令“ADDA,@R0”后,累加器A的内容为(34H),CY的内容为(1),AC的内容为(1),OV的内容为(1)。3.执行如下指令序列后,所实现的逻辑运算式为(P3.0P1.0P1.1P1.2=∧∧)MOVC,P1.0ANLC,P1.1ANLC,/P1.2MOVP3.0,C4.假定addr11=00100000000B,标号qaz的地址为1030H,执行指令“qaz:AJMPaddr11”后,程序转移到地址(1100H)去执行。5.累加器A中存放着一个其值小于或等于127的8位无符号数,CY清0后执行“RLCA”指令,则A中的数变为原来的(2)倍。6.已知A=7AH,R0=30H,(30H)=A5H,PSW=80H,请按要求填写各条指令的执行结果(每条指令均按已给定的原始数据进行操作)。XCHA,R0A=(30H),R0=(7AH)XCHA,30HA=(0A5H)XCHA,@R0A=(0A5H)XCHDA,@R0A=(75H)SWAPAA=(0A7H)ADDA,R0A=(0AAH),CY=(0),OV=(1)ADDA,30HA=(1FH),CY=(1),OV=(0)ADDA,#30HA=(0AAH),CY=(0),OV=(1)ADDCA,30HA=(20H),CY=(1),OV=(0)SUBBA,30HA=(0D4H),CY=(1),OV=(1)SUBBA,#30HA=(49H),CY=(0),OV=(0)(二)单项选择题1.下列指令或指令序列中,不能实现PSW内容送A的是(C)(A)MOVA,PSW(B)MOVA,0D0H(C)MOVR0,#0D0H(D)PUSHPSWMOVA,@R0POPACC说明:特殊功能寄存PSW只能采用直接寻址方式,不能用寄存器间接寻址方式,故C错误。2.在相对寻址方式中,“相对”两字是指相对于(C)(A)地址偏移量rel(B)当前指令的首地址(C)下一条指令的首地址(D)DPTR值3.下列指令或指令序列中,能将外部数据存储器3355H单元内容传送给A的是(B)(A)MOVXA,3355H(B)MOVDPTR,#3355HMOVXA,@DPTR(C)MOVP0,#33H(D)MOVP2,#33HMOVR0,#55HMOVR2,#55HMOVXA,@R0MOVXA,@R24.对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令5.执行返回指令后,返回的断点是(C)(A)调用指令的首地址(B)调用指令的末地址(C)调用指令的下一条指令的首地址(D)返回指令的末地址6.以下各项中不能用来对内部数据存储器进行访问的是(A)(A)数据指针DPTR(B)按存储单元地址或名称(C)堆栈指针SP(D)由R0或R1作间址寄存器说明:数据指针DPTR为16位寄存器,而内部RAM的地址是8位的,所以不能用来对内部RAM进行访问。(三)其他类型题1.判断下列指令的合法性(合法打“√”,非法打“×”)MOVA,@R2(×)MOVR0,R1(×)INCDPTR(√)MOVPC,#2222H(×)DECDPTR(×)RLCR0(×)MOV0E0H,@R0(√)CPLR5(×)CLRR0(×)CPLF0H(×)PUSHDPTR(×)POP30H(√)MOVXA,@R1(√)MOVA,1FH(√)MOVC,1FH(√)MOVF0,ACC.3(×)MOVF0,C(√)MOVP1,R3(√)MOVDPTR,#0FCH(√)CPL30H(√)PUSHR0(×)MOVC,#0FFH(×)MOVA,#0D0H(√)说明:MOVDPTR,#0FCH(√)该指令是将立即数00FCH送入16位数据指针DPTR。CPL30H(√)该指令中30H是指内部RAM位寻址区中的30H位,即26H.0位。PUSHR0(×)PUSH指令只能对直接寻址的地址单元内容进行压栈,不能对工作寄存器压栈。2.利用位操作指令序列实现下列逻辑运算。(1)D=(10HP1.0)(11HCY)∨∧∨ORLC,11HMOVF0,CMOVC,P1.0ORLC,/10HANLC,F0MOVD,C(2)E=ACC.2P2.7ACC.1P2.0∧∨∧MOVC,ACC.2ANLC,P2.7ORLC,ACC.1ANLC,P2.0MOVE,C3.编写程序将内部RAM20H~23H单元的高4位写1,低4位写0。分析:就是把内部RAM20H~23H这4个单元写入0F0H。用一个DJNZ的循环。ORG0000HMOVR0,#20H;R0指向20H单元MOVR1,#04H;4个单元LOOP:MOV@R0,#0F0H;写入INCR0DJNZR1,LOOP;循环4次END4.在m和m+1单元中存有两个BCD数,将他们合并到m单元中,编写程序完成。ORG0030HMOVR0,#mMOVA,@R0;将m单元中的BCD数送入累加器AANLA,#0FH;把m单元的高4位清0SWAPA;将m单元中的BCD数移入高4位MOV@R0,A;m单元高4位为BCD数,低4位为0INCR0;指向m+1单元MOVA,@R0;将m+1单元中的BCD数送入累加器AANLA,#0FH;把m+1单元的高4位清0DECR0;指向m单元ORLA,@R0;将和m+1单元和m单元内容合并MOV@R0,A;合并后结果送m单元END说明:此题的含义:假设m单元中存放的是00001001(十进制数9),m+1单元中存放的是00000101(十进制数5),则将m单元中的低4位和m+1单元中低4位合并到m单元中。有两种合并方法:①将m单元中的低4位移至m单元的高4位,将m+1单元中低4位移至m单元的低4位;②m单元中的低4位保持不变,将m+1单元中低4位移至m单元的高4位。上述程序是按方法①编写的。5.将内部RA
本文标题:《单片机基础》李广弟_课后题及答案-史上最全最准
链接地址:https://www.777doc.com/doc-4202160 .html