洛阳理工学院单片机期末考试题(十套) 下载本文

内容发布更新时间 : 2024/5/29 8:49:52星期一 下面是文章的全部内容请认真阅读。

洛阳理工学院 2011/2012 学年 第一学期 单片机原理与接口技术 期末考试试题卷(A)

适用班级:B090505/06/07/08 考试日期时间:120分钟

一、 选择题(每小题2分,共20分)

1. 片内RAM的20H~2FH为位寻址区,所包含的位地址是( B )。

A、00H~20H B、00H~7FH C、20H~2FH D、00H~FFH

2. 下列哪个并行口可以既作为输入输出口又可以作为高8位地址口( B )

A.P1 B.P2 C.P3 D.P0

3. 若AT89C51单片机使用晶振频率为6MHz时,其复位持续时间应该超过( B )。

A、2μs B、4μs C、8μs D、1ms

4. 定时器/计数器工作方式1是( D )。

A、8位计数器结构 B、2个8位计数器结构

C、13位计数结构 D、16位计数结构

5. 在五个中断源中,可通过软件设置各中断源中断级别的高或低,但在同一级别中,按硬

件排队的优先级别最高的是( C )中断。

A.定时器T0 B.定时器T1 C.外部中断INT0 D.外部中断INT1 E.串行口

6. 定时器T0的溢出标志为TF0,采用查询方式,若查询到有溢出时,该标志( A)

A.由软件清零 B.由硬件自动清零 C.随机状态 D.AB都可以

7. 串行口的工作方式由( C )寄存器决定。

A.SBUF B.PCON C.SCON D.RI

8. 单片机C51中用关键字( C)来改变寄存器组

A.interrupt B.unsigned C.using D.reentrant

9. 可以将P1口的低4位全部置高电平的表达式是( B )

A.P1&=0x0f B.P1|=0x0f C.P1^=0x0f D.P1=~P1

10. 访问绝对地址时,一般需包含的库文件是( B )

A、reg51.h B、absacc.h C、intrins.h D、startup.h 二、 填空题(每空1分,共20分)

1. 微处理器本身不是计算机,它是微型计算机的核心部件,又称它为 CPU ,它包

括两个主要部分 运算器 、 控制器 。

2. AT89C51有 4 个并行I\\O口,其中P0~P3是准双向口,所以由输出转输入时必须

先写入 1 。

3. 若不使用AT89C51片内的程序存储器,引脚 EA非 必须接地。

4. AT89C51系列单片机有: 外中断0 , 定时器0 , 外中断1 ,

定时器1 , 串行口 等5个中断请求源。

5. 用定时器T1方式2计数,要求每计满100次,向CPU发出中断请求,TH1、TL1的初始

值分别是 9CH 、 9CH 。

6. AT89C51单片机的外部中断请求信号的触发方式有: 电平触发方式 和 边沿触

发方式 。

7. 存储器扩展包括 程序存储器扩展 和 数据存储器扩展 。

8. 单片机程序的入口地址是 0000H ,外部中断1的入口地址是 0013H 。 9. KeiL C51软件中,编译连接后生成可执行的文件扩展名是 hex 。 三、 简答题(每小题6分,共30分)

1. 什么是机器周期?一个机器周期的时序是如何来划分的?如果采用12MHz晶振,一个机

器周期为多长时间?

答:完成一个基本操作所需要的时间称为一个机器周期(1分),每个机器周期包含六个时钟周期(用S表示),每个时钟周期由节拍信号P1和节拍信号P2组成的,每个节拍持续一个振荡周期(2分)。因此一个机器周期包含S1P1~S6P2共6个状态的12个 振荡

1 / 4

周期(1分)。如果采用12MHz晶振,一个机器周期为1μs(2分)。

2. AT89C51单片机有几个中断源?它们的中断标志和中断入口地址各是什么?

答:外部中断0 IE0 0003H (1分)

定时计数器0 TF0 000BH (1分) 外部中断1 IE1 0013H (1分) 定时计数器1 TF1 001BH (1分) 串行口 TI和RI 0023H (2分)

3. 定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?

答:定时的计数脉冲来自于单片机内部,即每个机器周期产生一个计数脉冲,也就是每个机器周期计数器加1(3分)。定时时间与定时器的工作模式、定时器的初值选择有关(3分)。

4. 在程序里如何以简单的方式来防止输入开关的抖动现象?

答:只要在截获第一个输入信号时,即调用一个约20ms的延迟函数,即可避开20ms的不确定信号(4分)。20ms后再执行后面的指令(2分)。 5. 简述串行通信中“单工”、“半双工”、“全双工”三种数据传送方式。

1. 答:“单工”是指只能发送数据或只能接收数据(2分)。

“半双工”是指可发送数据或接收数据,但任一个时间只能发送数据或只能接收数据(2分)。

“全双工”是指可以在任一时刻同时进行发送数据与接收数据(2分)。

四、 程序分析设计题(第1、2小题每题10分,第3、4小题每题5分,共30分)

1. 已知fosc=12MHZ,利用单片机定时器T1在P1.0引脚上产生周期为100ms的方波输出,

采用查询方式用C51写出实现程序(10分)。

#include //包含头文件 (1分)

sbit p1_0=P1^0; //定义P1口位变量 (1分) void main() //主函数 {

TMOD=0x10; //定时器T1,模式1 (1分) TH1=0x3c; //定时器T1高8位初值 (1分) TL1=0xb0; //定时器T1低8位初值 (1分) TR1=1; //打开定时器T1 (1分) while(1) //无限循环 (1分) {

while(TF1==0); //等待定时器溢出 (1分) TF1=0; //定时器T1溢出位清零 (1分) TH1=0x3c; //重新装入初值 TL1=0xb0;

p1_0=!p1_0; //对P1_0位进行取反 (1分) }

}

2. 如图1所示电路,采用中断方式实现以下功能,按下按键一次,则LED指示灯闪烁一次,

试把下列程序补充完整(10分)。

2 / 4

图1 线路连接图

# include

unsigned char j; sbit Led=P1^0;

void delay(unsigned int count) //延时函数 {

unsigned char j; while(count--)

for(j=0; j<120; j++) //在时钟为12MHz时,循环120次,约为1ms

}

void main(void) {

IE=0; //关所有中断,IE的所有位置“0”,可以不要 (1分)

IT0=1; //设置INT0为下降沿触发方式 (1分)

EX0=1; //IE^1,开INT0中断,允许INT0中断申请 (1分) EA=1; //IE^7(EA=1)开所有中断 (1分) Led=1; //熄灭LED (1分) while(1); }

void int0func(void) interrupt 0 using 3 //中断处理函数 {

EX0=0; //关INT0中断 (1分) Led=0; //点亮LED (1分) delay(500); //延时500ms (1分) Led=1; //熄灭LED (1分) EX0=1; //开INT0中断

}

3. 如图2所示,在DAC0832的输出端接入一级运算放大器可以得到负的电压信号,接入两

级运算放大器可以得到正的电压信号,要求单缓冲工作方式下运算放大器的输出端(Vout)输出锯齿波信号。试把主函数中的内容补充完整(5分)。

#include

#define dac XBYTE[0x7fff]; /* DAC0832的地址*/ void main() {

unsigned char j; /*变量定义*/ (1分) while(1) (1分)

3 / 4