您的当前位置:首页正文

单片机复习题纲 1

2022-12-30 来源:好走旅游网


单片机复习提纲

一. 选择题:

1.MC-51单片机复位后,程序计数器PC的内容是( C )。

A.00H B.FFH C.0000H D.FFFFH

2.8051单片机芯片在使用时应把EA信号引脚( A )。

A.接高电平 B.接地 C.悬空 D.接地址锁存器选通端

3.MCS-51的程序计数器PC为16位计数器,因此其寻址范围是( D )。

A.8K B.16K C.32K D.64K

4.在MCS-51单片机中,唯一一个可供用户使用的16位寄存器是( B )。

A.PSW B.DPTR C.AC D.PC

5.在MCS-51单片机中,唯一一个用户不能直接使用的寄存器是( D )。

A.PSW B.DPTR C.AC D.PC

6.在单片机中,用作标志寄存器的一个特殊功能寄存器是( A )。

A.PSW B.DPTR C.AC D.PC

7.单片机的指令地址存放在( D )中。

A.PSW B.DPTR C.SP D.PC

8.提高单片机的晶振频率,则机器周期信号( C )。

A.不变 B.变长 C.变短 D.变长变短不定

9.地址空间3000H~37FFH共有( B )存储单元。

A.1K B.2K C.4K D.8K

10.8051单片机系统扩展时使用的锁存器用于锁存( B )。

A.高8位地址 B.低8位地址 C.8位数据 D.ALE信号

11.在MCS-51单片机的中断中,如果出现同级中断申请时,序列来处理响应次序,其优先级别中第三个为:( D )

A、 定时/计数器中断0 B、定时/计数器中断1

C、外部中断0 D、外部中断1 E、串行口中断

12.MSC-51在响应中断时,必须由用户清除的标志为( B )

A、TF0 B、RI C、IE0 D、TF1

就按硬件查询

13.8051不具有第二功能的I/O口是:( B )

A、 P0 口 B、P1口 C、P2口 D、 P3口

14.关于MCS-51的堆栈操作,正确的说法是( C )。

A、先入栈,再修改栈指针对 B、先修改栈指针,再出栈

C、先修改栈指针,再入栈 D、以上都不对

15.要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是( A )。

A、98H B、84H C、42H D、22H

16.PSW=18H时,则当前工作寄存器是( D )。

A、0组 B、1组 C、2组 D、3组

17.执行IE=0x03后,MCS-51将响应的中断是 ( D )。

A、1个 B、2个 C、3个 D、0个

18.各中断源发出的中断请求信号,都会标记在MCS-51系统中的( A )。

A、TCON/SCON B、IE C、IP D、TMOD

19.下列对SCON的相关位描述不正确的是( A )。

A、当REN=1时,禁止串行口接收数据 B、在方式0时,SM2必须为0

C、RI位由软件清零 D、TI=1,表示一帧数据发送结束

20.设串行口工作于方式1,晶振频率为6MHz,波特率为1200b/s,SMOD=0,则定时器1的计数初值为:( B )

A、E8H B、F4H C、FDH D、FAH

21.以下所列特点,不属于串行口工作方式0的是( D )

A、 波特率是固定的,为时钟频率的十二分之一 B、8位移位寄存器

C、TI和RI都必须用软件清零 D、在通信时须对定时器1的溢出率进行设置

22.MCS-51外扩ROM、RAM和I/O口时,它的数据总线是( A )

A、P0口 B、P1口 C、P2口 D、P3口

23.在串行通信中,数据传送的速率为:120字符/s ,采用异步通信方式,帧的格式为:1 个起始位,7 个数据位,1 个奇偶校验位,1个停止位, 则其波特率为:( A )位/s

A、 1200 B、 120 C、840 D、1080

24.若设串行控制寄存器SCON=40H,则串行口的工作方式为:( B )

A、 方式0 B、方式1 C、方式2 D、方式3

25.CPU响应中断的条件包括( ACDE )。

A、现行指令运行结束 B、保护现场 C、有中断请求

D、申请中断的中断源中断允许位为1 E、已开放CPU中断

26.MCS-51的并行I/O口信息有两种读取方法,一种是读引脚,还有一种是( A )

A、读锁存器 B、读数据库 C、读累加器A D、读CPU

27.单片机应用程序一般存放在( B )中。

A、RAM B、ROM C、CPU D、寄存器

28.系统总线指的是( ABE )。

A、数据总线 B、地址总线 C、内部总线 D、外部总线 E、控制总线

29.51系列单片机的内部RAM中,可以进行位寻址的地址空间为( B )。

A、00H~2FH B、20H~2FH C、30H~7FH D、7FH~FFH

30.共阳极LED数码管的驱动信号有何特点? ( B )

A、高电平点亮 B、低电平点亮 C、以上都不是

31.80C51单片机的CPU主要的组成部分为( A )。

A、运算器、控制器 B、加法器、寄存器

C、运算器、加法器 D、运算器、译码器

32.单片机能直接运行的程序称为( D )。//可执行程序

A、源程序 B、汇编程序 C、目标程序 D、编译程序

33.单片机中的程序计数器PC用来( C )。

A、存放指令 B、存放正在执行的指令地址

C、存放下一条指令地址 D、存放上一条指令地址

34.单片机80C51的ALE引脚是( B )。

A、输出高电平 B、输出矩形脉冲,频率为fOSC的1/6

C、输出低电平于 D、输出矩形脉冲,频率为fOSC的1/2

35.单片机上电复位后,AT89C51堆栈区的最大允许范围是( B )个单元。

A、64 B、120 C、128 D、256

36.PSW中的RS1和RS0用来( A )。

A、选择工作寄存器区号 B、指示复位 C、选择定时器 D、选择工作方式

37.80C51的串行数据缓冲器SBUF用于( B )。

A、存放运算中间结果 B、存放待发送或已接收到的数据

C、暂存数据和地址 D、存放待调试的程序

38.单片机应用程序一般存放在( B )中。

A、RAM B、ROM C、CPU D、寄存器

39.80C51单片机的机器周期为2µs,则其晶振频率fOSC为( C )MHz。

A、1 B、2 C、6 D、12

40.在80C51中,需要外加电路实现中断撤除的是( A )

A、电平方式的外部中断 B、脉冲方式的外部中断 (硬件清0)

C、外部串行中断 D、定时中断

41.80C51单片机串行口接收数据次序是下述的顺序( B )。

(1)接收完1帧数据后,硬件自动将SCON的RI置1

(2)用软件将RI清零

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

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

A、(1)(2)(3)(4) B、(4)(1)(2)(3)

C、(4)(3)(1)(2) D、(3)(4)(1)(2)

42.80C51单片机串行口发送数据次序是下述的顺序( A )。

(1)待发送数据送SBUF (2)硬件自动将SCON的TI置1

(3)经TXD(P3.1)串行发送一帧数据完毕 (4)用软件将TI清零

A、(1)(3)(2)(4) B、(1)(4)(2)(3)

C、(1)(2)(3)(4) D、(3)(4)(1)(2)

二. 填空题:

1.根据MCS—51内部RAM的配置情况填空:

MCS—15内部RAM共有 128 字节。其中:

00H-1FH 为 工作寄存器 区 ;

20H-2FH 为 位寻址 区,可以 字节 寻址,也可以 位 寻址;

30H-7FH 为 用户RAM 区,只能 字节 寻址。

2.根据51系列单片机的基本特性填空:

(1)、CPU字长是 8 位

(2)、可供使用的地址线最多可达到 16 根

(3)、可寻址的最大空间为 64K

(4)、具有 4 个 8 位并行I/O口,共 32 根I/O线

(5)、具有 5个中断源, 2 个优先级

(6)、8051具有 片内ROM , 8031 无片内ROM

3.MCS-51外部中断0的中断入口地址是: 0003H 、外部中断1的中断入口地址是: 0013H 、定时器T0的中断入口地址是: 000BH 定时器T1的中断入口地址是: 001BH 、串行口的中断入口地址是: 0023H 。

4.中断过程包括: 中断请求 、 中断响应 、 中断处理 和中断返回 。

5.在8051单片机采用总线结构扩展系统中,高8位地址由 P2 端口提供,低8位地址由 _P0 端口提供。

6.在8051单片机中,一个机器周期包括 6 个状态周期,一个状态周期包括 2 个振荡周期。

7.根据应用的要求,复位电路通常有两种基本形式,它们分别是 上电 复位和

按键 复位。

8. C51源程序的扩展名为 c 。机器能直接执行的文件的扩展名为 hex 。

9.按数据传送方向,串行通信可分为: 单工 、 半双工 和 全双工 。

10.单片机中使用的串行通信都是 全双工 方式。

11.虽然MCS-51串行口的发送和接收缓冲寄存器都名为 SBUF ,但发送和接收可通过指令 SBUF=ACC; 、 ACC=SBUF; 来区别(以累加器为例)。

12.P0端口既可以传递 数据 又可以传递 地址 ,是分时复用的。

13.当单片机复位后,程序的入口地址为 0000H ;堆栈指针SP为 07H 。

14.在MCS-51 的I/O端口的读引脚方式下,CPU首先必须使欲读端口引脚所对应的锁存器置 1 。

15.C51程序的基本单位是 函数 。一个C51源程序至少包含一个 主函数 。

16.变量的基本属性是 变量名 和 变量值 。一旦在程序中定义了一个变量,C51编译器就会给这个变量分配相应的存储单元。此后变量名就与 存储单元地址 相对应,变量值就与 存储单元内容 相对应。

17.DAC0832与单片机的接口连接可根据实际需要采用 直通方式 、 单缓冲方式 和

双缓冲方式 3种工作方式。

18.为防止现场强电磁干扰或工频电压通过输出通道反串到测控系统,一般都采用通道隔离技术。实现通道隔离的常用器件是 光电耦合器。

19. 电磁继电器 既可以实现输入端与输出端的隔离,又能达到通过弱电信号控制高压、交直流大

功率设备的目的。

20. 单片机是指在一片集成电路芯片上集成 微处理器(CPU) 、 存储器 与 各种输入/输出接口 ,从而构成的单芯片微型计算机。

三. 判断题:

1、TMOD中的GATE=1时,也由TRi控制定时器的启停。 F

2、堆栈可用于响应中断或调用子程序时,保护断点地址,程序断点16位地址会自动压入堆栈,数据入栈前SP先自动加1,然后高8位地址进栈,每进栈一个字节SP又自动加1,而后是低8位地址进栈。 F

3、程序计数器PC也是特殊功能寄存器。 F

4、MCS-51复位不影响内部RAM中的数据,包括工作寄存器R0—R7。F

5、MCS-51系列单片机的特点之一是内部工作寄存器以RAM形式组成。 T

6、P0端口既可以作地址线,又可以作数据线,是分时复用的。 T

7、在MCS-51单片机中,高级中断可以打断低级中断形成中断嵌套。 T

8、每个特殊功能寄存器都既有字节地址,又有位地址。F

9、20H一定是字节地址。 F

10、中断初始化时,对中断允许寄存器的状态设置,只能使用位操作指令,而不能使用字节操作指令。 F

11、8051单片机具有4个并行端口和一个串行端口。 T

12、堆栈遵循数据先进后出,后进先出的原则。 T

13、只要有中断出现,CPU就立即响应中断。 F

14、MCS-51的外设端口地址是采用外设端口和外部RAM统一编址的方式。 T

15、MCS-51单片机共有五个中断源,因此相应地在芯片上就有五个中断请求输入引脚。 F

16、MCS-51单片机的定时和计数都使用同一计数机构,所不同的只是计数脉冲的来源。来自于单片机内部的是定时,而来自于外部的则是计数。 T

17、MCS-51对LED管的显示可以分为静态和动态两种。单片机控制系统通常采用动态扫描显示。 T

18、MCS-51使用于多机通信时必须在方式2或方式3下工作,作主机的80C51的SM2应设定为0,作从机的SM2设定为1。 T

19、在串行通信的查询法编程时,发送过程是先发后查,而接收过程是先查后收。 T

20、变量和函数都必须先定义后使用。 T

四.简答题:

1、简述行列式矩阵键盘扫描的工作过程。

答:① 判断键盘中是否有键按下;

②若有键按下,则调用延时子程序去抖动;再次判断是否有键按下;

③若有键按下,进行行(列)扫描,判断是哪一个键按下,求取按键的键值;

④等待按键释放;

⑤根据按键的键值,转入相应按键的处理程序。

2、简述单片机控制LED数码管进行动态显示的工作原理。

答:动态显示就是一位一位地轮流点亮各个LED。每一位LED数码管每隔一段时间才点亮一次。

单片机使用两个并行口来控制LED:一个作为字形口,一个作为字位口;用循环程序每隔一段时间送出一个字形码、字位码让LED的某位显示某个数字;只要点亮的间隔时间小于人眼的视觉暂留时间,就可以看到是多个LED在“同时”显示了。

3、简述单片机系统扩展时采用总线结构的基本原则。

答:(1)以P0口作地址/数据总线,此地址总线是系统的低8位地址线。

(2)以P2口的口线作高位地址线。(不固定为8位,需要几位就从P2口引出几条口线)

(3)控制信号线:

① 使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存。

② 以PSEN信号作为扩展程序存储器(ROM)的读选通信号。

③ 以EA信号作为内外程序存储器的选择信号。

④ 以RD和WR作为扩展数据存储器和I/O端口的读写选通信号。

4、计算机的存储器地址空间有哪两种结构形式,各有什么特点?

答:普林斯顿结构:也叫冯诺依曼结构,将程序指令存储器和数据存储器合并在一起,即ROM和RAM位于同一存储空间的不同物理位置。

哈佛结构:将程序指令存储器和数据存储器分开,即ROM和RAM位于不同存储空间

5、用示意图表明C51的存储类型与单片机存储空间的对应关系。

P62

6、MCS-51有哪几个中断源?它们的中断向量地址分别是多少?中断编号是多少?(用表格列出)

P90

7、80C51单片机的内部资源主要包括哪些?

中央处理器(CPU),

片内振荡器和时钟电路,

4KB片内程序存储器(ROM),

128字节的片内RAM,

2个16位的定时/计数器,

可寻址64KB片外数据存储器和64KB片外程序存储器空间的控制电路,

4个8位双向I/O端口,

一个全双工串行接口,

5个中断源

五.接口编程题。

1、利用定时器产生一方波信号,要求采用查询或中断的方式编写程序。

例:4KHZ的方波

查询法:

#include

sbit p1_0=P1^0;

void mian()

{

TMOD=0X01;//定时器1方式1

TR0=1; //启动定时器

while(1)

{

TH0=0XFF; //装初值

TL0=-125;

while(!TF0);

TF0=0;

p1_0=!p1_0;

}

}

中断法:

#include

sbit p1_0=P1^0;

void mian()

{

TMOD=0X01;//定时器1方式1

TH0=0XFF; //装初值

TL0=-125;

EA=1; //开总中断

ET0=1; //开定时器0中断

TR0=1; //启动定时器

while(1);

}

void T0_ISR() interrupt 1

{

TH0=0XFF;

TL0=-125;

p1_0=!p1_0;

}

2、数据采集系统的编程设计(要求采用查询或中断的方式编写程序)。

ADC的查询方式:

#include

#include

sbit START=P2^5;

sbit EOC=P2^6;

sbit OE=P2^7;

void main(void)

{

unsigned long temp, adc_value;

while(1)

{

START = 1; //启动转换

_nop_();

START = 0;

while(EOC==0); //等待AD转换完成

OE = 1;

P1=0xff;

temp = P1; //读取数据

OE = 0;

adc_value=(1000*5*temp/255+5)/10;

display(adc_value);

}

}

3、利用延时子程序设计流水灯。

//低电平驱动

//四舍五入

#include

#define PLED0 P0

//延时

void delayms (unsigned int n)

{

unsigned int i, j;

for (i=n; i>0; i--)

for (j=123; j>0; j--);

}

void main()

{

unsigned char i, led=0x7f;

while(1)

{

for (i=0; i<8; i++)

{

PLED1=led;

delayms (250);

led=(led>>1)|0x80; //或用循环右移_cror_

}

}

4、串行口的点对点通信时发送、接收程序。

//方式1

/******发送程序******/

#include

void delay_ms(unsigned int i);

void main()

{

unsigned char c = 0, temp; //定义计数变量

SCON = 0x50;//SM0 = 0, SM1 = 1, 方式1; REN = 1, 允许接收; SM2 = TI = RI = 0;

TMOD = 0x20; TH1 = TL1 = 0xf4; TR1 = 1; while(1)

{

SBUF = c; while(!TI); TI = 0; while(!RI); RI = 0; temp = SBUF; if(temp == c) //T1定时方式2

//设置波特率为 2400bps

//开始计时

//把要发送的数据送到发送逻辑单元

//在此等待数据发送完

//发送数据后, 软件把 TI 清零

//在此等待B机返回的数据

//接收数据后, 软件把 RI 清零

//接收B机返回的值

//如果B机返回的值与A机发送出去的值相等

{

P2 = c; //显示

if(++c >= 16)

c = 0;

delay_ms(500); //间隔500毫秒再发送数据

}

}

}

/******接收程序******/

#include

unsigned char r = 0; //定义变量存放接收到的数据

void main()

{

SCON = 0x50; //SM0 = 0, SM1 = 1, 方式1; REN = 1, 允许接收; SM2 = TI = RI = 0;

TMOD = 0x20; //定时器方式2

TH1 = TL1 = 0xf4; //当晶振11.0592MHz, 波特率为2400Mbps

TR1 = 1;

EA = 1;

ES = 1;

while(1);

}

void serial() interrupt 4 {

RI = 0; //软件清零标志位ES=0;

r = SBUF;

P2 = r;

SBUF = r;

//串行口中断服务程序

while(TI == 0); //如果是TI引起的中断

TI = 0;

ES=1;

}

//方式2

/* 双机通讯 -- 甲方(发送)程序 */

#include

#define uchar unsigned char

#define uint unsigned int

/* 延时函数 */

void delayms (uint n)

{

uint i,j;

for(i=n;i>1;i--)

for(j=125;j>1;j--);

}

void main()

{

uchar counter=0;

P2=0X00; //从0开始算

TMOD=0X20; //定时器1工作于方式2

TH1=TL1=0XFD; //自动重装,初值0xFD,波特率:9600

SCON=0XD0; //串口工作于方式3,允许接收

TR1=1; //启动定时器1

while(1)

{

ACC=counter; //将数据放入累加器,以便奇偶校验

TB8=P; //奇偶校验

SBUF=counter; //发送数据给乙方

while(TI==0); //等待发送完成

TI=0; //清除发送标志位

while(RI==0); //等待乙方的回答

RI=0; //清除接收标志位

if(RB8==1) //接收到数据,并进行奇偶校验

{

P2=counter; //输出到数码管

if(++counter>15) counter=0;

delayms(500);

}

}

}

/* 双机通讯 -- 乙方(接收)程序 */

#include

#define uchar unsigned char

void main()

{

uchar receive;

P2=0X00; //从0开始算

TMOD=0X20; //定时器1工作于方式2

TH1=TL1=0XFD; //自动重装,初值0xFD,波特率:9600

SCON=0XD0; //串口工作于方式3,允许接收

TR1=1; //启动定时器1

while(1)

{

while(RI==1) //是否接收到数据

{

RI=0; //接收标志位清0

receive=SBUF; //读取接收到的数据

ACC=receive; //将数据放入累加器,以便奇偶校验

if(P==RB8) TB8=1; 方处理接收到的数据

//奇偶检验位和接收到的一样,则将发送的奇偶校验位赋1,否则赋0,以便甲

else TB8=0;

SBUF=receive; //发送接收到的数据

while(TI==0); //等待发送完成

TI=0; //清除发送标志位

P2=receive; //输出到数码管

}

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容