电子助理工程师面试复盘

1.没系统学习过C语言

2.硬件太少关注数据手册,没有深入研究,只是会用

3.自己的课程内容忘了大半

4.代码没有自己的逻辑在里面

总结:查漏补缺,不会的补上去,失败原因,答不上去,没有自己的见解。支支吾吾,怎么也想不起来,后来自己想还是紧张,不熟悉。还是需要学习,不断的学习,忠言逆耳,还是要有东西。

查漏补缺

面试题一 矩阵键盘

 1:矩形按键是通过什么方法扫描的

矩阵键盘的结构
下图是一个4*3的矩阵键盘示意图,三条列线连接P1.4-P1.6引脚。四条行线连接P1.0-P1.3引脚


2 逐行逐列扫描法
首先使三条列线所连接的I/O引脚P14-P16输出低电平,四条行线所连接的I/O引脚P10-P13输出高电平。当没有按键按下时,四条行线所连接的I/O引脚读取到的将全部是高电平;而当有按键按下时,由于该按键所在的行线与列线接通,行线将被下拉到低电平。此时读取行线所连接的引脚P10-P13,将不再全是高电平,由此可以判断出有按键按下。判断有按键按下后,还要用逐行逐列扫描法来获取按键的键值。

逐行逐列扫描法的原理是:逐列将列线依次置低电平,读取行线,如果某一条行线为低电平,则说明该行线与当前置为低电平的列线交叉点处的按键被按下,从而可以获取按键的键值。

   

#define keyboard P1  //四条行线三条列线所连接的IO口
    unsigned char Check_Keyboard()
    {
    unsigned char row_scan_code=0x01; //行扫描码
    unsigned char col_scan_code=0xEF;//列扫描码
    unsigned char keycode;  //按键键值
    unsigned char i,x,j;
    //可以做一个消抖处理
    for(i=0;i<3;i++)//逐列扫描,将列线逐列拉低
    {
        keycode=i+1;
        keyboard=col_scan_code;
        x=keyboard; //读取行线状态
        for(j=0;j<4;j++)//逐行扫描
        {
            if(!(x&row_scan_code))//说明对应行的按键按下,使行线被拉低
            {
                keycode+=3*j;
                //如果按键还未释放,则仍有行线被拉至低电平
                while((keyboard&0x0f)!=0x0f);//等待按键释放
                P1=0x0F;     //恢复原状态,为下次按键做准备
                return keycode;     //已检测到按键键码,返回
            }
            else
                row_scan_code=_crol_(row_scan_code,1);
        }
        col_scan_code=_crol_(col_scan_code,1);//左移一位,将下一列线拉低
        row_scan_code=0x01;//重置行扫描码,为下一行扫描作准备
    }
    keycode=0;//没有按键按下,键值记为0
    return keycode;
    }



3 线反法

4x4


上面逐行逐列扫描法较为繁琐,在实际的单片机系统中更常用的是线反法。

线反法的原理为:首先使P1口的高四位输出高电平,P1口低四位输出低电平,这时键盘的行线被拉高,列线被拉低。如果有按键按下,则某一条行线将被拉低,此时读取P1口高四位,读取到的将不再全为高电平,说明有按键按下。(在判断是否有按键按下这一点上,线反法与逐行逐列扫描法是一致的)根据读取到0值的I/O口所连接的行线,就可以判断出按下的按键位于哪一行。接下来使P1口的高四位输出低电平,P1口低四位输出高电平(即与上次输出的电平相反,因此称为线反法)。如果有按键按下,此时读取P1口低四位,读取到的将不再全为高电平,根据读取到0值的I/O口所连接的列线,就可以判断出按下的按键位于哪一列。综合按键所在的行线与列线,即可唯一确定按键所在位置,进而获取按键的键值。

//@brief:判断4*4矩阵键盘是否有键可靠按下,高4位口接行线,低四位口接列线
//@retval:当有键可靠按下时返回1-16的键值,否则返回0
#define keyboard P1
unsigned char Check_Keydown()
{
	unsigned char KeyValue=0;
	keyboard=0x0f;
	if(keyboard!=0x0f)//如果按键按下
	{
		delay_ms(10);//延时10ms消抖
		if(keyboard!=0x0f)//按键确实按下
		{	
			//判断按键所在列,以所在列的第一行的按键键值赋给KeyValue
			keyboard=0X0F;
			switch(keyboard)
			{
				case(0X07):	KeyValue=1;break; //第一列按下
				case(0X0b):	KeyValue=2;break; //第二列按下
				case(0X0d): KeyValue=3;break; //第三列按下
				case(0X0e):	KeyValue=4;break; //第四列按下
			}
			//判断按键所在行
			keyboard=0XF0;
			switch(keyboard)
			{
				case(0X70):	KeyValue=KeyValue;break;  //第一行按下
				case(0Xb0):	KeyValue=KeyValue+4;break;  //第二行按下
				case(0Xd0): KeyValue=KeyValue+8;break;  //第三行按下
				case(0Xe0):	KeyValue=KeyValue+12;break;  //第四行按下
			}
			while(keyboard!=0xf0); //按键松手后退出
				return KeyValue;
		}
		else  //否则认为是信号干扰导致
		{
			return 0;  //认为没有按键按下
		}
	}
	return 0;  //如果没有按键按下返回零
}

面试题二C语言冒泡排序法

冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。

以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。

原文

#include<stdio.h>
void Bubble_sort(int arr[], int size)
{
	int j,i,tem;
	for (i = 0; i < size-1;i ++)//size-1是因为不用与自己比较,所以比的数就少一个
	{
		int count = 0;
		for (j = 0; j < size-1 - i; j++)	//size-1-i是因为每一趟就会少一个数比较
		{
			if (arr[j] > arr[j+1])//这是升序排法,前一个数和后一个数比较,如果前数大则与后一个数换位置
			{
				tem = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = tem;
				count = 1;
				
			}
		}
		if (count == 0)			//如果某一趟没有交换位置,则说明已经排好序,直接退出循环
				break;	
	}
 
}
int main()
{
	int arr[10];
	int i;
	
	printf("请输入10个数\n");
	for (i = 0; i < 10; i++)		//接收用户的数值
	{
		scanf("%d", &arr[i]);
	}
	printf("排序前的数组>");
	for (i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
 
	printf("\n排序后的数组>");
	Bubble_sort(arr, 10);
	for (i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
 
	return 0;
}

值得注意的是函数中的定义的count是为了检验是否进行了元素的交换,是对代码的一种优化

运行结果>

链接:https://blog.csdn.net/dongming8886/article/details/123458790

面试题三STM32最小系统板

1芯片

2复位电路BOOT0/BOOT1

3晶振(时钟)

4电源

5最小外围电路(电阻电容)

6人机交互(led,key外部模块)

外围电路电容的作用:

外围电路是指连接中央处理器CPU)和输入输出设备(I/O设备)的电路系统。它的作用是将CPU与I/O设备连接在一起,使得计算机能够控制和操作外围设备。

1.控制器是外围电路中的一个重要组成部分。它通过接口电路将CPU与外围设备进行连接,控制数据的传输和处理。控制器通常包含状态寄存器、命令寄存器、数据缓冲器等模块。

2.接口电路是CPU与外围设备之间进行数据传输的桥梁。它负责将CPU的信号转换成外围设备所需的信号,并将外围设备的信号转换成CPU可以处理的信号。接口电路还包括地址和数据总线中断控制器等内容。

3.输入输出设备是外围电路的最终执行部分。它包括各种传感器、打印机、显示器、键盘、鼠标等,它们与计算机进行通信并完成各种操作。

作者:曾逸之
链接:https://www.zhihu.com/question/394817357/answer/1228199624
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

外围电路大致分为三类:

  1. 电源/去耦/隔离类;主要是滤波电容、变压器、电感/扼流圈。
    1. 滤波电容的大小从几百nF~2000uF不等。由于一般电源为中高压(不是1.x V),所以如果在芯片内部实现,大致有MV_MOSCAP/ MOM/ MIM 3种。一般来说,2fF/um2是一个正常的值,也就是说,要实现100nF的电容,我得付出50mm2的面积代价(请参考一下一般CPU也就100mm2级别,却从几百块起步),这还只是100nF,如果是2000uF的15V耐压级别的滤波电容…… 所以说,不集成电容不是我们做不出来,而是你们买不起
    2. 电感/扼流圈的主要应用场景是电源里面的续流需求,这玩意儿动辄几安培,集成电路的TOP METAL是过流能力最强的,也就是几mA/um。要走安培级的电流…… 我们得付出1mm粗的代价,且这个1mm还得精密的围成线圈…… 此时请联系之前1.1所描述的芯片成本和售价。还是那句话,如果你付得起钱或需求特殊(如PHY和基带芯片里面的一些接口电感),还是做得出来的。
    3. 变压器一般有两种:有磁芯,无磁芯。变压器一般只在隔离层和电源领域使用,但目前的集成电路工艺如果要集成磁芯,难度极高。之前做隔离电源的时候,用到了这个玩意儿,几毫米的直径不说,还得特殊工艺来实现耐压(聚酰亚胺),用特殊工艺的代价就是你无法与正常的硅基/GaN芯片集成。且片上变压器的效率由于工艺原因磁芯不闭合/线圈无法全包裹导致磁通量泄露,远远低于片外的。这玩意儿就不是出钱就能搞定的了。
    4. 电感/变压器现在有一种叫做模组的玩法,LTC(现在已被ADI收购)就有很多把分立式电感和DIE封装在一起的做法。这种玩法的好处很多,比如寄生小、芯片设计时外部参数可控等,代价是散热和成本。电容现在主流设计其实也是会在芯片内部封装一些小电容的,BGA封装上,几个DIE+几个~十几个电容的玩法很普遍(尤其是在PIN脚>100个以上的信号类IC),但这样还是会存在封装高度限制(没错,芯片除了X-Y轴外,很多厂商还会考虑高度,想想手机的厚度,这玩意儿也是很重要的,对吧)
  2. ESD类;主要是TVS管、磁珠等。
    1. TVS管,又称瞬态二极管,主要是解决打ESD的时候芯片击穿的问题。ESD嘛,可以想象成北方冬天身上啪啪啪响的静电。这玩意儿电量不大,但胜在电压极高,随随便便就几kV了。而芯片的ESD设计…… 很捉急,所以需要这种东西帮着扛。也不是不能集成进去,但因为很多厂商知道芯片厂设计的时候不会考虑特殊需求,所以一般还是会选择在后期加上。
    2. 磁珠,可以理解成一个很小的电感。这类东西玩的少,但想当然耳,觉得凡是和磁性材料有关的,目前主流的硅基工艺都很难集成进去。
  3. 特殊应用场景;类似SAW、晶振、各类换能器、各类排阻及其它等
    1. SAW是手机里面常用的一种器件,具体是用类似于插指换能的原理(不是很清楚,请自行百度)实现高精度的滤波。具体来说,芯片里面用电路不是不能滤波,但考虑到厂商生产的偏差(我们管这玩意儿叫corner,比如电阻的制造偏差可能在50%~200%这种级别)、温度变化(高低温器件性能差异很大,即便是参考电压源(1.2V上下),不做特殊设计一般-40~125℃都会有20mV量级的偏差)、电压变化(想想手机的电池衰减电压变化,LDO其实也是有调整率这个指标的),很难做出带宽很稳定很窄Q值很好的滤波特性的,所以只能仰仗材料了。
    2. 晶振,这玩意儿其实就是石英片(感谢south004提醒错误),搞成特定角度,加上电压就可以产生特别稳定的频率。芯片里面自己做出来的模拟振荡器真的很不靠谱,有时候可能频率jitter高达ns级别,如果用这种时钟和其它的芯片做同步…… 很难很难。而云母片集成到芯片里面去…… 我觉得foundry厂的人会疯掉(更大概率的答案是,这玩意儿又不是广泛需求,肯定先满足刚需不是)。
    3. 各类换能器,比如无线充电,比如超声波,比如…… 反正这种玩意儿要么就是需要尺寸太大要么就是和我们脆弱的硅基工艺不方便整合要么就是需求太小众别人不愿意整要么就是设计工程师没YY出对应的电路结构,总之就是不这么搞功能就做不出来
    4. 各类排阻及其它。留这个其实是打自己人的脸,一个芯片那么大,哪怕是小规模的电源芯片都几千个管子,我们工程师又不是天才谁敢保证自己能一次就设计成功啊,哪怕是迭代了十几代的产品,又有谁敢拍着胸脯说我保证没bug?流次片少则几十万多则几个亿甚至几十个亿,老板肯定不会说好吧我们追求完美大家加加班再来一次。这时候就要靠万能的外围器件来搭了

单片机外围电路设计之一:电阻

对于电阻,想必大家都觉得简单,没有什么好说的。其实电阻的应该还是非常广泛的,在不同的应用场合其作用是完全不同的。本人将总结其基本用法,及容易被忽略的地方。

1、概念

电阻(Resistance,通常用“R”表示),在物理学中表示导体对电流阻碍作用的大小。导体的电阻越大,表示导体对电流的阻碍作用越大。不同的导体,电阻一般不同,电阻是导体本身的一种特性。电阻将会导致电子流通量的变化,电阻越小,电子流通量越大,反之亦然。而超导体则没有电阻。

电阻元件的电阻值大小一般与温度,材料,长度,还有横截面积有关,衡量电阻受温度影响大小的物理量是温度系数,其定义为温度每升高1℃时电阻值发生变化的百分数。

电阻的主要物理特征是变电能为热能,也可说它是一个耗能元件,电流经过它就产生内能。电阻在电路中通常起分压、分流的作用。对信号来说,交流与直流信号都可以通过电阻。

导体的电阻通常用字母R表示,电阻的单位是欧姆(ohm),简称欧,符号是Ω(希腊字母,读作Omega),1Ω=1V/A。比较大的单位有千欧(kΩ)、兆欧(MΩ)(兆=百万,即100万)。

KΩ(千欧), MΩ(兆欧),他们的换算关系是:

1TΩ=1000GΩ;1GΩ=1000MΩ;1MΩ=1000KΩ;1KΩ=1000Ω(也就是一千进率)

两个电阻并联式也可表示为

串联:R=R1+R2+...+Rn

并联:1/R=1/R1+1/R2+...+1/Rn

两个电阻并联式也可表示为 R=R1·R2/(R1+R2)

定义式:R=U/I

决定式:R=ρL/S(ρ表示电阻的电阻率,是由其本身性质决定,L表示电阻的长度,S表示电阻的横截面积)

电阻元件的电阻值大小一般与温度有关,还与导体长度、横截面积、材料有关。衡量电阻受温度影响大小的物理量是温度系数,其定义为温度每升高1℃时电阻值发生变化的百分数。多数(金属)的电阻随温度的升高而升高,一些半导体却相反。如:玻璃,碳在温度一定的情况下,有公式R=ρl/s其中的ρ就是电阻率,l为材料的长度,单位为m,s为面积,单位为平方米。可以看出,材料的电阻大小正比于材料的长度,而反比于其面积。

电阻物理量:1欧电压产生一欧电流则为1欧电阻。另外电阻的作用除了在电路中用来控制电流电压外还可以制成发热元件等。

2、电阻应用

电阻在电路中的主要作用为分流、限流、分压、偏置、滤波(与电容器组合使用)和阻抗匹配等。

电阻通常分为三大类:固定电阻,可变电阻,特种电阻。

在电子产品中,以固定电阻应用最多。常用、常见的有RT型碳膜电阻、RJ型金属膜电阻、RX型线绕电阻,近年来还广泛应用的片状电阻。

电阻器型号命名:R代表电阻,T-碳膜,J-金属,X-线绕,是拼音的第一个字母。在国产老式的电子产品中,常可以看到外表涂覆绿漆的电阻,那就是RT型的。而红颜色的电阻,是RJ型的。 

按照功率可以分为小功率电阻和大功率电阻。大功率电阻通常是金属电阻,实际上应该是在金属外面加一个金属(铝材料)散热器,所以可以有10W以上的功率;在电子配套市场上专门卖电阻的市场上可以很容易地看到。 

金属电阻通常是作为负载,或者作为小设备的室外加热器,如,在CCTV的一些解码器箱和全天候防护罩中可以看到。 

电阻在电路中起到限流、分压等作用。通常1/8W电阻已经完全可以满足使用。但是,在作为7段LED中,要考虑到LED的压降和供电电压之差,再考虑LED的最大电流,通常是20mA(超高亮度的LED),如果是2×6(2排6个串联),则电流是40mA。

不同厂家选用不同材料的,其压降也有所不同。所以需要加上电实测一下。但是,不要让单只LED的电流超出20mA,这时加大电流亮度也不会增加,但是LED的寿命会下降,限流电阻的大小就是压降除以电流。电阻的功率随之可以算出。 

电位器 

电位器就是可调电阻。它的阻值在1~nΩ之间变化。如N=102=10×10的2次方,也就是1000欧姆,1KΩ 。同理,502=5KΩ。

电位器又分单圈和多圈电位器。单圈的电位器通常为灰白色,面上有一个十字可调的旋纽,出厂前放在一个固定的位置上,不在2头;多圈电位器通常为蓝色,调节的旋纽为一字,一字小改锥可调;多圈电位器又分成顶调和侧调2种,主要是电路板调试起来方便。 

有些是仪器仪表设备,通常是模拟电路,有一些不确定的因素,需要调节才能达到最理想的效果;有些是设备本身就需要输出一个可变的东西,如电压和电流,也需要一个电位器。 

排电阻 

是sip n的封装,比较常用的就是阻值502和103的9脚的电阻排;象sip9就是8个电阻封装在一起,8个电阻有一端连在一起,就是公共端,在排电阻上用一个 小白点表示。排电阻通常为黑色,也有黄色;51系统的P0需要一个排电阻上拉,否则,作为输入的时候,不能正常读入数据;作为输出的时候,接7407是可 以的,不需要上拉电阻;但是,接其它的芯片,还是不行。有兴趣可以看看51的P0的结构;没有兴趣,依葫芦画瓢,照做没错。 

光敏电阻 

当照在光敏电阻上的光强变化时,电阻值也在变化。显然这是半导体材料的特性。 

使用光敏电阻可以检测光强的变化。 

电阻的封装 

电阻的封装有表面贴和轴向的封装。轴向封装有:axial0.4、axial0.6、axial0.8等等;axial在英语中就是轴的意思;表面贴电阻的封装最常用的就是0805;当然还有更大的;但是更大的电阻不是很常用的。

3、限流电阻

电阻作为限流应该是最常用的应用之一,对于单片机外围设计来说,电阻的应用非常重要,在很多时候,我们必须在单片机的I/O端口上连接一个限流电阻,保证外围电路不会应用短路、过载等原因烧坏单片机的I/O端口,甚至整个单片机。

对于限流,想必大家都很清楚,可是在选择电阻阻值时,你的标准是什么?你知道单片机端口是最大输入电流吗?知道单片机的最大输出电流吗?知道单片机端口能承受的最大电压吗?

面对这些问题,恐怕很多人都是知其然不知其所以然,完全凭靠经验获取,并没有完全按照电路的要求计算取值。为此,在这里提出这些问题,并不想教大家怎么去计算这些值,知道欧姆定律的人都应该知道该怎么计算吧,所以,只是希望大家在选择之前,先了解单片机的这些参数,然后,根据参数进行计算。在计算时一定要留一定的预留空间。

IOL,IOH究竟指的是什么?

在看一些元器件的DATASHEET文件时,经常会碰到元器件的参数,IOL,IOH,IIL,IIH,我也知道他们指的是输入输出高低电平时的最大最小电流,但在连接时他们之间的匹配问题一直很模糊,如:IOL=1.5MA;     IOH=-300UA

另一个的输入为:

IIL=-100UA;    IIH=10UA;

他们之间是否能直接相接?IOL,IOH,究竟指的是什么?是驱动么?

参考答案:

IIL和IIH表示输入高低电平时的电流值,-号表示从器件流出电流。

IOL和IOH表示输出为低、高电平时的电流值,同样-号表示从器件流出的电流。

你所说的第一个器件表示在输出低电平的时候可以吸收(流入)1.5mA电流,输出为高电平的时候,可以输出300uA电流。第二个器件表示在输入低的时候会流出100uA电流,输入高的时候将吸收10uA电流。|IOL|>    |IIL|,|IOH|>    |IIH|,就表示输出器件可以带动输入器件。

4、上下拉电阻

电阻的又一应用就是上下拉电阻,上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下拉同理。也是是将不确定的信号通过一个电阻钳位在低电平。

上拉是对器件输入电流,下拉是输出电流;强弱只是上拉电阻的阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。

1 当TTL电路驱动CMOS电路时,如果电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V), 这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。

2 OC门电路必须使用上拉电阻,以提高输出的高电平值。

3 为增强输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。

4 在CMOS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻以降低输入阻抗, 提供泄荷通路。

5 芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限,增强抗干扰能力。

6 提高总线的抗电磁干扰能力,管脚悬空就比较容易接受外界的电磁干扰。

7 长线传输中电阻不匹配容易引起反射波干扰,加上、下拉电阻是电阻匹配,有效的抑制反射波干扰。

上拉电阻

就是从电源高电平引出的电阻接到输出端

1 如果电平用OC(集电极开路,TTL)或OD(漏极开路,CMOS)输出,那么不用上拉电阻是不能工作的, 这个很容易理解,管子没有电源就不能输出高电平了。

2 如果输出电流比较大,输出的电平就会降低(电路中已经有了一个上拉电阻,但是电阻太大,压降太高),就可以用上拉电阻提供电流分量, 把电平“拉高”。(就是并一个电阻在IC内部的上拉电阻上,这时总电阻减小,总电流增大)。当然管子按需要工作在线性范围的上拉电阻不能太小。当然也会用这个方式来实现门电路电平的匹配。

为什么要使用上拉电阻

一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。

数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!

一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似于一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻,也就是说,该端口正常时为高电平;C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻。

上拉电阻是用来解决总线驱动能力不足时提供电流的问题的。一般说法是上拉增大电流,下拉电阻是用来吸收电流。

5、典型应用

1 固定电平

在外设没有收到控制时,我们需要把某一外设或单片机I/O端口固定在某一固定电平上时,需要根据需要接上下拉电阻,例如:

上图中,对于按键输入来说,在没有按下按键时,如果没有上拉电阻的存在,单片机端口将处于悬乎状态,没有确定电平,当然如果有内部上拉电阻的单片机除外,加上上拉电阻会,在没有按键时,单片机端口保持高电平,有按键时,单片机端口将输入低电平。而对于蜂鸣器来说,由于和按键有同样的效果,不加上拉电阻,无法区别在没有单片机控制时,三极管的工作状态,所以,必须加上上拉电阻以保障无单片机控制时,三极管截止,蜂鸣器不工作。

2 电平输入

有时候由于器件自身设计的原因,如果不接外部上下拉电阻,设备无法正常实现高低电平的转换。例如,对于开漏输出的I2C总线来说,如果不接上拉电阻,其只能输出低电平,无法实现高电平输出,加上上拉电阻,保证在没有控制信号时,通过上拉电阻实现高电平。

面试题四色环电阻

下面的两种色环电阻它颜色还不一样,一个蓝色,一个土黄色,其实这个蓝色的属于金属膜色环电阻,外表涂的是一层金属膜,这个土黄的是碳膜色环电阻,外表涂的是一层碳膜。


金属膜电阻其外表一般有5个色环,碳膜电阻其外表一般有四个色环。

色环电阻除了用万用表去测量它的阻值外,其实我们还可以通过它外面的色环去辨别它的阻值。

色环在不同的位置代表了不同的含义,不同颜色的色环代表了不同的数值,具体大家可以看这个表,颜色总共有12种,分别是,棕红橙黄绿蓝紫灰白黑金银,在不同的位置他们分别可以表示数字,精度倍率和温度系数。


我们来看下实际的例子:

首先是四色环电阻

第一环表示电阻阻值十位数字,第二环表示电阻阻值个位数字,第三环表示倍率,也就是十的指数,第四环表示电阻的精度;

我们可以看到第一个环颜色是棕色,第二环颜色是绿色,第三环颜色是棕色,第四环颜色是金色,

那么这个电阻阻值就是150欧姆,电阻误差是5%;

怎么区分哪边是第一环呢?我们可以看电阻色环之间的间距,一般第三环和第四环间距比其它环之间的间距大。

然后我们来看到5环的色环电阻:

第一环表示百位数字,第二环表示十位数字,第三环表示个位数字,第四环表示倍率,也就是十的指数,第五环表示电阻的精度;

那么这个电阻就是43K欧姆,误差是1%。

六环电阻前五环和五环电阻一样的含义,最后一环表示电阻的温度系数,那么这个就表示的是一个100K欧姆的电阻,误差是1%,温度系数是50PPM的色环电阻

版权声明:本文为CSDN博主「小鱼教你模数电」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42693097/article/details/129251142

  面试题五二极管
  

特性:单向导电性,即:正向电压下,导通电阻很小;反向电压下,导通电阻极大或无穷大。 作用:检波、开关、整流,稳压、发光等。
  ①整流器:把交流电变为直流电,即只让交流电的正半周(或负半周)通过,再用电容器滤波形成平滑的直流。
  ②检波器:高频信号中的有用信号“检出来”。

二极管的分类
  按照工艺:硅/锗二极管。
  按照功能:整流二极管、开关二极管、稳压二极管、发光二极管、光电二极管等。
  按照功率:小功率二极管、大功率二极管。
  常用二极管的结构大体可分为点接触型和面接触型两种。其封装可分为金属封装和非金属封装,组成材料有硅材料和锗材料两种。在实际应用中,不仅要清楚地了解二极管的工作原理、特性、参数,还要能识别二极管的外形、型号,并能很好的测试二极管的优劣。如图1-8所示为常用二极管。
————————————————
版权声明:本文为CSDN博主「惺忪牛犊子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42645653/article/details/112132148

面试题六什么是中断

什么是中断?
中断是指CPU在执行当前程序时系统出现了某种状况,使得CPU必须停止当前程序,而去执行另一段程序来处理的出现的紧急事务,处理结束后CPU再返回到原先暂停的程序继续执行,这个过程就称为中断。

中断的作用
使得计算机系统具备应对对处理突发事件的能力,使其能及时响应紧急事件。

提高处理器效率,如果没有中断系统,CPU就只能按照原来的程序编写的先后顺序,对各个外设进行查询和处理,即轮询工作方式,轮询方法貌似公平,但实际工作效率却很低。

中断的分类
中断的一种分类,一种是CPU本身在执行程序的过程中产生的,一种是由CPU外部产生的

内部中断(引发异常)
当指令执行时由CPU主动产生的,受到CPU控制。内部中断分为软中断和异常。

软中断:是由软件产生的中断。异常:异常是另外一种内部中断,是指令执行期间CPU内部产生的错误引起的;

异常包含故障,陷阱,终止

故障:故障可以修正,如果修复成功,将返回到当前正在执行的指令,重新执行。否则将终止故障程序;

陷阱:陷阱会导致程序停止;

终止:由不可恢复的知名错误造成,处理器会终止应用程序。

外部中断
外部中断是系统外部设备引发的程序中断,一般分为可屏蔽中断和不可屏蔽中断。

可屏蔽中断
可屏蔽中断是由由中断能力的外部设备发出,例如I/O设备发出的所有中断请求都属于可屏蔽中断。

不可屏蔽中断
内部不可屏蔽中断是通过软件调用的中断以及由执行指令过程中产生的“异常”。包括溢出中断、除法出错中断等。

中断处理
中断处理程序被分为上半部分和下半部分,上半部分是比较紧急的事情,需要被立即执行,并且不可被中断;下半部分则一般是不太紧急又耗时的事情。

多个中断
第一种方式是在处理中断时禁止在此发生中断

第二种方式是考虑中断的优先级,允许高优先级的中断程序打断第优先级中断的运行,处理完高优先级中断后再返回处理原本的中断。
————————————————
版权声明:本文为CSDN博主「SEIMEI_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Justina0806/article/details/121823390

面试题七有多少种延时

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值