试题10 参考答案 一、填空 1.单片机EMCU、数字信号处理器DSP和嵌入式微处理器EMPU的侧重点不同,( 单片机)的专长 是测量和控制,( EMPU)可用于配置实时多任务操作系统,(DSP )擅长复杂、高速的 运算。 2.串行口工作在方式3时,要传送的8位数据由串口的(BF/发送缓冲器)发送出去,第9位数据 要事先写到特殊功能寄存器(SC0N)的(TB8)位中。 3.己知(A)=03H,(SP)=60H,(59H)=01H,(60H)=02H,(61H)=2CH,执行指令 PUSH Acc RET 后,(SP)=(5FH ),(PC)=(0302H),(61H)=( 03H )。 4.单片机与计算机的不同之处在于其将( CPU 1)、(存储器 )和(I/0接口)等部分 集成于一块芯片之上。 5.计算机的数据传送有两种方式,即:(并行 )方式和(串行)方式,其中具有成本低特 点的是(串行)数据传送。 6.为扩展存储器而构建单片机片外总线,应将P0口和P2口作为( 地址)总线,并将P0口作为 (数据 )总线。 7.AT89S51单片机控制ED显示时,可采用2种显示方式:(静态)显示和( 动态)显示。 8.D/A转换器分辨率的含义是:(单位数字量 )的输入变化所引起的( 棋拟量 )的输出 变化。 9.汇编语言的基本指令中,(操作码)规定执行的操作,(操作数)给操作提供数据和地址。 10.AT89S51单片机最多可以外扩(64)KB的数据存储器,此时单片机需提供(16)根地址线。 11.AT89S51单片机进行存储器的扩展时,涉及到的控制总线有:(ALE)、(EA*)、(PSEN体)、 WR和RD。 12.AT89S51单片机有(5)个中断源,分成3类:外部中断、(定时器/计数器)中断和( 串 行 )中断。 13.在基址加变址的寄存器间接寻址方式中,(A)作为变址寄存器,(DPT℉)或PC作为基址 寄存器。 14.定时器/计数器的“定时”是对内部的(机器周期 )进行计数,其“计数”是对P3.4和P3.5
试题 10 参考答案 一、填空 1.单片机 EMCU、数字信号处理器 DSP 和嵌入式微处理器 EMPU 的侧重点不同,( 单片机 )的专长 是测量和控制,( EMPU )可用于配置实时多任务操作系统,( DSP )擅长复杂、高速的 运算。 2.串行口工作在方式 3 时,要传送的 8 位数据由串口的( SBUF/发送缓冲器 )发送出去,第 9 位数据 要事先写到特殊功能寄存器( SCON )的( TB8 )位中。 3.已知(A)=03H,(SP)=60H,(59H)=01H,(60H)=02H,(61H)=2CH,执行指令 PUSH Acc RET 后,(SP)=( 5FH ),(PC)=( 0302H ),(61H)=( 03H )。 4. 单片机与计算机的不同之处在于其将( CPU )、( 存储器 )和( I/O 接口 )等部分 集成于一块芯片之上。 5.计算机的数据传送有两种方式,即:( 并行 )方式和( 串行 )方式,其中具有成本低特 点的是( 串行 )数据传送。 6.为扩展存储器而构建单片机片外总线,应将 P0 口和 P2 口作为( 地址 )总线,并将 P0 口作为 ( 数据 )总线。 7.AT89S51单片机控制LED显示时,可采用2种显示方式:( 静态 )显示和( 动态 )显示。 8.D/A 转换器分辨率的含义是:( 单位数字量 )的输入变化所引起的( 模拟量 )的输出 变化。 9.汇编语言的基本指令中,( 操作码 )规定执行的操作,( 操作数 )给操作提供数据和地址。 10.AT89S51 单片机最多可以外扩( 64 )KB 的数据存储器,此时单片机需提供( 16 )根地址线。 11.AT89S51单片机进行存储器的扩展时,涉及到的控制总线有:( ALE )、( EA* )、( PSEN* )、 WR 和 RD 。 12.AT89S51单片机有( 5 )个中断源,分成3类:外部中断、( 定时器/计数器 )中断和( 串 行 )中断。 13.在基址加变址的寄存器间接寻址方式中,( A )作为变址寄存器,( DPTR )或 PC 作为基址 寄存器。 14.定时器/计数器的“定时”是对内部的( 机器周期 )进行计数,其“计数”是对 P3.4 和 P3.5
引脚上的(外部脉冲 )进行计数。 二、判断(,在后面的括号中填入“√”或“X”) 1.在一个完整的程序中,伪指令是可有可无的。(×) 2.AT89S51单片机的位寻址区,只能供位寻址使用,而不能供字节寻址使用。(×) 3.AT89S51单片机内部时钟方式的“内部”,是指单片机应用系统,而不是单片机本身。(√) 4.AT89S51单片机中的PC是不可寻址的。(√) 5.当单片机的存储器或I/0接口资源不足时,只能通过系统扩展来解决。(×) 6.中断返回指令RETI可以由指令RET代替。(X) 7.当模拟量的满刻度值固定时,ADC和DAC的分辨率只与其位数有关。(√) 8.AT89S51单片机外扩EEPROM的方法等同于外扩ROM。(×) 9.低优先级中断请求不能打断高优先级的中断服务,但高优先级的中断请求能打断低优先级的中断服务。 (√) 10.AT89S51单片机,程序存储器和数据存储器扩展的最大范围一样。(√) 11.扩展I/0口占用片外数据存储器的地址资源。(√) 12.AT89S51单片机的P0口如果工作在总线模式下时,是一个准双向口。(×) 13.按键的去抖操作,只能通过软件编程来实现。(×) 14.外部计数脉冲的最高频率为系统振荡器频率的1/24,是定时器/计数器对外准确计数的充要条件。 (X) 15.同等条件下,AT89S51单片机串行口同步通信的速率高于异步通信。(√) 三、单项选择题 1.单片机能直接识别的语言是(B)。 A、汇编语言 B、机器语言 C、低级语言 D、高级语言 2.外部中断1的中断入口地址为(C)。 A、0003HB、000BH C、0013H D、001BH 3.单片机寻址外部1/0端口地址的方法有两种,一种是统一编址,另一种是(C)。 A、混合编址 B、动态编址C、独立编址D、变址编址 4.关于AT89S51单片机的堆栈操作,下列描述正确的是(D)。 A、遵循先进先出,后进后出的原则 B、压栈时栈顶地址自动减1 C、调用子程序及子程序返回与堆栈无关 D、中断响应及中断返回与堆栈有关
引脚上的( 外部脉冲 )进行计数。 二、判断(,在后面的括号中填入“ √ ”或“ × ”) 1.在一个完整的程序中,伪指令是可有可无的。( × ) 2.AT89S51 单片机的位寻址区,只能供位寻址使用,而不能供字节寻址使用。( × ) 3.AT89S51 单片机内部时钟方式的“内部”,是指单片机应用系统,而不是单片机本身。( √ ) 4.AT89S51 单片机中的 PC 是不可寻址的。( √ ) 5.当单片机的存储器或 I/O 接口资源不足时,只能通过系统扩展来解决。( × ) 6.中断返回指令 RETI 可以由指令 RET 代替。( × ) 7.当模拟量的满刻度值固定时,ADC 和 DAC 的分辨率只与其位数有关。( √ ) 8.AT89S51 单片机外扩 EEPROM 的方法等同于外扩 ROM。( × ) 9.低优先级中断请求不能打断高优先级的中断服务,但高优先级的中断请求能打断低优先级的中断服务。 ( √ ) 10.AT89S51 单片机,程序存储器和数据存储器扩展的最大范围一样。( √ ) 11.扩展 I/O 口占用片外数据存储器的地址资源。( √ ) 12.AT89S51 单片机的 P0 口如果工作在总线模式下时,是一个准双向口。( × ) 13.按键的去抖操作,只能通过软件编程来实现。( × ) 14.外部计数脉冲的最高频率为系统振荡器频率的 1/24,是定时器/计数器对外准确计数的充要条件。 ( × ) 15.同等条件下,AT89S51 单片机串行口同步通信的速率高于异步通信。( √ ) 三、单项选择题 1.单片机能直接识别的语言是( B )。 A、汇编语言 B、机器语言 C、低级语言 D、高级语言 2.外部中断 1 的中断入口地址为( C )。 A、0003H B、000BH C、0013H D、001BH 3.单片机寻址外部 I/O 端口地址的方法有两种,一种是统一编址,另一种是( C )。 A、混合编址 B、动态编址 C、独立编址 D、变址编址 4.关于 AT89S51 单片机的堆栈操作,下列描述正确的是( D )。 A、遵循先进先出,后进后出的原则 B、压栈时栈顶地址自动减 1 C、调用子程序及子程序返回与堆栈无关 D、中断响应及中断返回与堆栈有关
5.各中断源发出的中断请求,都会标记在特殊功能寄存器( B )中。 A、TMOD B、TCON/SCON C、IE D、IP 6.用AT89S51单片机的串行口扩展并行I/0口时,串行口应该选择(A )。 A、方式0 B、方式1 C、方式2 D、方式3 7.执行子程序返回指令时,返回的位置是(D)。 A、调用指令的首地址 B、调用指令的末地址 C、返回指令的末地址 D、调用指令下一条指令的首地址 8.执行如下三条指令后,50H单元的内容是(B)。 MOV R1,#50H MOV 60H,#0FEH MOV @R1,60H A、50H B、OFEH C、60H D、00H 9.要设计一个32键的行列式键盘,至少需要占用(A)根引脚线。 A、12根 B、32根 C、18根 D、无法确定 10.若要定时1ms(系统时钟频率为6Mz),则使用定时器/计数器的(B)更合适。 A、方式0 B、方式1 C、方式2 D、方式3 四、简答 1.简述“单片机的并行口以通用I/0方式输入时,需先向该口写1”的原因,并说明该操作是否影响要输 入的信息?加以解释。 答: (1)向并行口写1的操作,是为了截止内部的场效应管,避免由于之前输出0而导致的读入数据始 终为0的情况。 (2)不影响 (3)单片机的并行口以通用I/0方式输入时,需要连接输入接口电路的高、低电平。如接高电平, 则写1操作自然不会影响输入结果:若接低电平,则I/0管脚也会被拉成低电平,因此读入状态为 0,也不会受写1操作的影响。 2.AT89S51单片机的串行口有几种工作方式?其通讯速率分别与哪些因素有关? 答: (1)AT89S51单片机的串行口有4种工作方式。 (2)方式0的波特率只与系统的时钟频率有关:方式2与系统的时钟频率和波特率倍增位SMOD有关: 方式1和方式3则与系统的时钟频率、波特率倍增位SMOD和T1的溢出率有关
5.各中断源发出的中断请求,都会标记在特殊功能寄存器( B )中。 A、TMOD B、TCON/SCON C、IE D、IP 6.用 AT89S51 单片机的串行口扩展并行 I/O 口时,串行口应该选择( A )。 A、方式0 B、方式1 C、方式2 D、方式3 7.执行子程序返回指令时,返回的位置是( D )。 A、调用指令的首地址 B、调用指令的末地址 C、返回指令的末地址 D、调用指令下一条指令的首地址 8.执行如下三条指令后,50H 单元的内容是( B )。 MOV R1, #50H MOV 60H,#0FEH MOV @R1,60H A、50H B、0FEH C、60H D、00H 9.要设计一个 32 键的行列式键盘,至少需要占用( A )根引脚线。 A、12 根 B、32 根 C、18 根 D、无法确定 10.若要定时 1ms(系统时钟频率为 6MHz),则使用定时器/计数器的( B )更合适。 A、方式 0 B、方式 1 C、方式 2 D、方式 3 四、简答 1.简述“单片机的并行口以通用 I/O 方式输入时,需先向该口写 1”的原因,并说明该操作是否影响要输 入的信息?加以解释。 答: (1) 向并行口写 1 的操作,是为了截止内部的场效应管,避免由于之前输出 0 而导致的读入数据始 终为 0 的情况。 (2) 不影响 (3) 单片机的并行口以通用 I/O 方式输入时,需要连接输入接口电路的高、低电平。如接高电平, 则写 1 操作自然不会影响输入结果;若接低电平,则 I/O 管脚也会被拉成低电平,因此读入状态为 0,也不会受写 1 操作的影响。 2.AT89S51 单片机的串行口有几种工作方式?其通讯速率分别与哪些因素有关? 答: (1) AT89S51 单片机的串行口有 4 种工作方式。 (2) 方式 0 的波特率只与系统的时钟频率有关;方式 2 与系统的时钟频率和波特率倍增位 SMOD 有关; 方式 1 和方式 3 则与系统的时钟频率、波特率倍增位 SMOD 和 T1 的溢出率有关
3.阐述LED动态显示和静态显示的硬件连接方法,并从占用CPU资源和I/0资源的角度,对比两者优缺 点。(5分) 答: (1)LED静态显示方式:各数码管的位选线统一接地或者电源,段码线接不同的I/0口线。动态显 示方式:所有数码管的段码线接在一起,统一由一个I/0口控制,而位选线由单独的1/0口控制。 (2)LED静态显示方式:优点是节省CPU资源,缺点是浪费I/0资源: LED动态显示方式:优点是节省I/O资源,缺点是浪费CPU资源。 4.AT89S51单片机利用ADCO809进行模数转换时,需要使用MOVX@DPTR,A和MOVX A,@DPTR两条指令 完成一个8位二进制数的转换(DPTR所存数据为输入模拟通道的端口地址),解释其原因,并分别指出这 两条指令的作用。 答: (1)这样设计的根本原因在于ADC0809相对于AT89S51单片机而言,是慢速输入外设,因此需要分 别控制ADC08O9启动转换和读取数据。 (2)指令MOVX@DPTR,A用于启动A/D转换,指令MOVX A,@DPTR用于接收转换完毕的数据。 五、设两个外中断源己被占用,为电平触发方式,定时器/计数器T1用作波特率发生器,工作在方式2。 现要求使用定时器/计数器T0扩展一个外部中断,并控制P1.0引脚输出一个5kHz的方波。系统时钟为 12MHz。 1.划分TL0和TH0的功能,并计算其初值: 2.填写程序中的空白部分。 TMOD GATE CT MI MO GATE C/T MI MO TCON TF1 TRI TFO TRO E EA ES ET1 EX1 ETO EXO ORG 0000H LJMP MAIN ORG OOOBH LJMP ORG 001BH LJMP ORG 0100H
3.阐述 LED 动态显示和静态显示的硬件连接方法,并从占用 CPU 资源和 I/O 资源的角度,对比两者优缺 点。(5 分) 答: (1) LED 静态显示方式:各数码管的位选线统一接地或者电源,段码线接不同的 I/O 口线。动态显 示方式:所有数码管的段码线接在一起,统一由一个 I/O 口控制,而位选线由单独的 I/O 口控制。 (2) LED 静态显示方式:优点是节省 CPU 资源,缺点是浪费 I/O 资源; LED 动态显示方式:优点是节省 I/O 资源,缺点是浪费 CPU 资源。 4.AT89S51 单片机利用 ADC0809 进行模数转换时,需要使用 MOVX @DPTR, A 和 MOVX A, @DPTR 两条指令 完成一个 8 位二进制数的转换(DPTR 所存数据为输入模拟通道的端口地址),解释其原因,并分别指出这 两条指令的作用。 答: (1) 这样设计的根本原因在于 ADC0809 相对于 AT89S51 单片机而言,是慢速输入外设,因此需要分 别控制 ADC0809 启动转换和读取数据。 (2) 指令 MOVX @DPTR, A 用于启动 A/D 转换,指令 MOVX A, @DPTR 用于接收转换完毕的数据。 五、设两个外中断源已被占用,为电平触发方式,定时器/计数器 T1 用作波特率发生器,工作在方式 2。 现要求使用定时器/计数器 T0 扩展一个外部中断,并控制 P1.0 引脚输出一个 5kHz 的方波。系统时钟为 12MHz。 1.划分 TL0 和 TH0 的功能,并计算其初值; 2.填写程序中的空白部分。 TMOD GATE C/T M1 M0 GATE C/T M1 M0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE EA — — ES ET1 EX1 ET0 EX0 ORG 0000H LJMP MAIN ORG 000BH LJMP ORG 001BH LJMP ORG 0100H
MAIN:MOV TMOD, MOV TL0, :置TL0初值 MOV THO, #data :置THO初值 MOV TL1, #dataL :dataL和data为波特率初值的低8位和高8位 MOV TH1, #dataH MOV TCON, :启动TL0,设置外部中断触发方式 MOV IE, #9FH :启动中断 HERE:SJMP HERE TLOI: :启动THO RETI THOI: CPL P1.0 RETI 答: 1.TL0用于扩展外部中断,工作在计数模式,初值应为OFFH。 THO用于定时方波的半周期,工作在定时模式,设初值为X,则有: (2-X)×机器周期=定时时长 若要产生5kHz的方波,则需定时100微秒,即: (2-X)×1×106=100×106 则,X=156,十六进制数为9CH。 2. ORG 0000H LJMP MAIN ORG 000BH LJMP TLOI ORG 001BH LIMP THOI ORG 0100H MAIN: MOV TMOD, #27H MOV TLO, #OFFH一 :置TL0初值 MOV THO, #data :置THO初值
MAIN:MOV TMOD, MOV TL0, ;置 TL0 初值 MOV TH0, #data ;置 TH0 初值 MOV TL1, #dataL ;dataL 和 dataH 为波特率初值的低 8 位和高 8 位 MOV TH1, #dataH MOV TCON, ;启动 TL0,设置外部中断触发方式 MOV IE, #9FH ;启动中断 HERE:SJMP HERE TL0I: ;启动 TH0 RETI TH0I: CPL P1.0 RETI 答: 1. TL0 用于扩展外部中断,工作在计数模式,初值应为 0FFH。 TH0 用于定时方波的半周期,工作在定时模式,设初值为 X,则有: (2 8 -X)×机器周期=定时时长 若要产生 5kHz 的方波,则需定时 100 微秒,即: (2 8 -X)×1×10-6 =100×10-6 则,X=156,十六进制数为 9CH。 2. ORG 0000H LJMP MAIN ORG 000BH LJMP TL0I ORG 001BH LJMP TH0I ORG 0100H MAIN: MOV TMOD, #27H MOV TL0, #0FFH ;置 TL0 初值 MOV TH0, #data ;置 TH0 初值
MOV TL1, #dataL :dataL和dataH为波特率初值的低8位和高8位 MOV TH1, #dataH MOV TCON. #10州 :启动TL0,设置外部中断触发方式 MOV IE, #9FH :启动中断 HERE: S.TMP HERE TLOI: SETB TR1 :启动TH0 RETI THOI: MOV THO,#9CH CPL P1.0 RETI 六、AT89S51单片机通过82C55扩展I/0口,实现按键识别与显示。 1.将图a中空缺的电路补充完整: 2.计算PA口、P℃口和控制口的端口地址(没用到的地址设为1): 3.根据图b编写程序段,将PA口设为基本输出,PC口设为基本输入,并实现按键实时检测与指示(即当 PC0按键闭合时,点亮PA0的发光二级管:当PC1按键闭合时,点亮PA1的发光二级管,以此类推)。 +5V RD RD PA7 PA6 WR WR PA5 CS PA4 P0.7 D7 Q7 8 PA3 0 PA2 P0.0 DO 741.5373 Al PAI A0 PAO 82C55 PC7 AT89S51 G OE PC6 00 PC5 ALE D PC4 8 PC3 十 PC2 母 PCI b PCO 图a电路图
MOV TL1, #dataL ;dataL 和 dataH 为波特率初值的低 8 位和高 8 位 MOV TH1, #dataH MOV TCON, #10H ;启动 TL0,设置外部中断触发方式 MOV IE, #9FH ;启动中断 HERE: SJMP HERE TL0I: SETB TR1 ;启动 TH0 RETI TH0I: MOV TH0, #9CH CPL P1.0 RETI 六、AT89S51 单片机通过 82C55 扩展 I/O 口,实现按键识别与显示。 1.将图 a 中空缺的电路补充完整; 2.计算 PA 口、PC 口和控制口的端口地址(没用到的地址设为 1); 3.根据图 b 编写程序段,将 PA 口设为基本输出,PC 口设为基本输入,并实现按键实时检测与指示(即当 PC0 按键闭合时,点亮 PA0 的发光二级管;当 PC1 按键闭合时,点亮 PA1 的发光二级管,以此类推)。 AT89S51 D7 Q7 . . . . . . D0 Q1 Q0 G OE 74LS373 +5V 8 8 WR ALE P0.7 ... P0.0 RD WR RD D7 ... D0 8 CS A1 A0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 82C55 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 图 a 电路图
D7 D6 D5 D4 D3 D2 D1 D0 0:输出 低4位 1:输入 B口 0:输出 1:输入 方式 0:方式 选 1:方式1 0口 0:输出 高4位 1:输入 A可 0:输出 1:输入 方式 00:方式0 选择 01: 方式 1X:方式取 方式标志:1(有效) 图b82C55工作方式控制字 答: 1. +5V RD RD A7 P WR P P0.7 D7 Q7 P0.0 745373 8 PC7 AT89S51 1G OE 8ZC55 PC6 PC5 0 ALE D7 PC4 8 .: PC3 PC2 PCI PCO 2.PA口的端口地址:FF7CH或7CH, PC口的端口地址:FF7EH或7EH, 控制口的端口地址:FF7FH或7FH。 3. MOV DPTR,#OFF7FH MOVA,#89H(或者MOVA,#8BH) MOVX @DPTR,A L00P: MOV DPTR,#OFF7EH MOVX A,@DPTR MOV DPTR,#OFF7CH MOVX @DPTR,A SJMP LOOP
D7 D6 D5 D4 D3 D2 D1 D0 C口 低4位 0 :输出 1 :输入 B口 0 :输出 1 :输入 方式 选择 0 :方式0 1 :方式1 C口 高4位 0 :输出 1 :输入 A口 0 :输出 1 :输入 方式 选择 00 :方式0 01 :方式1 1X :方式2 方式标志:1 (有效) 图 b 82C55 工作方式控制字 答: 1. AT89S51 D7 Q7 . . . . . . D0 Q1 Q0 G OE 74LS373 +5V 8 8 WR ALE P0.7 ... P0.0 RD WR RD D7 ... D0 8 CS A1 A0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 82C55 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 2.PA 口的端口地址:FF7CH 或 7CH, PC 口的端口地址:FF7EH 或 7EH, 控制口的端口地址:FF7FH 或 7FH。 3. MOV DPTR,#0FF7FH MOV A,#89H (或者 MOV A,#8BH) MOVX @DPTR,A LOOP: MOV DPTR,#0FF7EH MOVX A,@DPTR MOV DPTR,#0FF7CH MOVX @DPTR,A SJMP LOOP