一、单选题

  1. B. 07H
      • 解析: MCS-51单片机复位后,堆栈指针SP的内容被自动初始化为07H。这意味着第一个入栈操作(PUSH)的数据将存放在内部RAM的08H单元。
  1. A. P0
      • 解析: P0端口内部是漏极开路结构,没有内部上拉电阻。当它作为通用I/O口(特别是输出高电平)时,必须在外部连接上拉电阻才能正常输出高电平。
  1. C. 先访问片内0000H-0FFFH,然后自动转向片外1000H-FFFFH
      • 解析: EA是外部程序存储器访问允许引脚。当EA=1时,CPU首先从片内ROM的0000H开始执行程序,当PC值超出片内ROM的容量(如4K机型的0FFFH)时,会自动转向从片外的1000H地址继续取指令。
  1. C. MOVC A, @A+DPTR
      • 解析: MOVC 指令中的 "C" 代表 "Code",是专门用于从程序存储器(Code Memory)中读取数据的指令,通常用于查表操作。
  1. D. B
      • 解析: 在执行 MUL AB 乘法指令时,A和B寄存器为两个乘数,乘积的低8位在A中,高8位在B中。在执行 DIV AB 除法指令时,A为被除数,B为除数,商在A中,余数在B中。
  1. C. 寄存器间接寻址
      • 解析: 寄存器名称前加"@"符号是寄存器间接寻址的标志。该指令表示将寄存器R0中的内容作为地址,去片内RAM中寻址,然后将该地址单元的内容传送给累加器A。
  1. C. 自动重装载的8位定时/计数器
      • 解析: 方式2是8位自动重装载模式。TLx作为8位计数器,当计数溢出时,会自动将THx中的内容重新装载到TLx中,并置位TFx标志,申请中断。
  1. B. TI (SCON.1)
      • 解析: TI(Transmit Interrupt Flag)是发送中断标志位。当串行口成功发送完一帧数据后,硬件会自动将TI置1。
  1. D. 它不会改变SP寄存器的值
      • 解析: LCALL(长调用)指令会执行子程序调用操作,调用时需要将下一条指令的地址(断点)压入堆栈保存,这个过程会使SP的值加2。因此“不会改变SP寄存器的值”是错误的。
  1. C. CPU复位后,其值为00H
      • 解析: TMOD寄存器在CPU复位后会被清零,即所有定时器默认都处于方式0。A错误,TMOD不能位寻址;B错误,TMOD地址是89H;D错误,高4位用于T1,低4位用于T0。

二、判断题

  1. 错误 ( × )
      • 解析: 指令周期可以包含1、2或4个机器周期,取决于指令的复杂性。
  1. 正确 ( √ )
      • 解析: 访问SFR(如ACC)属于直接寻址方式。该指令功能上等同于 MOV A, 0E0H
  1. 正确 ( √ )
      • 解析: 根据中断控制原则,正在执行的中断服务程序不能被同级别的中断请求所打断。
  1. 错误 ( × )
      • 解析: MOVX 是访问外部数据存储器(RAM)的指令。写操作应使用写选通信号 /WR。因此,是 /WR 引脚输出低电平脉冲。
  1. 错误 ( × )
      • 解析: 减1指令 DEC 的操作对象不能是16位的DPTR。INC DPTR 是有效的,但 DEC DPTR 不存在。
  1. 错误 ( × )
      • 解析: DAA(十进制调整)指令必须紧跟在加法指令(如ADDADDC)之后使用,用于将二进制和调整为压缩BCD码。
  1. 错误 ( × )
      • 解析: P3.0口的第二功能是串行数据接收(RXD),P3.1的第二功能才是串行数据发送(TXD)。
  1. 正确 ( √ )
      • 解析: /PSEN(Program Store Enable)是片外程序存储器的读选通信号,在CPU从外部ROM取指令时,该引脚输出低电平。
  1. 正确 ( √ )
      • 解析: MCS-51的堆栈在内部RAM中由低地址向高地址生长,称为向上生长。执行PUSH操作时,SP先加1,再存入数据。
  1. 正确 ( √ )
      • 解析: LJMP 是三字节长转移指令,其后的16位地址操作数可以直接指定64KB程序空间内的任何地址。

三、填空题

  1. P3
  1. 1, 0
  1. 6, 12
  1. 不相等, 1
  1. P3.4, P3.5
  1. 10001010B
  1. 起始 (低电平), 数据, 停止 (高电平)
  1. MOVX

四、程序填空题

计算过程:
  1. 机器周期计算:
      • 晶振频率 fosc = 12MHz
      • 机器周期 Tmachine=12/fosc=12/12MHz=1μs
  1. 定时初值计算:
      • 方波周期为2ms,所以半周期(定时时间)为1ms。
      • 需要计数的机器周期数 = 1ms/1μs=1000
      • 定时器初值 X = 216−1000=65536−1000=64536
      • 将64536转换为十六进制:FC18H
      • 因此,TH0 = FCH,TL0 = 18H
答案:
  1. 0FCH
  1. 018H
  1. SETB ET0
  1. 0FCH
  1. 018H
  1. CPL P1.0
Loading...
Z_cosy
Z_cosy
浙江大学电气工程学院本科生
公告
🎉Welcome to Z-cosy🎉
-- 食用指南 ---
目前只有课程笔记以及电控学习笔记
陆续会整理更多内容!