1、单片机 C 语言程序设计师试题 一、填空题 1、设 X=5AH,Y=36H,则 X 与 Y“或”运算为_,X 与 Y 的“异或”运算为_。 2、若机器的字长为 8 位,X=17,Y=35,则XY=_,XY=_(要求结果写出二进制形式) 。 3、单片机的复位操作是_(高电平/低电平) ,单片机复位后,堆栈指针 SP 的值是_。 4、单片机中,常用作地址锁存器的芯片是_,常用作地址译码器芯片是_。 5、若选择内部程序存储器,应该设置为_(高电平/ 低电平) ,那么,PSEN 信号的处理方式为_。 6、单片机程序的入口地址是_,外部中断 1 的入口地址是_。 7、若采用 6MHz 的晶体振荡器,则
2、MCS-51 单片机的振荡周期为_,机器周期为_。 8、外围扩展芯片的选择方法有两种,它们分别是_和_。 9、单片机的内部 RAM 区中,可以位寻址的地址范围是_,特殊功能寄存器中,可位寻址的地址是 _。 10、子程序返回指令是_,中断子程序返回指令是 _。 11、 8051 单片机的存储器的最大特点是_与_分开编址。 12、 8051 最多可以有_个并行输入输出口,最少也可以有_ 个并行口。13、_是 C 语言的基本单位。 14、串行口方式 2 接收到的第 9 位数据送_寄存器的 _位中保存。 15、 MCS-51 内部提供_个可编程的_位定时/ 计数器,定时器有_种工作方式。 16、一个函
3、数由两部分组成,即_和_。 17、串行口方式 3 发送的第 9 位数据要事先写入_ 寄存器的_位。18、利用 8155H 可以扩展_个并行口,_个 RAM 单元。 19、 C 语言中输入和输出操作是由库函数_和_等函数来完成。 二、选择题 1、 C 语言中最简单的数据类型包括( ) 。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 2、当 MCS-51 单片机接有外部存储器,P2 口可作为 ( )。 A、数据输入口 B、数据的输出口 C、准双向输入输出口 D、输出高 8 位地址 3、下列描述中正确的是( ) 。 A、程序就是软件 B、
4、软件开发不受计算机系统的限制 C、软件既是逻辑实体,又是物理实体 D、软件是程序、数据与相关文档的集合 4、下列计算机语言中,CPU 能直接识别的是( ) 。 A、 自然语言 B、 高级语言 C、 汇编语言 D、机器语言 5、MCS-5l 单片机的堆栈区是设置在( )中。 A、片内 ROM 区 B、片外 ROM 区 C、片内 RAM 区 D、片外 RAM 区 6、以下叙述中正确的是( ) 。 A、用 C 语言实现的算法必须要有输入和输出操作 B、用 C 语言实现的算法可以没有输出但必须要有输入 C、用 C 程序实现的算法可以没有输入但必须要有输出 D、用 C 程序实现的算法可以既没有输入也没有
5、输出 7、定时器/ 计数器工作方式 1 是( )。 A、8 位计数器结构 B、2 个 8 位计数器结构 C、 13 位计数结构 D、16 位计数结构 8、C 语言提供的合法的数据类型关键字是( ) 。 A、Double B、short C、integer D、Char 9、片内 RAM 的 20H2FH 为位寻址区,所包含的位地址是( )。 A、00H 20H B、00H7FH C、20H2FH D、00H FFH 10、以下能正确定义一维数组的选项是( ) 。 A、int a5=0,1,2,3,4,5; B、char a =0,1,2,3,4,5; C、char a=A,B,C;D、int
6、a5=“0123“; 11、数据的存储结构是指( ) 。 A、存储在外存中的数据 B、数据所占的存储空间量 C、数据在计算机中的顺序存储方式 D、数据的逻辑结构在计算机中的表示 12、下列关于栈的描述中错误的是( ) 。 A、栈是先进后出的先性表 B、栈只能顺序存储 C、栈具有记忆作用 D、对栈的插入和删除操作中,不需要改变栈底指针 13、在寄存器间接寻址方式中,间址寄存器中存放的数据是( )。 A、参与操作的数据 B、操作数的地址值 C、程序的转换地址 D、指令的操作码 14、MCS-51 单片机的复位信号是( )有效。 A、高电平 B、低电平 C、脉冲 D、下降沿 15、为了使模块尽可能独
7、立,要求( ) 。 A、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 16、若 MCS-51 单片机使用晶振频率为 6MHz 时,其复位持续时间应该超过( )。A、 2 s B、4s C、8s D、1ms 17、以下选项中可作为 C 语言合法常量的是( ) A、80 B、080 C、8e1.0 D、80.0e 18、能够用紫外光擦除 ROM 中程序的只读存储器称为( )。 A、掩膜 ROM B、PROM C、EPR
8、OM D、EEPROM 19、以下不能定义为用户标识符是( ) 。 A、Main B、_0 C、 _int D、sizeof 20、下选项中,不能作为合法常量的是( ) 。/幂不能为小数 A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 21、以下叙述中错误的是( ) A、对于 double 类型数组,不可以直接用数组名对数组进行整体输入或输出 B、数组名代表的是数组所占存储区的首地址,其值不可改变 C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D、可以通过赋初值的方式确定数组元素的个数 22、以下与函数 fse
9、ek(fp,0L,SEEK_SET)有相同作用的是( ) A、feof(fp) B、ftell(fp) C、fgetc(fp) D、rewind(fp) 23、存储 1616 点阵的一个汉字信息,需要的字节数为( ) A、 32 B、 64 C、 128 D、 256 24、已知 1 只共阴极 LED 显示器,其中 a 笔段为字形代码的最低位,若需显示数字 1,则它的字形代码应为( )。 A、06H B、F9H C、30H D、CFH 25、在 C 语言中,合法的长整型常数是( ) A、 OL B、 4962710 C、 324562& D、 216D 26、以下选项中合法的字符常量是( )
10、A、 “B“ B、 010 C、 68 D、 D 27、若 PSW.4=0,PSW.3=1,要想把寄存器 R0 的内容入栈,应使用 ( )指令。A、 PUSH R0 B、PUSH R0 C、PUSH 00H D、PUSH 08H 28、在片外扩展一片 2764 程序存储器芯片要 ( )地址线。 A、8 根 B、13 根 C、16 根 D、20 根 29、设 MCS-51 单片机晶振频率为 12MHz,定时器作计数器使用时,其最高的输入计数频率应为( ) A、2MHz B、1MHz C、500kHz D、250kHz 30、下列数据字定义的数表中, ( )是错误的。 A、DW “AA” B、DW
11、 “A” C、DW “OABC” D、DW OABCH 三、判断题 ( )、在对某一函数进行多次调用时,系统会对相应的自动变量重新分配存储单元。( )、在 C 语言的复合语句中,只能包含可执行语句。 ( )、自动变量属于局部变量。 ( ) 4、Continue 和 break 都可用来实现循环体的中止。 ( )5、字符常量的长度肯定为。 ( ) 6、在 MCS-51 系统中,一个机器周期等于 1.5s。 ( )7 、C 语言允许在复合语句内定义自动变量。 ( ) 8、若一个函数的返回类型为 void,则表示其没有返回值。 ( )9、所有定义在主函数之前的函数无需进行声明。 ( ) 10、定时器
12、与计数器的工作原理均是对输入脉冲进行计数。 ( )11 、END 表示指令执行到此结束。 ( ) 12、ADC0809 是 8 位逐次逼近式模 /数转换接口。 ( )13 、MCS-51 的相对转移指令最大负跳距是 127B。 ( )14 、MCS-51 的程序存储器只是用来存放程序的。 ( ) 15、TMOD 中的 GATE=1 时,表示由两个信号控制定时器的的启停。 ( )16 、MCS-51 的特殊功能寄存器分布在 60H80H 地址范围内。 ( )17、MCS-51 系统可以没有复位电路。 ( ) 18、片内 RAM 与外部设备统一编址时,需要专门的输入/输出指令。 ( ) 19、锁存
13、器、三态缓冲寄存器等简单芯片中没有命令寄存和状态寄存等功能。 ( ) 20、使用 8751 且 =1 时,仍可外扩 64KB 的程序存储器。 四、简答题 1、在使用 8051 的定时器/计数器前,应对它进行初始化,其步骤是什么? 2、什么是重入函数?重入函数一般什么情况下使用,使用时有哪些需要注意的地方?3、8051 引脚有多少 I/O 线?他们和单片机对外的地址总线和数据总线有什么关系?地址总线和数据总线各是几位? 4、在有串行通信时,定时器/计数器 1 的作用是什么,怎样确定串行口的波特率? 5、如何消除键盘的抖动?怎样设置键盘中的复合键? 答案 一、填空题 1、7EH、6CH 2、 11
14、0100、11101110 3、高电平、 07h 4、 74HC373、74HC138 5、高、不用 6、 0000H、0013H 7、0.5us、2us 8、线选法、译码法 9、 20H2FH、是能被 8 整除的地址 10、Ret、RETI 11、内部 RAM、外部 RAM 12、32 、8 13、函数 14、 SCON、RB8 15、3、16、4 16、说明部分、语句部分 17、 SCON、TB8 18、3 、256 19、 scanf、printf 二、选择题 1、 B 2、C 3、D 4、D 5、C 6、C 7、D 8、B 9、B 10、B 11、D 12、C 13、B 14、A 15
15、、B 16、B 17、A 18、C 19、D 20、B 21、C 22、D 23、A 24、 B 25、A 26、B 27、D 28、B 29、 C 30、A 三、判断题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 11、 12、 13、 14、 15、 16、 17、 18、 19、 20、 四、简答题 1、答: (1)确定 T/C 的工作方式 编程 TMOD 寄存器; (2)计算 T/C 中的计数初值,并装载到 TH 和 TL; (3)T/C 在中断方式工作时,须开 CPU 中断和源中断编程 IE 寄存器; (4)启动定时器/计数器编程 TCON 中 TR1 或 TR0
16、位。 2、答: 多个函数可以同时使用的函数,称为重入函数。 通常情况下,C51 函数不能被递归调用,也不能应用导致递归调用的结构。有此限制是由于函数参数和局部变量是存储在固定的地址单元中。重入函数特性允许你声明一个重入函数。即可以被递归调用的函数。 重入函数可以被递归调用,也可以同时被两个或更多的进程调用。重入函数在实时应用中及中断服务程序代码和非中断程序代码必须共用一个函数的场合中经常用到。 3、答:1)8051 引脚共有 40 个引脚,8051 的地址总线由 P2 和 P0 口提供,P2 口是地址总线的高 8 位,P0 口是地址总线的低 8 位;数据总线由 P0 口提供;P0 口的地址总线
17、和数据总线是分时进行的,P0 口的地址总线需要外接地址锁存器完成地址锁存。 2)地址总线共 16 位,数据总线是 8 位。 4、答:在有串行通信时,定时器/计数器 1 的作用是串行口发生器。 串行口的波特率根据串行口的工作方式具有不同的计算方式: 方式 0 的波特率固定为晶体振荡器的十二分之一;方式 1 的波特率=2SMOD.(定时器 1 的溢出率)/32 ; 方式 2 波特率=2SMOD.(fosc/64); 方式 3 波特率同方式 1(定时器 l 作波特率发生器) 。 5、答:由于按键是机械开关结构,所以当用手按下其中一个键时,往往会出现所按键在闭合位置和断开位置之间发生跳几下后才会稳定到闭合状态的情况。在释放一个键时,也会出现类似的情况,这就是键的抖动,抖动的持续时间不一,但通常不会大于 10ms。 若抖动问题不解决,就会引起对闭合键的多次读入。对于键抖动最方便的解决方法就是当发现有键按下后,不是立即进行扫描,而是延时大约 10ms 后再进行。由于一个键按下的时间一般会持续上百毫秒,所以延迟 10ms 后再扫描处理并不迟。 复合键可以仿照计算机复合键的处理方法,通常可以假设一个键具有复合功能,再与其它减的键值组合成复合键。