单片机系统软件抗干扰方法:在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。1、软件抗干扰方法的研究在工程实践中,软件抗干扰研究的内容主要是: 消除模拟输入信号的嗓声(如数字滤波技术); 程序运行混乱时使程序重入正轨的方法。本文针对后者提出了几种有效的软件抗干扰方法。1.1 指令冗余CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞”到了三字节指令,出错机率更大。在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。此外,对系统流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,确保这些重要指令的执行。1.2 拦截技术所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱,其次要将陷阱安排在适当的位置。1.2.1 软件陷阱的设计当乱飞程序进入非程序区,冗余指令便无法起作用。通过软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。通常在EPROM中非程序区填入以下指令作为软件陷阱:
上传时间: 2013-10-29
上传用户:大三三
I2C 总线包括了两条串行总线(时钟线SCL 和数据线SDA),通过这两条总线能实现多个芯片之间的通信。在互相连接的芯片中,至少有一个芯片作为总线控制器,而其它芯片则作为从控制器。在本应用说明中,介绍了用Holtek 的八位RISC 结构的单片机作为单总线控制器的软件实现的方法。在本文的示例中,采用了一片EEPROM(型号HT24LC02,2Kbit)作为从控制器参与测试。电路说明:HT24LC02 的A0、A1、A2、VSS、WP 引脚接地,VCC 接+5V,SCL 接PA3,SDA 接PA2使用说明:例程中先向eeprom 中写数据,写完后,再将eeprom 中内容读出来,并将读出数据进行比较,若数据不相等程序跳到fail_out 中;若相等,最后程序跳到ok_end 中。本说明中提供了一个源文件OP_HT24.ASM 和一个包含文件HT24.ASM。在应用时,要将OP_HT24.ASM 文件添加到用户的project 中,并修改HT24.INC 文件中的变量设置,以建立SCL/SDA引脚来与用户的应用电路相匹配。
上传时间: 2013-10-19
上传用户:ming52900
本次会议,我们将讨论加入下一代多核软件开发包(SDK)的多个创新技术,包括简洁、高可用API集的新基础库(FLIB);重构的Netcomm软件库;支持SEC IP模块以实现安全功能的新使能工具;具有参考应用的用户空间DPAA (USDPAA);新型虚拟化技术,包括现有Topaz+基于Kernel的虚拟机(KVM) ,用以优化用户空间的嵌入式容器支持;及非对称多处理框架等。 本会是Multicore Expert系列的一部分,机会不容错过。
上传时间: 2013-11-02
上传用户:wojiaohs
为了在小型音乐广播系统中实现对10路发射信号传输频点的控制和对音乐类型数据的接收及存储,提出了一种基于ATmega16单片机和BH1415F调频芯片的播控端软件设计方案并给出了调试仿真方法。该方案中采用ATmega16单片机从I2C主设备接收音乐类型数据、频点控制数据,并且将频点控制数据处理后,转发给BH1415调频芯片,实现频点控制;将音乐类型数据存储起来,供语音录放模块控制播放顺序用。调试仿真和实际应用结果表明,本方案可正确控制调制频点,高效接收和存储音乐类型数据。
上传时间: 2013-10-17
上传用户:1037540470
采用了软件复用的思想和技术;建立用于雷达模拟训练系统开发的模型和程序框架设计方法,并成功应用于某雷达模拟训练系统的设计开发中;通过使用软件复用技术,提高了系统开发的效率和质量。
上传时间: 2013-11-22
上传用户:liujinzhao
ARM通讯 H-JTAG 是一款简单易用的的调试代理软件,功能和流行的MULTI-ICE 类似。H-JTAG 包括两个工具软件:H-JTAG SERVER 和H-FLASHER。其中,H-JTAG SERVER 实现调试代理的功能,而H-FLASHER则实现了FLASH 烧写的功能。H-JTAG 的基本结构如下图1-1所示。 H-JTAG支持所有基于ARM7 和ARM9的芯片的调试,并且支持大多数主流的ARM调试软件,如ADS、RVDS、IAR 和KEIL。通过灵活的接口配置,H-JTAG 可以支持WIGGLER,SDT-JTAG 和用户自定义的各种JTAG 调试小板。同时,附带的H-FLASHER 烧写软件还支持常用片内片外FLASH 的烧写。使用H-JTAG,用户能够方便的搭建一个简单易用的ARM 调试开发平台。H-JTAG 的功能和特定总结如下: 1. 支持 RDI 1.5.0 以及 1.5.1; 2. 支持所有ARM7 以及 ARM9 芯片; 3. 支持 THUMB 以及ARM 指令; 4. 支持 LITTLE-ENDIAN 以及 BIG-ENDIAN; 5. 支持 SEMIHOSTING; 6. 支持 WIGGLER, SDT-JTAG和用户自定义JTAG调试板; 7. 支持 WINDOWS 9.X/NT/2000/XP; 8.支持常用FLASH 芯片的编程烧写; 9. 支持LPC2000 和AT91SAM 片内FLASH 的自动下载;
上传时间: 2014-12-01
上传用户:Miyuki
注: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。就不会闪了。
上传时间: 2013-10-08
上传用户:dingdingcandy
软件名称:Commix混合串口调试工具软件版本:1.0 软件作者:周陈平作者邮件:ggenien@163.com 软件容量:193KB 软件语言:简体中文授权形式:免费软件应用平台:Win95/98/NT/2000 发布日期:2001年11月06日软件介绍: 很好的串口调试工具,能够混合输入、显示16进制数、10进制数、ASCII字符,能按多种常用方法(如Modbus等)自动加入校验,还可将设定好的参数保存为注册表文件,尤其适合做工业控制方面的通讯调试。使用说明按界面上的“?”就能看到。只有一个执行文件,不用安装。 打开程序后,有16个串口可供选择 Commix 混合输入串口调试工具 Commix设计为串口调试工具,最大特点是:能够混合输入16进制数、10进制数、ASCII字符,这种功能通过转义符“\”实现。 界面说明: 1、 HEX: 输入数据看作16进制字节,不区分大小写 ASCII: 输入数据看作ASCII字符 忽略空格输入: 是否忽略用户输入数据中的空格 自动换行: 是否在接收与发送的数据之间自动换行显示 2、 在HEX和ASCII方式输入时,转义符输入都有效 3、 在ASCII方式,20h到7Eh的字符直接显示,其他字符显示为转义符形式 4、 如果改变显示区的光标位置,新的显示将插入在光标处 5、 用户输入(从串口输出)的数据显示为绿色,从串口输入的数据显示为蓝色,发送到接收之间的间隔时间(毫秒)显示为灰色,用户在显示区输入的字符显示为黑色 6、 程序不检测串口状态,因此也能用于最简单的3线制(第2、3、5针)RS232通讯 7、 串口打开后,修改通讯参数时不必关闭,新参数立即生效 8、 程序结束时,参数自动保存到注册表;点击注册表图标,可将当前设置保存到注册表文件 校验使用: 1、 主界面上,“校验”复选框被选中时,会出现校验设置窗口 2、 选择不同的校验方式,会有不同的选项出现 HEX/ASCII: 选择校验结果的存放方式 3、 如果校验被允许,程序将按“数据 校验 结束符”的顺序发送,结束符的默认格式与主界面上的HEX/ASCII设置相同 转义符使用: 1、 16进制输入: \xhh 2、 10进制输入: \ddd 3、 预定义字符输入: \ccc 或 \cc 或 \\ 4、 显示字符输入: \ra 5、 转义符输入长度必须与上述相符,不区分大小写 转义符使用举例: \x1B 、\027 、\ESC 的值是 1Bh \x0d 、\013 、\cr 的值是 0Dh \rA 、\065 的值是 41h \\ 、\r\ 、\x5C 的值是 字符\ ASCII输入: \stx011234R01\etx57\cr\lf 与HEX输入:02 30 31 31 32 33 34 \rR 30 31 03 \r5 \r7 \cr\lf 是相同的 转义符中的预定义字符: 输入 值 \\ 字符\ \LF 0Ah \CR 0Dh \NUL 0 \SOH 1 \STX 2 \ETX 3 \EOT 4 \ENQ 5 \ACK 6 \NAK 15h \CAN 18h \ESC 27h
上传时间: 2013-11-20
上传用户:dalidala
multisim10.0仿真软件破解版下载:【软件介绍】 Multisim本是加拿大图像交互技术公司(Interactive Image Technoligics简称IIT公司)推出的以Windows为基础的仿真工具,被美国NI公司收购后,更名为NI Multisim ,而V10.0是其(即NI,National Instruments)最新推出的Multisim最新版本。 目前美国NI公司的EWB的包含有电路仿真设计的模块Multisim、PCB设计软件Ultiboard、布线引擎Ultiroute及通信电路分析与设计模块Commsim 4个部分,能完成从电路的仿真设计到电路版图生成的全过程。Multisim、Ultiboard、Ultiroute及Commsim 4个部分相互独立,可以分别使用。Multisim、Ultiboard、Ultiroute及Commsim 4个部分有增强专业版(Power Professional)、专业版(Professional)、个人版(Personal)、教育版(Education)、学生版(Student)和演示版(Demo)等多个版本,各版本的功能和价格有着明显的差异。 NI Multisim 10用软件的方法虚拟电子与电工元器件,虚拟电子与电工仪器和仪表,实现了“软件即元器件”、“软件即仪器”。NI Multisim 10是一个原理电路设计、电路功能测试的虚拟仿真软件。 NI Multisim 10的元器件库提供数千种电路元器件供实验选用,同时也可以新建或扩充已有的元器件库,而且建库所需的元器件参数可以从生产厂商的产品使用手册中查到,因此也很方便的在工程设计中使用。 NI Multisim 10的虚拟测试仪器仪表种类齐全,有一般实验用的通用仪器,如万用表、函数信号发生器、双踪示波器、直流电源;而且还有一般实验室少有或没有的仪器,如波特图仪、字信号发生器、逻辑分析仪、逻辑转换器、失真仪、频谱分析仪和网络分析仪等。 NI Multisim 10具有较为详细的电路分析功能,可以完成电路的瞬态分析和稳态分析、 时域和频域分析、器件的线性和非线性分析、电路的噪声分析和失真分析、离散傅里叶分析、电路零极点分析、交直流灵敏度分析等电路分析方法,以帮助设计人员分析电路的性能。 NI Multisim 10可以设计、测试和演示各种电子电路,包括电工学、模拟电路、数字电路、射频电路及微控制器和接口电路等。可以对被仿真的电路中的元器件设置各种故障,如开路、短路和不同程度的漏电等,从而观察不同故障情况下的电路工作状况。在进行仿真的同时,软件还可以存储测试点的所有数据,列出被仿真电路的所有元器件清单,以及存储测试仪器的工作状态、显示波形和具体数据等。 NI Multisim 10有丰富的Help功能,其Help系统不仅包括软件本身的操作指南,更要的是包含有元器件的功能解说,Help中这种元器件功能解说有利于使用EWB进行CAI教学。另外,NI Multisim10还提供了与国内外流行的印刷电路板设计自动化软件Protel及电路仿真软件PSpice之间的文件接口,也能通过Windows的剪贴板把电路图送往文字处理系统中进行编辑排版。支持VHDL和Verilog HDL语言的电路仿真与设计。 利用NI Multisim 10可以实现计算机仿真设计与虚拟实验,与传统的电子电路设计与实验方法相比,具有如下特点:设计与实验可以同步进行,可以边设计边实验,修改调试方便;设计和实验用的元器件及测试仪器仪表齐全,可以完成各种类型的电路设计与实验;可方便地对电路参数进行测试和分析;可直接打印输出实验数据、测试参数、曲线和电路原理图;实验中不消耗实际的元器件,实验所需元器件的种类和数量不受限制,实验成本低,实验速度快,效率高;设计和实验成功的电路可以直接在产品中使用。 NI Multisim 10易学易用,便于电子信息、通信工程、自动化、电气控制类专业学生自学、便于开展综合性的设计和实验,有利于培养综合分析能力、开发和创新的能力。 multisim10.0激活码及破解序列号
上传时间: 2013-10-11
上传用户:阳光少年2016
multisim10.0仿真软件破解版下载:【软件介绍】 Multisim本是加拿大图像交互技术公司(Interactive Image Technoligics简称IIT公司)推出的以Windows为基础的仿真工具,被美国NI公司收购后,更名为NI Multisim ,而V10.0是其(即NI,National Instruments)最新推出的Multisim最新版本。 目前美国NI公司的EWB的包含有电路仿真设计的模块Multisim、PCB设计软件Ultiboard、布线引擎Ultiroute及通信电路分析与设计模块Commsim 4个部分,能完成从电路的仿真设计到电路版图生成的全过程。Multisim、Ultiboard、Ultiroute及Commsim 4个部分相互独立,可以分别使用。Multisim、Ultiboard、Ultiroute及Commsim 4个部分有增强专业版(Power Professional)、专业版(Professional)、个人版(Personal)、教育版(Education)、学生版(Student)和演示版(Demo)等多个版本,各版本的功能和价格有着明显的差异。 NI Multisim 10用软件的方法虚拟电子与电工元器件,虚拟电子与电工仪器和仪表,实现了“软件即元器件”、“软件即仪器”。NI Multisim 10是一个原理电路设计、电路功能测试的虚拟仿真软件。 NI Multisim 10的元器件库提供数千种电路元器件供实验选用,同时也可以新建或扩充已有的元器件库,而且建库所需的元器件参数可以从生产厂商的产品使用手册中查到,因此也很方便的在工程设计中使用。 NI Multisim 10的虚拟测试仪器仪表种类齐全,有一般实验用的通用仪器,如万用表、函数信号发生器、双踪示波器、直流电源;而且还有一般实验室少有或没有的仪器,如波特图仪、字信号发生器、逻辑分析仪、逻辑转换器、失真仪、频谱分析仪和网络分析仪等。 NI Multisim 10具有较为详细的电路分析功能,可以完成电路的瞬态分析和稳态分析、 时域和频域分析、器件的线性和非线性分析、电路的噪声分析和失真分析、离散傅里叶分析、电路零极点分析、交直流灵敏度分析等电路分析方法,以帮助设计人员分析电路的性能。 NI Multisim 10可以设计、测试和演示各种电子电路,包括电工学、模拟电路、数字电路、射频电路及微控制器和接口电路等。可以对被仿真的电路中的元器件设置各种故障,如开路、短路和不同程度的漏电等,从而观察不同故障情况下的电路工作状况。在进行仿真的同时,软件还可以存储测试点的所有数据,列出被仿真电路的所有元器件清单,以及存储测试仪器的工作状态、显示波形和具体数据等。 NI Multisim 10有丰富的Help功能,其Help系统不仅包括软件本身的操作指南,更要的是包含有元器件的功能解说,Help中这种元器件功能解说有利于使用EWB进行CAI教学。另外,NI Multisim10还提供了与国内外流行的印刷电路板设计自动化软件Protel及电路仿真软件PSpice之间的文件接口,也能通过Windows的剪贴板把电路图送往文字处理系统中进行编辑排版。支持VHDL和Verilog HDL语言的电路仿真与设计。 利用NI Multisim 10可以实现计算机仿真设计与虚拟实验,与传统的电子电路设计与实验方法相比,具有如下特点:设计与实验可以同步进行,可以边设计边实验,修改调试方便;设计和实验用的元器件及测试仪器仪表齐全,可以完成各种类型的电路设计与实验;可方便地对电路参数进行测试和分析;可直接打印输出实验数据、测试参数、曲线和电路原理图;实验中不消耗实际的元器件,实验所需元器件的种类和数量不受限制,实验成本低,实验速度快,效率高;设计和实验成功的电路可以直接在产品中使用。 NI Multisim 10易学易用,便于电子信息、通信工程、自动化、电气控制类专业学生自学、便于开展综合性的设计和实验,有利于培养综合分析能力、开发和创新的能力。 multisim10.0激活码及破解序列号
上传时间: 2013-11-04
上传用户:逗逗666