| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2867 人关注过本帖
标题:小弟初学c语言,怎么实现下面工程实例?求高手指教
只看楼主 加入收藏
yf199004
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-5-3
结帖率:0
收藏
 问题点数:0 回复次数:0 
小弟初学c语言,怎么实现下面工程实例?求高手指教
假设z=60,低速时采用测周期法,当转速从低速上升到3326r/min时,从测周期法切换到测频率法。
 主程序设计
    主程序先用测频法测量发动机初始瞬时转速    为排除干扰,在测量中采用了数字滤波,将测量的数据记录下来放在结果缓冲区中,每四个数据为一组,运用去极值平均法每组数据处理,且将求得的平均值作为最终测量结果保存,最终转换成BCD码显示。具体内容有:定时器/计数器工作方式和初值的设定、测量数据存储缓冲区和转速值的寄存地址的设置;测量瞬时转速值;测周期法程序;测频率法程序;数制转换和显示程序。
 子程序设计
  (1)  滤波程序
    发动机瞬时转速测量中,因为转速本身的脉动、随机干扰的存在,滤波环节是不可缺少的,可以采用数字滤波方法。这里采用中位平均值滤波方法。
    首先讨论平均值滤波法,它是将当前的h个采样数据求平均值作为当前采样结果。即t=kTs时刻的测量数据n(t),用采样数据n(k-h+1),…,n(k-1),n(k)的平均值来代替。
 在测量频率法的基础上增加平均值滤波
式中,,…,,为t=(k-h+1)Ts,…,(k-1),k时刻的计数值。
  中位平均值滤波是平均值滤波算法的改进。将采样的h个数据按数值大小次序排列后,去掉最大值和最小值,将居中的一组数据采用平均值滤波算法,求平均值后作为当前的采样值。

子程序首先采样四次,将测得的数据存放在结果缓冲区中,接着将四个数据进行排序,去掉最大值和最小值,只就中间两个数据求平均值,最后将该平均值保存在地址为38H和39H的寄存器中,作为最终测量结果。
                          
显示程序(共阴极LED)
    该子程序先对I/O口进行初始化,设置延时常数和复位指令。当显示芯片收到复位指令后,清除所有显示,字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处状态与系统上电后所处状态一样。调用发送一个字节程序后,恢复CS为高电平,停止数据写入,然后再调用16进制——BCD码转换程序,依次完成各字节的显示
搜索更多相关主题的帖子: 测量 数据 缓冲区 平均值 主程序 
2012-05-03 18:09
快速回复:小弟初学c语言,怎么实现下面工程实例?求高手指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018411 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved