51单片机复习题(含答案)

更新时间:2024-04-26 03:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、填空题

1、AT89S51单片机为 8 位单片机,共有 40 个引脚。

2、MCS-51系列单片机的典型芯片分别为 8031 、 8051 、 8751 。

3、AT89S51访问片外存储器时,利用 ALE 信号锁存来自 P0口 发出的低8位地址信号。 4、AT89S51的 P3口为双功能口。

5、AT89S51内部提供 2 个可编程的 16 位定时/计数器,定时器有 4 种工作方式。 6、AT89S51有 2 级中断, 5 个中断源。 7、AT89S51的 P2 口为高8位地址总线口。

8、设计一个以AT89C51单片机为核心的系统,如果不外扩程序存储器,使其内部4KB闪烁程序存储器有效,则其 EA* 引脚应该接 +5V

9、单片机系统中使用的键盘分为 独立式键盘 和行列式键盘,其中行列式键盘的按键识别方法有扫描法和线反转法。

10、AT89S51内部数据存储器的地址范围是 00H~7FH ,位地址空间的字节地址范围是 20H~2FH ,对应的位地址范围是 00H~7FH ,外部数据存储器的最大可扩展容量是 64K 。 11、如果(A)=34H,(R7)=0ABH,执行XCH A, R7;结果(A)= 0ABH ,(R7)= 34H 。 12、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行 256 次。

13、欲使P1口的低4位输出0,高4位不变,应执行一条 ANL P1, #0F0H 命令。 14、若CPU使用的是寄存器第1组,R0~R7的地址范围是08H-0FH。 15、单片机进行串行通信时,晶振频率最好选择11.0592MHz 16、当MCS-51执行MOVX A,@R1指令时,伴随着 RD 控制信号有效。 17、若A中的内容为67H,那么,P标志位为 1 。

18、AT89S51唯一的一条16位数据传送指令为 MOV DPTR,#data16 。

19、LJMP的跳转范围是64K,AJMP的跳转范围是 2K B,SJMP的跳转范围是 ±128 B(或256B) 。 20、74LS138是具有3路输入的译码器芯片,其输出作为片选信号时,最多可以选中 8 片芯片。 21、如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后: POP DPH POP DPL POP SP

则:(DPH)= ___3CH___;(DPL)=___5FH___;(SP)=___50H___; 22、AT89S51复位后,PC与SP的值为分别为 0000H 和 07H 。

23、当单片机复位时PSW=00H,这时当前的工作寄存器区是0区,R4所对应的存储单元地址为 04H。

24、当AT89S51执行MOVC A,@A+ DPTR指令时,伴随着PSEN*控制信号有效。 25、当MCS-51执行MOVX A,@R1指令时,伴随着 RD*控制信号有效。

26、MCS-51指令系统中,ADD与ADDC指令的区别是 进位位Cy是否参与加法运算 。

27、如果(A)=45H,(R1)=20H,(20H)=12H,执行XCHD A, @ R1;结果(A)= 42H ,(20H)= 15H 。 28、在内部RAM中可位寻址区中,位地址为40H的位,该位所在字节的字节地址为 28H 。 29、关于定时器,若振荡频率为12MHz,在方式2下最大定时时间为 256us 30、AT89S51单片机的通讯接口有 串行 和 并行 两种形式。在串行通讯中,发送时要把并行数据转换成 串行 数据。接收时又需把串行数据转换成并行数据。

31、若AT89S51外扩32KB 数据存储器的首地址若为4000H,则末地址为BFFFH。 32、执行如下三条指令后,30H单元的内容是 #0EH M O V R 1,#30H M O V 40H,#0 E H M O V ﹫R 1,40H

33、MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址。

第 1 页 共 7 页

34、一个机器周期等于6个状态周期,振荡脉冲2分频后产生的时序信号的周期定义为状态 周期。 35、执行MOVX A,DPTR指令时,MCS-51产生的控制信号是 RD* 。 36、ORG 0000H AJMP 0040H ORG 0040H

MOV SP,#00H当执行完左边的程序后,PC的值是 0042H 37、对程序存储器的读操作,只能使用 MOVC指令 。 38、当使用慢速外设时,最佳的传输方式是 中断 。

39、MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器__SCON _加以选择。 二、判断题

1、MOV 55H,@R5( × ) 2、INC DPTR( √ ) 3、DEC DPTR ( × ) 4、CLR R0( × )

5、MOV T0,#3CF0H(×)

6、8031与8051的区别在于内部是否有程序存储器。( √ ) 7、内部RAM的位寻址区,既能位寻址,又可字节寻址。(√) 8、串行口工作方式1的波特率是固定的,为fosc/32。(×) 9、8051单片机中的PC是不可寻址的。(√) 10、MCS-51系统可以没有复位电路。( × )

11、某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址。(√) 12、PC存放的是即将执行的下一条指令。(√)

13、TMOD中的GATE=1时,表示由两个信号控制定时器的启停。( √ ) 14、特殊功能寄存器SCON与定时器/计数器的控制无关。(√)

15、各中断源发出的中断请求信号,都会标记在AT89S51的TCON寄存器中。(×) 16、MCS-51上电复位时,SBUF=00H。( × )。 17、MCS-51的相对转移指令最大负跳距是127B。( × ) 18、MCS-51的程序存储器只是用来存放程序的。 ( × ) 19、MCS-51的串行接口是全双工的。(√)

20、MCS-51的特殊功能寄存器分布在60H~80H地址范围内。(×) 21、MOV C,#00H的寻址方式是立即寻址。(×) 22、MCS-51的5个中断源优先级相同。(× ) 三、简答题

1、请写出共阴数码管显示数字0~9对应的段码值。

答:共阴3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 2、请写出共阳数码管显示数字0~9对应的段码值。

答:共阳C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 3、AT89S51单片机指令系统的寻址方式有哪些? 答:寄存器寻址、直接寻址、间接寻址、立即寻址。 4、请说明MCS-51单片机的外部引脚EA*的作用?

答:当EA*为高电平时,访问内部程序存储器,但当地址大于0FFF时,自动转到外部程序存储器;当EA*为低电平时,只读取外部程序存储器。 5、举例说明指令PUSH和POP的工作原理。

答:PUSH进栈指令;首先将栈指针SP加1然后把direct中的内容送到栈指针SP指示的RAM单元中 当(SP)=60H,(A)=30H,(B)=70H时

第 2 页 共 7 页

PUSH A;(SP)+1=60H->SP (A)->61H PUSH B;(SP)+1=62H->SP (B)->62H (SP)=62H (61H)=30H (62H)=70H

POP出栈指令;当栈指针SP指示的栈顶(内部RAM单元)内部送入direct字节单元中,栈指针SP减1 当(SP)=62H,(62H)=70H,(61H)=30H时 POP DPH;((SP))->DPH,(SP)-1->SP POP DPL;((SP))->DPL,(SP)-1->SP (POTR)=7030H (SP)=60H

6、特殊功能寄存器中,哪些单元是可以位寻址的?

答:B寄存器 F7H-F0H 累加器A E7H-E0H 程序状态字PSW D7H-DOH 终端优先级控制IP BFH-B8H P3口 B7H-BOH 中断允许控制IE AFH-A8H P2口 A7H-AOH 串行控制 SCON 9FH-98H P1口 97H-90H 定时器计数器控制 FCON 8FH-88H P0口 87H-80H 7、AJMP指令和LJMP指令的区别?

答:AJMP 这是2kb范围的无条件跳转指令,为了和MCS-48的JMP指令兼容而设 SJMP相对转移指令 LJMP长跳转指令

8、中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别? 答:RETI除了将压栈的内容出栈外(即现场恢复),还清除在中断响应时被置1的AT89S51内部中断优先级寄存器的优先级状态。

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

(1) 外扩程序存储器是PSEN*信号为其控制信号,外扩数据存储器是RD*与WR*信号为其控制信号 (2) 指令不同,程序存储器用MOVC读取,数据存储器用MOVX存取。 10、MCS-51单片机片内256B的数据存储器可分为几个区?分别作什么用? 答:(1)通用工作寄存器区,00H – 1FH,共4组,R0-R7,在程序中直接使用 (2)可位寻址区,20H-2FH,可进行位操作,也可字节寻址

(3)用户RAM区,30H-7FH,只可字节寻址,用于数据缓冲及堆栈区

(4)特殊功能寄存器区,80H-FFH,21个特殊功能寄存器离散地分布在该区内,用于实现各种控制功能

11、AT89S51采用6MHz的晶振,定时1ms,如用定时器方式1时的初值(16进制数)应为多少?(写出计算过程)

答:(216-X)*2*10-6=10-3 X=655036 X=FEOCH

12、写出AT89S51的所有中断源,并说明说明哪些中断源在响应中断时,由硬件自动清除,哪些中断源必须用软件清除,为什么?

答: 外部中断INT0*,定时器/计数器中断T0,外部中断INT1*,定时器/计数器中断T1,串行口中断。其中串行口中断TI与RI必须用软件清“0”,因为串口中断的输出中断为TI,输入中断为RI,故用软件清“0”。

13、MCS-51指令系统主要有哪几种中断源?并写出每个中断入口地址? 答:

中断源 入口地址 外部中断0 0003H 定时器0溢出 000BH 外部中断1 0013H 定时器1溢出 0001BH 串行口中断 0023H

14、LED的静态显示方式与动态显示方式有何区别?各有什么优缺点?

第 3 页 共 7 页

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

动态:所有位段码线并连一起,各位的亮灭靠片选控制端控制,亮度较低,多位控制电路简单。 15、请画出单片机最小系统。

16、简述行列式扫描键盘的工作原理。

答: 扫描键盘工作原理

首先X0~X3,始终接高电平,Y0~Y3给低电平,扫描P1.0~P1.3若全为高电平,则没有键按下,若有低电平,则有键按下。

接着Y0输出低电平,Y1~Y3输出高平,扫描P1.0~P1.3,若全为高电平,则没有键按下,若有低电平,则找出相位,得到所按的键。

再Y1输出低电平,Y0,Y2,Y3输出高电平,重复第2 步骤作. 再Y2输出低电平,Y0,Y1,Y3输出高电平扫描 再Y3输出低电平,Y0,Y1,Y2输出高电平扫描 根据据以上扫描,确定以上各键是否按下。 17、 什么叫堆栈?

答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以\后进先出\的结构方式处理的。实质上,堆栈就是一个按照\后进先出\原则组织的一段内存区域。 18、PC是什么寄存器?是否属于特殊功能寄存器?它有什么作用? 答:PC是16位程序计数器(Program Counter),它不属于特殊功能寄存器范畴,程序员不以像访问特殊功能寄存器那样来访问PC。PC是专门用于在CPU取指令期间寻址程序存储器。PC总是保存着下一条要执行的指令的16位地址。通常程序是顺序执行的,在一般情况下,当取出一个指令(更确切地说为一个指令字节)字节后,PC自动加1。如果在执行转移指令、子程序调用/返回指令或中断时,要把转向的地址赋给PC。

19、DPTR是什么寄存器?它由哪些特殊功能寄存器组成?它的主要作用是什么?

答:DPTR是16位数据指针寄存器,它由两个8位特殊功能寄存器DPL(数据指针低8位)和DPH(数据指针高8位)组成,DPTR用于保存16位地址,作间址寄存器用,可寻址外部数据存储器,也可寻址程序存储器。

20、8031的扩展储存器系统中,为什么P0口要接一个8位锁存器,而P2口却不接?

答:这是因为P0口是扩展储存器系统的多路低8位地址和数据总线,在访问外部存储器时,P0口分时用作输出外部储存器低8位地址和传送数据,为了在整个访问外部存储器期间,对外部存储器存在着有效的低8位地址信号,所以P0口需要外接一个地址锁存器。ALE信号就是用来把P0口输出的地址字节锁存在这个外接的锁存器中,再从锁存器输出外部存储器的低8位地址。而P2口只用作扩展存储器系统的高8位地址线,并在整个访问外部存储器期间不变,所以不必外接地址锁存器。

第 4 页 共 7 页

四、大题

1、编写课本P125~P130的例6-1、6-2、6-3。

2、编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。 解:STRAT:MOV R0,#30H MOV R7,#0FH

MOV DPTR,#3000H LOOP: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET

3、编一个程序,将累加器中的一个字符从串行接口发送出去. 解:SOUT:MOV SCON,#40H ;设置串行接口为工作方式

MOV TMOD,#20H ;定时器T1工作于模式2 MOV TL1,#0E8H; ;设置波特率为1200b/s MOV TH1,#0E8H SETB TR1 MOV SBUF,A JNB T1,$ CLB T1 RET

4、片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中. 解:START: MOV R0,#40H ;数据块首地址送R0 MOV R7,#09H ;比较次数送R7 MOV A,@R0 ;取数送A LOOP: INC R0

MOV 30H,@R0 ;取数送30H

CJNE A,30H,NEHT ;(A)与(30H)相比 NEXT: JNC BIE1 (A)≥(30H)转BIR1 MOV A,30H ;(A)<(30H),大数送A

BIE1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较 MOV 50H,A ;比较结束,大数送50H RET

5、编定一个软件延时1S和1min的子程序。设fosc=6Hz,则一个机器周期1μs。

解:(1)1S=2US*5*100000

5*100000=250*200*10 (2) ORG 1000H TIME:MOV R7,#10 T3: MOV R6,#200 T2: MOV R6,#250 T1: DJNZ R5,T1

DJNZ R6,T2 DJNZ R7,T3 RET

(2)1min=60,调用上面1s子程序60次

第 5 页 共 7 页

ORG 0030H MOV R0,#60

LOOP:LCALL TIME

DJNZ R0,LOOP RET

6、请编制串行通信的数据发送程序,发送片内RAM50H~5FH的16B数据,串行接口设定为方式2,采用偶校验方式。设晶振频率为6MHz。 解:查询方式发送程序如下

MOV SCON,#8OH M OV PCON,#80H MOV R0,#50H MOV R7,#16H LOOP: MOV A,@R0 MOV C,P MOV TB8,C MOV SBUF,A JNB T1,$ CLR T1 INC R0

DJNZ R7,LOOP RET

7、编制一个循环闪烁的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。 解: MOV A,#01H SHIFT: LCALL FLASH

RR

SJMP SHIFT

FLAH: MOV R2,#0AH FLAH1: MOV P1,A

LCALL DELAY MOV P,#00H LCALL DELAY

DJNZ R2,FLASH1

RET

8、请回答:

(1)下图中外部扩展的数据存储器容量是多少?

(2)三片6264的地址范围分别是多少?(地址线未用到的位填1) (3)若外部程序存储器已扩展(未画出),请编写程序,要求: ①将30H~3FH中的内容送入6264 1# 的前16个单元中; ②将6264 2# 的前32个单元的内容送入40H~5FH中;

解:(1)外部扩展的数据存储器为3片8K的RAM,外扩容量为24 K (2)A15 A!4 A13 地址范围

0 1 1 6000H~7FFFH 1 0 1 A000H~BFFFH 1 1 0 C000H~DFFFH

第 6 页 共 7 页

P2.7 P2.6 P2.5 P2.4 P2.0 ALE ~ D0 Q0 ~ ~ 5 373 8 8 8 A0~A7 A8~A12 A0~A7 A8~A12 A0~A7 A8~A12 8 D7 Q7 G OE 8031 P0.0 P0.7 RD WR ~ Vcc CS 6264 1# CE Vcc CS 6264 2# CE Vcc CS 6264 3# CE 8 8 DED0~D7 DEDE WR WR D0~D7 D0~D7 WR

(3:ORG 0000H

RESET: AJMP MAIN ;复位,转主程序 ORG 0100H

MAIN: MOV DPL,#00H ;初始化DPTR MOV DPH,#60H

MOV R0,#30H ;初始化R0 LOOP: MOV A,@R0 MOVX @DPTR, A INC R0 INC DPTR

CJNE R0,#40H,LOOP NOP RET

②程序如下:ORG 0000H RESET: AJMP MAIN ;转主程序 ORG 0100H MAIN: MOV DPL#00H ;初始化DPTR MOV DPH,#0A0H MOV R0,#40H ;初始化R0 LOOP2: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0

CJNE R0,#60H,LOOP2 NOP RET

第 7 页 共 7 页

本文来源:https://www.bwwdw.com/article/ig6p.html

Top