单片机复习题带答案

单片机复习题带答案
单片机复习题带答案

、单项选择题

1利用下列( D )关键字可以改变工作寄存器组

A、interrupt

B、sfr

C、while

D、using

2. C51中一般指针变量占用(C )字节存储。

A、一个

B、两个

C、三个

D、四个

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

A、reg51.h

B、absacc.h

C、intrins.h

D、startup.h

4. 执行#define PA8255 XBYTE[0x3FFC];

PA8255=0x7e;

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

A、Ox7e

B、8255H

C、未定

D、7e

5. 设有int i ;则表达式i=1,++i,++i||++i,i 的值为(C )

A、1

B、2

C、3

D、4

6. 设有int a[ ]={10,11,12},*p=&a[0] ;则执行完

的值依*p++;*p+=1;后a[0],a[1],a[2] 次是(C )

A、10,11,12

B、11,12,12

C、10,12,12

D、11,11,12

7. 设有int i ;则表达式i=1,++i,i||++i,i 的值为(B )

A、1

B、2

C、3

D、4

8. 单片机8051的XTAL1和XTAL2引脚是(D )引脚。

A、外接定时器

B、外接串行口

C、外接中断

D、外接晶振

9、单片机的定时器/计数器设定为工作方式1时,是(D

A、8位计数器结构

B、2个8位计数器结构

C、13位计数器结构

D、16位计数器结构

10、串行口每一次传送( C )字符。

A、1个字节

B、1bit

C、1帧

D、1串

11、计算机能直接识别的语言是(C )o

A、汇编语言

B、自然语言

C、机器语言

D、C语言

12、MCS —51单片机的CPU主要的组成部分为(A )o

A、运算器、控制器

B、加法器、寄存器

C、运算器、加法器

D、运算器、译码器

13、MCS-51系列单片机芯片是双列直插式封装的,有( C )个引脚。

A、24

B、30

C、40

D、50

14、MCS-51的中断允许触发器内容为83H , CPU将响应的中断请求是(A )。

A、T0

B、INT1

C、串行接口

D、INT0

15、P0 口作数据线和低8位地址线时(C )o

A、应外接上拉电阻

B、不能作I/O 口

C、能作I/O 口

D、应外接高电平

二、判断题:(每小题1分,共10分。正确的在括号内打错误的打“X。”判对得分,不判、判错均不得分。)

1若一个函数的返回类型为void,则表示其没有返回值。(Y )

2. 特殊功能寄存器的名字,在C51程序中,全部大写。(Y )

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

4. #in elude 与#include “ reg51.l是等价的。(Y )

5. sbit不可以用于定义内部RAM的可位寻址区,只能用在可位寻址的SFR上。(N )

6. Continue 和break都可用来实现循环体的中止。( N )

7?若一个函数的返回类型为void,则表示其没有返回值。(Y )

&所有定义在主函数之前的函数无需进行声明。(N )

9、int i,*p=&i ;是正确的C说明。(Y )

10、7&3+12 的值是15。(Y )

11、一个函数利用return不可能同时返回多个值。(Y )

12、51单片机只能做控制用,不能完成算术运算。(N )

13、MCS-51的中断源全部编程为同级时,优先级最高的是INT1。(N )

14、MCS- 51单片机的CPU能同时处理8位二进制数据。(Y )

15、单片机的主频越高,其运算速度越快。(N )

16、为了消除按键的抖动,常用的方法有硬件和软件两种方法。(Y )

三、填空(每空1分,共20分。在空白处填上正确的内容)

1. KeiL C51软件中,工程文件的扩展名是_ _UV2 ,编译连接后生成可烧写的文件扩

展名是 ____ hex _______ 。

2. C51支持的指针有一般指针和存储器指针”

3. C51中,没有专门的循环语句,我们可以用函数—crol ____________ 完成一个字节的循环

左移,用_irol _ 完成二个字节的循环左移。

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

5. C语言中输入和输出操作是由库函数scanf 和printf

等函数来完成。

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

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

&变量的指针就是变量的地址;指针变量的值是指针。

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

10. C51的数据类型有基本类型、________ 、

、」

类型”

11. C51的基本数据类型有位型、字符型、整形、长整形、浮点型、

双精度浮点型”

12. C51的构造数据类型有数组类型、结构类型、共用体

14. C51 的存储模式有small 、compact 禾和large 。

15. C51程序与其他语言程序一样,程序结构也分为顺序结构______ 、—、」

环结构三种。

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

17. 在单片机扩展时,______ P0 ____________________ 口和一P2 口为地址线,一P0 口又分时作为数

据线。

18、在MCS-51单片机中,如采用6MHZ晶振,一个机器周期为2us 。

19、消除键盘抖动常用两种方法,一是采用硬件,用基本RS触发器构成;二是

采用

方法可判断是否有键抖动。|

20、在串行通信中,根据数据传送方向分为单工、半双工和全双工三种方式。

四、问答题(共20分)

1. 简述C51语言和汇编语言的比较(5分)

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

①编程调试灵活方便;

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

③模块化开发;

④可移植性好;

⑤便于项目的维护;

2. 简述单片机的C语言的特点(7分)

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

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

②C51能方便的管理内部寄存器的分配、不同存储器的寻址和数据类型等细节问题,但对

硬件控制有限;而汇编语言可以完全控制硬件资源;

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

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

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

加,可读性差;

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

软件开发效率;

⑦使用汇编语言编制的程序,当机型改变时,无法直接移植使用,而C语言程序是面向用户的程序设计语言,能在不同机型的机器上运行,可移植性好。

3. 哪些变量类型是51单片机直接支持的?(5分)

答:C51编译器支持的数据类型有:位型( bit )、无符号字符型(unsigned char )、有符号字符型(signed char )、无符号整型(unsigned int )、有符号整型(signed

int )、无符号长整型(unsigned long )、有符号长整型(signed long )、浮点型 (float )和指针型等。C51编译器支持的数据类型、长度和值域如表1-1所示。

表1-1 C51 的数据类型

4. 简述C51的数据存储类型(10分)

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

序存储区。8051单片机内部的数据存储区是可读写的,8051派生系列最多可有256字节的内部数据存储区,其中低128字节可直接寻址,高128字节(从0x80到0xFF )只能间接寻址,从20H开始的16字节可位寻址。内部数据区可分为3个不同的存储类型:data、idata 和bdata 。

外部数据区也是可读写的,访问外部数据区比访问内部数据区慢,因为外部数据区是

通过数据指针加载地址来间接访问的。C51提供两种不同的存储类型xdata 和pdata访问外部数据。

程序存储区是只能读不能写。程序存储区可能在8051单片机内部或者在外部或者内外

都有,这由8051单片机的硬件决定。C51提供了code存储类型来访问程序存储区。

每个变量可以明确地分配到指定的存储空间,对内部数据存储器的访问比对外部数据

存储器的访问快许多,因此应当将频繁使用的变量放在内部存储器中,而把较少使用的变量

放在外部存储器中。各存储区的简单描述如表1-2所示。

以上介绍的是C51的数据存储类型,C51存储类型及其大小和值域如表1-3所示。

表1-3 C51存储类型及其大小和值域

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

答:MCS-51通过其特殊功能寄存器(SFR)实现对其内部主要资源的控制。MCS-51

单片机有21个SFR,有的单片机还有更多的SFR,它们分布在片内RAM的高128字节中,其地址能够被8整除的SFR一般可以进行位寻址。关于MCS-51单片机的特殊功能寄存器参看附录A。对SFR只能用直接寻址方式访问。C51允许通过使用关键字sfr、sbit或直接引用编

译器提供的头文件来实现对SFR的访问。

(1 )使用关键字定义sfr

为了能直接访问特殊功能寄存器SFR, C51提供了一种自主形式的定义方法。这种定义

方法与标准的C语言不兼容,只适用于对8051系列单片机进行C编程。这种定义的方法是引入关键字“ sfr ”,语法如下:

sfr 特殊功能寄存器名字=特殊功能寄存器地址;

如:

sfr SCON=0x98 ;/*串口控制寄存器地址98H*/

sfr TMOD=0X89 ;/*定时器/计数器方式控制寄存器地址89H*/

(2 )通过头文件访问SFR

8051 系列单片机的寄存器数量与类型是极不相同的,因此对单片机特殊功能寄存器的

访问可以通过对头文件的访问来进行。

为了用户处理方便,C51编译器把MCS-51单片机的常用的特殊功能寄存器和特殊位进行了定义,放在一个“reg51.h ”或“reg52.h ”的头文件中。当用户要使用时,只需要在使用之前用一条预处理命令“#include ” 把这个头文件包含到程序中,然后就可以使用特殊功能寄存器名和特殊位名称了。用户可以通过文本编辑器对头文件进行增减。

(3)SFR中位定义

在8051单片机的应用问题中,经常需要单独访问SFR中的位,C51的扩充功能使之成

为可能,使用关键字“sbit ”可以访问位寻址对象。特殊位(sbit )的定义,像SFR一样不

与标准C兼容。

与SFR定义一样,用关键字“sbit ”定义某些特殊位,并接受任何符号名,“=”号后将绝对地址赋给变量名。这种地址分配有三种方法:

第一种方法:

sbit 位名=特殊功能寄存器名A位置;

当特殊功能寄存器的地址为字节(8位)时,可使用这种方法。特殊功能寄存器名必须

是已定义的SFR的名字。“A”后的位置”语句定义了基地址上的特殊位的位置。该位置必须是0?7的数。如:

第二种方法:

sbit 位名=字节地址A位置;

这种方法是以一个整常数为基地址,该值必须在0x80?0xFF之间,并能被8整除,确

定位置的方法同上。

相关主题
相关文档
最新文档