一个I/O口控制两个按键,你会咋设计?-电子技术方案|电路图讲解
年前去到一个朋友那里,提到现在客户对成本要求非常之高,尤其是玩具行业,已经是一分一厘的去计算产品成本。朋友感慨为了省成本,方案商是绞尽脑汁地去想各种实现方法,说遇到过为了节省成本,硬是用单片机一条IO实现了两个按键的功能,让他颇为诧异,好久都没想明白原理。 一条IO实现两个按键,听上去确实挺新奇,既然别人能够实现,我想我也应该可以做到,看来得找找实现的方法。我有一个习惯,遇到某些问题的时候,会在睡觉前想解决方法,想着想着就会睡着了,问题的答案有没有找到则不一定。 我知道有用一条IO实现多个按键的方法,这样的方法大多是选用的IO支持ADC功能,用电阻分压后通过读电压判断键值。如果IO不支持ADC功能,也不是不行,可以用电容充放电的方法实现ADC,从而用普通IO间接进行测量。(参见我之前关于键盘扫描的文章) 这样用一条IO实现两个按键给我的第一感觉是可能需要利用到电容充放电原理,于是在半梦半醒之中找到了实现的方法。
先看上图左边部分,如果MCU_IO1为双向IO口,假设单片机程序按以下流程处理,看看会得到什么样的结果?
1。MCU_IO1设定为输出,输出高电平一段时间,此时电容C1会充电,最后C1上的电压接近电源电压。
2。MCU_IO1设定为输入,如果J1、J2均不按下,此时MCU_IO1可以理解成一个阻值很大的电阻接地,电容C1上的电荷会通过这个电阻逐渐释放掉,这样C1上的电压会逐渐降低到零。因为C1上的电压下降需要一个过程,当MCU_IO1设为输入后马上读一下MCU_IO1的状态,此时会读到什么结果?显然是高电平状态1。
3.再将MCU_IO1设定为输出,输出低电平一段时间,显然不管电容C1处于什么状态,只要MCU_IO1输出低电平时间足够长,最后C1上的电压应该接近零。
4.再将MCU_IO1设定为输入,如果J1、J2同样不按下,MCU_IO1读到的是低电平状态0。 如果J1按下,再来看看这四步,此时电容C1已经被强制接到电源上,MCU_IO1对其的充放电已经不起作用,在步骤2中MCU_IO1读到的状态依然是1,但在步骤4中MCU_IO1读到的状态就不再是0,而是变为1。
如果J2按下,同样看这四步,此时电容C1被强制接到地,MCU_IO1对其充放电也失去作用,在步骤2中MCU_IO1读到的状态变为0,但在步骤4中MCU_IO1读到的状态保持为1。 到这里我想大家应该已经明白了实现方法,根据此四步中读到的MCU_IO1状态,就可以判断出J1、J2是否按下。 既然已经找到方法,是不是就万事大吉了呢?不然,我们还得回过头去看看此方法是不是足够可靠。如果J1按下,电容C1直接接到电源上,当MCU_IO1输出低时,MCU_IO1输出的低电平直接与电源短路,弄不好就会烧坏MCU_IO1,同理当J2按下时MCU_IO1输出高也存在同样的问题。
还有比这更严重的问题,如果用户同时按下J1和J2,哈!居然是电源和地直接短路,这样的后果很可能就是整个产品的电源部分一股青烟了事,就别想产品还能不能工作了。 不用担心,看一看前面电路图中的右半部分,在开关J3和J4上分别串联了一个220欧的电阻,这个电路不管J3和J4如何按,都不会出现短路的情况,按前面的四个步骤即可判断出J3和J4有没有按下,不过如果J3和J4同时按下并不能进行识别判断。
-电子元器件采购网(www、oneyac、com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。自建高效智能仓储,拥有自营库存超50,000种,提供一站式正品现货采购、个性化解决方案、选项替代等多元化服务。 (本文来源网络整理,目的是传播有用的信息和知识,如有侵权,可联系管理员删除)
1、晶体(crystal),有的RD称其为晶振:石英晶体,是无源的两个脚的,没有方向,需要IC或其它外部晶体振荡器输入,才产生频率,是无方向的。晶体还需要反向器,负载电容(loading capacitor)才可组成振荡器.石英晶体元件由石英晶体片和外壳组成一种无源压电元件,俗称晶体、晶振,我国早期称晶体谐振器。由此可见正常石英晶体元件(两脚),是无方向性的,但当一个引出端(引脚)与外壳相连导通时就有可能有方向性了。
crystal是一种机电器件,是用电损耗很小的石英晶体经精密切割磨削并镀上电极焊上引线做成。这种晶体有一个很重要的特性,如果给他通电,他就会产生机械振荡,反之,如果给他机械力,他又会产生电,这种特性叫机电效应。他们有一个很重要的特点,其振荡频率与他们的形状,材料,切割方向等密切相关。由于石英晶体化学性能非常稳定,热膨胀系数非常小,其振荡频率也非常稳定,由于控制几何尺寸可以做到很精密,因此,其谐振频率也很准确。
-请问反向器,负载电容(loading capacitor)是做什么用的??为什么要? -形成正反馈啊,这样才能起振啊 谐振器和钟振他们的却别在于谐振器是最简单的没有任何补偿的振荡器,而我们通常说的钟振是由一个谐振器加上ic组成一个回路而实现其自身的功能。以vcxo为例:压控晶体振荡器(VCXO)是通过红外加控制电压使振荡效率可变或是可以调制的石英晶体振荡器。VCXO主要由石英谐振器、变容二极管和振荡电路组成,其工作原理是通过控制电压来改变变容二极管的电容,从而“牵引”石英谐振器的频率,以达到频率调制的目的。VCXO大多用于锁相技术、频率负反馈调制的目的。而决定如何选用也应该很清楚了吧?
2。钟振(oscillator),有的RD也称其为晶振,一般有四个脚,是有方向的,有电源、地和时钟输出引脚,内部有晶体和振荡电路,不需要输入输入信号源,直接可产生频率。出厂时频率已校准。特点:应用方便、频率稳定、电磁辐射少。但价格比晶体贵些。石英晶体振荡器简称晶振,一般是由石英晶体元件、IC和阻容及外壳组成有源功能组件,加电即可输出稳定频率信号。对晶振一般为4脚(引出端),都有方向性,样本或说明书中有标注。
谐振器(Resonator):在电路中等效作用是一个具有选频作用的网络,是振荡电路核心元器件,决定了振荡器的频率稳定度(Frequency stability)种类有:石英晶体,陶瓷,LC,介质等材料的谐振器。石英晶体与放大电路配合如果行成正反馈,并且回路放大系数大于一则产生自激振荡信号。这就是石英晶体器的基本原理。 选用-------根据你所用的IC的具体要求,1)只能用外部时钟,则选钟振,或用晶振+反相器+电容来组成振荡器,按价钱和方便来取,2)若可用外部时钟,也可用晶振,那就用晶振,3)若只能用晶振,就选晶振
无源晶体与有源晶振的区别、应用范围及用法:
1、无源晶体——无源晶体需要用DSP片内的振荡器,在datasheet上有建议的连接方法。无源晶体没有电压的问题,信号电平是可变的,也就是说是根据起振电路来决定的,同样的晶体可以适用于多种电压,可用于多种不同时钟信号电压要求的DSP,而且价格通常也较低,因此对于一般的应用如果条件许可建议用晶体,这尤其适合于产品线丰富批量大的生产者。 无源晶体相对于晶振而言其缺陷是信号质量较差,通常需要精确匹配外围电路(用于信号匹配的电容、电感、电阻等),更换不同频率的晶体时周边配置电路需要做相应的调整。建议采用精度较高的石英晶体,尽可能不要采用精度低的陶瓷警惕。
2、有源晶振——有源晶振不需要DSP的内部振荡器,信号质量好,比较稳定,而且连接方式相对简单(主要是做好电源滤波,通常使用一个电容和电感构成的PI型滤波网络,输出端用一个小阻值的电阻过滤信号即可),不需要复杂的配置电路。 有源晶振通常的用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。相对于无源晶体,有源晶振的缺陷是其信号电平是固定的,需要选择好合适输出电平,灵活性较差,而且价格高。
对于时序要求敏感的应用,个人认为还是有源的晶振好,因为可以选用比较精密的晶振,甚至是高档的温度补偿晶振。有些DSP内部没有起振电路,只能使用有源的晶振,如TI的6000系列等。有源晶振相比于无源晶体通常体积较大,但现在许多有源晶振是表贴的,体积和晶体相当,有的甚至比许多晶体还要小。
-电子元器件采购网(www、oneyac、com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。自建高效智能仓储,拥有自营库存超50,000种,提供一站式正品现货采购、个性化解决方案、选项替代等多元化服务。 (本文来源网络整理,目的是传播有用的信息和知识,如有侵权,可联系管理员删除)
相关文章
发表评论