1、1.选用抗静电或抗雷击的芯片可有效避免此类损失,常见的芯片有MAX485E、MAX487E、MAX1487E 等。特别值得一提的是 SN75LBC184,它不但能抗雷电的冲击而且能承受高达 8kV 的静电放电冲击,是目前市场上不可多得的一款产品。2. 根据 RS-485 的标准规定,接收器的接收灵敏度为200mV,即接收端的差分电压大于、等于+200 mV 时,接收器输出为高电平;小于、等于-200mV时,接收器输出为低电平;介于200mV 之间时,接收器输出为不确定状态。3. 即在进入正常的数据通信之前,由主机预先将总线驱动为大于+200mV,并保持一段时间,使所有节点的接收器产生高电平输出
2、。这样,在发出有效数据时,所有接收器能够正确地接收到起始位,进而接收到完整的数据。4. 通信数据的波特率往往做得较高(通常都在 4800 波特以上)。限制通信波特率提高的“瓶颈”,并不是现场的导线,而是在与单片机系统进行信号隔离的光耦电路上,应采用高速光耦TIL117。til117 是高速光耦,一般应用于通讯隔离。要驱动继电器隔离,可以用 TIL521 系列光耦,便宜好用5. 485 总线的传输端一定要加有保护措施。在电路设计中采用稳压管D1、D2 组成的吸收回路,也可以选用能够抗浪涌的 TVS 瞬态杂波抑制器件,或者直接选用能抗雷击的 485 芯片(如 SN75LBC184 等) 。6.管脚
3、:RO,接收器的输出端,若 A 比 B 高 200mA,RO 为高,反之,低电平。RE 输出使能端,低电平有效。高电平时, RO 高阻状态。7. 最远通信距离:1200m 共模电压最大、最小值: +12V;-7V 差分输入范围: -7V+12V 接收器输入灵敏度:200mV 8.由于 RS-485 芯片的特性,接收器的检测灵敏度为 200mV,即差分输入VAVB +200mV,输出逻辑 1,VAVB 200mV,输出逻辑 0;而 A、B端电位差的绝对值小于 200mV 时,输出为不确定。如果在总线上所有发送器被禁止时,接收器输出逻辑 0,这会误认为通 信帧的起始引起工作不正常。解决这个问题的办
4、法是人为地使 A 端电位高于 B 两端电位,这样 RXD 的电平在 485 总线不发送期间(总线悬浮时)呈现唯一的高电平,8031单片机就不会被误 中断而收到乱字符。通过在 485 电路的 A、B 输出端加接上拉、下拉电阻 R7、R9 ,即可很好地 解决这个问题。9. 在 485 芯片的通信中,尤其要注意对 485 控制端 DE 的软件编程。为了可靠的工作,在 485 总线状态切换时需要做适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先 将控制端置“1”,延时 1ms 左右的时间,再发送有效的数据,一包数据发送结束后再延时 1ms 后,将控制端置 “0”。这样的处理会使总线在状态切
5、换时,有一个稳定的工作过程。10. 通过DC-DC 将系统电源和RS-485收发器的电源隔离;通过隔离器件将信号隔离,彻底消除共模电压的影响。实现此方案的途径可分为:(1)传统方式:用光耦、带隔离的DC-DC、RS-485芯片构筑电路;(2)使用二次集成芯片,如 ADM2483、ADM2587E 等。ADM2587E 是ADI 继ADM2483之后,推出的单电源隔离型485芯片。SOW-20封装,2500V隔离电压,全/半双工、传输速率500K、共模电压抑制能力25KV/S、15KV 的ESD 保护。适合用于工控、电力、仪表、安防等各种 485 隔离场合。11. 一般会在VA、VB 上各串接一
6、个410的PTC(自恢复保险丝,150mA/600V)电阻,并在VA、VB 各自对地端接6、8V 的TVS 管,当然也可用普通电阻与稳压二极管代替。12. 485是半双工的通信,收发转换是需要一定的时间的,所以一般在收发转换之间,和每发送完一帧数据之后,都要有相应的延时,如果出现收发不正常、或第一帧数据之后就出现误码现象,则可以适当的增加一下延时时间,以观问题是否解决。13. R0接上拉电阻:异步通信数据以字节的方式传送,在每一个字节传送之前,先要通过一个低电平起始位实现握手。为防止干扰信号误触发RO(接收器输出)产生负跳变,使接收端MCU 进入接收状态,建议 RO 外接 10k 上拉电阻。1
7、4. 合理选用芯片。例如,对外置设备为防止强电磁(雷电)冲击,建议选用TI 的75LBC184等防雷击芯片,对节点数要求较多的可选用SIPEX 的SP485R。此外经我们实验发现, ADI 的非隔离型485芯片ADM487E、隔离型芯片ADM2483、ADM2587在多节点、防雷击方面也有着很好的表现。一个运行良好的系统其差模电压一般在1.2V 左右。15. 为保证在A、B 开路情况下RS485 的差动电压不小于 200mV(绝对值) ,上下拉电阻R1、 R2的选取应和 VCC 有关。当终端电阻为120,VCC 为5V 时,根据分压比可算出R1、R2应不大于 1.4k才合理。 ,如想在A、B
8、短路时也解决 fail-save 问题的话,输入端还应串入R3 、R4(比如取几百) 。有了R3、R4 还有个好处就是:R1、R2的阻值可取得再大些,防止发送方驱动器的负载太重。16.遥信:远程信号, 对诸如告警情况、开关位置或阀门位置等状态信息的远程监视。主要是指远程测试开关的当前状态,如是否合闸,是否储能等。17. Op07 芯片是一种低噪声,非斩波稳零的双极性(双电源供电)运算放大器集成电路。OP-07 是微电流放大器,和普通运放一样都用于放大电路。但是OP-07 的输入灵敏度更高。OP07C/OP07D 的工作温度范围为-40+85。OP07DP 最后一个 P 是表示封装,后缀字母是
9、D 表示是小封装的双列 8 脚贴片; J 表示是 TO99 的 8 脚封装;如果字母是 P 表示是塑料双列直插 8 脚封装;如果字母是 Z 表示是陶瓷双列直插 8 脚封装;如果字母是 C833 表示是方形 20 脚封装。18. 跟随器只是起到一个隔级的作用,它后面的负载要求的电流不大,电压跟随器亦可理解为一个缓冲级。输入信号加在集成运放的同相输入端。输出电压接到反相输入端,电压跟随器的作用:缓冲,隔离以及提高带负载的能力电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低。输入阻抗要达到几兆欧姆是很容易做到的。输出阻抗低,通常可以到几欧姆,甚至更低。缓冲作用:电压放大器的输出阻抗一般比较高,通常
10、在几千欧到几十千欧,如果后级的输入阻抗比较小,那么信号就会有相当的部分损耗在前级的输出电阻中。在这个时候,就需要电压跟随器来从中进行缓冲。起到承上启下的作用。电压跟随器的输入阻抗高、输出阻抗低特点,可以极端一点去理解,当输入阻抗很高时,就相当于对前级电路开路;当输出阻抗很低时,对后级电路就相当于一个恒压源,即输出电压不受后级电路阻抗影响。一个对前级电路相当于开路,输出电压又不受后级阻抗影响的电路当然具备隔离作用,即使前、后级电路之间互不影响。电压跟随器往往用于提高模拟信号(或电压基准源)的带载能力;而对于数字信号,可以选用逻辑门 IC。电压跟随器的作用是把阻抗很高的信号做电流放大。电压跟随器来
11、放大电流,这样就可以使输出的信号既达到需要的电压,又有足够的电流来推动扬声器了。在输入级,有时一个信号要被分配到多个下级输入上,但是前一级的输出能力有限,这时就可以使用跟随器,保持信号电压不变的情况下增加它的输出电流,以达到驱动多个后级电路的目的。19. R= R1/R2,指电阻 R 为 R1 和 R2 并联的等效电阻,只是表示并联的意思。/ 是并联符号计算公式为 R=(R1*R2)/(R1+R2).。20. 怎么把原有的线拉长,就是一端顶点不动,另一端拉到更远的位置?EDIT(编辑)-MOVE(移动)- drag track end (拖拉端点)然后把鼠标放在你要修改的导线端点,按住鼠标左键
12、进行拖拉就可以。21.点击导线选中网络:S-C-点击网络。22. 红外收发:单片机中断输出 38KHZ 信号,由单片机 的异步串行口 TX 输出的串行数据信号,送到与非门 74HC00 的输入端。与非门的另一输入端接 38KHZ的载波信号。与非门的输出信号用来控制三极管的开通或关断,从而控制红外发射管发送信息。这样就达到了用串行口 TX 输出的串行数据信号直接调制载波,进行红外数据传输的目的。因单片机在复位后,TXD 脚为高电平,为满足同步的要求,采用低电平同步脉冲,经与非门(3)后变成高电平同步脉冲。所以单片机 TXD 发送的编码应是反码。红外接收:直接送给单片机管脚。23. 选用 11.0
13、592MHz 只是为了得到精确的通信波特率,串口通信的可靠性高.。12M 的晶振对应的单片机机器周期 T=1/12M*12,为 1us。若 8 位定时,最大255us,16 为定时,最大 65535us。约为 65ms,看门狗可 50ms 清一次零。24. MAX813:看门狗定时时间为 1.6S。如果在 1.6s 内没有触发该电路(即第6 路 WDI 无脉冲输入),则第 8 脚 WDO 输出一个低电平信号,即看门狗电路输出信号。实际应用时,将第 1 脚(MR)与第 8 脚 WDO 相连,第 7 脚 RESET 接CPU 的复位脚,第 6 脚 WDI 与 CPU 的一个 I/O 口相连(假如为
14、 P1.2)。在单片机运行过程中,P1.2 不断输出脉冲信号。如果因某种原因 CPU 进入死循环,则P1.2 无脉冲输出。于是 1.6 秒后在 MAX813 的第 8 脚输出低电平,该低电平加到第 1 脚,使 MAX813 产生复位输出,使 CPU 有效复位,摆脱死循环的困境。另外,当电源电压低于门限值 4.65V 时,MAX813 也产生复位输出,CPU 处于复位状态,不执行任何指令,直到电源电压恢复正常,因此可有效防止因电源电压较低时 CPU 产生错误的动作。一般 PFI 脚在不用时,一般应接 VCC 或地。软件编程Void WatchDog()/喂狗程序P1.2=P1.2;/取反即可Ma
15、in()While(1).WatchDog();/喂狗,正常运行情况下,需在 1.6S 内按时喂食,不然狗饿了会叫,一旦叫了,便会让 MCU 产生复位。这个要注意.25. AT89SXX 系列单片机实现了 ISP 下载功能,故而取代了 89CXX 系列的下载方式,也是因为这样, ATMEL 公司已经停止生产 89CXX 系列的单片机,现在市面上的 AT89CXX 多是停产前的库存产品。26. 51 芯片的串口工作模式 0 的波特率是固定的,为 fosc/12,以一个 12M 的晶振来计算,那么它的波特率可以达到 1M。模式 2 的波特率是固定在 fosc/64 或 fosc/32,具体用那一种
16、就取决于 PCON 寄存器中的 SMOD 位,如 SMOD 为 0,波特率为 focs/64,SMOD 为 1,波特率为 focs/32。模式 1 和模式 3 的波特率是可变的,取决于定时器 1 或 2(52 芯片)的溢出速率。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。波特率=(2SMOD32)定时器 1 溢出速率上式中如设置了 PCON 寄存器中的 SMOD 位为 1 时就可以把波特率提升 2 倍。通常会使用定时器 1 工作在定时器工作模式 2 下,这时定时值中的 TL1 做为计数,TH1 做为自动重装值 ,这个定时模式下,定时器溢出后,TH1 的
17、值会自动装载到 TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式 2 下定时器 1 溢出速率的计算公式如下:溢出速率=(计数速率)/(256TH1)上式中的“计数速率” 与所使用的晶体振荡器频率有关,在 51 芯片中定时器启动后会在每一个机器周期使定时寄存器 TH 的值增加一,一个机器周期等于十二个振荡周期,所以可以得知 51 芯片的计数速率为晶体振荡器频率的 1/12,一个 12M 的晶振用在 51 芯片上,那么 51 的计数速率就为 1M。27. 89s51 有 ISP 在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。最高工
18、作频率为33MHz。89s51 内部集成看门狗计时器。电源范围:89S5*电源范围宽达 45.5V,而 89C5*系列在低于 4.8V 和高于 5.3V 的时候则无法正常工作。sizeof 的含义很明确,它用以获取字符数组的字节数(当然包括结束符 0)。30.单片机编程脚为脚,其中脚为复位脚,脚为通讯脚;单片机串口通讯脚为、脚。这样需要转换电平的信号有五路,为此,我们增加了一个双刀双掷拨动开关作为“ISP 下载”和“ 串口收发”切换开关。另外,在使用“ISP 下载”功能时,脚必须是高电平+ 5V,而在单片机运行时, 脚应为低电平,所以我们在制作单片机系统板时必须要有手动复位电路。在使用“ISP
19、 下载”功能时,需要一直按下手动复位键,编程结束后,只要释放手动复位键,程序便立即运行,31. 电脑串口 DB9 的第 2、3、5 管脚定义分别是收(RX)、发(TX)、地(GND),而 232 连接方式是交叉线连接,即 DB9 的 RX 接 MAX232 IC 的TX(也是说第 14 管脚), DB9 的 TX 接 MAX232 IC 的 RX(也是说第 13 管脚)。另外 232 不支持热拔插,否则容易使 MAX232 IC 严重发烫,时间久一点就会烧坏。32. 74hc32:四组 2 或门。 74HC1G32:只有一组或门33. ATMEL 公司生产的 29 系列 CMOS Flash
20、存储器,分为电池电压型AT29BV 系列(2.7V-3.6V 操作) ,低电压型 AT29LV 系列(3.0-3.6V 操作),标准电压型 AT29C (5V 操作)。AT29C010A 具有 1M 位的存储空间,分成 1024 个分区,每一分区有 128 个字节。从 AT29C010A 中读取数据与 E2PROM 的操作相似,再编程能力是以每一分区为单位的,128 字节的数据装入 AT29C010A 的同时完成编程。在一个再编程周期里,存储单元的寻址和 128 字节数据通过内部锁存可释放地址和数据总线,这样可为其他操作提供地址和数据总线。编程周期开始,AT29C010A 会自动擦除分区的内容
21、,然后对锁存的数据在定时器的作用下进行编程。编程周期的结束是通过查询 I/O7 的有效时实现的,一旦编程周期结束,就可开始一个新的读或编程操作。AT29C010A 以分区为单位进行再编程,如果某一分区中的一个数据需要改变,那么这一分区中的所有数据必须重新装入。一旦某一分区中的字节被装入,这些字节将同时在内部编程时间内进行编程,在此时间内若有数据装入,则会产生不确定的数据;当第一字节数据装入 AT29C010A 之后,接着其余字节将以同一方式依次装入,字节不需按顺序装载,可以任意方式装载。每一新装载的数据若要被编程,必须有(或)由高到低的跳变,这一跳变需在 150ms 内完成,同时前面字节的(或
22、) 由低到高的跳变时间也是 150ms。如果一个由高到低的跳变在最后一个由低到高的 150ms 内没有被检测到,那么字节装载的时间段将结束,此时内部编程时间段开始。A7-A16 提供分区地址,分区地址只在每一个(或)由高到低的跳变时才有效;A0-A6 提供分区中每一字节的地址。一旦编程时间段开始,在写周期的维持时间内,读操作实际上是一种查询。应用实例下面介绍用 AT29C010A 作为工业智能检测仪器存储器的一个实际应用,主要用AT29C010A 来存储一级汉字库汉字部分、单片机采集处理的数据和仪器设定的一些参数。该仪器采用 AT89C52 作为中央处理器,AT29C010A 作为存储器,74
23、HC373 作为地址锁存器,点阵式 LCD 显示器用作显示图形和字符,X1203 作为实时时钟;另外,还有上位机通信电路,继电器报警电路,按键操作电路、指示灯电路及检测电路等。硬件接口电路AT29C010A 存储器与单片机 AT89C52 的硬件接口电路图如图 4 所示。用 AT89C52的 P0 口作为存储器的数据输入/输出端,通过 P0 口经 74HC373 输出低 8 位地址,P2 口和 P3.0 出端作为存储器 A8A16 地址,CE 接 ALE,WE 接 WR(P3.6),OE 接 RD(P3.7)。软件注意事项读取数据过程类似于普通 E2PROM。但在写入(编程)时,它和普通 E2
24、PROM 不同,AT29C010A 是采用按扇区编程,每个扇区大小为 128 个字节。由于每次写入数据时,整个扇区数据都将重写,因此必须采用数据缓冲区来存放要写入的数据(包括该扇区内已存在的数据)。在此应用实例中,采用 AT89C52 作中央处理器,它具有 256 字节内部数据存储器(RAM),用其中 128 字节(80H_FFH)RAM 作为数据缓冲区存放要写入的数据。29c020 (256K x 8) Flash Memory。28C64、24C02、93C46、AT45DB161、AT29C020,K9F1208U0C 等存储器。34. 51 单片机的并行口有 P0、P1、P2 和 P3,由于 P0 口是地址数据总线口,P2 口是高 8 位地址线, P3 口具有第二功能,这样,真正可以作为双向 IO 口应用的就只有 P1 口了。这在大多数应用中是不够的,因此,大部分 MCS-51 单片机应用系统设计都不可避免的需要对 P0 口进行扩展。 MCS-51 单片机的数据总线是一种公用总线,不能被独占使用,这就要求接在上面的芯片必须具备“三