试题 6 参考答案 一、填空 1.MCS-51 单片机片内含有运算器和控制器的功能单元称为( CPU )。 2.单片机复位时 SP 的值为( 07H )。 3.PSW 寄存器中的( F0 )位,是用户可自由使用的标志位。 4.8052 单片机片内有( 256 )个 RAM 单元,( 8K )字节程序存储器单元 。 5.当 8031 单片机的一个机器周期为 4μS 时,这时它的晶振的频率为( 3 )MHz。 6.执行 DJNZ R5,rel 指令,将循环执行 250 次。此时 R5 初值应为( FAH )。 7.MCS-51 单片机上电复位时,5 个中断源中断优先级最低的是( 串行口 )。 8.89C51 单片机采用外部时钟电路时,XTAL1 引脚接( 外部振荡器时钟 ),XTAL2 引脚的接法为( 悬 空 )。 9.当 TMOD 中的 GATEx=( 1 )时(x=0,1),定时器的启停由两个信号( TRx )和( INTx )来控制的。 10.以 8751 为核心的单片机最小系统,除了要有 8751 单片机外,还要有( 时钟 )电路和( 复 位 )电路 11.定时器 T0 工作在方式 3 时,定时器 T1 主要用作( 串行口的波特率发生器 )。 12.已知8段共阴极LED数码显示器要显示某字符的段码为7DH(a段为最低位),此时显示器显示的字符为 ( 6 )。 13.若某存储器芯片地址线为 15 根,那么它的存储容量为( 32 )KB 14.使用 8751 单片机,当引脚 EA =1 时,其外扩的程序存储器的最大容量为( 60)KB,其地址从 ( 1000 )H~( FFFF )H 15.单片机执行子程序返回指令时,应把子程序调用指令的( 下一条指令的首地址 )装入PC中。 16.欲使 P1 口的高 2 位输出 1,低 6 位不变,应执行一条( ORL P1, #0C0H ) 指令。 17.单片机系统常用的的 A/D 转换器有两种,它们是(逐次比较 )型和( 双积分)型 18.当 MCS-51 执行 MOVC A,@A+PC 指令时,伴随着( PSEN )控制信号有效。 19.某 8 位 A/D 转换器的转换电压的范围为 0∼5v,其分辨率为( 0.19mv ) 20.若 P 标志位为 1,且 A 中的低 6 位均为 0,那么 A 的内容为( 80 )H 或( 40 )H。 21.串行口方式 2 接收到的第 9 位数据送( SCON )寄存器的( RB8 )位中保存。 22.双积分 A/D 转换器的积分周期为 20ms 的整数倍时,能够抑制( 工频干扰 ) 23.A/D 转换器的两个重要的技术指标是( 转换时间 )和(分辨率)。 24.MCS-51 单片机的 P2 口是( 准双向 )口。 二、判断,在后面的括号中填入“√”或“×” 1.单片机是一种 CPU。( × ) 2.A/D 转换器的位数越多,其量化误差越小。(√) 3.MCS-51 单片机中的寄存器 PC 是用户不能用指令直接访问的寄存器。( √ ) 4.访问单片机外部扩展 RAM 的低 128 字节与访问片内 RAM 单元,指令是不同的。(√) 5.并行接口芯片 8255A 的方式 1 是无条件的输入输出方式。(×)
6.MCS-51 单片机对片外的 RAM 单元和片外的 I/O 端口使用相同的访问指令。(√) 7.指令 LJMP 的跳转空间最大为 64KB。(√ ) 8.8751 单片机对片内的 EPROM 和外部扩展的 EPROM 的访问指令是相同的。(√) 9.MCS-51 单片机的 P1 口如果作为输入端口使用时,必须先向 P1 口写入 FFH。(√) 10.指令“MOV A,@R2”是错误的。( √ ) 11.串行口方式 0 的波特率仅与单片机的晶体振荡器有关,与定时器无关。(√ ) 12.MCS-51 单片机的堆栈区设在片外的 RAM 区。( × ) 13.MCS-51 单片机中的同级中断不能嵌套。(√ ) 14.两片具有相同分辨率的 A/D 转换器,其转换精度也是一样的。(×) 15.当 MCS-51 执行 MOVX A,@R1 指令时,伴随着 WR 信号有效。( × ) 三、简答 1.写出 MCS-51 的所有中断源。并说明哪些中断源在响应中断时,其中断请求是由硬件自动清除,哪 些中断源必须用软件清除,为什么? 答:5 个中断源:外部中断 0(中断入口 0003H)、定时器/计数器中断 T0(中断入口 000BH)、外部中 断 1(中断入口 0013H)、定时器/计数器中断 T1(中断入口 001BH)、定时器/计数器中断 T1、串行口 接收/发送中断 TI 与 RI(中断入口 0023H)。 外部中断 0 和外部中断 1 其跳沿触发中断请求是自动撤消,但是其电平触发要外加电路来撤消。 两个定时器的中断请求是自动撤消的。 串行口的接收/发送中断请求 TI/RI 必须用软件清除,因为串行口的中断请求分为接收或发送中断,无法 直接断定是哪一个中断请求,所以必须根据程序的实际运行,来用软件清除。 2. 下面是某 8031 系统的程序段,当 8031 响应定时器 T0 中断后,跳向 T0 中断中断服务子程序入 口,且执行了的第一条单字节指令后,此时 PC 的内容为多少? ORG 0000H LJMP 4000H ORG 0003H LJMP 1000H ORG 000BH LJMP 2000H ORG 0013H LJMP 3000H 答:因为定时器T0中断的中断入口为000BH,跳向2000H后,再执行一条单字节指令,此时PC指向2000H 单 元的下一个单元,所以此时PC的内容为2001H。 3. 已知程序执行前有 A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后, 则 A=( ); SP=( );(41H)=( );(42H)=( );PC=( )。(5 分) POP DPH ;DPH= FFH, POP DPL ;DPL= FFH, SP=40H MOV DPTR,#3000H ;DPTR =3000H, RL A ;A =04H MOV B,A ;B =04H MOVC A,@A+DPTR ;A =50H PUSH Acc ;41h= 50H MOV A,B ;A =04H
INC A ;A =05H MOVC A,@A+DPTR ;A =80H PUSH Acc ;42h= 80H RET ;PC=8050H SP=40H ORG 3000H DB 10H,80H,30H,80H,50H,80H 答:A=80H ,SP=40H,(41H)=50H,(42H)=80H ,PC=8050H 四、下图为某 MCS-51 应用系统的 3 位 LED 8 段共阳极静态显示器的接口电路,回答下列问题: (1)该静态显示器电路与动态扫描的显示器电路相比有哪些优缺点? (2)写出显示字符“3.”、“8”、“5”的段码,注意:段码的最低位为“a”段,段码的最高位为“dp” 段。 (3)已知 82C55 的 PA 口、PB 口和 PC 口的地址分别为 FF7CH、FF7DH、FF7EH,且 82C55 的这 3 个端口均 已被初始化为方式 0 输出,用汇编语言编写出使 3 位 LED 共阳极显示器从左至右显示“3.85”的程序段。 答: (1) 优点:亮度高,字符不闪烁,占用 CPU 资源少。缺点:占用的 I/O 口太多,当 LED 数码显 示器数目较多时,需要外扩展 I/0 口。 (2) 3.:→30H; 8 :→80H;5 :→92H (3) MOV DPTR,#0FF7CH ;PA 口地址送 DPTR MOV A,#30H MOVX@DPTR,A ;左边数码管显示“3.” MOV DPTR,#0FF7DH ;PB 口地址送 DPTR MOV A,#80H MOVX @DPTR,A ;中间数码管显示“8” MOV @DPTR,#0FF7EH ;PC 口地址送 DPTR MOV A,#92H MOVX @DPTR,A RET 五、请回答: 1.下图中外部扩展的程序存储器和数据存储器容量各是多少? 2.三片存储器芯片的地址范围分别是多少??(单片机发地址时,每次只能选中一片芯片) 。 3.请编写程序(用汇编语言),指令后要有注释,要求: (1) 将内部 RAM 40H~4FH 中的内容送入 1# 6264 的前 16 个单元中; (2) 将 2# 6264 的前 4 个单元的内容送入片内 RAM 单元 50H~53H 中;
答: 1.外扩的程序存储器容量为:8kB 外扩的数据存储器容量为:8kB×2=16kB 2. 程序存储器 2764 地址范围为: A15 A14 A13 0 0 0 范围为:0000H~1FFFH 数据存储器 1#6264 地址范围为: A15 A14 A13 0 1 1 范围为:6000H~7FFFH 数据存储器 2#6264 地址范围为: A15 A14 A13 1 0 1 范围为:A000H~BFFFH 3.编写程序 (1) MOV R0, #40H MOV DPTR, #6000H ;设置数据指针为 6000H LOOP:MOV A, @R0 ; 将片内 RAM(40∼4FH)中的内容送入 A 中 MOVX @DPTR, A ; 将 A→@DPTR 中 INC R0 INC DPTR CJNE R0, #10H,LOOP; 将此子程序,循环执行 16 次 RET (2) MOV R0, #50H MOV DPTR, #0A000H ; 设置数据指针为 A000H
LOOP:MOVX A, @DPTR MOV @R0, A ; 将外部数据存储器内容送入到片内中 INC R0 INC DPTR CJNE R0, #04H,LOOP ; 将此子程序循环执行 4 次 RET