2016c51单片机复习资料习题及答案 下载本文

58、是非题:定时/计数器工作于定时方式时,是通过89C51片内振荡器输出经12分频后的脉冲进行计数,直至溢出为止。T

59、是非题:定时/计数器工作于计数方式时,是通过89C51的P3.4和P3.5对外部脉冲进行计数,当遇到脉冲下降沿时计数一次。T

60、是非题:定时/计数器在工作时需要消耗CPU的时间。F

61、是非题:定时/计数器的工作模式寄存器TMOD可以进行位寻址。F 61、当定时器To工作在方式3时,要占定时器T1的TR1和TF1_两个控制位. 62、是非题:定时/计数器在使用前和溢出后,必须对其赋初值才能正常工作。F 63、简述定时/计数器4种工作模式的特点。 模式1:是16位的定时器/计数器;

模式2:把TL0(或TL1)配置成一个可以自动重装载的8位定时器/计数器; 模式3:对T0和T1大不相同。

若将T0设置为模式3,则TL0和TH0被分为两个相互独立的8位计数器。定时器T1无工作模式3状态。

模式0:与模式1几乎完全相同,唯一的差别是模式0中,寄存器TL0用5位,TH0用8位。

65、单片机试验系统与微机是通过 串行通讯电缆 相连。

65、是非题:在51系列单片机的指令中,既有带借位的减法指令,又有不带借位的减法指令。F

67、单片机89C51的时钟频率为6MHz,若要求定时1ms,定时/计数器工作于模式1,其定时/计数器的初值为FE0CH 。

68、在串行通信中, 51中发送和接收的寄存器是( B) 。 A.TMOD B. SBUF C. SCON D. DPTR

68、是非题:单片机89C51的定时/计数器是否工作可以通过外部中断进行控制。T 69、单片机89C51具有 并行 通信和 串行 通信两种通信方式。

69. 在C51单片机中,使用P2、P0口对外部总线进行扩展,其中P2传送 高8位地址

线 信号,且使用了P0口分时来传送 低8位地址线 信号和8位数据信号。

70、是非题:并行通信的优点是传送速度高,缺点是所需传送线较多,远距离通信不方便。T

71、是非题:串行通信的优点是只需一对传送线,成本低,适于远距离通信,缺点是传送速度较低。T

72 、串行通信有 同步 通信和 异步 通信两种通信方式。 73、在异步通信中,数据的帧格式定义一个字符由4部分组成,即: 起始位 、数据位、 奇偶校验位 和停止位。

73、输入输出设备与主机的连接部分称为输入输出接口,接口有三大作用:___隔离与寻址______作用、____锁存与缓冲_____作用和信号电平与形式的变换作用。

5 / 39

74、是非题:异步通信中,在线路上不传送字符时保持高电平。T

75、是非题:在异步通信的帧格式中,数据位是低位在前高位在后的排列方式。T 76、是非题:异步通信中,波特率是指每秒传送二进制代码的位数,单位是b/s。T 77、串行通信中,为使设备同步工作,需要通信双方有两个共同的要求,一是 通信双方必须采用统一的编码方式 ,二是 通信双方必须能产生相同的传送速率 。

77、什么是中断和中断系统?计算机采用中断系统带来了哪些优越性?

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

1.CPU与外设同步工作 2.实时处理 3.故障处理

78、是非题:在89C51的串行通信中,串行口的发送和接收都是对特殊功能寄存器SBUF进行读/写而实现的。T

78、简述子程序调用和执行中断服务程序的异同点。

相同点:均能中断主程序执行本程序,然后再返回断点地址继续执行主程序。 不同点:

(1)中断服务程序入口地址是固定的,子程序调用入口地址是用户自己设定的。 (2)中断服务子程序返回指令除具有子程序返回指令所具有的全部功能之外,还有清除中断响应时被置位的优先级状态、开放较低级中断和恢复中断逻辑等功能。

(3)中断服务子程序是在满足中断申请的条件下,随机发生的;而子程序调用是用户主程序事先安排好的。

78、在C51中,函数返回值传递的规则是什么? 答:(1)调用时参数的传递

分三种情况:少于等于3个参数时通过寄存器传递(寄存器不够用时通过存储区传递),多于3个时有一部分通过存储区传递,对于重入函数参数通过堆栈传递。通过寄存器传递速度最快。 (2)函数返回值的传递

当函数有返回值时,其传递都是通过寄存器

79、单片机89C51中的串行通信共有 4 种方式,其中方式 0 是用作同步移位寄存器来扩展I/O口的。

80、是非题:在单片机89C51中,串行通信方式1和方式3的波特率是固定不变的。F 81、是非题:在单片机89C51中,读和写的SBUF在物理上是独立的,但地址是相同的。T

81、8051单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。8051单片机内部的,数据存储区是可读写的。8051派生系列最多可有256字节的内部数据存储区,

6 / 39

其中低128字节可直接寻址,高128字节(从0x80到0xFF)只能间接寻址,从20H开始的16字节可位寻址。内部数据区可分为3个不同的存储类型:data、idata、bdata。

外部数据区也是可读写的。访问外部数据区比访问内部数据区慢,因为外部数据区是通过数据指针加载地址来间接访问的。C51提供两种不同的存储类型xdata和pdata访问外部数据。

程序存储区是只能读不能写。程序存储区可能在8051单片机内部或者在外部或者内外都有,这由8051单片机的硬件决定。C51提供了code存储类型来访问程序存储区。

每个变量可以明确地分配到指定的存储空间,对内部数据存储器的访问比对外部数据存储器的访问快许多,因此应当将频繁使用的变量放在内部存储器中,而把较少使用的变量放在外部存储器中。

82、是非题:单片机89C51一般使用非整数的晶振是为了获得精确的波特率。T 83、是非题:单片机89C51和PC机的通信中,使用芯片MAX232是为了进行电平转换。T 83、MCS-51有一个全双工的 异 步串行口,有 4 种工作方式. 84、设89C51的晶振频率为11.0592MHz,选用定时器T工作模式2作波特率发生器,波特率为2400b/s,且SMOD置0,则定时器的初值为 F4H 。

85、(1)绝对宏

C51编译器提供了一组宏定义来对51系列单片机的code、data、pdata和xdata空间进行绝对寻址。在程序中,用“#include”即可使用其中声明的宏来访问绝对地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD,具体使用方法参考absacc.h头文件。其中:

CBYTE以字节形式对code区寻址;CWORD以字形式对code区寻址; DBYTE以字节形式对data区寻址;DWORD以字形式对data区寻址; XBYTE以字节形式对xdata区寻址;XWORD以字形式对xdata区寻址; PBYTE以字节形式对pdata区寻址;PWORD以字形式对pdata区寻址; (2)_at_关键字

可以使用关键字_at_对指定的存储器空间的绝对地址进行访问,一般格式如下: [存储器类型] 数据类型说明符 变量名 _at_地址常数;

其中,存储器类型为C51能识别的数据类型,如省略则按存储器模式规定的默认存储器类型确定变量的存储器区域;数据类型为C51支持的数据类型;地址常数用于指定变量的绝对地址,必须位于有效的存储器空间之内;使用_at_定义的变量必须为全局变量。5.C51对51单片机位变量的定义方法?

答:除了通常的C数据类型外,C51编译器支持bit数据类型。 用关键字“bit”进行定义。如:

bit direction_bit; /* 将direction_bit定义为位变量 */ bit lock_pointer; /* 将lock_pointer定义为位变量 */ bit display_invers;

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

7 / 39

6.C51 和Turbo C 的数据类型和存储类型有哪些异同点? C51增加了位变量,取消了布尔变量。

7.C51 的data、bdata、idata 有什么区别? data、bdata、idata是表明数据的存储类型,

data是指片内RAM的低128字节,可在一个周期内直接寻址; bdata是指片内RAM的位寻址区,16字节;

idata是指片内RAM的256字节,必须采用间接寻址。 8.C51中的中断函数和一般的函数有什么不同?

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

函数类型 函数名 interrupt n using n 其中:

interrupt和using为关键字;

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

定义中断函数时,using是一个选项,可以省略不用。如果不用using选项,则由编译器选择一个寄存器组作为绝对寄存器组。

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

86、C51采用什么形式对绝对地址进行访问?

答:绝对地址的访问包括片内RAM、片外RAM及I/O的访问。C51提供了两种比较常用的访问绝对地址的方法。 (1)绝对宏

C51编译器提供了一组宏定义来对51系列单片机的code、data、pdata和xdata空间进行绝对寻址。在程序中,用“#include”即可使用其中声明的宏来访问绝对地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD,具体使用方法参考absacc.h头文件。其中:

CBYTE以字节形式对code区寻址;CWORD以字形式对code区寻址; DBYTE以字节形式对data区寻址;DWORD以字形式对data区寻址; XBYTE以字节形式对xdata区寻址;XWORD以字形式对xdata区寻址; PBYTE以字节形式对pdata区寻址;PWORD以字形式对pdata区寻址; 如:

#include

#define PORTA XBYTE[0xFFC0]/*将PORT定义为外部I/O口,地址为0xFFC0,长度为8位*/ #define NRAM DBYTE[0x40] /*将NRAM定义为片内RAM,地址为40H,长度为8位*/ (2)_at_关键字

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

8 / 39