C51语言复习题参考答案_第1页
C51语言复习题参考答案_第2页
C51语言复习题参考答案_第3页
C51语言复习题参考答案_第4页
C51语言复习题参考答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一,单一选择题: (每个问题2分,共10分)。选择每个小标题的替代答案之一,并将正确答案的代码放在括号内。选择对分数,未选择,选择错误都不能划分。),以获取详细信息1.您可以使用以下(d)关键字变更工作登录集a、interrupt B、sfrc、while D、using2.C51的普通指针变量占用(c)字节存储。a、b、c 2个、d 3个、4个3.使用宏访问绝对地址时,通常应包含的库文件为(b)a、reg51.h B、absacc.h C、intrins.h D、startup.h4.运行# define pa 8255 XBYTE0x 3ffc;PA8255=0x7e后存储单元0x3FFC的值为(a)a,Ox7e B,8255H C,待定d,7eint I;有。I=1、I、i| i、I的值为(c)a、1 B、2 C、3 D、46.int a =10,11,12,* p=a0;运行完成* p;* p=1;以下a0、a1、a2的值为(c)a、10,11,12 B、11,12,12 C、10,12,12 D、11,11,12int I;有。表达式i=1,I,i| i,I的值为(b)a、1 B、2 C、3 D、4第二,解决问题: (每个问题1分,共10分。如果在括号中正确地打“”,就是错误的治理“”。评分,不判断,判断错误,就不能评分。),以获取详细信息1.如果函数的返回类型为void,则表示没有返回值。()2.特殊功能寄存器名称,C51程序中全部大写。()3.后跟“sfr”的地址可以表示为带有运算的表达式。()4.# include与# include“re g51 . h”相同。()5.sbit不能用于定义内部RAM的可位寻址区域,只能与可位SFR一起使用。()6.可以使用continue和break中断循环。()7.如果函数的返回类型为void,则表示没有返回值。()8.在主函数之前定义的所有函数都不需要声明。()9.int I,* p=I;有效的c说明。()10.73 12的值为15。()11.函数使用return时,不能同时返回多个值。()第三,填空(每个空白1分,共20分)。请在空间中填写正确的内容)1.在keil C51软件中,工程文件的扩展名为_ _ _ uv2 _ _ _ _ _ _ _ _ _ _ _ _,编译连接并生成可刻录文件的扩展名为_ _ _ _ _ _ hex _ _ _ _ _ _ _ _ _ _2.C51支持的指针有普通指针和内存指针。3.在C51中,使用_ _ _ _crol_ _函数向左移动一个字节的循环,并且_ _ _ _ crol _ _ _ _ _ _ _ _函数函数是c语言的基本单位。5.c语言的输入和输出操作由库函数scanf和printf等函数执行。描述Int i、j、k时;表达式i=10、j=20、k=30、k*=i j的值为_ 900_。7.数组是具有固定数量和相同类型组件的有序集合。8.变量的指针是变量的地址。指针变量的值是指针。9.在c语言中,通过组合几个不同类型的变量而创建的一个组合变量称为结构变量,简称结构。10.C51的数据类型包括默认类型、构造类型、指针类型和空类型。11.C51的预设资料类型为位元、文字、造型、长造型、浮点、倍精度浮点。12.C51的构造数据类型包括阵列类型、结构类型、共享体类型和梅花升程类型。13.C51的存储类型为data、bdata、idata、pdata、xdata和code。14.C51的存储模式包括SMALL、COMPACT和LARGE。15.与其他语言程序一样,C51程序也分为程序结构顺序结构、选择结构(或分支结构)和循环结构三种。数组的一个重要用途是检查表。17.四、回答问题(共20分)1.C51语言与汇编语言比较(五点)简述使用C51语言的嵌入式系统开发具有汇编语言无法比拟的优点:编程调试灵活方便。生成的代码编译效率;模块化开发;可移植性好。便于项目维护。单片机c语言的特点简述(7点)单片机c语言的特点主要体现在以下方面:不需要了解机器硬件和命令系统,只需要对MCS-51的存储结构有初步的了解。 C51易于管理内部寄存器分配、其他内存的寻址和数据类型等详细问题,但硬件控制是有限的。汇编语言可以完全控制硬件资源。 C51在小应用中生成大代码,运行缓慢;但是在更大的程序中,代码更有效率。 C51程序由多个模块构成,便于改进和扩展。 C51方案可读性好,维护性好。汇编语言在大型应用程序开发中的开发难度提高,可读性降低。 C51具有丰富的库功能,大大减少了用户编程,大大缩短了编程调试时间,大大提高了软件开发效率。用汇编语言编写的程序,模型改变后不能直接移植使用,而c语言程序可以用面向用户的编程语言在其他模型的机器上运行,移植性好。51单片机直接支持哪些变量类型?(5分)答:C51编译器支持的数据类型包括“位”(bit)、“无符号字符型”(unsigned char)、“有符号字符型”(signed char)、“无符号整数”(signed int)和“无符号长度整数”C51编译器支持的数据类型、长度和值字段显示在表1-1中。表1-1 C51中的数据类型数据类型长度/位长度/byte值班比特10,1Unsigned char810-255Signed char81-128-127Unsigned int1620-65 535Signed int162-32768-32767Unsigned long3240-4 294 967 295Signeedlong324-2 147 483 648-2 147483 647弗洛特3241.176e-38至3.40e 38 (6位数字)双乳6481.176e-38至3.40e 38 (10位数字)一般指标243存储空间0到65 535C51数据存储类型(10点)的简要说明答:我知道8051单片机存储可以分为内部数据存储、外部数据存储和程序存储。8051单芯片内部的数据存储是可读和写的,8051派生系列最多可以有256字节的内部数据存储。其中,低128字节可以直接寻址,高128字节(0x80到0xFF)只能间接寻址,从20H开始的16字节可以指定位地址。内部数据区域可以分为三种存储类型:data、idata和bdata。外部数据区域也是可读写的,访问外部数据区域比访问内部数据区域慢。这是因为外部数据区域是通过数据指针加载地址间接访问的。C51提供了两种不同的存储类型xdata和pdata来访问外部数据。程序存储库只能读取,不能写入。8051微控制器硬件确定的8051微控制器内部或外部可能存在程序存储。C51提供了用于访问程序存储的代码存储类型。每个变量都可以明确分配给指定的存储空间,对内部数据存储的访问速度比对外部数据存储的访问速度快得多,因此应将常用变量放在内部存储中,将较少使用的变量放在外部存储中。每个存储库的简要说明见表1-2。表1-2 C51存储类型与8051存储空间的对应关系存储说明数据片内RAM的低128字节,可在一个周期内直接寻址BDATA片上RAM的位寻址区域,16字节IDATA片中RAM的256字节,必须使用间接寻址XDATA外部数据存储,使用DPTR间接寻址PDATA外部存储库的256字节,通过P0端口的地址进行寻址。MOVX Ri需要两个命令周期代码使用DPTR寻址的程序资料档案库。如上所述,C51存储类型及其大小和值字段C51的数据存储类型,如表1-3所示。表1-3 C51存储类型及其大小和值域存储类型长度/位长度/byte值班数据810-255Idata810-255Pdata810-255代码1620-65 535Xdata1620-65 5355.C51的51单片机特殊功能寄存器定义方法简述(5分钟)答:MCS-51通过特殊功能寄存器(SFR)控制内部关键资源。MCS-51微控制器有21个SFR,有些微控制器分布在片内RAM的最大128字节中,SFR的地址可分为8个,通常是位寻址。有关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编译器在“reg51.h”或“reg52.h”头文件中定义了MCS-51单片机的通用特殊功能寄存器和特殊位。如果在用户使用前使用预处理命令“#include”将此头文件包括在程序中,则可以使用特殊功能寄存器名和特殊位名。您可以通过文本编辑器增加或减少标题文件。(3)定义SFR中间地点在8051单片机的应用问题中,经常需要单独访问SFR中的位,C51的扩展功能允许使用“sbit”关键字访问位寻址对象。与标准c不兼容的特殊位(sbit)的定义,例如SFR。与SFR定义一样,特定的特殊位由关键字“sbit”定义,接受任意符号名称和“=”字符,然后将绝对地址分配给变量名称。此地址分配有三种方法:第一种方法:Sbit位名称=特殊功能寄存器名称位置;当特殊功能寄存器的地址是字节(8位)时,可以使用此方法。特殊功能寄存器名称必须是定义的SFR的名称。“”后面的“位置”语句定义了主地址上的特殊位位置。此位置必须是0到7之间的数字。例如:第二种方法:Sbit位名称=字节地址位置;此方法基于0x80到0xFF之间的整个常量,与通过除以8确定位置的方法相同。第三种方法:Sbit位名称=位地址;此方法将位的绝对地址分配给变量,地址必须在0x80和0xFF之间。6.C51的data、bdata和idata之间有何区别?(6分)答:data、bdata和idata是表示数据的存储类型Data表示片内RAM的低128字节,可以在一个周期内直接寻址。Bdata是片上RAM的位寻址区域,表示16字节。Idata是片上RAM的256字节,必须使用间接寻址。7.C51的中断函数和一般函数的区别是什么?(6分)答:C51编译器允许使用中断系统自动调用的C51编写中断服务函数。中断函数以以下格式定义:函数类型函数名称interrupt n using n其中:Interrupt和using是关键字。Interrupt后面的n是中断源的编号,即中断号。由Using后的n选择的寄存器组的值范围为0-3。定义中断函数时,using是可以省略的选项。如果不使用Using选项,编译器会选择寄存器组作为绝对寄存器组。8051的中断过程是使用inter rupt关键字和中断号(0到31)实现的,中断号告诉编译器中断函数的门户地址。8.根据指定的数据类型和存储类型,创建以下变量的说明格式(6点)(1)在data区域中,定义文字变量val1答:char data vall(2)在id

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论