单片机期末复习题

更新时间:2024-04-13 04:51:01 阅读量: 综合文库 文档下载

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

单片机原理及应用

一、判断题

1.在MCS—51单片机内部结构中,TMOD为模式控制寄存器,主要用来控制定时器的启动与停止。F 2.在MCS—51单片机内部结构中,TCON为控制寄存器,主要用来控制定时器的启动与停止。T 3.MCS—51单片机的两个定时器的均有两种工作方式,即定时和计数工作方式。T 4.8051单片机5个中断源相应地在芯片上都有中断请求输入引脚。F 5.可使用SETB TRi启动定时器工作。T

6.中断初始化时,对中断控制器的状态设置,只可使用位操作指令,而不能使用字节操作指令。F 7.MCS—51单片机的中断允许寄存器的IE的作用是用来对各中断源进行开放或屏蔽的控制。T

8.编写中断服务程序时,应在中断入口矢量地址处放一条无条件转移指令,以防止中断服务程序容纳不下。T 9.对串行口中断,CPU响应中断后,必须在中断服务程序中用软件清除相应的中断标志位,以撤消中断请求。T 10.串行口数据缓冲器SBUF是可以直接寻址的专用寄存器。T

11.如设外部中断0中断,应置中断允许寄存器IE的EA位和EX0位为1。T 12.当8031的定时器T0计满数变为0后,溢出标志位(TCON的TF0)也变为0。F 13.工作寄存器区不允许做普通的RAM单元来使用。F

14.工作寄存器组是通过置位PSW中的RS0和RS1来切换的。T 15.特殊功能寄存器可以当作普通的RAM单元来使用。F

16.8051单片机复位后,PC指针初始化为0000H,使单片机从该地址单元开始执行程序。T 17.51单片机响应中断后,所有中断请求标志位都由硬件自动清零。F

18.在51系列单片机中,中断服务程序从矢量地址开始执行,一直到返回指令RETI为止。T 19.在执行子程序调用或执行中断服务程序时都将产生压栈的动作。T 20.定时/计数器在工作时需要消耗CPU的时间。F

21.在51系列单片机的指令中,既有带借位的减法指令,又有不带借位的减法指令。F 22.串行通信的优点是只需一对传送线,成本低,适于远距离通信,缺点是传送速度较低。T 23.在异步通信的帧格式中,数据位是低位在前高位在后的排列方式。T 24.异步通信中,波特率是指每秒传送二进制代码的位数,单位是b/s。T

25.在8051的串行通信中,串行口的发送和接收都是对特殊功能寄存器SBUF进行读/写而实现的。T 26.在单片机8051中,发送SBUF和接收SBUF在物理上是独立的,但地址是相同的。T 27.要进行多机通信,MCS-51串行接口的工作方式应为方式1。F

第 1 页 共 10 页

单片机原理及应用

28.中断服务程序的最后一条指令是RET。F

29.P2口既可以作为I/O使用,又可以作地址/数据复用口使用。F

30.在中断响应阶段CPU一定要做如下两件工作:保护断点和给出中断服务程序入口地址。T 31.MOV A,30H的源操作数为立即寻址方式。F 32.AJMP跳转空间最大可达到64KB。F

33.定时器与计数器的工作原理均是对输入脉冲进行计数。T

34.由于MCS-51的串行口的数据发送和接收缓冲器都是SBUF,所以其串行口不能同时发送和接收数据,即不是全双工的串行口。F

35.TMOD中GATE=1时,表示由两个信号控制定时器的启停。T 36.当MCS-51上电复位时,堆栈指针SP=00H。F

37.MCS-51的特殊功能寄存器分布在60H~80H地址范围内。F 38.执行返回指令时,返回的断点是调用指令的首地址。F 39.MOV A,R0 这是寄存器寻址方式。T

40.8051单片机的P0口既可以做数据口线又可以做地址口线 。 T 41.8051单片机的P2口只能用作通用I/O 口。F

42.程序存储器和数据存储器的作用不同,程序存储器一般用来存放数据表格和程序,而数据存储器一般用来存放数据。F

43.要进行多机通信,MCS-51串行接口的工作方式应为方式2或方式3。T 44.MCS-51外扩I/O口与外扩RAM是统一编址的。T

------------------------------------------------------------------------------------------------ 二、选择题

1.8031单片机的定时器T0用作计数方式时是__C__ 。 A.由内部时钟频率定时,一个时钟周期加1 B.由内部时钟频率定时,一个机器周期加1 C.由外部计数脉冲计数,下降沿加1

D.由外部计数脉冲计数,一个机器周期加1

2.8031单片机的定时器T0用作定时方式时是__D__ 。 A.由内部时钟频率定时,一个时钟周期加1 B.由外部计数脉冲计数,一个机器周期加1 C.外部定时脉冲由T0(P3.4)输入定时 D.由内部时钟频率计数,一个机器周期加1

3.用8031的定时器T1作定时方式,用模式1,则初始化编程为__C__ 。

A.MOV TOMD,#01H B.MOV TOMD,#50H C.MOV TOMD,#10H D.MOV TCON,#02H 4.启动定时器1开始定时的指令是__D__ 。

第 2 页 共 10 页

单片机原理及应用

A.CLR TR0 B.CLR TR1 C.SETB TR0 D.SETB TR1 5.使8031的定时器T0停止计数的指令是__A__ 。 A.CLR TR0 B.CLR TR1 C.SETB TR0 D.SETB TR1 6.下列指令判断若定时器T0计满数就转LP的是__D__ 。

A.JB T0,LP B.JNB TF0,LP C.JNB TR0,LP D.JB TF0,LP 7.下列指令判断若定时器T0未计满数就原地等待的是__B__ 。 A.JB T0,$ B.JNB TF0,$ C.JNB TR0,$ D.JB TF0,$ 8.用8031的定时器T0定时,用模式2,则应__D__ 。

A.启动T0前向TH0置入计数初值,TL0置0,以后每次重新计数前要重新置入计数初值。 B.启动T0前向TH0、TL0置入计数初值,以后每次重新计数前要重新置入计数初值。 C.启动T0前向TH0、TL0置入计数初值,以后不再置入。 D.启动T0前向TH0、TL0置入相同的计数初值,以后不再置入。 9.8031单片机晶振频率fosc=12MHz,则一个机器周期为____B___ μS。 A.12 B.1 C.2 D.6

10.MCS—51单片机定时器溢出标志是__D__ 。

A.TR1和TR0 B.IE1和IE0 C.IT1和IT0 D.TF1和TF0

11.用定时器T1方式2计数,要求每计满100次,向CPU发出中断请求,TH1、TL1的初始值是__A__ 。 A.9CH B.20H C.64H D.A0H

12.MCS—51单片机外部中断1和外部中断0的触发方式选择位是__C__ 。 A.TR1和TR0 B.IE1和IE0 C.IT1和IT0 D.TF1和TF0

13.MCS—51单片机定时器T1的溢出标志TF1,计满数产生溢出时不用中断方式而用查询方式,则应__B__ 。 A.由硬件清零 B.由软件清零 C.由软件置于 D.可不处理

14.MCS—51单片机定时器T0的溢出标志TF0,若计满数产生溢出时,其值为是__C__ 。 A.00H B.FFH C.1 D.计数值

15.MCS—51单片机定时器T0的溢出标志TF0,若计满数在CPU响应中断后___A___ 。 A.由硬件清零 B.由软件清零 C.A和B都可以 D.随机状态 16.8031响应中断后,中断的一般处理过程是__A__ 。

A.关中断,保护现场,开中断,中断服务,关中断,恢复现场,开中断,中断返回 B.关中断,保护现场,保护断点,开中断,中断服务,恢复现场,中断返回 C.关中断,保护现场,保护中断,中断服务,恢复断点,开中断,中断返回 D.关中断,保护断点,保护现场,中断服务,关中断,恢复现场,开中断,中断返回

17.MCS—51单片机串行口发送/接收中断源的工作过程是:当串行口接收或发送完一帧数据时,将SCON中的___A____ ,向CPU申请中断。

A.RI或TI置1 B.RI或TI置0 C.RI置1或TI置0 D.RI置0或TI置1 18.MCS—51单片机响应中断的过程是__D__ 。 A.对应中断矢量地址装入PC B.关中断,程序转到中断服务程序

第 3 页 共 10 页

单片机原理及应用

C.断点压栈,PC指向中断服务程序地址

D.断点PC自动压栈,对应中断矢量地址装入PC,程序转到该矢量地址,再转至中断服务程序首地址 19.执行中断处理程序最后一句指令RETI后,____D_____ 。 A.程序返回到ACALL的下一句 B.程序返回到LCALL的下一句 C.程序返回到主程序开始处 D.程序返回到响应中断时一句的下一句 20.MCS—51的串行口工作方式中适合多机通信的是__ B __ 。 A.方式0 B.方式3 C.方式1 21.MCS—51单片机响应中断矢量地址是__ C __ 。 A.中断服务程序的首句地址 B.中断服务程序的出口地址 C.中断服务程序的入口地址 D.主程序等待中断指令的地址

22.MCS—51单片机外部有40个引脚,其中,地址锁存允许控制信号引脚是___A___。 A. ALE

B. PSEN C. EA

D. RST

23.MCS—51单片机串行口接收数据的次序是下述____B_____的顺序 。 (1)接收完一帧数据后,硬件自动将SCON的R1置1 (2)用软件将RI清零

(3)接收到的数据由SBUF读出

(4)置SCON的REN为1,外部数据由RXD输入

A.(1)(2)(3)(4) B.(4)(1)(2)(3) C.(4)(3)(1)(2) D.(3)(4)(1)(2) 24.MCS—51单片机串行口发送数据的次序是下述____A_____的顺序 。 (1)待发送数据送SBUF (2)硬件自动将SCON的TI置1 (3)经TXD串行发送一帧数据完毕 (4)用软件将TI清0

A.(1)(3)(2)(4) B.(1)(2)(3)(4) C.(4)(3)(1)(2) D.(3)(4)(1)(2) 25.一主程序中有一句LP:SJMP LP,功能指令为等待中断,当发生中断且中断返回后,____D____ 。 A.返回到主程序开始处 B.返回到该句的下一条指令处 C.返回到该句的上一条指令处 D.返回到该句

26.8031单片机的____D___口的引脚,还具有外中断、串行通信等第二功能。 A. P0 B. P1 C. P2 D. P3 27.单片机应用程序一般存放在____B___。

A. RAM B. ROM C. 寄存器 D. CPU 28.INTEL8051CPU是___C___位的单片机。 A. 16 B. 4 C. 8 D. 准16

29.当需要从MCS-51单片机程序存储器取数据时,采用的指令为____B___。

A. MOV A, @R1 B. MOVC A,@A + DPTR C. MOVX A, @R0 D. MOVX A, @DPTR

第 4 页 共 10 页

单片机原理及应用

30.8031单片机中既可位寻址又可字节寻址的单元是____A__ 。 A. 20H B. 30H C. 00H D. 70H 31.MCS-51单片机复位操作的主要功能是把PC初始化为____C___。 A.0100H B.2080H C.0000H D.8000H

32.若单片机的振荡频率为6MHz,设定时器工作在方式1需要定时1ms,则定时器初值应为___C_ 。 A.500 B.1000 C.2-500 D.2-1000

33.当外部中断请求的信号方式为脉冲方式时,要求中断请求信号的高电平状态和低电平状态都应至少维持___A___。

A.1个机器周期 B.2个机器周期 C.4个机器周期 D.10个晶振周期 34.8031单片机中,将累加器A中的数送入外RAM的40H单元,可执行的指令____D___。 A.MOV R1 ,40H B. MOV R1 ,#40H C. MOVX 40H , A D. MOV R1, #40H MOVX @R1 , A MOVX R1 , A MOVX @R1 , A 35.在中断服务程序中至少应有一条____D___。

A. 传送指令 B. 转移指令 C. 加法指令 D. 中断返回指令 36.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符是____B ___。 A. MOV B. MOVX C. MOVC D. 以上都行

16

16

37.执行LACLL 4000H指令时, MCS-51所完成的操作是____D___ 。

A. 保护PC B. 4000H?PC C. 保护现场 D. PC+3入栈, 4000H?PC 38.若某存储器芯片地址线为12根,那么它的存储容量为____C___ 。 A. 1KB B. 2KB C.4KB D.8KB 39.PC中存放的是___A___ 。

A. 下一条指令的地址 B. 当前正在执行的指令 C. 当前正在执行指令的地址 D. 下一条要执行的指令 40.关于MCS-51的堆栈操作,正确的说法是____C___ 。

A. 先入栈,再修改栈指针 B. 先修改栈指针,再出栈 C. 先修改栈指针,在入栈 D. 以上都不对 41.某种存储器芯片是8KB*4/片,那么它的地址线根数是___C___ 。 A. 11根 B. 12根 C. 13根 D. 14根

42.用MCS-51用串行扩展并行I/O口时,串行接口工作方式选择____A___。 A. 方式0 B. 方式1 C. 方式2 D. 方式3

43.MCS-51外扩ROM,RAM和I/O口时,它的数据总线是____A___。 A. P0 B. P1 C. P2 D. P3 44.对程序存储器的读操作,只能使用____D___。

A. MOV指令 B. PUSH指令 C. MOVX指令 D. MOVC指令

------------------------------------------------------------------------------------------------ 三、简答题

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

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

第 5 页 共 10 页

单片机原理及应用

外接地址锁存器。

2.简述51单片机中断的概念。

当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方,继续原来的工作,这样的过程成为中断。

3.什么是保护现场,什么是恢复现场。

保护现场:当CPU响应中断程序时,硬件会自动把断点地址(16位程序计数器的值)压入堆栈,但用户还须注意保护有关工作寄存器、累加器、标志位等信息。

恢复现场:在完成中断服务程序后,恢复原工作寄存器、累加器、标志位等的内容。 4.51系列单片机具有几个中断源,分别是如何定义的。

51系列单片机具有5个中断源,分别是外部中断INT0和外部中断INT1、定时器溢出中断0和定时器溢出中断1以及串行中断。

5.各中断源对应的中断服务程序的入口地址是否能任意设定。

各中断源的入口地址已经在中断地址区中被定义了,不能任意设定。

6.在51系列单片机执行中断服务程序时,为什么一般都要在矢量地址开始的地方放一条跳转指令。

因为51系列单片机的两个相邻中断源中断服务程序入口地址相距只有8个单元,一般的中断服务程序是容纳不下的,因此一般都要在相应的中断服务程序入口地址处放一条跳转指令,转到实际存放中断服务程序的位置。

7.为什么一般都把主程序的起始地址放在0030H之后。

因为0000H~0030H中有中断的矢量地址,为了避免冲突,一般都把主程序的起始地址放在0030H之后。 8.如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置。

要将中断服务程序放置在程序存储区的任意区域,只要在对应的中断矢量入口处填写相应的跳转指令即可。 9.51系列单片机扩展外部程序存储器时,实际上还有多少条I/O线可以使用。 外接程序存储器时P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。在使用外部存储器时,除了占用P0和P2口外,还需要用P3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O线可用了。

10.数据指针DPTR和程序计数器PC都是16位寄存器,它们有什么不同之处?

数据指针DPTR是一个16位的寄存器,由2个8位特殊功能寄存器DPH和DPL拼装而成。DPH作DPTR的高8位,DPL作DPTR的低8位。因此,DPTR既可作为一个16位寄存器来使用,也可以作为二个独立的8位寄存器DPH和DPL使用。DPTR用作地址指针用来存放片内、片外ROM和片外RAM的地址,可寻址范围为64K地址空间寻址。

程序计数器PC是一个16位加1计数器,用来存放将要执行的指令地址,编码范围为0000H~FFFFH共64K。 ------------------------------------------------------------------------------------------------ 四、简单编程题

1.把累加器A中的低4位送到外部RAM的2000H单元中,试编程序。

ANL A,#OFH

MOV DPTR,#2000H MOVX @DPTR,A

2.利用乘法指令编写15H×33H的程序,将乘积的高8 位存入31H单元,低8位存入30H单元

MOV A,#15H MOV B,#33H MUL A,B

MOV 31H,B MOV 30H,A

3.编写子程序,将片内35H~55H单元中的内容送入到以3000H为首的存储区中。

MOV R0,#35H MOV R1,#21H

MOV DPTR,#3000H

第 6 页 共 10 页

单片机原理及应用

LOOP:MOV A,@R0 MOVX @DPTR, A INC R0 INC DPTR DJNZ R1,LOOP RET

4.请将片外RAM 20H—25H单元清零 MOV R0,#20H MOV R7,#06H CLR A

LOOP:MOVX @R0,A INC R0 DJNZ R7,LOOP 5.请将ROM 3000H单元内容送R7 MOV DPTR,#3000H CLR A

MOVC A,@A+DPTR

MOV R7,A

6.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。 SQR:INC A MOVC A,@A+PC RET

TAB:DB 0,1,4,9,16,25,36,49,64,81

7.一个十六进制数存放在内部RAM的HEX单元的低4位中, 将其转换成ASCII码并送回 HEX单元。 HEXASC: MOV A, HEX ANL A, #0FH

ADD A, #3 ; 修改指针 MOVC A, @A+PC

MOV HEX, A ; 2字节指令 RET

ASCTAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H

8.有两个无符号数x、y分别存放在内部存储器50H、51H单元中,试编写一个程序实现x*10+y,结果存入52H、53H单元中。

MOV R0,#50H MOV R1,#53H MOV A,@R0 MOV B,#0AH

第 7 页 共 10 页

单片机原理及应用

MUL AB INC R0 ADD A,@R0 MOV @R1,A DEC R1 XCH A,B ADDC A,#00H MOV @R1,A

END

-------------------------------------------------------------------------------------------------

五、应用题

1.某一8051单片机系统,晶振频率为6MHz,现要从单片机的P1.7引脚输出一个连续的5Hz方波信号,请编写程序。

解:5Hz的方波周期为200毫秒,高低电平各持续100毫秒,若晶振频率为6MHz,则机器周期为2微秒,故其计数值应为:N=100ms/2μs=50000

采用方式1,计数初值=65536-50000=15536D=3CB0H ORG 0000H

AJMP MAIN ;主程序 ORG 000BH

AJMP T0INT ;T0中断入口 ORG 0100H MAIN: MOV SP, #60H MOV TMOD, #01H MOV TH0,#3CH MOV TL0,#0B0H CLR P1.7

SETB EA

SETB ET0 SETB TR0 SJMP $ T0INT: MOV TH0,#3CH

第 8 页 共 10 页

单片机原理及应用

MOV TL0,#0B0H CLP P1.7 RETI END

2.试设计一个8051单片机的双机通信系统,编程将A机片内RAM中60H~6FH的数据块通过串行口传送至B机片内RAM的60H~6FH单元中。

甲机发送(采用查询方式):

MOV SCON, #80H ; 设置工作方式2

MOV PCON, #00H ; 置SMOD=0,波特率不加倍 MOV R0, #60H ; 数据区地址指针 MOV R2, #10H ; 数据长度 LOOP: MOV A, @R0 ; 取发送数据 MOV C, P ; 奇偶位送TB8 MOV TB8, C

MOV SBUF, A ; 送串口并开始发送数据 WAIT: JBC TI, NEXT ; 检测是否发送结束并清TI SJMP WAIT

NEXT: INC R0 ; 修改发送数据地址指针 DJNZ R2, LOOP END

乙机接收(查询方式):

MOV SCON, #90H ; 模作模式2, 并允许接收 MOV PCON, #00H ; 置SMOD=0

MOV RO, #60H ; 置数据区地址指针 MOV R2, #10H ; 等待接收数据长度 LOOP: JBC RI, READ ; 等待接收数据并清RI SJMP LOOP

READ: MOV A, SBUF ; 读一帧数据 MOV C, P

JNC LP0 ; C不为1转LP0

JNB RB8, ERR ; RB8=0, 即RB8不为P转ERR AJMP LP1

LP0: JB RB8, ERR ; RB8=1,即RB8不为P转ERR LP1: MOV @R0, A ; RB8=P,接收一帧数据

INC R0

DJNZ R2, LOOP

ERR: … ; 出错处理程序 END

3.8255A的PA口接一组开关,PB口接一组指示灯。编写子程序将R2的内容送指示灯显示,开关状态读入A中。

MOV DPTR,#7FFFH

MOV A,#98H

第 9 页 共 10 页

单片机原理及应用

MOVX @DPTR,A MOV DPTR, #7FFDH MOV A, R2 MOVX @DPTR, A MOV DPTR, #7FFCH MOVX A, @DPTR RET

4.从8155的A口输入数据, 并进行判断: 若不为0,则将该数据存入8155的RAM中(从起始单元开始, 数据总数不超过256个), 同时从B口输出,并将PC0置“1”;若为0,则停止输入数据,同时将PC0清“0”。

命令字为00001110B=0EH,命令口地址0200H,A口地址0201H,B口地址0202H,C口地址0203H

MOV DPTR, #0200H ; 指向命令口 MOV A, #0EH ; 设置命令字 MOVX @DPTR, A ; 写入命令字

MOV R0, #00H ; 指向 8155 的RAM区首址 MOV R1, #00H ; 数据总数为 256 个 LP1: MOV DPTR, #0201H ; 指向A口

MOVX A, @DPTR ; 从A口读入数据 JZ LP3 ; 为 0 则转 MOVX @R0, A ; 存入RAM单元 INC R0 ; 指向下一单元 INC DPTR ; 指向B口 MOVX @DPTR, A ; B口输出 INC DPTR ; 指向C口 MOVX A, @DPTR ; C口读入 SETB ACC.0 ; 使PC0 =1 MOVX @DPTR, A ; 回送

DJNZ R1, LP1 ; 未完则反复 LP2: SJMP $ ; 暂停

LP3: MOV DPTR, #0203H ; 指向C口

MOVX @DPTR, A ; 回送 SJMP LP2

第 10 页 共 10 页

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

Top