虫虫首页|资源下载|资源专辑|精品软件
登录|注册

DL-T

  • 多功能单片机开发工具

    超级单片机开发工具,包含:模拟/数字转换表计算,LED 编码器,色环电阻阻值计算,Hex/Bin转换,串口调试器,端口监视器等实用功能 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。   1. 模拟/数字转换表计算 本功能主要用于准备用于查表计算的 R/T 表格,主要用于温度、浊度等模拟量的测量,根据电路分压电阻的位置分为两种,可以参看图示选择正确的电路连接形式;可自定义分压电阻阻值;目前支持8位 /10位转换精度;可选择生成汇编/C源代码格式的数据等。   2. LED 编码器 本功能主要用于自动根据图形信息、段位置信息生成可保存在单片机程序存储器中供查表使用的数据。可自行定义字符的图形及各段的位置信息;可以选择LED类型,目前有 7段、14段、16段三种类型;自带图形定义,也可自定义并能保存自定义方案;自定义位置信息并可保存;可以生成 8位、4位编码,4位编码主要针对一些有 4个COM端的LED/LCD驱动器;同样可以保存为C/ASM格式数据。   3. 色环电阻阻值计算 本功能主要为记不住色环值的人(像我)用的,比较简单,单击相应环的相应颜色,阻值将实时给出。   4. Hex/Bin转换 Intel Hex格式文件和Bin格式文件相互转换,本功能使用机会较少。 Hex/Bin文件转换为文本方式(变量定义方式),将Hex文件或Bin文件转换为C/ASM源代码格式的数据。 CRC计算,提供3种计算方法。   5. 串口调试器 可以通过串口接收/发送数据,作为普通的串口调试器,可以手动发送所填内容,也可以发送整个文件;   内存映射功能,对于监控单片机内存非常方便,还可以定义内存变量,自动从接收到的数据中提取变量值,支持字节型、整型、长整型、浮点型、双精度型、位掩码(可用于位变量)、数组型(其他不规则变量)等,同时支持10进制、16进制、2进制显示;可以自由选择需要实时监测的变量;变量方案可以存盘等等;可以设为固定长度或定义首/尾标志,设置内存中实际起始地址,显示时和计算变量时用;由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本);   变量组合,适用于文本方式的变量监测,例如: Var1=1111#var2=2222#var3=333.333   通讯时可以选择二进制、文本方式显示;可设置自动滚屏;设置最大显示行数; 可以选择多命令交互方式通讯,且可以作为主发方、从发方;主发时可以循环发送所选命令;从发时可以定义自动应答命令,即接收到表中所列的命令后,自动用相应内容应答,是不是很实用?   可以设为手动发送或定时发送。   可自定义通讯超时时间。   可以保存历史数据,包括发送和接收数据!   计划加入调制解调器控制。   6. 端口监视器 监视所选串口/并口的一切通讯活动而不占用其资源,可以设置过滤条件,可同时监视多个端口,可以保存数据,可以直接记录到文件中。

    标签: 多功能 单片机 开发工具

    上传时间: 2013-10-29

    上传用户:lacsx

  • 基于SCF及CPLD的程控滤波电路设计

      SCF原理的基础是开关电容与电阻的等效:在电容两端开关控 制下,电容被充放电,电荷的转移过程产生脉冲电流,可以计算其平均值。当开关频率足够快时,该电流等效于流过电阻的电流,可看作是电阻被开关电容取代。可 以证明,电阻R可表示为开关电容Ck与开关切换周期T的比值:

    标签: CPLD SCF 程控滤波 电路设计

    上传时间: 2013-10-21

    上传用户:manga135

  • 采用TÜV认证的FPGA开发功能安全系统

    This white paper discusses how market trends, the need for increased productivity, and new legislation have accelerated the use of safety systems in industrial machinery. This TÜV-qualified FPGA design methodology is changing the paradigms of safety designs and will greatly reduce development effort, system complexity, and time to market. This allows FPGA users to design their own customized safety controllers and provides a significant competitive advantage over traditional microcontroller or ASIC-based designs. Introduction The basic motivation of deploying functional safety systems is to ensure safe operation as well as safe behavior in cases of failure. Examples of functional safety systems include train brakes, proximity sensors for hazardous areas around machines such as fast-moving robots, and distributed control systems in process automation equipment such as those used in petrochemical plants. The International Electrotechnical Commission’s standard, IEC 61508: “Functional safety of electrical/electronic/programmable electronic safety-related systems,” is understood as the standard for designing safety systems for electrical, electronic, and programmable electronic (E/E/PE) equipment. This standard was developed in the mid-1980s and has been revised several times to cover the technical advances in various industries. In addition, derivative standards have been developed for specific markets and applications that prescribe the particular requirements on functional safety systems in these industry applications. Example applications include process automation (IEC 61511), machine automation (IEC 62061), transportation (railway EN 50128), medical (IEC 62304), automotive (ISO 26262), power generation, distribution, and transportation. 图Figure 1. Local Safety System

    标签: FPGA 安全系统

    上传时间: 2013-11-14

    上传用户:zoudejile

  • 中望cad 2010简体中文版下载

    中望CAD2010体验版正式发布。作为中望公司的最新年度力作,在继承以往版本优势的基础上,中望CAD2010融入了以“安全漏洞抓取、内存池优化、位图和矢量图混合处理”等多项可以极大提高软件稳定性和效率的中望正在申请全球专利的独创技术,新增了众多实用的新功能,在整体性能上实现了巨大的飞跃,主要体现在以下几方面: 大图纸处理能力的提升 文字所见即所得、消隐打印等新功能 二次开发接口更加成熟 一、大图纸处理能力的提升 中望CAD2010版采用了更先进的内存管理以及压缩技术,采用了一些新的优化算法,使得中望CAD常用命令执行效率和资源占用情况得到进一步的提高,特别是在低内存配置下大图纸的处理能力,大大减少了图纸内存资源占用量,提升了大图纸处理速度。主要体现在: 大图纸内存占用量显著下降,平均下降约30%,地形图类图纸则平均下降50%; 实体缩放和平移,zoom\pan\redraw更加顺畅; 保存速度更快、数据更安全,保存速度平均有40%的提升。 二、新增功能 1、文字所见即所得 文字编辑器有多处改进,文字编辑时显示的样式为最后在图面上的样式,达到了所见即所得的效果。文字编辑器新加入段落设置,可进行制表位、缩进、段落对齐方式、段落间距和段落行距等项目的调整。另外,在文字编辑器内可直接改变文字倾斜、高度、宽度等特征。 2、消隐打印 中望CAD2010版本支持二维和三维对象的消隐打印,在打印对象时消除隐藏线,不考虑其在屏幕上的显示方式。此次消隐打印功能主要体现在以下两个方面: (一)、平台相关命令和功能的调整 视口的“属性”:增加“着色打印”选项(“线框”和“消隐”两种着色打印项) 选择视口后,右键菜单支持“着色打印”项( “线框”和“隐藏”两种模式) 命令mview增加了“着色打印”功能项,可以方便用户设置视口的“着色打印属性”(线框和消隐两种模式) 打印”对话框调整:在布局空间,激活“打印”对话框,以前的“消隐打印”选项显示为“隐藏图纸空间对象”。 页面设置管理器启动的“打印设置”对话框调整:图纸空间中,通过页面设置管理器激活的“打印设置”对话框,以前的“消隐打印”选项显示为“隐藏图纸空间对象” (二)、消隐打印使用方法的调整 模型空间: 可通过“打印”或“页面设置管理器”打开的“打印设置”对话框中的“消隐打印”选项来控制模型空间的对象是否消隐打印,同时包含消隐打印预览,若勾选“消隐打印”按钮,模型空间的对象将被消隐打印出来。 布局空间: 若要在布局空间消隐打印对象,分为两种情况:     1) 布局空间视口外的对象是否消隐,直接取决于“打印设置”对话框中“隐藏图纸空间对象”按钮是否被勾选;     2)布局空间视口中的对象是否消隐,取决于视口本身的属性,即“着色打印”特性选项,必须确保该选项为“消隐”才可消隐打印或预览 3、图层状态管理器 可以创建多个命名图层状态,以保存图层的状态列表,用户可以通过选择图层状态来表现图纸的不同显示效果。这种图层状态可以输出供其它图纸使用,也可以输入其它保存的图层状态设置。 4、文字定点缩放 能够依据文字位置的特征点,如中心,左下等,作为基准点,对多行文字或单行文字进行缩放,同时不改变基准点位置。 5、Splinedit新功能 全面支持样条曲线的编辑,主要体现在SPLINEDIT命令行提示中,如下: 拟合数据(F)/闭合样条(C)/移动(M) 顶点(V)/精度(R)/反向(E)/撤消(U)/<退出(X)>: 拟合数据: 增加(A)/闭合(C)/删除数据(D)/移动(M)/清理(P)/切线(T)/<退出(X)>: 增加、删除数据:通过增加、删除样条曲线的拟合点来控制样条曲线的拟合程度。 移动:通过移动指定的拟合点控制样条曲线的拟合数据 闭合/打开:控制样条曲线是否闭合。 清理:清除样条曲线的拟合数据,从而使命令提示信息变为不包含拟合数据的情形。 切线:修改样条曲线的起点和端点切向。 闭合样条:将打开的样条曲线闭合。若选择的样条曲线为闭合的,该选项为“打开”,将闭合的样条曲线打开。 移动:可用来移动样条曲线的控制点到新的位置。 精度:可通过添加控制点、提高阶数或权值的方式更为精密的控制样条曲线的定义。 反向:调整样条曲线的方向为反向。 6、捕捉和栅格功能增强 7、支持文件搜索路径 关于激活注册:打开CAD界面,找到左上面的“帮助”,激活产品-复制申请码-再打开你解压到CAD包找到keygen.exe(也就是注册机,有的在是“Key”文件里,如果没有可以到网上下载),输入申请码--点击确定,就中间那个键--得到数据 应该是五组-复制再回到上面激活码页面,粘贴激活码确定就ok !复制(粘贴)的时候用 ctrl +c(v),用鼠标右键没用! 如果打开安装CAD就得注册才能运行的,那方法也跟上边的差不多! 其实你在网上一般是找不到激活码的,因为各个申请码不一样,所以别人的激活码到你那基本上没用,只能用相应的方法得到激活码,这方法也就要你自己去试了,我原来也不会装CAD,但现在一般3分钟就装好了,只要知道怎么说了就快了,一般软件都是一样的装法,不会装可以到网上找资料!有时求人不如求已,自己算比在网上等着别人给你算快多了

    标签: 2010 cad 简体中文

    上传时间: 2013-10-21

    上传用户:tedo811

  • PCB布线原则

    PCB 布线原则连线精简原则连线要精简,尽可能短,尽量少拐弯,力求线条简单明了,特别是在高频回路中,当然为了达到阻抗匹配而需要进行特殊延长的线就例外了,例如蛇行走线等。安全载流原则铜线的宽度应以自己所能承载的电流为基础进行设计,铜线的载流能力取决于以下因素:线宽、线厚(铜铂厚度)、允许温升等,下表给出了铜导线的宽度和导线面积以及导电电流的关系(军品标准),可以根据这个基本的关系对导线宽度进行适当的考虑。印制导线最大允许工作电流(导线厚50um,允许温升10℃)导线宽度(Mil) 导线电流(A) 其中:K 为修正系数,一般覆铜线在内层时取0.024,在外层时取0.048;T 为最大温升,单位为℃;A 为覆铜线的截面积,单位为mil(不是mm,注意);I 为允许的最大电流,单位是A。电磁抗干扰原则电磁抗干扰原则涉及的知识点比较多,例如铜膜线的拐弯处应为圆角或斜角(因为高频时直角或者尖角的拐弯会影响电气性能)双面板两面的导线应互相垂直、斜交或者弯曲走线,尽量避免平行走线,减小寄生耦合等。一、 通常一个电子系统中有各种不同的地线,如数字地、逻辑地、系统地、机壳地等,地线的设计原则如下:1、 正确的单点和多点接地在低频电路中,信号的工作频率小于1MHZ,它的布线和器件间的电感影响较小,而接地电路形成的环流对干扰影响较大,因而应采用一点接地。当信号工作频率大于10MHZ 时,如果采用一点接地,其地线的长度不应超过波长的1/20,否则应采用多点接地法。2、 数字地与模拟地分开若线路板上既有逻辑电路又有线性电路,应尽量使它们分开。一般数字电路的抗干扰能力比较强,例如TTL 电路的噪声容限为0.4~0.6V,CMOS 电路的噪声容限为电源电压的0.3~0.45 倍,而模拟电路只要有很小的噪声就足以使其工作不正常,所以这两类电路应该分开布局布线。3、 接地线应尽量加粗若接地线用很细的线条,则接地电位会随电流的变化而变化,使抗噪性能降低。因此应将地线加粗,使它能通过三倍于印制板上的允许电流。如有可能,接地线应在2~3mm 以上。4、 接地线构成闭环路只由数字电路组成的印制板,其接地电路布成环路大多能提高抗噪声能力。因为环形地线可以减小接地电阻,从而减小接地电位差。二、 配置退藕电容PCB 设计的常规做法之一是在印刷板的各个关键部位配置适当的退藕电容,退藕电容的一般配置原则是:􀁺?电电源的输入端跨½10~100uf的的电解电容器,如果印制电路板的位置允许,采Ó100uf以以上的电解电容器抗干扰效果会更好¡���?原原则上每个集成电路芯片都应布置一¸0.01uf~`0.1uf的的瓷片电容,如遇印制板空隙不够,可Ã4~8个个芯片布置一¸1~10uf的的钽电容(最好不用电解电容,电解电容是两层薄膜卷起来的,这种卷起来的结构在高频时表现为电感,最好使用钽电容或聚碳酸酝电容)。���?对对于抗噪能力弱、关断时电源变化大的器件,ÈRA、¡ROM存存储器件,应在芯片的电源线和地线之间直接接入退藕电容¡���?电电容引线不能太长,尤其是高频旁路电容不能有引线¡三¡过过孔设¼在高ËPCB设设计中,看似简单的过孔也往往会给电路的设计带来很大的负面效应,为了减小过孔的寄生效应带来的不利影响,在设计中可以尽量做到£���?从从成本和信号质量两方面来考虑,选择合理尺寸的过孔大小。例如¶6- 10层层的内存模¿PCB设设计来说,选Ó10/20mi((钻¿焊焊盘)的过孔较好,对于一些高密度的小尺寸的板子,也可以尝试使Ó8/18Mil的的过孔。在目前技术条件下,很难使用更小尺寸的过孔了(当孔的深度超过钻孔直径µ6倍倍时,就无法保证孔壁能均匀镀铜);对于电源或地线的过孔则可以考虑使用较大尺寸,以减小阻抗¡���?使使用较薄µPCB板板有利于减小过孔的两种寄生参数¡���? PCB板板上的信号走线尽量不换层,即尽量不要使用不必要的过孔¡���?电电源和地的管脚要就近打过孔,过孔和管脚之间的引线越短越好¡���?在在信号换层的过孔附近放置一些接地的过孔,以便为信号提供最近的回路。甚至可以ÔPCB板板上大量放置一些多余的接地过孔¡四¡降降低噪声与电磁干扰的一些经Ñ?能能用低速芯片就不用高速的,高速芯片用在关键地方¡?可可用串一个电阻的方法,降低控制电路上下沿跳变速率¡?尽尽量为继电器等提供某种形式的阻尼,ÈRC设设置电流阻尼¡?使使用满足系统要求的最低频率时钟¡?时时钟应尽量靠近到用该时钟的器件,石英晶体振荡器的外壳要接地¡?用用地线将时钟区圈起来,时钟线尽量短¡?石石英晶体下面以及对噪声敏感的器件下面不要走线¡?时时钟、总线、片选信号要远ÀI/O线线和接插件¡?时时钟线垂直ÓI/O线线比平行ÓI/O线线干扰小¡? I/O驱驱动电路尽量靠½PCB板板边,让其尽快离¿PC。。对进ÈPCB的的信号要加滤波,从高噪声区来的信号也要加滤波,同时用串终端电阻的办法,减小信号反射¡? MCU无无用端要接高,或接地,或定义成输出端,集成电路上该接电源、地的端都要接,不要悬空¡?闲闲置不用的门电路输入端不要悬空,闲置不用的运放正输入端接地,负输入端接输出端¡?印印制板尽量使Ó45折折线而不Ó90折折线布线,以减小高频信号对外的发射与耦合¡?印印制板按频率和电流开关特性分区,噪声元件与非噪声元件呀距离再远一些¡?单单面板和双面板用单点接电源和单点接地、电源线、地线尽量粗¡?模模拟电压输入线、参考电压端要尽量远离数字电路信号线,特别是时钟¡?对¶A/D类类器件,数字部分与模拟部分不要交叉¡?元元件引脚尽量短,去藕电容引脚尽量短¡?关关键的线要尽量粗,并在两边加上保护地,高速线要短要直¡?对对噪声敏感的线不要与大电流,高速开关线并行¡?弱弱信号电路,低频电路周围不要形成电流环路¡?任任何信号都不要形成环路,如不可避免,让环路区尽量小¡?每每个集成电路有一个去藕电容。每个电解电容边上都要加一个小的高频旁路电容¡?用用大容量的钽电容或聚酷电容而不用电解电容做电路充放电储能电容,使用管状电容时,外壳要接地¡?对对干扰十分敏感的信号线要设置包地,可以有效地抑制串扰¡?信信号在印刷板上传输,其延迟时间不应大于所有器件的标称延迟时间¡环境效应原Ô要注意所应用的环境,例如在一个振动或者其他容易使板子变形的环境中采用过细的铜膜导线很容易起皮拉断等¡安全工作原Ô要保证安全工作,例如要保证两线最小间距要承受所加电压峰值,高压线应圆滑,不得有尖锐的倒角,否则容易造成板路击穿等。组装方便、规范原则走线设计要考虑组装是否方便,例如印制板上有大面积地线和电源线区时(面积超¹500平平方毫米),应局部开窗口以方便腐蚀等。此外还要考虑组装规范设计,例如元件的焊接点用焊盘来表示,这些焊盘(包括过孔)均会自动不上阻焊油,但是如用填充块当表贴焊盘或用线段当金手指插头,而又不做特别处理,(在阻焊层画出无阻焊油的区域),阻焊油将掩盖这些焊盘和金手指,容易造成误解性错误£SMD器器件的引脚与大面积覆铜连接时,要进行热隔离处理,一般是做一¸Track到到铜箔,以防止受热不均造成的应力集Ö而导致虚焊£PCB上上如果有¦12或或方Ð12mm以以上的过孔时,必须做一个孔盖,以防止焊锡流出等。经济原则遵循该原则要求设计者要对加工,组装的工艺有足够的认识和了解,例È5mil的的线做腐蚀要±8mil难难,所以价格要高,过孔越小越贵等热效应原则在印制板设计时可考虑用以下几种方法:均匀分布热负载、给零件装散热器,局部或全局强迫风冷。从有利于散热的角度出发,印制板最好是直立安装,板与板的距离一般不应小Ó2c,,而且器件在印制板上的排列方式应遵循一定的规则£同一印制板上的器件应尽可能按其发热量大小及散热程度分区排列,发热量小或耐热性差的器件(如小信号晶体管、小规模集³电路、电解电容等)放在冷却气流的最上(入口处),发热量大或耐热性好的器件(如功率晶体管、大规模集成电路等)放在冷却Æ流最下。在水平方向上,大功率器件尽量靠近印刷板的边沿布置,以便缩短传热路径;在垂直方向上,大功率器件尽量靠近印刷板上方布置£以便减少这些器件在工作时对其他器件温度的影响。对温度比较敏感的器件最好安置在温度最低的区域(如设备的µ部),千万不要将它放在发热器件的正上方,多个器件最好是在水平面上交错布局¡设备内印制板的散热主要依靠空气流动,所以在设计时要研究空气流动的路径,合理配置器件或印制电路板。采用合理的器件排列方式,可以有效地降低印制电路的温升。此外通过降额使用,做等温处理等方法也是热设计中经常使用的手段¡

    标签: PCB 布线原则

    上传时间: 2015-01-01

    上传用户:15070202241

  • 基于AD590的嵌入式温度采集及显示系统

    摘要:在本设计中采用T P.L AD590为核心,与单片机相辅相成,实现温度的数字化显示。本系统的主要功能是对一定范围内的温度进行循环采集、测量和显示。在这设计里采用了数字显示,电路能够比较精确的显示器温度值。除此之外,本设计中还采预留了远距离异步通信接口,可以与远红外线传送技术相结合,以实现远距离温度控制的扩展功能。

    标签: 590 AD 嵌入式 温度采集

    上传时间: 2015-01-02

    上传用户:YKLMC

  • 基于CX20106A的超声波测距设计

    文中介绍了基于CX20106A的超声波测距系统的设计与实现方案。以At89c52单片机作为中央处理器(mcu)控制协调整个设计的发射接收和数据处理,然后通过独立的R/T-40-16超声波发生和接受模块产生和接收超声波。以此两者之间的时间差来判断距离的大小,然后有单片机程序计算出障碍物与发射探头的距离。同时,使用DS18B20做为单片机的温度补偿来提高单片机测距中的精确度。最后使得这个设计更加精确、可靠、简便的实现现实生活中的各项测距工作。

    标签: 20106A 20106 CX 超声波测距

    上传时间: 2013-10-27

    上传用户:songkun

  • 基于MPEG运动矢量的行车障碍检测方法

    结合已有的基于MPEG视频流的行车障碍检测算法,在原有基础上加入检测匹配模板,对易造成误判的噪声及影响正常检测的非危险区域都有较好的处理效果。通过统计分析及经验验证,分析得出在直行、转弯及上下坡3种路况及不同车速下车辆正常安全行驶时的检测阈值T。该方法能结合实际,运算量小,实验结果较好。

    标签: MPEG 运动矢量 检测方法

    上传时间: 2013-10-19

    上传用户:agent

  • Arduino学习笔记4_Arduino软件模拟PWM

    注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言.      2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\   所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。

    标签: Arduino PWM 软件模拟

    上传时间: 2013-10-23

    上传用户:mqien

  • DEbug 关于制作瑞星杀毒软件密钥盘的源码 MOV BX,200 ;内存基址(0面) MOV DH,00 ;磁头号00 MOV DL,00 ;驱动器号00(A盘) MOV CX,4F01 ;4F(即

    DEbug 关于制作瑞星杀毒软件密钥盘的源码 MOV BX,200 ;内存基址(0面) MOV DH,00 ;磁头号00 MOV DL,00 ;驱动器号00(A盘) MOV CX,4F01 ;4F(即79)号磁道01号扇区 即(CH=4F CL=01) MOV AH,05 ;格式化磁道 MOV AL,09 ;连续读取9个扇区 INT 13 ;调用13号中断 INT 3 MOV BX,300 ;内存基址(1面) MOV DH,01 ;磁头号01 MOV DL,00 ;驱动器号00(A盘) MOV CX,4F01 ;4F(即79)号磁道01号扇区 即(CH=4F CL=01) MOV AH,05 ;格式化磁道 MOV AL,09 ;连续读取9个扇区 INT 13 ;调用13号中断 INT 20 ;返回dos 初学汇编,请各位多多指教!

    标签: MOV 00 DEbug 200

    上传时间: 2015-01-06

    上传用户:我干你啊