51单片机期末试题及答案 下载本文

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有什么区别?(4分) 答:RETI除了将压栈的内容出栈外(即现场恢复),还清除在中断响应时被置1的AT89S51内部中断优先级寄存器的优先级状态。

3.AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么?(6分)

答:AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突。这是因为它们的控制信号不同:

(1) 外扩程序存储器是PSEN*信号为其控制信号

外扩数据存储器是RD*与WR*信号为其控制信号

(2) 指令不同,程序存储器用MOVC读取,数据存储器用MOVX存取

4.图为8段共阴数码管,请写出如下数值的段码。(5分) a b c d e f g h D0 D1 D2 D3 D4 D5 D6 D7

13

3FH 06H 5BH 0____________________1____________________2____________________ 4FH 66H 6DH 3____________________4____________________5____________________ 73H 07H 7FH P____________________7____________________8____________________ 39H C____________________

5.LED的静态显示方式与动态显示方式有何区别?各有什么优缺点?(4分) 答:

静态:显示期间,锁存器输出的段码不变;亮度大,各位LED的段选分别控制;位数多硬件电

路复杂

动态:所有位段码线并连一起,各位的亮灭靠片选控制端控制,亮度较低,多位控制电路简

四、程序分析:(10分)

外部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

4000H

3001H 3000H DD 55 问题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_,4000H单元的内容为_55H_,R1的内容为__40H___。

问题3:执行如下程序,填出A寄存器的内容。 程序3、

MOV A、#88H MOV R7,#AAH

ORL A、R7 :A的内容为:__AAH__

14

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分)

2.三片存储器芯片的地址范围分别是多少?(地址线未用到的位填1) (4分,) 3.请编写程序,要求:

(3) 将内部RAM 40H-4FH中的内容送入1# 6264的前16个单元中;(4分) (4) 将2# 6264 的前4个单元的内容送入50H-53H中;(4分)

15

P2.7 P2.6 P2.5 P2.4 │ P2.0 D0 │ D7 Q0 │ Q7 5 ● 8 ● 5 ● 8 A8-A12 CE +5V CS A0-A7 ● 5 8 A8-A12 CE +5V CS A0-A7 5 A0-A7 A8-A12 CE ALE AT89S51 8 OE 74LSG 2764 D0-D7 8 ● OE 1# 6264 2# 6264 OE WR 8 ● P0.7 │ ● P0.0 PSEN RD WR 8 D0-D7 OE WR 8 ● ● 答:

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中

16