1. 存储器的地址范围是0000H~0FFFH,它的容量为( D )。
      • (A) 1KB
      • (B) 2KB
      • (C) 3KB
      • (D) 4KB
      • 解析: 存储容量 = 地址范围 + 1。地址范围是 0FFFH - 0000H = 0FFFH。所以总的地址数量是 0FFFH + 1 = 1000H1000H 转换为十进制是 1 * 16^3 = 4096。因为 1KB = 1024 字节,所以 4096 / 1024 = 4KB
  1. 如果(A)=86H, (PSW)=80H,则执行RRC A指令后( A )
      • (A) C3H
      • (B) B3H
      • (C) 0DH
      • (D) 56H
      • 解析: RRC A 是带进位的循环右移指令。
        • 初始状态:A = 86H = 1000 0110 B。PSW = 80H,表示CY(进位标志位,PSW.7)= 1。
        • 执行 RRC A:A的内容整体向右移动一位,原A的最低位(bit 0)移到CY位,原CY位的值移到A的最高位(bit 7)。
        • 过程:A的最低位0移入CY,所以CY变为0。原CY的值1移入A的最高位。A的其他位右移。结果A变为 1100 0011 B,即C3H。
  1. 如果(P0)=65H,则当 CPL P0.2 SETB C MOV P0.4, C 执行后(P0)=( C )
      • (A) 61H
      • (B) 75H
      • (C) 71H
      • (D) 17H
      • 解析:
        • 初始状态:P0 = 65H = 0110 0101 B。
        • CPL P0.2:将P0口的第2位(P0.2)取反。P0.2原来是1,取反后变为0。此时P0 = 0110 0001 B = 61H。
        • SETB C:将进位标志位CY置1。
        • MOV P0.4, C:将CY位的值赋给P0.4。P0.4变为1。此时P0 = 0111 0001 B = 71H。
  1. ( D )指令是MCS-51指令系统中,执行时间最长的指令。
      • (A) 比较转移
      • (B) 循环转移
      • (C) 增减量
      • (D) 乘除法
      • 解析: 在标准的MCS-51指令系统中,乘法指令MUL AB和除法指令DIV AB都需要4个机器周期,是执行时间最长的指令。大部分指令需要1或2个机器周期。
  1. 8031单片机中,将累加器A中的数送入外部RAM的40H单元,可执行的指令( D )。
      • (A) MOV R1, 40H MOVX @RI, A
      • (B) MOV R1, #40H MOVX R1, A
      • (C) MOVX 40H, A
      • (D) MOV R1, #40H MOVX @R1, A
      • 解析: 访问外部RAM(MOVX指令)必须使用间接寻址(@R0, @R1, @DPTR)。要访问40H单元,首先需要将地址40H送入一个指针寄存器。
        • (A) MOV R1, 40H 是将内部RAM 40H单元的内容送入R1,而不是地址值。
        • (B) MOVX R1, A 指令格式错误。
        • (C) MOVX 不支持直接寻址。
        • (D) MOV R1, #40H 将立即数40H送入R1,MOVX @R1, A 将A的内容送到R1所指向的外部RAM单元(即40H单元)。正确。
  1. 已知累加器A的数值为98H,它与0FAH相加,相加后会影响标志位CY、AC和OV位。各个位的值是( C )。
      • (A) 0、0、0
      • (B) 1、0、1
      • (C) 1、1、1
      • (D) 1、1、0
      • 解析:
        • 98H + FAH = 1001 1000 B + 1111 1010 B
        • AC(辅助进位): 低4位相加 1000 B + 1010 B = 1 0010 B。D3向D4有进位,所以 AC = 1
        • CY(进位): 整体相加结果为 1 1001 0010 B。最高位(D7)向更高位有进位,所以 CY = 1
        • OV(溢出): 两个负数(最高位都为1)相加,得到一个正数(结果的第7位为0)。发生了溢出,所以 OV = 1
  1. A/D转换方法有以下四种,ADC0809是一种采用( C )进行A/D转换的8位接口芯片。
      • (A) 计数式
      • (B) 双积分式
      • (C) 逐次逼近式
      • (D) 并行式
      • 解析: ADC0809是经典的8路8位逐次逼近式A/D转换器。
  1. 下列指令写法正确的是( D )。
      • (A) MOV #20H, A
      • (B) ADD R2, #30H
      • (C) PUSH R0
      • (D) RRC A
      • 解析:
        • (A) MOV指令的目标操作数不能是立即数。应为 MOV A, #20H
        • (B) ADD指令的目标操作数必须是累加器A。应为 ADD A, #30H
        • (C) PUSH指令的操作数必须是直接地址。应为 PUSH 00H (R0的地址)。
        • (D) RRC A 是正确的单字节指令。
  1. 中断服务程序中至少应有一条( D )。
      • (A) 传送指令
      • (B) 转移指令
      • (C) 加法指令
      • (D) 中断返回指令
      • 解析: 每个中断服务程序的结尾都必须是 RETI 指令,否则程序将无法从中断中正确返回,中断系统也会出错。
  1. 执行 LCALL 4000H 指令时, MCS-51所完成的操作是( D )。
      • (A) 保护 PC
      • (B) 4000H → PC
      • (C) 保护现场
      • (D) PC+3入栈,4000H→PC
      • 解析: LCALL 是一条3字节指令。执行时,CPU将下一条指令的地址(即当前PC值+3)压入堆栈用于返回,然后将目标地址4000H加载到PC,实现长调用。
  1. 下面哪条指令产生WR信号( D )。
      • (A) MOVX A, @DPTR
      • (B) MOVC A, @A+PC
      • (C) MOVC A, @A+DPTR
      • (D) MOVX @DPTR, A
      • 解析: WR(写)信号在对**外部数据存储器(RAM)**进行写操作时有效(变为低电平)。
        • (A) 是从外部RAM读数据,会产生RD信号。
        • (B) (C) 是从程序存储器读数据,会产生PSEN信号。
        • (D) 是向外部RAM写数据,会产生WR信号。
  1. 若某存储器芯片地址线为12根,那么它的存储容量为( C )。
      • (A) 1KB
      • (B) 2KB
      • (C) 4KB
      • (D) 8KB
      • 解析: 存储容量 = 2^地址线数量。 2^12 = 40964096字节 = 4KB。
  1. 若RS1=1,RS0=1,则当前工作寄存器是( D )。
      • (A) 0组
      • (B) 1组
      • (C) 2组
      • (D) 3组
      • 解析: PSW寄存器中的RS1和RS0位用于选择工作寄存器组。00对应0组,01对应1组,10对应2组,11对应3组。
  1. MCS-51 有中断源( A )。
      • (A) 5
      • (B) 2
      • (C) 3
      • (D) 6
      • 解析: 标准的MCS-51有5个中断源:外部中断0(INT0)、定时器0(TF0)、外部中断1(INT1)、定时器1(TF1)、串行口中断(RI/TI)。(注:MCS-52系列增加了定时器2中断,共6个)
  1. 执行 PUSH ACC指令, MCS-51完成的操作是( A )。
      • (A) (SP)+1→(SP), (A) → ((SP))
      • (B) (A) → ((SP)), (SP)-1→(SP)
      • (C) (SP)-1→(SP), (A) → ((SP))
      • (D) (A)→((SP)), (SP)+1→(SP)
      • 解析: PUSH指令的操作过程是:1. 堆栈指针SP加1; 2. 将数据存入SP指向的RAM单元。ACC是累加器A的直接地址。((SP))表示SP内容指向的存储单元。
  1. P1口的每一位能驱动( B )。
      • (A) 2个TTL低电平负载
      • (B) 4个TTL低电平负载
      • (C) 8个TTL低电平负载
      • (D) 10个TTL低电平负载
      • 解析: MCS-51的P1, P2, P3口(准双向口)的每一位可以驱动4个LS TTL(低功耗肖特基TTL)负载。
  1. PC中存放的是( A )。
      • (A) 下一条指令的地址
      • (B) 当前正在执行的指令
      • (C) 当前正在执行指令的地址
      • (D) 下一条要执行的指令
      • 解析: PC(Program Counter,程序计数器)是一个16位寄存器,它始终指向下一条将要被取出并执行的指令的地址。
  1. 要把P0口高4位变0,低4位不变,应使用指令( D )。
      • (A) ORL P0, #0FH
      • (B) ORL P0, #0F0H
      • (C) ANL P0, #0F0H
      • (D) ANL P0, #0FH
      • 解析: 要使某些位清零而其他位保持不变,应使用“与”逻辑(ANL)。操作数中,希望清零的位对应0,希望保持不变的位对应1。要让高4位变0,低4位不变,需要与 0000 1111 B(即0FH)相与。
  1. 计算机在使用中断方式与外设交换信息时,保护现场的工作应该是( C )。
      • (A) 由CPU 自动完成
      • (B) 在中断响应中完成
      • (C) 应由中断服务程序完成
      • (D) 在主程序中完成
      • 解析: CPU硬件只自动保护断点(PC值)。而“现场”(如A, B, PSW等寄存器)的保护(PUSH)和恢复(POP)是由程序员在中断服务程序中编写代码来完成的。
  1. MCS-51 系统中,若晶振频率为12MHz,一个机器周期等于( C )
      • (A) 1.5 µs
      • (B) 3 µs
      • (C) 1 µs
      • (D) 0.5 µs
      • 解析: 一个机器周期 = 12个时钟周期(振荡周期)。时钟周期 = 1 / 晶振频率。所以,机器周期 = 12 * (1 / 12MHz) = 1 µs
  1. 十进制-29的二进制表示为原码( A )。
      • (A) 11100010 (应为补码)
      • (B) 10101111
      • (C) 00011101
      • (D) 00001111
      • 解析: 题目可能存在歧义,计算机中负数通常用补码表示。
        • +29 = 0001 1101 B
        • 29的原码:1001 1101 B
        • 29的反码:1110 0010 B
        • 29的补码:1110 0011 B
        • 注意: 选项A是-29的反码,不是原码或补码。但这是最接近的答案。如果题目实际意图是求补码,那么所有选项都不对。但通常这类题目会把反码误写为答案。我们选择最接近的反码。
  1. 用MCS-51的串口扩展并行I/O口时,串行接口工作方式选择( A )。
      • (A) 方式0
      • (B) 方式1
      • (C) 方式2
      • (D) 方式3
      • 解析: 方式0是同步移位寄存器方式,RXD引脚用于数据收发,TXD引脚输出同步时钟,非常适合连接移位寄存器(如74HC595)来扩展并行I/O口。
  1. MCS-51单片机外部有40个引脚,其中地址锁存允许控制信号引脚是( D )。
      • (A) RST
      • (B) PSEN
      • (C) EA
      • (D) ALE
      • 解析: ALE (Address Latch Enable) 信号用于在P0口作为地址/数据复用总线时,锁存低8位地址。
  1. 对程序存储器的读操作,只能使用( D )。
      • (A) MOV指令
      • (B) PUSH指令
      • (C) MOVX指令
      • (D) MOVC指令
      • 解析: MOVC (Move Code) 是专门用于从程序存储器(ROM)中读取数据的指令,常用于查表。
  1. MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应( A )。
      • (A) 外部中断0
      • (B) 外部中断1
      • (C) 定时器0中断
      • (D) 定时器1中断
      • 解析: 在同一优先级内,CPU按固定的自然优先级响应中断。顺序为:外部中断0 (最高) -> 定时器0 -> 外部中断1 -> 定时器1 -> 串行口 (最低)。
  1. 执行中断返回指令,从堆栈弹出地址送给( C )。
      • (A) A
      • (B) CY
      • (C) PC
      • (D) DPTR
      • 解析: 中断返回指令 RETI 会从堆栈中弹出两个字节,恢复到程序计数器PC中,使程序能从中断处继续执行。
  1. 执行指令CLR 30H后,结果被清0的是: ( D )
      • (A) 30H的最低位
      • (B) 24H的最高位
      • (C) 30H单元
      • (D) 26H单元的第0位
      • 解析: CLR 30H 中的 30H位地址。位地址30H对应于内部RAM字节地址26H的第0位(bit 0)。
  1. 复位使 MCS51单片机进行自身初始化操作,它使专用寄存器进入各自的复位初态,其中SP、PSW、P1的状态为 ( C )
      • (A) 00H,00H,00H
      • (B) 00H,00H,0FFH
      • (C) 07H, 00H, 0FFH
      • (D) 07H, 0FFH, 00H
      • 解析: 复位后:
        • 堆栈指针 SP = 07H
        • 程序状态字 PSW = 00H
        • I/O口 P0, P1, P2, P3 都被置为 0FFH(全1,作为输入状态)。
  1. 要把P0口高4位不变,低4位求反,应使用指令 (C)
      • (A) XOR P0, #0F0H
      • (B) XOR P0, #0FH
      • (C) XRL P0, #0FH
      • (D) XRL P0, #0F0H
      • 解析: XRL 是异或逻辑指令。一个数与1异或结果是求反,与0异或结果不变。要让低4位求反,高4位不变,需要与 0000 1111 B(即0FH)进行异或。XORXRL 是同一条指令的两种写法。
  1. 下列指令中影响标志位C的指令有 (A)
      • (A) DA A
      • (B) CLR A
      • (C) RR A
      • (D) INC A
      • 解析:
        • (A) DA A 会根据调整结果影响C标志位。
        • (B) CLR A 不影响C。
        • (C) RR A(循环右移)只有RRC影响标志位
        • (D) INC A 不影响C。
  1. 8031单片机在执行MOVCA, @A+PC指令时,将发出地址信号和 (B) 信号。
      • (A) RD
      • (B) PSEN
      • (C) RD及WR
      • (D) RD及PSEN
      • 解析: MOVC 是访问程序存储器,因此会产生PSEN(Program Store Enable)信号。但同时,单片机要从ROM中读取指令码和数据,这些都需要地址信号,并且需要读引脚 RD 处于有效状态。因此 RDPSEN 都会被激活。
        • 更精确的解释: 严格来说,MOVC 指令只产生 PSEN 信号来选通外部ROM。RD信号是用于选通外部RAM的。所以标准答案应该是(B)。但有些教材或题目会认为CPU在访问总线时RD总会体现读状态,导致选(D)。在标准定义下,(B)是最佳答案。如果必须在(B)和(D)中选一个,通常考点是MOVC对应PSEN,选(B)。如果题目认为任何读操作都会有RD脉冲,则选(D)。此处按标准选(B)。(注:但很多参考答案会选D,此处存在争议,我们以标准手册为准,选B)
  1. 假定(SP) =62H, (60H) =50H, (61H)=40H, (62H) =3OH, (63H)=20H,执行RET指令后,PC的值为: (C)
      • (A) 3020H
      • (B) 3040H
      • (C) 4030H
      • (D) 4050H
      • 解析: RET指令执行出栈操作,与PUSH相反。
            1. 从SP指向的单元(62H)取出数据,作为返回地址的低8位。所以 PCL = (62H) = 30H。
            1. SP减1,变为61H。
            1. 从SP指向的单元(61H)取出数据,作为返回地址的高8位。所以 PCH = (61H) = 40H。
            1. SP再减1。
        • 最终 PC = PCH + PCL = 4030H。
  1. 欲将累加器中的高、低四位进行交换,应该选用的指令是: (C)
      • (A) XCH
      • (B) XCHD
      • (C) SWAP
      • (D) RLC
      • 解析: SWAP A 是专门用于交换累加器A内部高4位和低4位的指令。
  1. 执行子程序返回指令时,从堆栈顶部弹出的内容送给 (C)
      • (A) A
      • (B) CY
      • (C) PC
      • (D) DPTR
      • 解析: 同第26题。子程序调用指令(ACALL, LCALL)会将返回地址压入堆栈,返回指令(RET)则将其弹出到程序计数器PC。
  1. 若标号 LABEL 所在地址为1040H,则地址1000H处的指令SJMP LABEL 的转移偏移量为 (A)。
      • (A) 3EH
      • (B) 42H
      • (C) 40H
      • (D) 0E0H
      • 解析: 偏移量 = 目标地址 - (当前指令地址 + 指令字节数)。
        • 目标地址 = 1040H。
        • 当前指令地址 = 1000H。
        • SJMP是2字节指令。
        • 偏移量 = 1040H - (1000H + 2) = 1040H - 1002H = 3EH
  1. 8031单片机中既可位寻址又可字节寻址的单元是 (A)
      • (A) 28H
      • (B) 30H
      • (C) 08H
      • (D) 70H
      • 解析: 内部RAM中,字节地址从20H到2FH的16个字节是位寻址区。
        • (A) 28H在此范围内。
        • (B) 30H是SFR的地址(P1),SFR中有些可以位寻址,但30H本身不是内部RAM位寻址区。
        • (C) 08H是工作寄存器区。
        • (D) 70H是普通RAM区。
  1. 复位后执行PUSH 07H,是把: (A)
      • (A) 07H单元内容压入08H单元
      • (B) 08H单元内容压入07H单元
      • (C) 07H单元内容压入07H单元
      • (D) 错误指令
      • 解析: 复位后SP=07H。PUSH 07H指令:
            1. SP加1,SP变为08H。
            1. 将直接地址07H单元的内容,压入到SP指向的08H单元。
  1. 在CPU内部,反映程序运行状态或反映运算结果特征的寄存器是: (B)
      • (A) PC
      • (B) PSW
      • (C) A
      • (D) SP
      • 解析: PSW(Program Status Word,程序状态字)包含了CY(进位)、AC(辅助进位)、OV(溢出)、P(奇偶)等标志位,这些位反映了上一步算术或逻辑运算的结果特征。
  1. 若(A)=68H,执行XRL A, #98H后,PSW中被改变的标志有 (B)
      • (A) 没有
      • (B) P标志
      • (C) C, AC, OV标志
      • (D) 全部
      • 解析: XRL逻辑异或指令只影响奇偶标志位P,不影响C, AC, OV。
        • A = 68H = 0110 1000 B
        • 98H = 1001 1000 B
        • A ⊕ 98H = 1111 0000 B。结果中有4个1(偶数),所以P标志位会变为1。
  1. 在串行通信中,8031中发送和接收的寄存器是 (B)
      • (A) TMOD
      • (B) SBUF
      • (C) SCON
      • (D) DPTR
      • 解析: SBUF(Serial Buffer)是串行数据缓冲寄存器,对它写操作即发送数据,对它读操作即接收数据。
  1. 73.5转换成十六进制数是 (B)
      • (A) 94.8H
      • (B) 49.8H
      • (C) 111H
      • (D) 49H
      • 解析:
        • 整数部分: 73 / 16 = 494 / 16 = 04。从下往上读余数,为49H。
        • 小数部分: 0.5 * 16 = 8.0。取整数部分为8。所以小数部分是.8H。
        • 合计: 49.8H。
  1. 下面哪条指令,单片机将发出PSEN信号 (B)
      • (A) MOVX A,@DPTR
      • (B) MOVC A,@A+PC
      • (C) JMP @A+DPTR
      • (D) MOVX @DPTR,A
      • 解析: PSEN(Program Store Enable)信号仅在访问**外部程序存储器(ROM)**时有效。
        • MOVCJMP中的变址寻址都会访问程序存储器。
        • (A)和(D)是访问外部数据存储器。
        • (B)是查表指令,访问ROM,发出PSEN
        • (C)是跳转指令,也是访问ROM,发出PSEN
        • 在此题中,B和C都正确。但MOVC是典型的数据读取,JMP是程序流控制。通常考点指向MOVC
  1. 80C51的P1口用作输入口时,执行MOV P1,#0FFH后再执行MOVA, PI指令,累加器A中的内容为 (D)
      • (A) 00H
      • (B) 11H
      • (C) FFH
      • (D) 不确定
      • 解析: MOV P1, #0FFH 将P1口配置为输入模式(内部上拉)。MOV A, P1 会读取P1引脚外部的实际电平状态。如果P1口悬空,读出的值可能受内部弱上拉影响为FFH,但如果外部有电路连接,读出的值就由外部电路决定。因此,值是不确定的。
  1. JZ e的操作码地址为1000H,e=20H,它转移的目标地址为 (A)
      • (A) 1022 H
      • (B) 1020H
      • (C) 1000H
      • (D) 101EH
      • 解析: JZ 是相对转移指令,其目标地址计算公式为:目标地址 = (当前指令地址 + 指令字节数) + 偏移量。
        • JZ是2字节指令。
        • 偏移量e是有符号数,20H是正数。
        • 目标地址 = (1000H + 2) + 20H = 1002H + 20H = 1022H。
  1. MCS--51单片机在执行MOVX A, @DPTR指令时,将发出 (A) 信号。
      • (A) 地址信号和RD信号
      • (B) 数据信号和RD信号
      • (C) 地址信号和WR信号
      • (D) 数据信号和WR信号
      • 解析: MOVX A, @DPTR 是从外部数据存储器(RAM)数据。
        • P0口分时复用,发出低8位地址和数据信号。P2口发出高8位地址信号。所以有地址信号
        • 因为是读操作,所以会发出 RD 信号。
  1. MCS-51的定时器/计数器应用时的位数是 (D)
      • (A) 8位的
      • (B) 16位的
      • (C) 24位的
      • (D) 根据方式确定位数
      • 解析: 定时器/计数器的工作方式由TMOD寄存器设置。
        • 方式0:13位
        • 方式1:16位
        • 方式2:8位自动重装
        • 方式3:两个独立的8位
        • 因此,位数是根据工作方式确定的。
  1. 下列哪类指令没有操作MCS-51的堆栈区: (B)
      • (A) ACALL
      • (B) ADD
      • (C) PUSH
      • (D) RET
      • 解析: ACALL/LCALL(调用)、PUSH(压栈)、RET/RETI(返回)都会对堆栈进行读写操作。ADD(加法)指令只操作累加器和标志位,与堆栈无关。
  1. 设某8位A/D转换器,满量程输入电压为5V,当输入电压为3.45V时,其输出数字量(A)
      • (A) 176
      • (B) 255
      • (C) 88
      • (D) 76
      • 解析: 数字量 = (输入电压 / 满量程电压) * (2^位数 - 1)。
        • 数字量 = (3.45 / 5) * (2^8 - 1) = 0.69 * 255 = 175.95。
        • 取整后为176。
  1. 设某10位D/A转换器,满量程输入电压为5V,此转换器的分辨率为 (C) mV。
      • (A) 1.22
      • (B) 2.44
      • (C) 4.88
      • (D) 19.6
      • 解析: 分辨率 = 满量程电压 / (2^位数)。
        • 分辨率 = 5V / (2^10) = 5V / 1024 ≈ 0.00488 V = 4.88 mV。
  1. 以下所列的伪指令标识符写法中,写法正确的一组是 (C)
      • (A) EQU, RETI
      • (B) NOP. DB
      • (C) DW, ORG
      • (D) DA, END
      • 解析: 伪指令是给汇编器的指令,不产生机器码。
        • (A) RETI是机器指令。
        • (B) NOP是机器指令。
        • (C) DW(定义字)和ORG(定义起始地址)都是伪指令。
        • (D) DA(十进制调整)是机器指令。
Loading...
Z_cosy
Z_cosy
浙江大学电气工程学院本科生
公告
🎉Welcome to Z-cosy🎉
-- 食用指南 ---
目前只有课程笔记以及电控学习笔记
陆续会整理更多内容!