试题 3参考答案一、填空题1.AT89S51单片机有(2)级优先级中断。2.串行口方式2接收到的第9位数据送(SCON)寄存器的(RB8)位中保存。3.当单片机复位时PSW=(00)H,这时当前的工作寄存器区是(O)区,R6所对应的存储单元地址为(06)H。4.利用82C55可以扩展(3)个并行口,其中(8)条口线具有位操作功能;5.AT89S51访问片外存储器时,利用(ALE)信号锁存来自(P0口)发出的低8位地址信号。6.若AT89S51外扩32KB数据存储器的首地址若为4000H,则未地址为(BFFF)H。7.当AT89S51执行MOVCA,@A+PC指令时,伴随着(PSEN*)控制信号有效,8.若A中的内容为67H,那么,P标志位为(1)。9.AT89S51单片机的通讯接口有(串行)和(并行)两种形式。在串行通讯中,发送时要把(并行)数据转换成(串行)数据。接收时又需把(串行)数据转换成(并行)数据。10.AT89S51内部数据存储器的地址范围是(00-7FH),位地址空间的字节地址范围是(00-2FH),对应的位地址范围是(00-7FH),外部数据存储器的最大可扩展容量是(64KB)。11.AT89S51单片机指令系统的寻址方式有(寄存器寻址方式)、(直接寻址方式)、(立即寻址方式)、(寄存器间接寻址方式)、(位寻址方式)、(基址寄存器加变址寄存器)、(相对导址方式)。12.AT89S51内部提供(2)个可编程的(16)位定时/计数器,定时器有(4)种工作方式。二、判断对错,如对则在()中写“”,如错则在()中写“×”。1.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期。(×)2.判断指令的正误:MOVTO,#3CFOH;(×)3.定时器TO中断可以被外部中断0中断(×)4.指令中直接给出的操作数称为直接寻址。(×)5.内部RAM的位寻址区,既能位寻址,又可字节寻址。(J)6.特殊功能寄存器SCON与定时器/计数器的控制无关。(√)7.当AT89S51执行MOVXA,@R1指令时,伴随着WR*信号有效。(×)1
1 试题 3 参考答案 一、填空题 1.AT89S51 单片机有( 2 )级优先级中断。 2.串行口方式 2 接收到的第 9 位数据送(SCON)寄存器的(RB8)位中保存。 3.当单片机复位时 PSW=(00)H,这时当前的工作寄存器区是(0)区,R6 所对应的存储单 元地址为(06)H。 4.利用 82C55 可以扩展(3)个并行口,其中(8)条口线具有位操作功能; 5.AT89S51 访问片外存储器时,利用(ALE)信号锁存来自( P0 口 )发出的低 8 位地址信 号。 6.若AT89S51外扩32KB 数据存储器的首地址若为4000H,则末地址为(BFFF)H。 7.当 AT89S51 执行 MOVC A,@A+PC 指令时,伴随着(PSEN*)控制信号有效。 8.若 A 中的内容为 67H,那么,P 标志位为(1)。 9.AT89S51 单片机的通讯接口有(串行)和(并行)两种形式。在串行通讯中,发送时要把 (并行)数据转换成(串行)数据。接收时又需把(串行)数据转换成(并行)数据。 10.AT89S51 内部数据存储器的地址范围是(00-7FH ),位地址空间的字节地址范围是(00- 2FH),对应的位地址范围是(00-7FH ),外部数据存储器的最大可扩展容量是(64KB)。 11.AT89S51 单片机指令系统的寻址方式有(寄存器寻址方式)、(直接寻址方式)、(立即寻址 方式)、(寄存器间接寻址方式)、(位寻址方式)、(基址寄存器加变址寄存器)、(相对寻址方 式) 。 12.AT89S51 内部提供(2)个可编程的(16)位定时/计数器,定时器有(4)种工作方式。 二、判断对错,如对则在( )中写“√”,如错则在( )中写“×”。 1.AT89S51 的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电 平的持续时间不小于 1 个机器周期。(×) 2.判断指令的正误:MOV T0,#3CF0H;(×) 3.定时器 T0 中断可以被外部中断 0 中断(×) 4.指令中直接给出的操作数称为直接寻址。(×) 5.内部 RAM 的位寻址区,既能位寻址,又可字节寻址。(√) 6.特殊功能寄存器 SCON 与定时器/计数器的控制无关。(√) 7.当 AT89S51 执行 MOVX A,@R1 指令时,伴随着 WR*信号有效。(×)
8.串行口工作方式1的波特率是固定的,为fosc/32。(×)9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被RD*还是被PSEN*信号连接。()10.逐次比较型A/D转换器与双积分A/D转换器比较,转换速度比较慢。(×)三、简答题1.AT89S51采用12MHz的晶振,定时1mS,如用定时器方式1时的初值(16进制数)应为多少?(写出计算过程)(6分)解:采用12MHz的晶振,Tcy=1/fosc×12=1/12×10×12=lus采用定时器方式1(为16位)定时1ms,设初值为X,则:(216-X)×1×10-6=1×10-3则=>X=64536将其转换成二进的为:1111110000011000再将其转化为16进制数为:FC18初值为TXH=FCHTXL=18H2.中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别?答:RETI除了将压栈的内容出栈外(即现场恢复),还清除在中断响应时被置1的AT89S51内部中断优先级寄存器的优先级状态。3.AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么?答:AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突。这是因为它们的控制信号不同:(1)外扩程序存储器是PSEN*信号为其控制信号外扩数据存储器是RD*与WR*信号为其控制信号(2)指令不同,程序存储器用MOVC读取,数据存储器用MOVX存取4.图为8段共阴数码管,请写出如下数值的段码。dfhbc0g.aD7DOTD4D5DiD2D3D6ap
2 8.串行口工作方式 1 的波特率是固定的,为 fosc/32。(×) 9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被 RD*还是被 PSEN*信号 连接。(√) 10.逐次比较型 A/D 转换器与双积分 A/D 转换器比较,转换速度比较慢。(×) 三、简答题 1.AT89S51 采用 12MHz 的晶振,定时 1ms,如用定时器方式 1 时的初值(16 进制数)应为多 少?(写出计算过程)(6 分) 解:采用 12MHZ的晶振,Tcy=1/fosc×12=1/12×10-6×12=1us 采用定时器方式 1(为 16 位) 定时 1ms,设初值为 X,则:(216-X)×1×10-6=1×10-3 则=>X=64536 将其转换成二进的为:1111110000011000 再将其转化为 16 进制数为:FC18 初值为 TXH=FCH TXL=18H 2.中断服务子程序返回指令 RETI 和普通子程序返回指令 RET 有什么区别? 答:RETI 除了将压栈的内容出栈外(即现场恢复),还清除在中断响应时被置 1 的 AT89S51 内 部中断优先级寄存器的优先级状态。 3.AT89S51 外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突, 为什么? 答:AT89S51 外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突。 这是因为它们的控制信号不同: (1) 外扩程序存储器是 PSEN*信号为其控制信号 外扩数据存储器是 RD*与 WR*信号为其控制信号 (2) 指令不同,程序存储器用 MOVC 读取,数据存储器用 MOVX 存取 4.图为 8 段共阴数码管,请写出如下数值的段码。 a b c d e f g h D0 D1 D2 D3 D4 D5 D6 D7
3FH06H015BH24FH66H6DH345P73H707H7FH839HC5.LED的静态显示方式与动态显示方式有何区别?各有什么优缺点?答:静态:显示期间,锁存器输出的段码不变;亮度大,各位LED的段选分别控制位数多硬件电路复杂动态:所有位段码线并连一起,各位的亮灭靠片选控制端控制,亮度较低,多位控制电路简单四、程序分析:外部RAM3000H,3001H单元的内容分别为55H,ODDH,试分析如下程序,并回答问题。程序1:MOVDPTR,#3000HMOVR1,#40H4000HMOVXA,@DPTRMOV@R1, AR1INC3001HDDINCDPTR3000H55MOVXA,@DPTRMOV@ Rl, A问题1:若执行上述程序,则结束后,DPTR值为3001H,R1的内容为41H,8031内部RAM41H单元的内容 DDH,40H单元内容为55H在上程序中,若继续执行如下程序程序2:START:MOVDPTR,#3000HMOVR1,#40HMOVA,@R1MOVX@DPTR,A问题2、START执行结束后,DPTR的值为3000H,3000H单元的内容为55H,R1的内容为40He问题3:执行如下程序,填出A寄存器的内容。程序3、MOVA、#88HMOVRz,#AAHORLA、Rz:A的内容为:AAH3
3 0_1_2_ 3_4_5_ P_7_8_ C_ 5.LED 的静态显示方式与动态显示方式有何区别?各有什么优缺点? 答: 静态:显示期间,锁存器输出的段码不变;亮度大,各位 LED 的段选分别控制;位数多硬件电 路复杂 动态:所有位段码线并连一起,各位的亮灭靠片选控制端控制,亮度较低,多位控制电路简 单 四、程序分析: 外部 RAM 3000H,3001H 单元的内容分别为 55H,0DDH,试分析如下程序,并回答问题。 程序 1: MOV DPTR,#3000H MOV R1,#40H MOVX A ,@DPTR MOV @R1,A INC R1 INC DPTR MOVX A,@DPTR MOV @ R1,A 问题 1:若执行上述程序,则结束后,DPTR 值为 3001H,R1 的内容为 41H ,8031 内部 RAM41H 单元的内容 DDH,40H 单元内容为_55H_。 在上程序中,若继续执行如下程序 程序 2: START:MOV DPTR,#3000H MOV R1 ,#40H MOV A,@R1 MOVX @DPTR,A 问题 2、START 执行结束后,DPTR 的值为_3000H_,3000H 单元的内容为_55H_,R1 的内容为 _40H_。 问题 3:执行如下程序,填出 A 寄存器的内容。 程序 3、 MOV A、#88H MOV R7,#AAH ORL A、R7 :A 的内容为:_AAH_ 4000H 3001H 3000H DD 55 3FH 06H 5BH 4FH 66H 6DH 73H 07H 7FH 39H
MOVA,#37HMOVRz,#89HANLA,R7A的内容为:01HXRLA, R88HA的内容为:RET(10分)五、简述一种多外部中断源系统的设计方法。(给出图和程序)答:程序如下:工益鸟”ORG0013H;的中断入口LJMPINTI;.-.PSW;保护现场INT1:PUSHPUSHACCJBP1. 0, IR1P1.0高,IR1有请求OJBP1. 1, IR2P1.1高,IR2有请求:JBP1.2,IR3P1.2脚高,IR1有请求:CHaRJBP1. 3, IR4P1.4脚高,IR4有请求新见面画POPACCINTIR:恢复现场MPOPPSWRETI中断返回IRI:IRI的中断处理程序IR1中断处理完毕,跳标号INTIR处执行AJMPINTIRIR2:IR2的中断处理程序AJMPINTIRIR2中断处理完毕,跳标号INTIR处执行IR3:IR3的中断处理程序IR3中断处理完毕,跳标号INTIR处执行AJMPINTIRIR4:IR4的中断处理程序AJMPINTIR:IR4中断处理完毕,跳标号INTIR处执行六、请回答:(共14分)1.下图中外部扩展的程序存储器和数据存储器容量各是多少?2.三片存储器芯片的地址范围分别是多少?(地址线未用到的位填1)3.请编写程序,要求:(1)将内部RAM40H-4FH中的内容送入1#6264的前16个单元中:(2)将2#6264的前4个单元的内容送入50H-53H中;
4 MOV A,#37H MOV R7,#89H ANL A,R7 A 的内容为:_01H _ XRL A,R7 A 的内容为:_88H _ RET 五、简述一种多外部中断源系统的设计方法。(给出图和程序) (10 分) 答:程序如下: ORG 0013H ;的中断入口 LJMP INT1 ; ┇ INT1: PUSH PSW ;保护现场 PUSH ACC JB P1.0,IR1 ;P1.0 高,IR1 有请求 JB P1.1,IR2 ;P1.1 高,IR2 有请求 JB P1.2,IR3 ;P1.2 脚高,IR1 有请求 JB P1.3,IR4 ;P1.4 脚高,IR4 有请求 INTIR: POP ACC ;恢复现场 POP PSW RETI ;中断返回 IR1: IR1 的中断处理程序 AJMP INTIR ; IR1 中断处理完毕,跳标号 INTIR 处执行 IR2: IR2 的中断处理程序 AJMP INTIR ;IR2 中断处理完毕,跳标号 INTIR 处执行 IR3: IR3 的中断处理程序 AJMP INTIR ;IR3 中断处理完毕,跳标号 INTIR 处执行 IR4: IR4 的中断处理程序 AJMP INTIR ;IR4 中断处理完毕,跳标号 INTIR 处执行 六、请回答:(共 14 分) 1.下图中外部扩展的程序存储器和数据存储器容量各是多少? 2.三片存储器芯片的地址范围分别是多少?(地址线未用到的位填 1) 3.请编写程序,要求: (1) 将内部 RAM 40H-4FH 中的内容送入 1# 6264 的前 16 个单元中; (2) 将 2# 6264 的前 4 个单元的内容送入 50H-53H 中;
P2.7P2.6O31YsP2.05Q0DO11X8X818D7Q7A0-A7A8-A12A0-A7A0-A7A8-A127A8-A1274LS373CECECEGOEALE1#62642#62642764+54CS+5VCSAT89S51OEOEWRWRD0-D7OE1818+8P0.781P0.0PSENRDWR答:1.解外部扩展的程序存储器容量为:8KB外部扩展的数据存储器容量为:8KB×2=16kb2.程序存储器2764地址的高3位:A15A14A13000地址范围为:0000H-1FFFH数据存储器1#6264地址高3位:A15A13A14011地址范围为:6000H-7FFFH数据存储器2#6264地址范围为:A15A14A13101地址范围为:AO0OH-BFFFH3.编写程序(1)MOVRO,#40HMOVDPTR,#6000H设置数据指针为6000HLOOP:MOVA,@RO将片内RAM(40-4FH)中的内容送入A中MOVX将 A→@DPTR 中@DPTR, A5
5 答: 1.解外部扩展的程序存储器容量为:8KB 外部扩展的数据存储器容量为:8KB×2=16kb 2. 程序存储器 2764 地址的高 3 位: A15 A14 A13 0 0 0 地址范围为:0000H-1FFFH 数据存储器 1#6264 地址高 3 位: A15 A14 A13 0 1 1 地址范围为:6000H-7FFFH 数据存储器 2#6264 地址范围为: A15 A14 A13 1 0 1 地址范围为:A000H-BFFFH 3.编写程序 (1) MOV RO, #40H MOV DPTR, #6000H ;设置数据指针为 6000H LOOP:MOV A, @RO ; 将片内 RAM(40-4FH)中的内容送入 A 中 MOVX @DPTR,A ; 将 A→@DPTR 中 PSEN CE WR P2.7 P2.6 P2.5 P2.4 P2.0 │ AT89S51 D0-D7 OE D0-D7 OE 2764 CE A0-A7 A8-A12 OE 74LS373 Q0 Q7 D0 D7 │ │ ALE G P0.7 P0.0 │ 8 8 8 8 8 5 5 5 8 8 +5V WR 2# 6264 CS CE A0-A7 A8-A12 +5V WR CS A0-A7 A8-A12 OE OE 1# 6264 RD 5 8 ● ● ● ● ● ● ● ● ●