微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机学习心得汇总(一)

单片机学习心得汇总(一)

时间:11-22 来源:互联网 点击:
阻抗的状态;在这种状态下,可以多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁;
  高阻态的概念在RS232和RS422通讯中还可以用到。
  3. 数据锁存
  当输入的数据消失时,在芯片的输出端,数据仍然保持;
  这个概念在并行数据扩展中经常使用到。
  4. 数据缓冲
  加强驱动能力。74LS244/74LS245/74LS373/74LS573都具备数据缓冲的能力。
  OE:output_enable,输出使能;
  LE:latch_enable,数据锁存使能,latch是锁存的意思;
  Dn:第n路输入数据;
  On:第n路输出数据;
  再看这个真值表,意思如下:
  第四行:当OE=1是,无论Dn、LE为何,输出端为高阻态;
  第三行:当OE=0、LE=0时,输出端保持不变;
  第二行第一行:当OE=0、LE=1时,输出端数据等于输入端数据;
  结合下面的波形图,在实际应用的时候是这样做的:
  a. OE=0;
  b. 先将数据从单片机的口线上输出到Dn;
  c. 再将LE从0->1->0
  d.这时,你所需要输出的数据就锁存在On上了,输入的数据在变化也影响不到输出的数据了;实际上,单片机现在在忙着干别的事情,串行通信、扫描键盘……单片机的资源有限啊。
  在单片机按照RAM方式进行并行数据的扩展时,使用movx @dptr, A这条指令时,这些时序是由单片机来实现的。
  后面的表格中还有需要时间的参数,你不需要去管它,因为这些参数都是几十ns级别的,对于单片机在12M下的每个指令周期最小是1us的情况下,完全可以实现;如果是你自己来实现这个逻辑,类似的指令如下:
  mov
  P0,A 将数据输出到并行数据端口
  clr
  LE
  setb
  LE
  clr
  LE
  上面三条指令完成LE的波形从0->1->0的变化
  74ls573跟74LS373逻辑上完全一样,只不过是管脚定义不一样,数据输入和输出端各在一侧,PCB容易走线;所以大家都喜欢使用这个芯片。
  4、 74LS244 – 数据缓冲器
  下载地址:
  数据输出能力比较强,输出电流可以到40mA以上;
  4个缓冲器分成2组,具有高阻态控制端口
  5、 74LS245 – 总线缓冲器
  双向数据接口,通常在ISA板卡上可以看到;
  早期的51系统中,为了扩展RAM、eprom、A/D、D/A、I/O等经常可以看到这个片子;
  为了增强驱动能力,有时是为了隔离输入和输出,主要是布线方便,象74LS573一样,输入、输出在一侧,经常用到这个片子
  6、 74LS138 – 三-八译码器
  在早期的51系统的扩展中,作为地址选通的片子,可以经常看到。
  另外一个类似的芯片是74LS154,是4-16译码器,现在更是少见了。
  有兴趣的可以研究一下何立民的经典著作中的有关章节。
  知道有这么一个芯片就可以了。
  2.3 CD4000系列
  CD4000系列的芯片,除了跟74系列的电气特性有所区别外,例如:
  1) 电压范围宽,应该可以工作在3V~15V,输入阻抗高,驱动能力差外,跟74系列的功能基本没有区别;
  2) 输入时,1/2工作电压以下为0,1/2工作电压以上为1;
  3) 输出时,1=工作电压;0=0V
  4) 驱动能力奇差,在设计时最多只能带1个TTL负载;
  5) 如果加上拉电阻的话,至少要100K电阻;
  6) 唯一现在使用的可能就是计数器,CD4060的计数器可以到14级二进制串行计数/分频器,这个74系列的做不到这么高;
  下载地址:
  2.4 ULN2003/ULN2008
  它的内部结构也是达林顿的,专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电动势的二极管。ULN2003的输出端允许通过IC 电流200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。
  经常在工控的板卡中见到这个芯片。
  有个完全一样的型号:MC1413,不过现在好像不怎么见到这个型号了,但是管脚与2003完全兼容。
  ULN2003可以驱动7个继电器;ULN2008驱动8个继电器。
  ULN2003下载地址:
  500){this.resized=true;this.style.width=500;}">http://www.hqew.com/document .detail.asp?pdid=148212
  ULN2008下载地址:
  没有找到。奇怪啊。
  2.5 光耦
  光耦是做什么用的?光耦是用来隔离输入输出的,主要是隔离输入的信号。
  在各种应用中,往往有一些远距离的开关量信号需要传送到控制器,如果直接将这些信号接到单片机的I/O上,有以下的问题:
  1) 信号不匹配,输入的信号可能是交流信号、高压信号、按键等干接点信号;
  2) 比较长的连接线路容易引进干扰、雷击、感应电等,不经过隔离不可靠
  所以,需要光耦进行隔离,接入单片机系统。
  常见的光耦有:
  1) TLP521-1/ TLP521-2/ TLP521-4,分别是1个光耦、2个光耦和4个光耦,HP公司和日本的东芝公司生产。
  发光管的工作电流要在10mA时,具有较高的转换速率;
  在5V工作时,上拉电阻不小于5K,一般是10K;太小容易损坏光耦;
  2) 4N25/4N35,motorola公司生产  隔离电压高达5000V;
  3) 6N136,HP公司生产
  要想打开6N136,需要比较大的电流,大概在15~20mA左右,才能发挥高速传输数据的作用。
  如果对速率要求不高,其实TLP521-1也可以用,实际传输速率可以到19200波特率。
  选择光耦看使用场合,tlp521-1是最常用的,也便宜,大概0.7~1元;
  要求隔离电压高的,选用4N25/4N35,大概在3元左右;
  要求在通讯中高速传输数据的,选用6N136,大概在4元左右。
  光耦应用的原理

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top