单片机企业招聘笔试测试题(含答案及详细解析)_第1页
单片机企业招聘笔试测试题(含答案及详细解析)_第2页
单片机企业招聘笔试测试题(含答案及详细解析)_第3页
单片机企业招聘笔试测试题(含答案及详细解析)_第4页
单片机企业招聘笔试测试题(含答案及详细解析)_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

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

文档简介

单片机企业招聘笔试测试题(含答案及详细解析)适用岗位:单片机硬件工程师、单片机软件工程师、嵌入式初级工程师考试时长:90分钟满分:100分说明:试题贴合工厂实际项目开发、硬件调试、程序编写场景,无理论空话,侧重实操应用能力考察一、单项选择题(每题2分,共20分)1、51单片机的核心工作电压典型值是?()A、1.8VB、3.3VC、5VD、12V2、51单片机中,用于外部中断0的引脚是?()A、P3.0B、P3.2C、P3.4D、P3.63、单片机程序中,unsignedchar类型变量的取值范围是?()A、0~127B、-128~127C、0~255D、-255~2554、51单片机定时器0的工作模式1是指?()A、8位自动重装B、16位定时/计数C、8位不可重装D、32位定时5、串口通信中,9600波特率的含义是?()A、每秒传输9600字节B、每秒传输9600位C、每毫秒传输9600位D、每帧9600位6、51单片机复位后,程序默认从哪个地址开始执行?()A、0000HB、0030HC、0100HD、FFFFH7、以下哪种不属于单片机高阻态引脚的特点?()A、输入电流极小B、可检测外部电平C、输出高电平D、悬空无干扰8、按键消抖的常规延时时间是?()A、1~5msB、10~20msC、50~100msD、100~200ms9、I2C通信协议中,负责发起和终止通信的设备是?()A、从机B、主机C、总线D、上拉电阻10、51单片机P0口做输出口时,必须外接什么元件?()A、限流电阻B、上拉电阻C、下拉电阻D、稳压二极管二、填空题(每空1分,共20分)1、51单片机有____组并行I/O口,分别是P0、P1、P2、____。2、单片机中断系统中,优先级分为____级,默认优先级最高的中断是____。3、定时器定时时间计算公式:定时时间=(____-初值)×机器周期。4、51单片机一个机器周期包含____个时钟周期,11.0592MHz晶振下,单个机器周期约为____us。5、串口通信常用校验方式:无校验、____、偶校验。6、按键检测分为____检测和中断检测两种方式。7、LED灯共阴极接法时,引脚输出____电平点亮,共阳极接法时输出____电平点亮。8、51单片机外部中断有两种触发方式:电平触发和____触发。9、程序中while(1)的作用是____。10、AD转换的核心作用是将____信号转换为单片机可识别的____信号。11、SPI通信包含四根核心信号线:SCLK、MOSI、MISO、____。12、单片机烧录程序的本质是将____文件写入单片机Flash存储区。三、简答题(每题6分,共30分)1、简述51单片机P0口和P1口的核心区别,以及实际项目中的使用场景。2、说明单片机按键抖动产生的原因,以及软件消抖、硬件消抖的具体实现方法。3、简述定时器定时不准的常见原因(至少说出4点)。4、串口通信中,为什么工业项目常用11.0592MHz晶振,而非12MHz?5、简述单片机中断服务函数的编写注意事项。四、程序分析与实操题(每题10分,共30分)1、分析以下51单片机代码,说明程序功能、运行效果,以及存在的问题并修正。PlainText

#include<reg52.h>

voidmain()

{

while(1)

{

P1=0x00;

P1=0xff;

}

}2、编写简易程序:实现P1口第一个LED灯,1秒闪烁一次(晶振11.0592MHz,定时器0中断方式)。3、项目故障分析:单片机控制继电器模块,程序正常、供电正常,但继电器无法吸合,排查常见硬件、程序故障点(至少6点)。参考答案及详细解析一、单项选择题答案及解析1、答案:C解析:传统51单片机(STC89C52、AT89C51)典型工作电压为5V;3.3V为STM32等ARM单片机常用电压,1.8V为低压单片机,12V为外部设备供电电压,非单片机核心电压。2、答案:B解析:51单片机固定引脚定义:INT0(外部中断0)=P3.2,INT1(外部中断1)=P3.3。3、答案:C解析:unsignedchar是8位无符号字符型,值域0~255;signedchar为有符号型,值域-128~127。4、答案:B解析:51定时器模式0:13位定时;模式1:16位定时/计数(项目最常用);模式2:8位自动重装;模式3:双8位定时。5、答案:B解析:波特率定义为每秒传输的二进制位数,9600波特率即每秒传输9600位,而非字节(1字节=8位)。6、答案:A解析:单片机复位后PC(程序计数器)清零,程序固定从0000H地址开始读取执行代码。7、答案:C解析:高阻态是输入状态,无输出能力,仅用于检测外部高低电平,无法主动输出高/低电平。8、答案:B解析:机械按键按下、松开时会产生10~20ms的电平抖动,是行业通用消抖延时参数,延时过短无法消抖,过长影响按键响应速度。9、答案:B解析:I2C、SPI通信均为主从模式,主机发起通信、发送时钟信号,从机被动响应。10、答案:B解析:P0口为开漏输出结构,内部无上拉电阻,输出高电平时为高阻态,无法驱动外设,必须外接上拉电阻才能正常输出高低电平。二、填空题答案及解析1、4;P3解析:标准51单片机拥有4组8位并行I/O口,共32个IO引脚。2、2;外部中断0解析:51单片机中断分为高、低两级优先级,默认自然优先级:外部中断0>定时器0>外部中断1>定时器1>串口中断。3、最大计数值(65536)解析:模式1(16位定时器)最大计数值为65536,定时溢出时间由差值决定。4、12;1.085解析:51单片机固定12个时钟周期=1个机器周期;11.0592M晶振,单周期=12/11.0592≈1.085us。5、奇校验6、扫描(查询)解析:按键检测两种主流方式:循环扫描查询、外部中断触发。7、高;低解析:共阴极LED公共端接地,引脚高电平导通点亮;共阳极公共端接电源,引脚低电平导通点亮。8、边沿(跳变)解析:外部中断支持低电平触发、下降沿触发两种模式。9、程序死循环,维持程序持续运行,防止程序跑飞10、模拟;数字解析:单片机只能识别数字信号,温度、电压等模拟量需通过AD转换后读取。11、CS(片选)12、HEX(十六进制)三、简答题详细答案1、P0口和P1口核心区别及使用场景①结构区别:P0口是开漏输出,内部无上拉电阻,驱动能力弱,必须外接上拉电阻才能正常输出;P1口是准双向口,内部自带弱上拉电阻,可直接输入输出。②功能区别:P0口无复用功能,仅通用IO;P1口为纯通用IO,无特殊功能引脚。③使用场景:P0口一般用于总线扩展、数码管段选;P1口常用于控制LED、按键、小型传感器等简单外设,接线简单无需额外电阻。2、按键抖动原因及消抖方法抖动原因:机械按键内部金属弹片接触、断开瞬间会产生短暂的电平不稳定波动,持续10~20ms,单片机会误判为多次按键触发。软件消抖:检测到按键电平变化后,延时10~20ms,再次检测电平,电平稳定后再执行按键功能。硬件消抖:在按键电路并联104滤波电容,或接入RS触发器,直接过滤硬件电平抖动。3、定时器定时不准的常见原因①晶振精度误差,普通晶振存在轻微频率偏差;②程序中存在延时函数、中断嵌套,占用定时器计数时间;③定时器初值计算错误、初值赋值偏差;④开启了全局中断,其他中断频繁触发,打断定时器计数;⑤单片机工作电压不稳定,导致晶振工作频率偏移。4、串口通信选用11.0592MHz晶振的原因串口波特率的计算依赖晶振频率,12MHz晶振计算出的9600、19200等常用波特率存在较大误差,会导致串口数据丢包、乱码;而11.0592MHz晶振可以精准整除常用波特率参数,无计算误差,串口通信稳定,是工业单片机串口项目的标配晶振。5、中断服务函数编写注意事项①中断函数无返回值、无参数,禁止定义返回值和形参;②中断函数内部代码尽量精简,禁止长时间延时、循环嵌套、复杂运算;③禁止在中断内调用耗时函数,避免主程序卡顿;④多个中断时,合理设置中断优先级,避免中断嵌套混乱;⑤中断触发标志位需手动清零,防止重复触发中断。四、程序分析与实操题详细答案1、代码分析、问题及修正程序功能:循环对P1口全部引脚置低、置高,理论上控制P1口外接LED闪烁。存在问题:缺少延时函数,单片机运行速度极快,高低电平切换频率远超肉眼识别范围,肉眼看不到LED闪烁,只会呈现常亮状态。修正代码:增加毫秒延时函数PlainText

#include<reg52.h>

voidDelay_ms(unsignedintt)

{

unsignedinti,j;

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

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

}

voidmain()

{

while(1)

{

P1=0x00;

Delay_ms(500);

P1=0xff;

Delay_ms(500);

}

}2、定时器0中断实现LED1秒闪烁程序(11.0592MHz)PlainText

#include<reg52.h>

sbitLED=P1^0;

unsignedintcnt=0;

//定时器0初始化

voidTimer0_Init()

{

TMOD|=0x01;//定时器0模式116位定时

TH0=0xFC;

TL0=0x67;//1ms初值

ET0=1;//开启定时器0中断

EA=1;//开启全局中断

TR0=1;//启动定时器0

}

//中断服务函数

voidTimer0_ISR()interrupt1

{

TH0=0xFC;

TL0=0x67;

cnt++;

if(cnt>=1000)//1000ms=1s

{

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

cnt=0;

}

}

voidmain()

{

LED=1;

Timer0_Init();

while(1)

温馨提示

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

评论

0/150

提交评论