ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:32.02KB ,
资源ID:22062571      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22062571.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(山科大《单片机的C语言程序设计与运用第2版》期末复习题和答案1文档格式.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

山科大《单片机的C语言程序设计与运用第2版》期末复习题和答案1文档格式.docx

1、(A)void (B)string (C)char (D)float5.在8x51的输入/输出端口里,哪个输入/输出端口执行在输出功能时没有内部上拉电阻(A)(A)P0 (B)P1 (C)P2 (D)P36在KeilC的程序里,若要指定P0口的bit3,如何编写?(A)P0.3 (B)Port0.3 (C)P03 (D)Port37.在8x51里,若要扩展外部存储器时,数据总线连接哪个输入/输出端口?(A)8点亮一般的LED所耗的电流约为多少?(D)(A)15uA (B)1020uA (C)15mA (D)1020mA9.在8x51的程序里,若要将个输入/输出端口设置成输入功能,应如何处理?(

2、A)先输出高电平到该输入/输出端口 (B)先输出低电平到该输入/输出端口(C)先读取该输入/输出端口的状态 (D)先保存该输入/输出端口的状态10根据实验统计,当操作开关时,其不稳定关态大约持续多久?(A)15ms (B)1020ms (C)100150ms (D)150250us11.在KeilC里,判读开关状态时,使用if_else if语句与使用switch语句有何差异?(A)if-else if 语句较快 (B)if-else if语句有优先级 (C)switch语句可判读较多开关状态 (D)switch语句有优先级12对于低电平动作(低电平触发)的开关而言,下列哪个不是在输入口上连接

3、一个上拉电阻VCC的目的?(A)提供足够的驱动电流 (B)防止确定状态 (C)保持输入高电平 (D)防止噪声干扰13.中断功能具有什么好处?(A)让程序更复杂 (B)让程序执行速度更快 (C)让程序更有效率 (D)以上皆非148x51的IP缓存器的功能为何?(A)设置中断优先级 (B)启用中断功能 (C)设置中断触发信号 (D)定义CPU的网址15.在KeilC里,中断子程序与函数有何不同?(A)中断子程序不必声明 (B)函数不必声明 (C)中断子程序必须有形式参数 (D)中断子程序一定会有返回值16若要同时启用INT0及INT1中断功能,则应如何设置?(A)TCON=0x81 (B)IE=0

4、x85 (C)IP=0x83 (D)IE=0x0317.若要提高INT1的优先级,则应如何设置?(A)IP=0x01 (B)IE=0x01 (C)IP=0x04 (D)IE=0x0418.在8x51的Timer里,若使用Mode 0,其最大计数值为多少个机器周期?(A)65636 (B)8192 (C)1024 (D)25619.12 MHz的8x51系统里,哪一种方式一次可定时5ms?(A)Mode0及Mode1 (B)Mode1及Mode2 (C ) Mode2及Mode3 (D) Mode3及Mode1 20.8x51的定时器,在下列哪种方式下具有自动加载功能?(A)Mode0 (B)

5、Mode1 (C)Mode2 (D)Mode321.若将Timer0设置为外部启动,则可由哪个引脚启动?(A)P3.2 (B)P3.3 (C)P3.4 (D)P3.522.下列哪个IC具有将串行数据转换成并行数据的功能?(A)74138 (B)74164 (C)74165 (D)7416823在同一时刻,只能接收或发送信号者称为什么?(A)半双工 (B)全双工 (C)半单工 (D)单工24在8x51的串行口里,在哪一种方式下,可利用Timer1产生波特率?(A)Mode0 (B)Mode1 (C)Mode2 (D)Mode325.在8x51里,若通过串行端口传出数据,则只要将数据放入哪个寄存器

6、,CPU就会自动将它会传出?(A)SMOD (B)SBUF (C)PCON (D)RBUF26.在8x51里,若CPU完成串行端口数据的接收将会如何?(A)将TI标志变为0 (B)将RI标志为0 (C)将TI标志变为了 1 (D)将RI标志变为127若要设置8x51串行端口方式,可在哪个寄存器中设置?(A)SMOD (B)SCON (C)PCON (D)TCON28在共阳极8*8LED点阵里,其阳极如何连接?(A)各行阳极连接到行引脚 (B)各列阳极连接到列引脚 (C)各行阳极连接到列引脚 (D)各列阳极连接到行引脚29在共阳极8*8点阵里,其阴极如何连接?(A)各行阴极连接到行引脚 (B)各

7、列阴极连接到列引脚 (C)各行阴极连接到列引脚 (D)各列阴极连接到行引脚30通常8*8LED点阵的驱动方式是什么?(A)直接驱动 (B)扫描驱动 (C)双向驱动 (D)以上皆非31若要对LCM下指令,则应如保设置?(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中显示些字符,则需把所要显示的字符放入何处?(A)CG RAM (B)DDRAM (C)IRAM (D)GDRAM33若要将数据写入LCM,则应如何设置?(A)RS=0,R/W=0 (B)RS=1,R/W=0 (C)RS=1,R/W=1 (D)RS=0,R

8、/w=1341利用下列( D )关键字可以改变工作寄存器组A、interruptB、sfrC、while D、using35C51中一般指针变量占用( C )字节存储。A、一个 B、两个 C、三个 D、四个36使用宏来访问绝对地址时,一般需包含的库文件是(B)A、reg51.h B、absacc.h C、intrins.h D、startup.h37执行#define PA8255 XBYTE0x3FFC;PA8255=0x7e;后存储单元0x3FFC的值是(A)A、Ox7e B、8255H C、未定 D、7e38设有int a =10,11,12,*p=&a0;则执行完*p+;*p+=1;后

9、a0,a1,a2的值依次是 (C)A、10,11,12 B、11,12,12 C、10,12,12 D、11,11,12A、1 B、2 C、3 D、4三、判断题:(每小题1分,共10分。正确的在括号内打“”,错误的打“”。判对得分,不判、判错均不得分。1若一个函数的返回类型为void,则表示其没有返回值。( )2特殊功能寄存器的名字,在C51程序中,全部大写。()3“sfr”后面的地址可以用带有运算的表达式来表示。(4#include 与#include “reg51.h”是等价的。5sbit不可以用于定义内部RAM的可位寻址区,只能用在可位寻址的SFR上。()6Continue 和break

10、都可用来实现循环体的中止。7所有定义在主函数之前的函数无需进行声明。8int i,*p=&i;是正确的C说明。97&3+12的值是15。10一个函数利用return不可能同时返回多个值。四、问答题1简述C51语言和汇编语言的比较使用C51语言进行嵌入式系统的开发,有着汇编语言所不可比拟的优势: 编程调试灵活方便; 生成的代码编译效率高; 模块化开发; 可移植性好; 便于项目的维护;2简述单片机的C语言和标准C的比较答:单片机的C语言和标准C的比较主要有以下几点不同: C51中定义的库函数和标准的C语言定义的库函数不同; C51中的数据类型和标准C的数据类型也有一定的区别; C51变量的存储模式

11、与标准C中变量的存储模式不一样; C51与标准C的输入/输出处理不一样; C51与标准C语言在函数使用方面有一定的区别。3简述单片机的C语言的特点单片机的C语言的特点主要体现在以下几个方面: 无需了解机器硬件及其指令系统,只需初步了解MCS-51的存储器结构; C51能方便的管理内部寄存器的分配、不同存储器的寻址和数据类型等细节问题,但对硬件控制有限;而汇编语言可以完全控制硬件资源; C51在小应用程序中,产生的代码量大,执行速度慢;但在较大的程序中代码效率高; C51程序由若干函数组成,具有良好的模块化结构,便于改进和扩充; C51程序具有良好的可读性和可维护性;而汇编语言在大应用程序开发中

12、,开发难度增加,可读性差; C51有丰富的库函数,可大大减少用户的编程量,显著缩短编程与调试时间,大大提高软件开发效率; 使用汇编语言编制的程序,当机型改变时,无法直接移植使用,而C语言程序是面向用户的程序设计语言,能在不同机型的机器上运行,可移植性好。4简述使用KeilC51开发工具开发软件的流程使用Keil Software工具时,用户的项目开发流程和其它软件开发项目的流程极其相似,主要包括以下几个步骤:创建一个项目,从器件库中选择目标器件并配置工具软件的设置;用C语言或汇编语言创建源程序;用项目管理器生成用户的应用;修改源程序中的错误;调试链接后的应用。一个完整的8051工具集的框图可以

13、很好地表述此开发流程,如图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的数据类型数据类型长度/bit长度/byte值域bit10,1unsigned char80255signed char-12812

14、7unsigned int162065 535signed int-32 76832 767unsigned long32404 294 967 295signed long-2 147 483 6482 147483 647float1176E-38340E+38(6位数字)double64340E+38(10位数字)一般指针243存储空间 065 5352简述C51的数据存储类型我们都知道,8051单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。8051单片机内部的数据存储区是可读写的,8051派生系列最多可有256字节的内部数据存储区,其中低128字节可直接寻址,高128

15、字节(从0x80到0xFF)只能间接寻址,从20H开始的16字节可位寻址。内部数据区可分为3个不同的存储类型:data、idata和bdata。外部数据区也是可读写的,访问外部数据区比访问内部数据区慢,因为外部数据区是通过数据指针加载地址来间接访问的。C51提供两种不同的存储类型xdata和pdata访问外部数据。程序存储区是只能读不能写。程序存储区可能在8051单片机内部或者在外部或者内外都有,这由8051单片机的硬件决定。C51提供了code存储类型来访问程序存储区。每个变量可以明确地分配到指定的存储空间,对内部数据存储器的访问比对外部数据存储器的访问快许多,因此应当将频繁使用的变量放在内

16、部存储器中,而把较少使用的变量放在外部存储器中。各存储区的简单描述如表2-2所示。表2-2 C51存储类型与8051存储空间的对应关系存储区描述DATA片内RAM的低128字节,可在一个周期内直接寻址BDATA片内RAM的位寻址区,16字节IDATA片内RAM的256字节,必须采用间接寻址XDATA外部数据存储区,使用DPTR间接寻址PDATA外部存储区的256个字节,通过P0口的地址对其寻址。使用MOVX Ri,需要两个指令周期CODE程序存储区,使用DPTR寻址。以上介绍的是C51的数据存储类型,C51存储类型及其大小和值域如表2-3所示。表2-3 C51存储类型及其大小和值域存储类型da

17、taidatapdatacodexdata3简述C51对51单片机特殊功能寄存器的定义方法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

18、语言不兼容,只适用于对8051系列单片机进行C编程。这种定义的方法是引入关键字“sfr”,语法如下:sfr 特殊功能寄存器名字 = 特殊功能寄存器地址;如:sfr SCON=0x98; /*串口控制寄存器地址98H*/sfr TMOD=0X89; /*定时器/计数器方式控制寄存器地址89H*/ (2)通过头文件访问SFR 8051系列单片机的寄存器数量与类型是极不相同的,因此对单片机特殊功能寄存器的访问可以通过对头文件的访问来进行。 为了用户处理方便,C51编译器把MCS-51单片机的常用的特殊功能寄存器和特殊位进行了定义,放在一个“reg51.h”或“reg52.h”的头文件中。当用户要使用

19、时,只需要在使用之前用一条预处理命令“#include ”把这个头文件包含到程序中,然后就可以使用特殊功能寄存器名和特殊位名称了。用户可以通过文本编辑器对头文件进行增减。 (3)SFR中位定义在8051单片机的应用问题中,经常需要单独访问SFR中的位,C51的扩充功能使之成为可能,使用关键字“sbit”可以访问位寻址对象。特殊位(sbit)的定义,像SFR一样不与标准C兼容。与SFR定义一样,用关键字“sbit”定义某些特殊位,并接受任何符号名,“=”号后将绝对地址赋给变量名。这种地址分配有三种方法:第一种方法:sbit 位名=特殊功能寄存器名位置;当特殊功能寄存器的地址为字节(8位)时,可使

20、用这种方法。特殊功能寄存器名必须是已定义的SFR的名字。“”后的“位置”语句定义了基地址上的特殊位的位置。该位置必须是07的数。第二种方法:sbit 位名=字节地址位置;这种方法是以一个整常数为基地址,该值必须在0x800xFF之间,并能被8整除,确定位置的方法同上。第三种方法:sbit 位名=位地址;这种方法将位的绝对地址赋给变量,地址必须在0x800xFF之间。4简述C51对51单片机片内I/O口和外部扩展的I/O口的定义方法C51对51单片机片内I/O口的定义方法是将片内I/O口看成SFR。C51对51单片机片外I/O的访问有两种比较常用的访问方法:(1)绝对宏C51编译器提供了一组宏定

21、义来对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区寻址;

22、(2)_at_关键字可以使用关键字_at_对指定的存储器空间的绝对地址进行访问,一般格式如下:存储器类型 数据类型说明符 变量名 _at_地址常数;其中,存储器类型为C51能识别的数据类型,如省略则按存储器模式规定的默认存储器类型确定变量的存储器区域;数据类型为C51支持的数据类型;地址常数用于指定变量的绝对地址,必须位于有效的存储器空间之内;使用_at_定义的变量必须为全局变量。5简述C51对51单片机位变量的定义方法除了通常的C数据类型外,C51编译器支持bit数据类型。采用关键字“bit”进行定义。bit direction_bit; /* 将direction_bit定义为位变量 */

23、bit lock_pointer; /* 将lock_pointer定义为位变量 */bit display_invers; /* 将display_invers定义为位变量 */6C51 和Turbo C 的数据类型和存储类型有哪些异同点?C51增加了位变量,取消了布尔变量。 7C51 的data、bdata、idata 有什么区别?data、bdata、idata是表明数据的存储类型,data是指片内RAM的低128字节,可在一个周期内直接寻址;bdata是指片内RAM的位寻址区,16字节;idata是指片内RAM的256字节,必须采用间接寻址。 8C51中的中断函数和一般的函数有什么不同

24、?C51编译器允许用C51创建中断服务函数,中断函数是由中断系统自动调用的。中断函数的定义格式为: 函数类型 函数名 interrupt n using n 其中:interrupt和using为关键字;interrupt后面的n 为中断源的编号,即中断号;using后面的n所选择的寄存器组,取值范围为03。定义中断函数时,using是一个选项,可以省略不用。如果不用using选项,则由编译器选择一个寄存器组作为绝对寄存器组。8051的中断过程通过使用interrupt关键字和中断号(031)来实现,中断号告诉编译器中断函数的入口地址。9C51采用什么形式对绝对地址进行访问?绝对地址的访问包括片内RAM、片外RAM及I/O的访问。C51提供了两种比较常用的访问绝对地址的方法。#include#define PORTA XBYTE0xFFC0/*将PORT定义为外部I/O口,地址为0xFFC0,长度为8位*/#define NRAM DBYTE0x40 /*将NRAM定义为片内RAM,地址为40H,长度为8位*/其中,存储器类型为C51能识别的数据类型,如省略则按存储器模式规定的默认存储器类型确定变

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1