1.C语言提供的合法的数据类型关键字 (B)
A、Double B、short C、integer D、Char
2.片内RAM的20H~2FH为位寻址区,所包含的位地址是 (B) A、00H~20H B、00H~7FH C、20H~2FH D、00H~FFH 3.MCS-51单片机的复位信号是 (A) 有效
A、高电平 B、低电平 C、脉冲 D、下降沿
4.89C51的单片机的堆栈指针 (A)
A、 只能位于内部RAM低128B字节范围内 B、 可位于 内部RAM低256字节范围内 C、 可位于 内部ERRAM内。 D、 可位于内部RAM或外部RAM内
5.在串行口工作于移位寄存器方式时,其接受由 (C)来启动 A、REN B、RI C、REN和RI D、TR
6.单片机中断系统的总允许位为 (EA=1)
7.当MCS-51单片机接有外部存储器,P2口可作为 (D) A、数据输入口 B、数据的输出口
C、准双向输入/输出口 D、输出高8位地址 8.C51中一般指针变量占用 (C) 字节存储 A、一个 B、两个 C、三个 D、四个
9.使用宏来访问绝对地址时,一般需包含的库文件是(B) A、reg51.h B、absacc.h C、intrins.h D、startup.h
10.单片机的定时器/计数器工作方式1是 (D ) A、8位计数器结构 B、2个8位计数器结构 C、13位计数结构 D、16位计数结构
11.C语言提供的特殊寄存储器的数据类型关键字是(sfr/sfr16)
12.8031单片机中,将累加器A中的数输入外RAM的40H单元,可执行的指令()
MOV R1, #40H MOVX @R1 , A
13.MCS-51单片机,通常将中间计算器结果放在 (RAM) 14.外部中断1的中断入口地址为(0013H)
15.单片机中断系统的优先级是由 (中断优先级控制寄存器IP)控制 16.采用 (static) 关键字定义静态变量
17.采用 (地址寄存器), 实现P0口可作地址和数据分时复用。
18.单片机总线系统不包含(文件总线) 总线系统包括:地址总线,数据总线,控制总线
19.使用函数printf()时,一般需包含的库文件是(stdio.h)
20.目前采用 (串行接口 ) 实现89C52与PC机实现串行通信
1.设X=5AH,Y=36H,则X与Y\或\运算为7EH,X与Y的\异或\运算为6CH。
2.单片机复位后,堆栈指针SP的值为0X07H。
3.汇编语言中,子程序返回指令为RET,中断程序返回指令为RETI。 4. C语言中输入和输出操作是由库函数 scanf() 和 printf() 等函数来完成的。
5. MCS -51的四组工作寄存器的选择,是由PSW寄存器中的RS0和RS1绝决定的。
6.设X=17H,Y=35H,则X+Y的运算为4CH,X-Y的运算为E2H。 7. MCS-51基本型单片机的程序存储器和数据存储器采用 统一 编址形式,程序存储器的范围64KB,内部数据存储器范围256KB,外部数据存储器范围64KB。
8.汇编语言中,堆栈的工作原则是“先进后出”或“后进先出”。 9.单片机选择片外程序存储器时,将EA引脚设置为低电平。 10.89C52串行通信包括异步通信和同步通信方式。
三 、 简答题
1、MCS-51单片机具有几个中断源,中断优先级如何实现?
答:单片机有6个中断源。2个外部中断源INT0(P3.2),INT1(P3.3);3个定时器/计数器T0、
TI和接收RI中断。中断优先级由T1和T2的溢出中断TF0、TF1、TF2,EXF2;1个串行口发送
寄存器IP决定。该寄存器可进行位操作,分为0和1两种状态,1的优先级较高。如果多个中断源同为1时,按照自然优先级来排序。
2、8051双直列式的引脚有多少个I/O口,如何分布的?简述如何实现单片机访问外部数据存储器?
答:8051有32个I/O口。分别为P1、P2、P3、P4。采用寄存器间接寻址方式,利用MOVX指令,依次执行总线读操作和写操作,相应的读信号引脚和写信号引脚有效。
3、简述C51语言中函数的使用步骤?函数体内包含哪两个组成部分?如何区别中断函数与一般函数?
答:使用步骤包括函数的声明,定义和使用。函数体包含局部变量定义和执行语句。中断函数和一般函数的区别在于:(1)中断服务函数不传递参数。(2)中断服务函数没有返回值。(3)中断服务函数需要用关键字interrupt定义,并标明所对应的中断号。(4)进入中断服务函数,ACC、B、PSW会进栈,根据需要,DPL、DPH也可能进栈,如果没有using n属性,R0~R7也可能进栈,否则不进栈。(5)在中断服务函数中调用其它函数,被调函数最好设置为可重入的,因为中断是随机的,有可能中断服务函数所调用的函数出现嵌套调用。(6)不能够直接调用中断服务函数。
4、汇编语言与C51混合编程分为哪两种方式?如何在C51函数中嵌入汇编程序?
答:汇编语言与C51混合编程分为:一种是在C语言函数中嵌入汇编语言程序;另一种是C语言文件与汇编语言文件混合编程。在C51程序中嵌入汇编程序,其方法是用编译控制指令“#pragma src”、“#pragma asm”和“#pragma endasm”实现。编译控制指令“#pragma src”是控制编译器将C源文件编译成汇编文,“#pragma src”要放在文件的开始;
“#pragma asm”和“#pragma endasm”指示汇编语言程序的开始和结束,分别放在汇编程序段的前面和后面。 四、计算题
1.已知一个单片机系统的外接晶体振荡器的振荡频率为12MHz,请计算该系统的机器周期?执行一次MOVX指令需要多少时间?
2.已知单片机晶振频率为12MHz,计算串口通信方式0的波特率和方式2的波特率(假设SMOD=1,写出计算步骤)。 答:方式0