假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 /* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值 */ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰 对温度、液位的变化缓慢的被测参数有良好的滤波效果 C、缺点: 对流量、速度等快速变化的参数不宜 /* N值可根据实际情况调整 排序采用冒泡法*/
上传时间: 2014-12-26
上传用户:nanshan
摘 要: 阀门开度仪以AT89C51单片机为核心, 通过在阀门电机轴上安装的电位计传感器获得阀 门电机轴的转动角位移, 从而得出阀门的开度, 达到自动检测的目的。详细介绍了串行控制的10 位A /D转换器TLC1549的特点和功能, 说明了TLC1549与AT89C51单片机在阀门开度仪中的硬件 电路和软件程序。实践证明, 该阀门开度仪数据采集准确可靠、工作稳定。 关键词: TLC1549; AT89C51单片机; 阀门开度
上传时间: 2013-10-14
上传用户:行者Xin
摘要:对特殊的环境温度进行测量.不仅要求测量的实时性.而且要求测量的精确度.使测量的温度达到既定的标准。因此作者介绍了一种应用铂电阻进行高精度的温度测量系统.系统中以PT100铂电阻作为测温传感器.采用最小二乘法来消除测温系统的非线性.并应用24位高性能模数转换器AD7714对所输入的模拟信号进行模/数转换。AD转换器AD7714的应用保证了0.001摄氏度的测量分辨率.最小二乘法的非线性优化使系统的测量误差小于0.01%。关键词:温度测量 AD7714 AT89C51 单片机 非线性优化 最小二乘法 铂电阻
上传时间: 2013-11-20
上传用户:dongbaobao
摘要:研制了使用非接触传感器的温度检测系统读系统以8031单片机为棱心部件.利用光纤温度传感器对温度进行采样,通过微处理系统电路AD转换接口电路、数据采集接口电路、数码显示电路等主要组成电路,实现了非接触韫度检测功能.检测精度为土I℃。关键词:非接触传感器;温度检测;单片机
上传时间: 2014-12-27
上传用户:fnggknj
摘要:将8032单片机作为温湿度测控系统的控制中心,利用AN6701型集成温度传感器和HS1101型电容式湿度传感器对温度和湿度进行检测,采取变速积分PID控制算法,实现了对温度和湿度的自动控制。用户可通过键盘设置需要的温、湿度值以及报警的上下限值,并通过数码管即时显示。根据需要调整参数,系统还可应用于其他类型的温湿度控制。关键词:单片机;温度;湿度
上传时间: 2013-10-09
上传用户:1421706030
本文介绍了一种以单片机为核心的智能粮库温度测量系统,阐述了其工作原理,设计了硬件和软件系统。介绍了测温系统的组成,采用单片机对温度传感器进行控制和数据传输,温度信号采集由智能传感器DS18B20完成。根据单总线独特的优点,方便地组建传感器网络。多点温度数据可通过中心控制室的PC机实现图文显示的效果。该系统采用RS485总线技术,传输距离超过1200米,克服了电缆电阻对测量结果的影响,提高了测量的准确性,能实现可靠的多点、动态的温度监控。试验结果表明,该检测系统精度高,检测误差均在0.5%以内。该系统已经在粮库温度测量中推广应用。
上传时间: 2013-11-17
上传用户:黄酒配奶茶
1. 文件比较器TKSDiff :a) 二进制比较:支持字体设置和文件改动监测,微调智能比较算法b) 支持文件拖拽,内容替换和插入c) 支持复制选中文本和比较文件的文件名d) 支持选中内容的导出e) 显示智能比较完成度f) 处理k-flash命令行g) 禁止大文件间的比较h) 修正部分内存越界问题i) 修正消除二进制标题时有时无问题j) 修正目录比较界面模块资源泄漏问题k) 修正快速比较设置起始地址 bug
上传时间: 2013-10-13
上传用户:CSUSheep
单片机软件滤波的几种方法:假定从AD中读取数据的子程序为:unsigned int get_ad();1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)。每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效;如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点:无法抑制那种周期性的干扰,平滑度差D、软件实现://=======================//值A可根据实际情况调整,value为有效值,new_value为当前采样值//滤波程序返回有效的实际值
上传时间: 2013-10-20
上传用户:xiaojie
安规设计注意事项1. 件选用(1) 在件选用方面,要求掌握:a .安规件有哪些?(见三.安规件介绍)b.安规件要求安规件的要求就是要取得安规机构的认证或是符合相关安规标准;c.安规件额定值任何件均必须依 MANUFACTURE 规定的额定值使用;I 额定电压;II 额定电;III 温额定值;(2). 件的温升限制a. 一般电子件: 依件规格之额定温值,决定其温上限b. 线圈类: 依其绝缘系统耐温决定Class A ΔT≦75℃Class E ΔT≦90℃Class B ΔT≦95℃Class F ΔT≦115℃Class H ΔT≦140℃c. 人造橡胶或PVC 被覆之线材及电源线类:有标示耐温值 T 者ΔT≦(T-25)℃无标示耐温值 T 者ΔT≦50℃d. Bobbin 类: 无一定值,但须做125℃球压测试;e. 端子类: ΔT≦60℃f. 温升限值I. 如果有规定待测物的耐温值(Tmax),则:ΔT≦Tmax-TmraII. 如果有规定待测物的温升限值(ΔTmax),则:ΔT≦ΔTmax+25-Tmra其中 Tmra=制造商所规定的设备允许操作室温或是25℃
上传时间: 2013-10-14
上传用户:674635689
单片机音乐中音调和节拍的确定方法:调号-音乐上指用以确定乐曲主音高度的符号。很明显一个八度就有12个半音。A、B、C、D、E、F、G。经过声学家的研究,全世界都用这些字母来表示固定的音高。比如,A这个音,标准的音高为每秒钟振动440周。 升C调:1=#C,也就是降D调:1=BD;277(频率)升D调:1=#D,也就是降E调:1=BE;311升F调:1=#F,也就是降G调:1=BG;369升G调:1=#G,也就是降A调:1=BA;415升A调:1=#A,也就是降B调:1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所谓1=A,就是说,这首歌曲的“导”要唱得同A一样高,人们也把这首歌曲叫做A调歌曲,或叫“唱A调”。1=C,就是说,这首歌曲的“导”要唱得同C一样高,或者说“这歌曲唱C调”。同样是“导”,不同的调唱起来的高低是不一样的。各调的对应的标准频率为: 单片机演奏音乐时音调和节拍的确定方法 经常看到一些刚学单片机的朋友对单片机演奏音乐比较有兴趣,本人也曾是这样。在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴趣而又不知其解的朋友能有所启迪。 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。 在音乐中所谓“音调”,其实就是我们常说的“音高”。在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz。当两个声音信号的频率相差一倍时,也即f2=2f1时,则称f2比f1高一个倍频程, 在音乐中1(do)与 ,2(来)与 ……正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有12个半音。以1—i八音区为例, 12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。这12个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。 知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例: A的频率f = 440 Hz,其对应的周期为:T = 1/ f = 1/440 =2272μs 由上图可知,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t = T/2 = 2272/2 = 1136μs这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 将t=1136μs代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值为 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。 音符的节拍我们可以举例来说明。在一张乐谱中,我们经常会看到这样的表达式,如1=C 、1=G …… 等等,这里1=C,1=G表示乐谱的曲调,和我们前面所谈的音调有很大的关联, 、 就是用来表示节拍的。以 为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。比如: 其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。可见,在单片机上控制一个音符唱多长可采用循环延时的方法来实现。首先,我们确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,那么,对于一个音符,如果它为十六分音符,则只需调用一次延时程序,如果它为八分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延时程序,依次类推。通过上面关于一个音符音调和节拍的确定方法,我们就可以在单片机上实现演奏音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数……,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。下面给出部分音符(三个八度音)的频率以及以单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值 : C调音符 频率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC调音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7频率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C调音符 频率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上传时间: 2013-10-20
上传用户:哈哈haha