c51复习题doc.docx

上传人:b****6 文档编号:12728963 上传时间:2023-06-07 格式:DOCX 页数:38 大小:30.95KB
下载 相关 举报
c51复习题doc.docx_第1页
第1页 / 共38页
c51复习题doc.docx_第2页
第2页 / 共38页
c51复习题doc.docx_第3页
第3页 / 共38页
c51复习题doc.docx_第4页
第4页 / 共38页
c51复习题doc.docx_第5页
第5页 / 共38页
c51复习题doc.docx_第6页
第6页 / 共38页
c51复习题doc.docx_第7页
第7页 / 共38页
c51复习题doc.docx_第8页
第8页 / 共38页
c51复习题doc.docx_第9页
第9页 / 共38页
c51复习题doc.docx_第10页
第10页 / 共38页
c51复习题doc.docx_第11页
第11页 / 共38页
c51复习题doc.docx_第12页
第12页 / 共38页
c51复习题doc.docx_第13页
第13页 / 共38页
c51复习题doc.docx_第14页
第14页 / 共38页
c51复习题doc.docx_第15页
第15页 / 共38页
c51复习题doc.docx_第16页
第16页 / 共38页
c51复习题doc.docx_第17页
第17页 / 共38页
c51复习题doc.docx_第18页
第18页 / 共38页
c51复习题doc.docx_第19页
第19页 / 共38页
c51复习题doc.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c51复习题doc.docx

《c51复习题doc.docx》由会员分享,可在线阅读,更多相关《c51复习题doc.docx(38页珍藏版)》请在冰点文库上搜索。

c51复习题doc.docx

c51复习题doc

v1.0可编辑可修改

一、填空

 

1.KeiLC51软件中,工程文件的扩展名是,编译连接后生成可烧写的文件扩展名是_______HEX____。

 

2.C51支持的指针有基于存储器的指针和一般指针。

 

3.C51中,没有专门的循环语句,我们可以用函数___________完成一个字节的循环左移,用______完成二个字节的循环左移。

 

4.函数是C语言的基本单位。

 

5.C语言中输入和输出操作是由库函数和等函数来完成。

 

6.若有说明inti,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为________。

 

7.是一组有固定数目和相同类型成分分量的有序集合。

 

8.变量的指针就是变量的;指针变量的值是。

 

9.在C语言中,把多个不同类型的变量结合在一起形成的一个组合型变量,称为

,简称

10.C51的数据类型有

11.C51的基本数据类型有

12.C51的构造数据类型有

13.C51的存储类型有data

、idata

、bdata

、xdata

pdata、code

14.C51的存储模式有

SMALL模式

、COMPACT模式

LARGE

模式

15.C51程序与其他语言程序一样,程序结构也分为

三种。

16.数组的一个很重要的用途就是

17.

二、单项选择题:

的内部程序存储器与数据存储器容量各为多少(c)

 

(A)64KB、128B(B)4KB、64KB

 

(C)4KB、128B(D)8KB、256B

 

2.在8x51芯片里,哪个引脚用于控制使用内部程序存储器还是外部程序存储器(b)

 

(A)XTAL1(B)/EA(C)/PSEN(D)ALE

 

3.下列哪个不是KeilC的预处理命令(c

 

(A)#include(B)#define(C)#exit(D)#if

 

4.下列哪个不是KeilC的数据类型(b)

 

(A)void(B)string(C)char(D)float

 

11

v1.0可编辑可修改

5.在8x51的输入/输出端口里,哪个输入/输出端口执行在输出功能时没有内部上拉电阻(A)

 

(A)P0(B)P1(C)P2(D)P3

 

6.在KeilC的程序里,若要指定P0口的bit3,如何编写(C)

 

(A)(B)(C)P0^3(D)Port^3

 

7.在8x51里,若要扩展外部存储器时,数据总线连接哪个输入/输出端口(A)

 

(A)P0(B)P1(C)P2(D)P3

 

8.点亮一般的LED所耗的电流约为多少(D)

 

(A)1~5uA(B)10~20uA(C)1~5mA(D)10~20mA

 

9.在8x51的程序里,若要将个输入/输出端口设置成输入功能,应如何处理(A)

 

(A)先输出高电平到该输入/输出端口(B)先输出低电平到该输入/输出端口

 

(C)先读取该输入/输出端口的状态(D)先保存该输入/输出端口的状态

 

10.根据实验统计,当操作开关时,其不稳定关态大约持续多久(B)

 

(A)1~5ms(B)10~20ms(C)100~150ms(D)150~250us

 

11.在KeilC里,判读开关状态时,使用if_elseif语句与使用switch语句有何差异(B)

 

(A)if-elseif语句较快(B)if-elseif语句有优先级(C)switch语句可判读较多开关状态(D)switch

 

语句有优先级

 

12.对于低电平动作(低电平触发)的开关而言,下列哪个不是在输入口上连接一个上拉电阻VCC的目的(A)

 

(A)提供足够的驱动电流(B)防止确定状态(C)保持输入高电平

 

(D)防止噪声干扰

 

13.中断功能具有什么好处(C)

 

(A)让程序更复杂(B)让程序执行速度更快(C)让程序更有效率(D)

 

以上皆非

 

14.8x51的IP缓存器的功能为何(A)

 

(A)设置中断优先级(B)启用中断功能(C)设置中断触发信号(D)定义CPU的网址

 

15.在KeilC里,中断子程序与函数有何不同(A)

 

(A)中断子程序不必声明(B)函数不必声明(C)中断子程序必须有形式参数(D)中断子程序一定会有返

 

回值

 

22

v1.0可编辑可修改

16.若要同时启用INT0及INT1中断功能,则应如何设置(B)

 

(A)TCON=0x81(B)IE=0x85(C)IP=0x83(D)IE=0x03

 

17.若要提高INT1的优先级,则应如何设置(C)

 

(A)IP=0x01(B)IE=0x01(C)IP=0x04(D)IE=0x04

 

18.

在8x51的Timer里,若使用

Mode0,其最大计数值为多少个机器周期(

B)

(A)65536

(B)8192

(C)1024

(D)256

MHz的8x51系统里,哪一种方式一次可定时

5ms(A)

(A)Mode0及Mode1

(B)Mode1

及Mode2

(C)Mode2

及Mode3

(D)Mode3及Mode1

的定时器,在下列哪种方式下具有自动加载功能(

C)

(A)Mode0

(B)Mode1

(C)Mode2

(D)Mode3

21.

若将Timer0设置为外部启动,则可由哪个引脚启动(

A)

(A)(B)

(C)(D)

22.

下列哪个IC具有将串行数据转换成并行数据的功能(

B)

 

(A)74138(B)74164(C)74165(D)74168

 

23.在同一时刻,只能接收或发送信号者称为什么(A

 

(A)半双工

(B)全双工

(C)半单工

(D)单工

24‘在8x51的串行口里,在哪一种方式下,可利用

Timer1产生波特率(C)

(A)Mode0

(B)Mode1

(C)Mode2

(D)Mode3

25.在8x51

里,若通过串行端口传出数据,则只要将数据放入哪个寄存器,

CPU就会自动将它会传出(B)

(A)SMOD

(B)SBUF

(C)PCON

(D)RBUF

26.在8x51

里,若CPU完成串行端口数据的接收将会如何(

D)

(A)将TI

标志变为0

(B)将RI标志为0

(C)将TI标志变为了1

(D)将RI标志变为1

27.若要设置8x51串行端口方式,可在哪个寄存器中设置(

B)

(A)SMOD(B)SCON(C)PCON(D)TCON

 

28.在共阳极8*8LED点阵里,其阳极如何连接(C)

 

(A)各行阳极连接到行引脚(B)各列阳极连接到列引脚(C)各行阳极连接到列引脚(D)各列阳极连接

 

到行引脚

 

33

v1.0可编辑可修改

29.在共阳极8*8点阵里,其阴极如何连接(

C)

(A)各行阴极连接到行引脚

(B)各列阴极连接到列引脚

(C)各行阴极连接到列引脚

(D)各列阴极连接到

行引脚

30.通常8*8LED点阵的驱动方式是什么(

B)

(A)直接驱动

(B)扫描驱动

(C)双向驱动

(D)以上皆非

31.若要对LCM下指令,则应如保设置(

A)

(A)RS=0,R/~W=0

(B)RS=1,R/~W=0

(C)RS=1,R/~W=1

(D)RS=0,R/~W=1

32.若要在LCM中显示些字符,则需把所要显示的字符放入何处(

B)

(A)CGRAM

(B)DDRAM(C)IRAM

(D)GDRAM

33.若要将数据写入

LCM,则应如何设置(B)

(A)RS=0,R/~W=0

(B)RS=1

,R/~W=0

(C)RS=1,R/~W=1(D)RS=0,R/~w=1

34.利用下列(

D

)关键字可以改变工作寄存器组

A、interrupt

B、sfr

C、while

D、using

35.C51中一般指针变量占用(

C

)字节存储。

A、一个

B、两个

C、三个

D、四个

 

36.使用宏来访问绝对地址时,一般需包含的库文件是(B)

 

A、B、C、D、

 

37.执行#definePA8255XBYTE[0x3FFC];

 

PA8255=0x7e;

 

后存储单元0x3FFC的值是(A)

 

A、Ox7eB、8255HC、未定D、7e

 

38.设有inti;则表达式i=1,++i,++i||++i,i的值为()

 

A、1B、2C、3D、4

 

39.设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是(C)

 

A、10,11,12B、11,12,12C、10,12,12D、11,11,12

 

40.设有inti;则表达式i=1,++i,i||++i,i的值为()

 

44

v1.0可编辑可修改

A、1B、2C

、3D

、4

三、判断题:

(每小题

1分,共10分。

正确的在括号内打“√”,错误的打“×”。

判对得分,不判、判错均不得分。

1.若一个函数的返回类型为

void,则表示其没有返回值。

2.特殊功能寄存器的名字,在

C51程序中,全部大写。

(对

3.“sfr”后面的地址可以用带有运算的表达式来表示。

4.#include

<>与#include

“”是等价的。

(对)

5.sbit不可以用于定义内部

RAM的可位寻址区,只能用在可位寻址的

SFR上。

(对

6.Continue

和break都可用来实现循环体的中止。

7.所有定义在主函数之前的函数无需进行声明。

8.inti,*p=&i

;是正确的C说明。

对)

9.7&3+12的值是15。

10.一个函数利用return不可能同时返回多个值。

(对

 

四、问答题

 

1.简述C51语言和汇编语言的比较

 

使用C51语言进行嵌入式系统的开发,有着汇编语言所不可比拟的优势:

 

①编程调试灵活方便;

 

②生成的代码编译效率高;

 

③模块化开发;

 

④可移植性好;

 

⑤便于项目的维护;

 

2.简述单片机的C语言和标准C的比较

 

单片机的C语言和标准C的比较主要有以下几点不同:

 

①C51中定义的库函数和标准的C语言定义的库函数不同;

 

②C51中的数据类型和标准C的数据类型也有一定的区别;

 

55

v1.0可编辑可修改

③C51变量的存储模式与标准C中变量的存储模式不一样;

 

④C51与标准C的输入/输出处理不一样;

 

⑤C51与标准C语言在函数使用方面有一定的区别。

 

3.简述单片机的C语言的特点

 

单片机的C语言的特点主要体现在以下几个方面:

 

①无需了解机器硬件及其指令系统,只需初步了解MCS-51的存储器结构;

 

②C51能方便的管理内部寄存器的分配、不同存储器的寻址和数据类型等细节问题,但对硬件控制有限;而汇编语言可以完全控制硬件资源;

 

③C51在小应用程序中,产生的代码量大,执行速度慢;但在较大的程序中代码效率高;

 

④C51程序由若干函数组成,具有良好的模块化结构,便于改进和扩充;

 

⑤C51程序具有良好的可读性和可维护性;而汇编语言在大应用程序开发中,开发难度增加,可读性差;

 

⑥C51有丰富的库函数,可大大减少用户的编程量,显著缩短编程与调试时间,大大提高软件开发效率;

 

⑦使用汇编语言编制的程序,当机型改变时,无法直接移植使用,而C语言程序是面向用户的程序设计语

 

言,能在不同机型的机器上运行,可移植性好。

 

4.简述使用KeilC51开发工具开发软件的流程

 

使用KeilSoftware工具时,用户的项目开发流程和其它软件开发项目的流程极其相似,主要包括以下几个

 

步骤:

 

①创建一个项目,从器件库中选择目标器件并配置工具软件的设置;

 

②用C语言或汇编语言创建源程序;

 

③用项目管理器生成用户的应用;

 

④修改源程序中的错误;

 

⑤调试链接后的应用。

 

66

v1.0可编辑可修改

1.哪些变量类型是51单片机直接支持的

 

C51编译器支持的数据类型有:

位型(bit)、无符号字符型(unsignedchar)、有符号字符型(signed

 

char)、无符号整型(unsignedint)、有符号整型(signedint)、无符号长整型(unsignedlong)、有符

 

号长整型(signedlong)、浮点型(float)和指针型等。

 

2.简述C51的数据存储类型

 

我们都知道,8051单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。

8051单片机内部

 

的数据存储区是可读写的,8051派生系列最多可有256字节的内部数据存储区,其中低128字节可直接寻址,高128

 

字节(从0x80到0xFF)只能间接寻址,从20H开始的16字节可位寻址。

内部数据区可分为3个不同的存储类型:

data、

 

idata和bdata。

 

3.简述C51对51单片机特殊功能寄存器的定义方法

 

(1)使用关键字定义sfr

 

(2)通过头文件访问SFR

 

(3)SFR中位定义

 

4.简述C51对51单片机片内I/O口和外部扩展的I/O口的定义方法

 

答:

 

C51对51单片机片内I/O口的定义方法是将片内I/O口看成SFR。

C51对51单片机片外I/O的访问有两种比较常

 

用的访问方法:

(1)绝对宏

 

C51编译器提供了一组宏定义来对51系列单片机的code、data、pdata和xdata空间进行绝对寻址。

 

(2)_at_关键字

 

可以使用关键字_at_对指定的存储器空间的绝对地址进行访问,一般格式如下:

[存储器类型]数据类型说

 

明符变量名_at_地址常数;

 

5.简述C51对51单片机位变量的定义方法

 

答:

除了通常的C数据类型外,C51编译器支持bit数据类型。

采用关键字“bit”进行定义。

如:

bit

 

77

v1.0可编辑可修改

direction_bit;bitlock_pointer;

 

/*将direction_bit定义为位变量*//*将lock_pointer定义为位变量*/

 

bitdisplay_invers;/*将display_invers定义为位变量*/

 

6.C51和TurboC的数据类型和存储类型有哪些异同点

 

答:

C51增加了位变量,取消了布尔变量。

 

7.C51的data、bdata、idata有什么区别

 

答:

data、bdata、idata是表明数据的存储类型,data是指片内RAM的低128字节,可在一个周期内直接寻

 

址;bdata是指片内RAM的位寻址区,16字节;

 

8.C51中的中断函数和一般的函数有什么不同

 

答:

C51编译器允许用C51创建中断服务函数,中断函数是由中断系统自动调用的。

中断函数的定义格式为:

 

函数类型函数名interruptnusingn其中:

 

interrupt和using为关键字;

 

interrupt后面的n为中断源的编号,即中断号;using后面的n所选择的寄存器组,取值范围为0~3。

 

定义中断函数时,using是一个选项,可以省略不用。

如果不用using选项,则由编译

 

器选择一个寄存器组作为绝对寄存器组。

 

8051的中断过程通过使用interrupt关键字和中断号(0~31)来实现,中断号告诉编译器中断函数的入口地址。

 

9.C51采用什么形式对绝对地址进行访问

 

绝对地址的访问包括片内RAM、片外RAM及I/O的访问。

C51提供了两种比较常用的访问绝对地址的方法。

 

(1)绝对宏

 

(2)_at_关键字

 

可以使用关键字_at_对指定的存储器空间的绝对地址进行访问

 

88

v1.0可编辑可修改

10.按照给定的数据类型和存储类型,写出下列变量的说明形式

 

答:

 

(1)在data区定义字符变量val1

 

chardatavall;

 

(2)在idata区定义整型变量val2

 

intidataval2;

 

(3)在xdata区定义无符号字符型数组val3[4]。

unsignedxdataval3[4];

 

(4)在xdata区定义一个指向char类型的指针px。

 

charxdata*px;

 

(5)定义可位寻址变量flag。

 

bitflag;

 

11/13

 

(6)定义特殊功能寄存器变量P3。

 

SfrP3=0xB0;

 

11.break和continue语句的区别是什么

 

答:

break语句用于从循环代码中退出,然后执行循环语句之后的语句,不再进入循环。

Continue语句用于退出

 

当前循环,不再执行本轮循环,程序代码从下一轮循环开始执行,直到判断条件不满足为止。

 

和break的区别是该语句不是退出整个循环。

 

12.C51选择语句、循环语句包含那些答:

参看课本P68~P77。

 

13.什么是重入函数重入函数一般什么情况下使用,使用时有哪些需要注意的地方

 

答:

多个函数可以同时使用的函数,称为重入函数。

 

通常情况下,C51函数不能被递归调用,也不能应用导致递归调用的结构。

有此限制是由于函数参数和局部变量

 

是存储在固定的地址单元中。

重入函数特性允许你声明一个重入函数。

即可以被递归调用的函数。

 

99

v1.0可编辑可修改

重入函数可以被递归调用,也可以同时被两个或更多的进程调用。

重入函数在实时应用中及中断服务程序代码和

 

非中断程序代码必须共用一个函数的场合中经常用到。

 

14.如何消除键盘的抖动

 

答:

由于按键是机械开关结构,所以当用手按下其中一个键时,往往会出现所按键在闭合位置和断开位置之间发

 

生跳几下后才会稳定到闭合状态的情况。

在释放一个键时,也会出现类似的情况,这就是键的抖动,抖动的持续

 

时间不一,但通常不会大于10ms。

 

若抖动问题不解决,就会引起对闭合键的多次读入。

对于键抖动最方便的解决方法就是当发现有键按下后,不是

 

立即进行扫描,而是延时大约10ms后再进行。

由于一个键按下的时间一般会持续上百毫秒,所以延迟10ms后再

 

扫描处理并不迟。

 

15.在使用8051的定时器/计数器前,应对它进行初始化,其步骤是什么

 

答:

(1)确定T/C的工作方式——编程TMOD寄存器;

 

(2)计算T/C中的计数初值,并装载到TH和TL;

 

(3)T/C在中断方式工作时,须开CPU中断和源中断——编程IE寄存器;

 

(4)启动定时器/计数器——编程TCON中TR1或TR0位。

 

16.外部中断源初始化步骤是什么

 

外部中断源初始化

 

2个外部中断源:

 

/INT0

中断,外部中断

0请求,占用引脚,其中断请求号为

0。

/INT1

中断,外部中断

1请求,占用引脚,其中断请求号为

2。

(1)TCO寄存器中的IT0、IT1位

12/13

 

(2)IP寄存器中的PX0、PX1位

 

(3)IE寄存器中的EA、EX0、EX1位

 

五、读程序、编程序

 

1.

第四章中断:

4-1P104

例4-9P116

例4-10

P117

定时:

4-16P123

例4-17P124

例4-18

P126

2.

第五章

例5-9P154

例5-10P155

例5-11P157

 

1010

v1.0可编辑可修改

3.

第六章静态:

例6-1P169

动态:

例6-3P171

独立式键盘:

例6-6P178

矩阵式键盘:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2