范文无忧网面试笔试面试回答

大神新年好!请教一个单片机面试题谢谢!

09月18日 编辑 fanwen51.com

[java编程一个小面试题求大神指教]public static void show(){ List<String> l=new ArrayList<String&gt;();//原始集合 List<String> l2=new ArrayList<String&gt;();//记录集合 Scanner in=new Scanner(System.in...+阅读

大神新年好!请教一个单片机面试题谢谢!

#include //----三个输入引脚------ sbit X0 = P1^0; sbit X1 = P1^1; sbit X2 = P1^2; //----三个输出引脚------ sbit Y0 = P1^0; sbit Y1 = P1^1; sbit Y2 = P1^2; bit Reg_X0 = 1; bit Reg_X1 = 1; bit Reg_X2 = 1; //----输入脉冲计数-------------- data unsigned char X0_Cnt = 0; data unsigned char X1_Cnt = 0; data unsigned char X2_Cnt = 0; //----设定输出脉冲个数---------- data unsigned char Y0_Num = 0; data unsigned char Y1_Num = 0; data unsigned char Y2_Num = 0; //----脉冲输出开关及计数------- data unsigned char Y0_Cnt = 0; data unsigned char Y1_Cnt = 0; data unsigned char Y2_Cnt = 0; //----分频参数----------------- data unsigned char Y1_Pre = 0; data unsigned char Y2_Pre = 0; //---输出脉冲宏函数------------ #define PULSE_OUT_Y0(X) {X0_Cnt = 0;Y0_Cnt = 0;Y0_Num = (X<<1);} #define PULSE_OUT_Y1(X) {X1_Cnt = 0;Y1_Cnt = 0;Y1_Num = (X<<1);} #define PULSE_OUT_Y2(X) {X2_Cnt = 0;Y2_Cnt = 0;Y2_Num = (X<<1);} //----单片机定时器中断时间,视具体的时钟而修改------- #define TH0_RELOAD 0xF4//---定时器1初始值,定时50us #define TL0_RELOAD 0x48//---定时器1初始值,定时50us void main(void) { TMOD = 0x01; TH0 = TH0_RELOAD; TL0 = TL0_RELOAD; ET0 = 0; EA = 0; TR0 = 1; for(;;) { //----计数-------------- if(Reg_X0 != X0) { Reg_X0 = X0; if(Reg_X0 == 0) { X0_Cnt++; if(X0_Cnt >= 10) { PULSE_OUT_Y0(Y0_Num); } } } //----计数-------------- if(Reg_X1 != X1) { Reg_X1 = X1; if(Reg_X1 == 0) { X1_Cnt++; if(X1_Cnt >= 20) { PULSE_OUT_Y1(Y1_Num); } } } //----计数-------------- if(Reg_X2 != X2) { Reg_X2 = X2; if(Reg_X2 == 0) { X2_Cnt++; if(X2_Cnt >= 50) { PULSE_OUT_Y2(Y2_Num); } } } } } void ISR_Timer0(void) interrupt 1 { TH0 = TH0_RELOAD; TL0 = TL0_RELOAD; if(Y0_Cnt < Y0_Num) { Y0_Cnt++; Y0 = ~Y0; } Y1_Pre++; //---2分频,输出5KHz if(Y1_Pre >= 2) { Y1_Pre = 0; if(Y1_Cnt < Y1_Num) { Y1_Cnt++; Y1 = ~Y1; } } Y2_Pre++; //---5分频,输出2KHz if(Y2_Pre >= 5) { Y2_Pre = 0; if(Y2_Cnt < Y2_Num) { Y2_Cnt++; Y2 = ~Y2; } } }

一个单片机电控板上的电路面试问题请前辈帮忙

很显然,上述电路是个延时供电的,这在工业控制中常用的电路。

延时主要通过R4与C2组成的RC延时电路来完成,刚上电时,由于C2的作用,Q2的基极电压变化很缓慢,Q2无法导通,所以导致Q1的G极电压约为24V,与S极极其接近,此时,虽然理论上Q1也能导通,但是Q1本身工作于放大状态,且自身的电阻非常大,可以视为不导通,即关断状态。

当5V电压通过R4继续向C2充电,且充电电压达到2N3904门限电压 0.6V之后,三极管2N3904开始导通,并经由放大状态很快进入饱和状态,此时,Q2完全导通,CE两端电压约为0.3V,计算得Q1的G极电压约为 12V,此时,Q1 的 Vgs = -12V,Q1导通,后面的R1负载得到电压。

当然,这是一个工作过程,其实在C2电压达到0.6V时,三极管就开始导通,Q1也是逐渐导通的,并不是突然导通的,我只是简略论述过程。

因此,主要计算延时参数就行,延时参数主要有R4和C2决定,RC常数为2.2s.

根据一阶RC 零状态,我们得到以下公式:

5 x ( 1 - exp(-t/2.2)) = 0.6V; exp(N)表示 e的N次方

所以,我们得到以下结果:t = 0.2812334s ,即在5V电压上电 281ms之后,Q1导通,开始向R1供电,但是因为C1的关系,需要的时间要大于 281ms。

R5的作用是加速 C2电能的泄放,当5V电压停止供电后,C2电压降到0.6V以下时,Q2基极不再导通,C2基于的电压只能靠自身消耗,需要的时间可能比较长,加上R5后,通过R5泄放,时间大概需要4.4s可认为泄放完全。

R5的参数不能太小,如果R5与R4分压后得到的结果小于0.6V,三极管Q2将无法导通,电路失效,为安全起见,三极管的BE间饱和电压Vbe我们取0.9V,计算得:

5*R2/(R1+R2) >= 0.9,R1取22K,得R2最小取值4.83K。出于成本考虑,我们可以选择5.1K的电阻。

延伸阅读:

请教几道面试题题1推理旨在让人陷入逻辑陷阱,其实道理很简单: 30元里已经含了服务员私藏起来的2元钱,再加上每人退回的1元,刚好是30元。即:30=25(房钱)+2(服务员私藏的)+3(每人退的一元合计) 题2的陷...

一个经典的面试题目我被难住了看你的单片机很牛求教:五个按键; 假设是 P0口的低两位; 按键 A: P0.0 和 P0.1 各串一个二极管,都连接在正极,这两个二极管的负极相连,与按键一端相连,按 键的另一端接地; 按键B: P0.0接二极管的正极,二极...

一个关于数据库的面试题求大神帮助!初学者表示很难!计算机??是要基本代码吗??SQL(Structured query language,结构化查询语言) 建表:create table 表名(字段名 类型 大小) 主键设置:not null primary key 修改表的三大操作: 删除:alter table...

请教:一道面试常见题有时为了考察应变能力面试回答一道题完毕时你可以这样回答: 哦,如果那样的话我觉得很抱歉也很遗憾,看来在这短短的时间里我没能更好地展现自己。我想尽量使自己显得老成持重点,但又不希望让您觉得我做作;我想让自己显得充...

请教高手面试题!我说一下我对这个题的看法“外方内圆,内方外圆”这一句话旨在说明一种为人处事的方式,外方内圆是一种处事方式,同时内方外圆也是一种处世方式。内方外圆就是要我们做事的时候要...

一道面试题请教一下我来回答两个题:针对部分干部学历越来越高,办事能力越来越低的现象,我认为:第一,应该说,这种现象不只存在于党政机关,公司企业也是客观存在的,这种现象证明:能力与学历并不能简单地划...

请教:一道面试常见题你可以这样回答: 哦,如果那样的话我觉得很抱歉也很遗憾,看来在这短短的时间里我没能更好地展现自己。我想尽量使自己显得老成持重点,但又不希望让您觉得我做作;我想让自己显得充...

怎么样能面试到一个好工作谢谢了大神帮忙啊给你点参考信息,希望能帮助到你: 练功篇 在你的求职计划实施之前,请勿必挤出一些时间,练习以下几大内功: 首先要做的是,明确自己的优缺点并且根据自己的长处来精心设计简历。如果...

一个关于数据库的面试题大神帮助!初学者表示很难!计算机面试题目sql:??是要基本代码吗??SQL(Structured query language,结构化查询语言) 建表:create table 表名(字段名 类型 大小) 主键设置:not null primary key 修改表的三大操作: 删除:al...

推荐阅读
图文推荐
栏目列表