当前位置:首页 > 单片机 知识点总结
二、单项选择题:
1.89S51的内部程序存储器与数据存储
if_else if语句与使用switch语句有何哪个引脚启动?(A)
22.下列哪个IC具有将串行数据转换成要显示的字符放入何处?(B)DDRAM 33.若要将数据写入LCM,则应如何设置?(B)RS=1,R/~W=0
差异?(B)if-else if语句有优先级 (A)P3.2
12.对于低电平动作(低电平触发)的开器容量各为多少?(C)4KB、128B
2.在8x51芯片里,哪个引脚用于控制使用内部程序存储器还是外部程序存储器?(B)/EA
3.下列哪个不是KeilC的预处理命令?(C)#exit
4.下列哪个不是KeilC的数据类型?(B) (B)string
5.在8x51的输入/输出端口里,哪个输入/输出端口执行在输出功能时没有内部上拉电阻(A)P0
6.在KeilC的程序里,若要指定P0口的bit3,如何编写(C)P0^3 7.在8x51里,若要扩展外部存储器时,数据总线连接哪个输入/输出端口?P0 8.点亮一般的LED所耗的电流约为多少? (D)10~20mA
9.在8x51的程序里,若要将个输入/输出端口设置成输入功能,应如何处理?(A)
(A)先输出高电平到该输入/输出端口 10.根据实验统计,当操作开关时,其不
稳定关态大约持续多久?((B)10~20ms
11.在KeilC里,判读开关状态时,使用
关而言,下列哪个不是在输入口上连接一个上拉电阻VCC的目的? (A)提供足够的驱动电流 13.中断功能具有什么好处? (C)让程序更有效率
14.8x51的IP缓存器的功能为何?(A) (A)设置中断优先级 15.在KeilC里,中断子程序与函数有何不同?(A)
(A)中断子程序不必声明 16.若要同时启用INT0及INT1中断功能,则应如何设置?(B)IE=0x85 17.若要提高INT1的优先级,则应如何设置?(C)IP=0x04
18.在8x51的Timer里,若使用Mode 0,其最大计数值为多少个机器周期?(B) (B)8192
19.12 MHz的8x51系统里,哪一种方式
一次可定时5ms?(A)
(A)Mode0及Mode1 20.8x51的定时器,在下列哪种方式下具有自动加载功能?(C)Mode2 21.若将Timer0设置为外部启动,则可由
并行数据的功能?(B)74164 23.在同一时刻,只能接收或发送信号者称为什么?(A)半双工 24‘在8x51的串行口里,在哪一种方式下,可利用Timer1产生波特率?(C) (C)Mode2
25.在8x51里,若通过串行端口传出数据,则只要将数据放入哪个寄存器,CPU就会自动将它会传出(B)SBUF 26. 26.在8x51里,若CPU完成串行端口数据的接收将会如何?(D) (D)将RI标志变为1
27.若要设置8x51串行端口方式,可在哪个寄存器中设置?(B)SCON 28.在共阳极8*8LED点阵里,其阳极如何连接?各行阳极连接到列引脚 29.在共阳极8*8点阵里,其阴极如何连接?(A)各行阴极连接到行引脚 30.通常8*8LED点阵的驱动方式是什么?(B)扫描驱动
31.若要对LCM下指令,则应如保设置?(A)RS=0,R/~W=0
32.若要在LCM中显示些字符,则需把所
341.利用下列( using )关键字可以改变工作寄存器组
35.C51中一般指针变量占用( 三个 )字节存储。
36.使用宏来访问绝对地址时,一般需包含的库文件是 B、absacc.h 37
执
行
#define
PA8255 XBYTE[0x3FFC];,PA8255=0x7e 后存储单元0x3FFC的值是A、Ox7e 38.设有
int i;则表达式
i=1,++i,++i||++i,i的值为 C、3 39设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是 C、10,12,12 40.设有
int i;则表达式
i=1,++i,i||++i,i的值为 2 1.若一个函数的返回类型为void,则表示其没有返回值。( √ )
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. 数组 是一组有固定数目和相同类型成分分量的有序集合。
8.变量的指针就是变量的 地址 ;指针变量的值是 指针 。 9.在C语言中,把多个不同类型的变量
结合在一起形成的一个组合型变量,称为 结构变量 ,简称 结构 。
10.C51的数据类型有 基本类型 、 构造类型 、 指针类型 、 空类型 。
11.C51的基本数据类型有 位型 、 3.简述单片机的C语言的特点 字符型 、 整形 、 长整形 、 浮单片机的C语言的特点主要体现在以下点型 、 双精度浮点型 。
几个方面:① 无需了解机器硬件及其指12.C51的构造数据类型有 数组类令系统,只需初步了解MCS-51的存储器型 、 结构类型 、 共用体型 、 梅结构;② C51能方便的管理内部寄存器举型 。
的分配、不同存储器的寻址和数据类型等13.C51的存储类型有 data 、 细节问题,但对硬件控制有限;而汇编语bdata 、 idata 、 pdata 、 言可以完全控制硬件资源;③ C51在小xdata 、 code 。
应用程序中,产生的代码量大,执行速度14.C51的存储模式有 SMALL 、
慢;但在较大的程序中代码效率高;④ COMPACT 和 LARGE 。
C51程序由若干函数组成,具有良好的模15.C51程序与其他语言程序一样,程序块化结构,便于改进和扩充; ⑤ C51结构也分为 顺序结构 、 选择结构程序具有良好的可读性和可维护性;而汇(或分支结构) 、 循环结构 三种。
编语言在大应用程序开发中,开发难度增16.数组的一个很重要的用途就是 查加,可读性差; ⑥ C51有丰富的库函表 。
数,可大大减少用户的编程量,显著缩短四、问答题
编程与调试时间,大大提高软件开发效1.简述C51语言和汇编语言的比较
率;⑦ 使用汇编语言编制的程序,当机使用C51语言进行嵌入式系统的开型改变时,无法直接移植使用,而C语言发,有着汇编语言所不可比拟的优势: 程序是面向用户的程序设计语言,能在不① 编程调试灵活方便;② 生成的代码编
同机型的机器上运行,可移植性好。 译效率高;③ 模块化开发;④ 可移植性6.C51 和Turbo C 的数据类型和存储好;⑤ 便于项目的维护; 类型有哪些异同点?
答:C51增加了位变量,取消了布 尔变量。
2
2.简述单片机的C语言和标准C的比较 答:单片机的C语言和标准C的比较主要有以下几点不同:
① C51中定义的库函数和标准的C语言定义的库函数不同;② C51中的数据类型和标准C的数据类型也有一定的区别;③ C51变量的存储模式与标准C中变量的存储模式不一样;④ C51与标准C的输入/输出处理不一样;⑤ C51与标准C语言在函数使用方面有一定的区别。
4.简述使用KeilC51开发工具开发软件的流程 主要包括以下 ① 创建一个项目,从器件库中选择目标器件并配置工具软件的设置;② 用C语言或汇编语言创建源程序;③ 用项目管理器生成用户的应用;④ 修改源程序中的错误;⑤ 调试链接后的应用。如图1-1
1.哪些变量类型是51单片机直接支持的?答:C51编译器支持的数据类型有:位型(bit)、无符号字符型(unsigned char)、有符号字符型(signed char)、无符号整型(unsigned int)、有符号整型(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点型(float)和指针型等。C51编译器支持的数据类型、长度和值域如表2-1所示表2-1 C51的数据类型
数据类长长值域 型 度度/b/byit te bit 1 0,1 unsig8 1 0~255 ned char signe8 1 -128~d 127 char unsig16 2 0~65 ned 535 int signe16 2 -32 d int 768~32 答:我们都知道,8051单片机存储767 区可分为内部数据存储区、外部数据存储unsig32 4 0~4 294 区以及程序存储区。8051单片机内部的ned 967 295 数据存储区是可读写的,8051派生系列long 最多可有256字节的内部数据存储区,其
signe32 4 -2 147 中低128字节可直接寻址,高128字节(从d 483 0x80到0xFF)只能间接寻址,从20H开long 648~2 始的16字节可位寻址。内部数据区可分147483 为3个不同的存储类型:data、idata647 和bdata。
float 32 4 ±1.176E外部数据区也是可读写的,访问外部-38~数据区比访问内部数据区慢,因为外部数±3.40E+据区是通过数据指针加载地址来间接访38(6位数问的。C51提供两种不同的存储类型字) xdata和pdata访问外部数据。
doubl64 8 ±1.176E程序存储区是只能读不能写。程序存e -38~储区可能在8051单片机内部或者在外±3.40E+部或者内外都有,这由8051单片机的硬38(10位件决定。C51提供了code存储类型来访数字) 问程序存储区。
一般针 24 3 存储空间 每个变量可以明确地分配到指定的0~65 存储空间,对内部数据存储器的访问比对535 外部数据存储器的访问快许多,因此应当将频繁使用的变量放在内部存储器中,而
把较少使用的变量放在外部存储器中。
2.简述C51的数据存储类型
存储区 描述 3
片内RAM的低128字DATA 节,可在一个周期内直接寻址 BDATA 片内RAM的位寻址区,16字节 IDATA 片内RAM的256字节,必须采用间接寻址 XDATA 外部数据存储区,使用DPTR间接寻址 外部存储区的256个字节,通过P0口的地址对PDATA 其寻址。使用MOVX @Ri,需要两个指令周期 程序存储区,使用DPTRCODE 寻址。 表2-3 C51存储类型及其大小和值域
存储长长度值类型 度/byt域 /bie t data 8 1 0~255 idat8 1 0a ~255 pdat8 1 0a ~255 code 16 2 0~65 535 xdat16 2 0a ~65 535
3.简述C51对51单片机特殊功能寄存器
的定义方法
寄存器的访问可以通过对头文件的访问答:MCS-51通过其特殊功能寄存器来进行。
(SFR)实现对其内部主要资源的控制。为了用户处理方便,C51编译器把MCS-51单片机有21个SFR,有的单片机MCS-51单片机的常用的特殊功能寄存器还有更多的SFR,它们分布在片内RAM的和特殊位进行了定义,放在一个高128字节中,其地址能够被8整除的“reg51.h”或“reg52.h”的头文件中。SFR一般可以进行位寻址。关于MCS-51当用户要使用时,只需要在使用之前用一单片机的特殊功能寄存器参看附录A。对条预处理命令“#include
SFR只能用直接寻址方式访问。C51允许
对头文件进行增减。(3)SFR中位定义
为了能直接访问特殊功能寄存器在8051单片机的应用问题中,经常SFR,C51提供了一种自主形式的定义方需要单独访问SFR中的位,C51的扩充功法。这种定义方法与标准的C语言不兼容,能使之成为可能,使用关键字“sbit”可只适用于对8051系列单片机进行C编程。以访问位寻址对象。特殊位(sbit)的这种定义的方法是引入关键字“sfr”,语定义,像SFR一样不与标准C兼容。
法如下:sfr 特殊功能寄存器名字 = 与SFR定义一样,用关键字“sbit”特殊功能寄存器地址;
定义某些特殊位,并接受任何符号名,如:sfr SCON=0x98; “=”号后将绝对地址赋给变量名。这种地
/*串口控制寄存器地址98H*/ 址分配有三种方法:
sfr TMOD=0X89;
/*
第一种方法:
定时器/计数器方式控制寄存器地址sbit 位名=特殊功能寄存器名^89H*/(2)通过头文件访问SFR 位置;当特殊功能寄存器的地址为字节(8 8051系列单片机的寄存器数量与类位)时,可使用这种方法。特殊功能寄存型是极不相同的,因此对单片机特殊功能
器名必须是已定义的SFR的名字。“^”后
4
的“位置”语句定义了基地址上的特殊位的位置。该位置必须是0~7的数。如:
第二种方法:sbit 位名=字节地址^位置;这种方法是以一个整常数为基地址,该值必须在0x80~0xFF之间,并能被8整除,确定位置的方法同上。
第三种方法:sbit 位名=位地址; 这种方法将位的绝对地址赋给变量,地址必须在0x80~0xFF之间。
12.C51选择语句、循环语句包含那些?选择语句:if语句和switch语句 循环语句:1 基于if和goto构成的循环,2 基于while语句构成的循环,3 基于do-while语句构成的循环,4 基于for语句构成的循环,5 无限循环的实现 16.外部中断源初始化步骤是什么? 外部中断源初始化 2个外部中断源:
/INT0中断,外部中断0请求,占用P3.2引脚,其中断请求号为0。
/INT1中断,外部中断1请求,占用P3.3引脚,其中断请求号为2。 (1)TCO寄存器中的IT0、IT1位 (2)IP寄存器中的PX0、PX1位 (3)IE寄存器中的EA、EX0、EX1位 4.简述C51对51单片机片内I/O口和外
共分享92篇相关文档