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