单片机C语言试题库
f ocs 12MHz 。(图中 74LS48 为共阴极数码管驱动电路)
现在我们选择 T0 的 16 位定时/计数方式,即方式 期为 μs,最大定时时间 TM max 2^ ×
,在 12MHz 晶振频率下,机器周 = ms。假设取
二、判断题: 1、若一个函数的返回类型为 void,则表示其没有返回值。 ( ) 2、定时器与计数器的工作原理均是对输入脉冲进行计数。 ( ) 3、SFR 中凡是能被 8 整除的地址,都具有位寻址能力。 ( ) 4、MCS-51 单片机的程序存储器只能用来存放程序的。 ( ) 5、特殊功能寄存器的名字,在 C51 程序中,全部大写。 ( ) 6、位 TF0 是定时器 T1 的溢出中断标志位。( ) 7、#include <reg51.h>与#include “reg51.h”是等价的。 ( ) 8、51单片机只能做控制用,不能完成算术运算。( ) ) 9、必须有中断源发出中断请求,并且 CPU 开中断,CPU 才可能响应中断。(
程序:
#include <REGX52.H>
6
void delay_nus(unsigned int n) { n=n/10; while(--n); } void main() { unsigned char counter; while(1) { if( ) { for( ;counter>0;counter--)
10、在 C 语言中,函数的调用是可以根据需要随便调用,前面的函数可以调用后面的函数, 后面的函数也可以调用前面的函数,无需声明。 ( ) 11、函数的形式参数属于局部变量。 ( ) 12、break 可用来实现循环体的中止。 ( ) 13、字符常量的定义形式是#define A 100; 。 ( ) 14、在 51 系列的单片机系统中,一个机器周期是固定的。 ( ) 15、C51 语言允许在复合语句内再定义局部变量。 ( ) 16、 使用定时器 T0 中断方式编写程序时, 必须在中断服务程序中手动清零中断标志位 TF0。 ( ) 17、使用串口中断方式编写串口接收程序时,必须在中断服务程序中手动清零中断标志位 RI。 ( ) 18、使用中断方式实现 ADC0808 的模数转换功能,必须将 ADC0808 的 EOC 引脚直接连
四、问答题: 1、MCS-51 单片机的 P0 口能不能直接输出高电平?请说明理由,若不能则请给出解决的 方法。
2、MCS-51 单片机的四组 P 口作通用 I/O 口时,都是准双向 I/O 口而不是双向 I/O 口,为 什么?请简述之。
3
3、在使用 MCS-51 单片机的 T/C (定时器/计数器)前,应对它进行初始化,其步骤是什 么?(以定时/计数器 0 为例)
a=temp<<i; b=temp>> P0= ; delay(); } } } void delay() { unsigned int x; for(x=0;x<15000;x++); }
;
3、完成报警产生器程序:P2.0 输出 1KHz 和 500Hz 的音频信号驱动扬声器,作报警信号, 要求 1KHz 信号持续 100ms,500Hz 信号持续 200ms,交替进行;P2.7 接一开关作为控制 信号输入端,开关合上则输出报警信号,开关打开则停止输出报警信号。
电气自动化技术 13 级与 14 级创新班《单片机及其控制技术》期末复习卷 (2015-06)
一、单项选择题: 1、中央处理器是由( )构成。 A.运算器、存储器 B.运算器、控制器 C.运算器和 I/O 接口 D.运算器、控制器、存储器和 I/O 接口 2、下列计算机语言中,CPU 能直接识别的是( ) 。 A、 自然语言 B、 高级语言 C、 汇编语言 D、机器语言 3、单片机应用程序一般存放在( )中。 A.RAM B.CPU C.寄存器 D.ROM 4、串行口每次传送( )字符。 A、1 个 B、1 串 C、1 帧 D、1 波特 5、高级中断打断低级中断的过程称为( )。 A.中断请求 B.中断嵌套 C.中断服务 D.中断响应 6、当 MCS-51 单片机晶振频率 fOSC 为 12MHz 时,其机器周期为( )。 A、0.5μs B、1μs C、1.5μs D、2μs 7、使用宏来访问 AT89C52 绝对地址时,一般需包含的库文件是( ) A、regx52.h B、absacc.h C、intrins.h D、startup.h 8、单片机的定时器/计数器工作方式 1 是( ) 。 A、8 位计数器结构 B、2 个 8 位计数器结构 C、13 位计数结构 D、16 位计数结构 9、定时/计数器有 4 种操作模式,它们由( )寄存器中的 M1 M0 状态决定。 A.TCON B.TMOD C. PCON D.SCON 10、MCS-51 单片机各中断源的优先级别设定是利用寄存器( )。 A.TMOD B.IP C.PCON D.SCON 11、下列描述中正确的是( ) 。 A、程序就是软件 B、软件开发不受计算机系统的限制 C、软件既是逻辑实体,又是物理实体 D、软件是程序、数据与相关文档的集合 12、C 语言中最简单的数据类型包括( ) 。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 13、以下选项中可作为 C 语言合法常量的是( ) A、-80 B、-0x080 C、-8e1.0 D、-80.0e 14、以下选项中合法的字符常量是( ) A、 "B" B、 ’\010’ C、 68 D、 D 15、以下不能定义为用户标识符是( )。 A、Main B、_0 C、_int D、sizeof 16、以下能正确定义一维数组的选项是( ) 。 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"; 17、以下叙述中错误的是( ) 。 A、对于 double 类型数组,不可以直接用数组名对数组进行整体输入或输出 B、数组名代表的是数组所占存储区的首地址,其值不可改变 C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的
成电路芯片上的微型计算机。 2、MCS-51 系列单片机字长是 位。 3、MCS-51 单片机的复位信号是 (高电平/低电平) ,寄存器 P3 的复位值 是 ,寄存器 IE 的复位值是 (十六进制) 。 4、单片机的内部 RAM 区中,可以位寻址的地址范围是 ,特殊功能寄存器 的地址范围是 。 5、Keil μVision2 软件中,工程文件的扩展名是 ,编译连接后生成可烧写 的文件扩展名是 。 6 、 AT89C52 单片机中,在 IP=0x00 时,优先级最高的中断是 ,最低的 是 。 7、MCS-51 单片机外部中断请求信号有 方式和 方式,在 方式下,当采集到 INT0、INT1 的有效信号为低电平时,激活外部中断。 8、若采用 6MHz 的晶体振荡器,则 MCS-51 单片机的机器周期为 。 9、AT89C52 单片机中,若单片机具有 256 字节的内部 RAM,需要使用高 128 字节的内部 RAM,则定义时的存储方式是 ,若定义的变量需要使用外部 64Kbytes 的 存储区,则定义时的存储方式是 。 10、AT89S52 单片机内部提供 个可编程的 位定时/计数器, 定时器有 种工作方式。 11、设 X 和 Y 是无符号字符型,且 X=0x0f,Y=0xf0,则 X&&Y 的值为 ,X&Y 的值 为 。 12、一个函数由两部分组成,即 13、共阴极数码管驱动电平为 14、打开串口中断的语句是 是 。 15、ALE 信号的作用是 和 。 ,共阳极数码管驱动电平为 。 ,将外部中断式确定数组元素的个数 18、使用 Keil μVision 编写 MCS-51 单片机的 C 程序时,若定义一个整型变量 x,并由编 译器将其分配至 ROM 中,则应定义如下语句中的( ) 。 A、xdata int x; B、code int x; C、idata int x; C、pdata int x; 19、使用 Keil μVision 编写 MCS-51 单片机的 C 程序时,若定义一个整型变量 x,并由编 译器将其分配至片外 RAM 中,则应定义如下语句中的( ) 。 A、xdata int x; B、code int x; C、idata int x; C、pdata int x; 20、具有模数转换功能的芯片是( ) 。 A、MAX232 B、L298 C、74HC04 D、ADC0808 21、具有直流电机驱动功能的芯片是( ) 。 A、A、MAX232 B、L298 C、74HC04 D、ADC0808 22、串口工作方式 1 是( ) 。 A、8 位同步移位寄存器 B、10 位 UART,波特率由 T1 控制 C、10 位 UART,波特率为晶振频率的 1/64 或 1/32 D、11 位 UART,波特率由 T1 控制
4、如何消除键盘的抖动?
5、MCS-51 单片机有多少个中断源?请按自然优先级先后顺序进行排列。 AT89S52 单片机 在 MCS-51 单片机的基础上又增加了一个什么中断源?
6、本课程采用国产的哪个型号的单片机替换进口的 AT89S52 单片机?该单片机支持串口 下载程序,由于计算机 COM 口使用 RS232 电平而单片机串口使用 TTL 电平,通讯中需 要进行电平转换, 机器人控制板采用哪个型号的芯片实现 RS232 电平与 TTL 电平的转换?
程序: #include <REGX52.H> void main() { while(1) {
if( else
) ; ;
} }
5
2、完成流水灯程序:4 个流水灯 L0~L3 依次发光。
程序: #include <REGX52.H> unsigned char i,temp,a,b; void delay(); void main() { while(1) { temp= ; P0=temp; delay(); for(i=1; ;i++) {