坊间有一些参考书,准备今天上午到北京中发市场转了一圈,我记得以下参考书目较好: 1. 周航慈:《单片机程序设计》 2. 徐涵芳:《MCS-51单片机结构与设计》 3. 何立民:《......》 有了这些就基本够用了;其它的很多都是资料的翻译;如果英文不好,可以看看;英文好的话,可以不必了,省电钱买开发系统和编程器、开发板什么的,需要什么资料直接下载PDF文件好了。 要想成为电子工程师,需要宽带,在家里安装包月的adsl或者长宽,绝对值得。 实际上,网络上什么都有了,就是一个网络数据库,要好好利用。 网上自有黄金屋,网上自有颜如玉…… 第二课 基本的芯片和分立器件 2.1 简述 有必要对以下系列的芯片和分立器件进行介绍。 除了单片机作为控制器的核心外,作为一个产品,由很多东西构成;所以,在讲系统之前,先将这些零零碎碎的东西一并交待。就好像一栋房子,有各种各样的构件组成,下面的这些东东就像砖瓦一样,没有不行。 2.2 74系列芯片 74系列的芯片的下载地址: http://www.dainau.com/TTLDATASHEET.htm http://www.100y.com.tw/asp/class36_40.htm http://www.mcu51.com/download/digitpdf/74xx/default.htm 74系列的芯片是古老的一族,大部分的芯片现在均已不用了,但是,实际上,在目前的系统中,还能看到一些芯片,有些芯片现在还在系统中使用,例如: 1、 7404 – 6个反相门 下载地址: http://www.hqew.com/document/detail.asp?pdid=125533 将输入的TTL逻辑反相,如:0->1,1->0 2、 7407 – 6个集电极开路门 下载地址: http://www.hqew.com/document/detail.asp?pdid=125518 由于集电极开路门可以外接高电压,可以最高到DC30V,电流最大到39mA,通常我用它驱动8字数码管和继电器等大电流的负载;开路门内部结构是达林顿管的,输出的逻辑是正的; 与其类似的芯片是7406,只不过是反相开路门。 3、 74LS573与74LS373 – 8 数据锁存器 74LS373下载地址: http://www.hqew.com/document/detail.asp?pdid=129171 74LS573下载地址: http://www.yddz.net/yddzsourse/pdf/74hc573.pdf 引入几个概念: 1. 真值表 参见74LS373的PDF的第2页: Dn LE OE On H H L H L H L L X L L Qo X X H Z 这个就是真值表,表示这个芯片在输入和其它的情况下的输出情况。 每个芯片的数据手册(datasheet)中都有真值表。 布尔逻辑比较简单,在此不赘述; 2. 高阻态 就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁; 高阻态的概念在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 – 数据缓冲器 下载地址: http://www.mcu51.com/download/digitpdf/74xx/74F244.pdf 数据输出能力比较强,输出电流可以到40mA以上; 4个缓冲器分成2组,具有高阻态控制端口 5、 74LS245 – 总线缓冲器 http://www.mcu51.com/download/digitpdf/74xx/74F245.pdf 双向数据接口,通常在ISA板卡上可以看到; 早期的51系统中,为了扩展RAM、eprom、A/D、D/A、I/O等经常可以看到这个片子; 为了增强驱动能力,有时是为了隔离输入和输出,主要是布线方便,象74LS573一样,输入、输出在一侧,经常用到这个片子 6、 74LS138 – 三-八译码器 http://www.mcu51.com/download/digitpdf/74xx/74F138.pdf 在早期的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系列的做不到这么高; 下载地址: http://www.100y.com.tw/asp/class36_40.htm http://www.100y.com.tw/pdf_file/CD4060.PDF 2.4 ULN2003/ULN2008 它的内部结构也是达林顿的,专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电动势的二极管。ULN2003的输出端允许通过IC 电流200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。 经常在工控的板卡中见到这个芯片。 有个完全一样的型号:MC1413,不过现在好像不怎么见到这个型号了,但是管脚与2003完全兼容。 ULN2003可以驱动7个继电器;ULN2008驱动8个继电器。 ULN2003下载地址: 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公司和日本的东芝公司生产。 下载地址: http://www.100y.com.tw/pdf_file/TLP521-1-2,4.PDF 发光管的工作电流要在10mA时,具有较高的转换速率; 在5V工作时,上拉电阻不小于5K,一般是10K;太小容易损坏光耦; 2) 4N25/4N35,motorola公司生产 下载地址: http://www.100y.com.tw/pdf_file/4N25-8,35-7,H11A1-5.PDF 隔离电压高达5000V; 3) 6N136,HP公司生产 下载地址: http://www.100y.com.tw/pdf_file/6N135-6.PDF

评论