单片机C语言期末考试试题及详细答案-1_第1页
单片机C语言期末考试试题及详细答案-1_第2页
单片机C语言期末考试试题及详细答案-1_第3页
单片机C语言期末考试试题及详细答案-1_第4页
单片机C语言期末考试试题及详细答案-1_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机C语言期末考试试题及详细答案适用专业:电子信息、机电一体化、自动化等考试时长:90分钟满分:100分说明:本试题基于51单片机C语言编程基础,题型贴合日常教学与期末考核重点,侧重基础语法、寄存器操作、IO口编程、中断、定时器核心知识点。一、单项选择题(每题2分,共20分)1.51单片机中,用于定义特殊功能寄存器的关键字是()A.externB.sfrC.defineD.typedef2.51单片机一个机器周期包含的时钟周期数是()A.6个B.8个C.12个D.16个3.以下不属于51单片机中断源的是()A.外部中断0B.定时器0中断C.串口中断D.AD转换中断4.C语言中,针对单片机位操作的关键字是()A.bitB.charC.intD.float5.51单片机P0口作为普通IO口输出高电平时,需要做的操作是()A.无需任何操作B.外接上拉电阻C.外接下拉电阻D.串联限流电阻6.定时器工作在模式1时,定时器的位数是()A.8位B.13位C.16位D.32位7.以下语句中,能够将P1.0引脚置低电平的是()A.P1_0=0;B.P1_0=1;C.P1=0x01;D.P1=0xfe;8.51单片机中断总允许位是()A.EX0B.ET0C.EAD.ES9.C语言中,unsignedchar类型变量的取值范围是()A.0~127B.0~255C.-128~127D.-255~25510.单片机程序中,delay延时函数的主要作用是()A.提高程序运行速度B.控制外设动作时序C.优化代码内存D.开启中断二、填空题(每空2分,共20分)1.51单片机标准内核中,共有______个并行IO端口,其中______口无内部上拉电阻。2.中断服务函数的返回值类型必须是______,参数列表必须为______。3.定时器0中断的中断号是______,外部中断0的中断号是______。4.宏定义语句#defineLEDP1_1的作用是______。5.51单片机串口通信常用的波特率发生器是______定时器。6.语句while(1);的作用是______。三、程序改错题(每题5分,共15分)找出下列单片机C语言程序中的错误,说明原因并写出正确代码(每处错误2分,修正1分)1.点亮P1口LED程序PlainText

voidmain()

{

P1=0x00;

}2.定时器0中断服务函数PlainText

voidtimer0()

{

TH0=0xff;

TL0=0xff;

}3.带参数延时函数PlainText

voiddelay(intt)

{

for(i=0;i<t;i++);

}四、编程题(共30分)1.基础编程(15分):编写51单片机C语言程序,实现P1口8个LED灯循环流水点亮,流水间隔500ms。2.中断编程(15分):编写程序,利用外部中断0(P3.2)实现按键控制LED状态翻转,按下按键,P1.0LED亮,再次按下熄灭,循环切换。五、简答题(每题5分,共15分)1.简述51单片机P0、P1、P2、P3四个IO口的主要区别。2.简述单片机中断的执行流程。3.单片机程序中,空语句和死循环的作用分别是什么?参考答案及详细解析一、单项选择题答案及解析1.B解析:sfr是51单片机C语言专用关键字,用于定义特殊功能寄存器;extern为外部变量声明,define是宏定义指令,typedef用于类型重定义。2.C解析:标准51单片机固定12个时钟周期为1个机器周期,这是单片机时序的基础知识点。3.D解析:标准51单片机仅有5个中断源,分别是外部中断0、定时器0、外部中断1、定时器1、串口中断,无自带AD转换中断。4.A解析:bit为单片机C语言位定义关键字,可定义单个位变量,用于操作单片机引脚位;char、int、float为通用数据类型。5.B解析:P0口为开漏输出结构,内部无上拉电阻,无法主动输出高电平,必须外接上拉电阻才能正常输出高低电平。6.C解析:定时器模式0为13位、模式1为16位(最常用)、模式2为8位自动重装、模式3为双8位。7.A解析:P1_0直接操作P1口第0位,赋值0为低电平;0xfe是11111110,仅能整体赋值P1口,无法精准单独控制。8.C解析:EA为中断总开关,必须置1才能开启所有中断;EX0为外部中断0允许位,ET0为定时器0允许位,ES为串口中断允许位。9.B解析:unsignedchar为无符号字符型,8位数据,取值范围0~255;signedchar取值范围为-128~127。10.B解析:延时函数是单片机外设驱动核心函数,主要用于匹配外设工作时序,避免动作过快导致设备失效。二、填空题答案及解析1.4;P0解析:51单片机包含P0、P1、P2、P3共4组IO口,仅P0口无内部上拉电阻。2.void;void解析:单片机中断服务函数无返回值、无入口参数,格式固定不可修改。3.1;0解析:51单片机固定中断号:外部中断0(0)、定时器0(1)、外部中断1(2)、定时器1(3)、串口中断(4)。4.将P1_1引脚别名定义为LED,后续代码可用LED代替P1_1解析:宏定义核心作用是代码简化、便于引脚统一修改管理。5.定时器1解析:51单片机串口通信默认使用定时器1作为波特率发生器,工作在模式2自动重装模式。6.程序执行完毕后进入死循环,防止程序跑飞、复位重启解析:单片机main函数执行结束后无指令执行会触发复位,死循环可锁定程序运行状态。三、程序改错题答案1.错误:main函数无死循环,程序执行完毕会自动复位,LED无法常亮。正确代码:PlainText

voidmain()

{

P1=0x00;

while(1);//程序死循环,防止复位

}2.错误:中断函数无中断号、无interrupt关键字,不符合单片机中断函数语法,无法触发中断。正确代码:PlainText

voidtimer0()interrupt1

{

TH0=0xff;

TL0=0xff;

}3.错误:循环变量i未定义,编译器报错,无法编译运行。正确代码:PlainText

voiddelay(intt)

{

inti;

for(i=0;i<t;i++);

}四、编程题参考答案1.流水灯程序(500ms间隔)PlainText

#include<reg51.h>

//简单软件延时函数,约500ms@11.0592MHz

voiddelay500ms(void)

{

unsignedinti,j;

for(i=600;i>0;i--)

for(j=110;j>0;j--);

}

voidmain(void)

{

unsignedcharled=0x01;//初始点亮最低位LED

while(1)

{

P1=~led;//低电平点亮LED

delay500ms();

led=led<<1;//左移一位

if(led==0x00)//移到最高位后重置

{

led=0x01;

}

}

}程序说明:采用左移循环方式实现流水效果,软件延时控制间隔,低电平点亮LED为51单片机LED电路常用接法。2.外部中断0按键翻转LED程序PlainText

#include<reg51.h>

sbitLED=P1^0;

//外部中断0初始化

voidint0_init(void)

{

EX0=1;//开启外部中断0

EA=1;//开启总中断

IT0=1;//设置为下降沿触发

}

//外部中断0服务函数

voidint0_service(void)interrupt0

{

LED=~LED;//翻转LED电平状态

}

voidmain(void)

{

LED=1;//初始LED熄灭

int0_init();

while(1);//死循环等待中断

}程序说明:配置下降沿触发中断,每次按键触发中断时翻转LED电平,实现亮灭切换,代码简洁稳定,符合单片机中断编程规范。五、简答题参考答案1.四个IO口主要区别(1)P0口:双向IO口,开漏输出,无内部上拉电阻,需外接上拉电阻才能输出高电平,可作为地址/数据总线使用;(2)P1口:准双向IO口,自带内部上拉电阻,仅作为普通IO口使用,功能单一;(3)P2口:准双向IO口,自带内部上拉电阻,可作为高8位地址总线使用;(4)P3口:准双向IO口,自带内部上拉电阻,除普通IO功能外,具备第二功能,包含串口、外部中断、定时器、读写控制等功能。2.单片机中断执行流程第一步:中断源产生中断信号,检测总中断EA和对应中断允许位是否开启;第二步:满足条件后,暂停当前正在执行的主程序,保护当前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论