永发信息网

如何用DELPHI编程实现键盘模拟功能

答案:2  悬赏:20  手机版
解决时间 2021-12-18 14:37
如何用DELPHI编程实现键盘模拟功能
最佳答案
你去学MFC 吧,图形编程,相对比较简单,如果是使用编程语言的话,那没有其他的了,现在就两大类,要么是语言性质的,要么就是图形为主的,Java估计你也不想学
全部回答
1.限幅滤波算法(程序判断滤波算法) 方法解析: 根据经验判断,确定两次采样允许的最大偏差值(设定为a),每次检测到新值时判断: 如果本次值与上次值之差<=a,则本次值有效, 如果本次值与上次值只差>a,则本次值无效,放弃本次值,用上次值代替本次值。 优点: 能有效克服因偶然因素引起的脉冲干扰 缺点: 无法抑制那种周期性的干扰,平滑度差 [cpp] view plain copy
  • #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.中位值滤波法 方法解析: 连续采样n次(n取奇数),把n次采样值按大小排列,取中间值为本次有效值 优点: 能有效克服因偶然因素引起的波动干扰,对温度,液位的变化缓慢的被测参数有良好的滤波效果 缺点: 对流量,速度等快速变化的参数不宜 [cpp] view plain copy
  • #define n  11  
  • char filter()  
  • {  
  • char value_buf[n];  
  • char count,i,j,temp;  
  • for ( count=0;count{  
  • value_buf[count] = get_ad();  
  • delay();  
  • }  
  • for (j=0;j{  
  • for (i=0;i{  
  • if ( value_buf[i]>value_buf[i+1] )  
  • {  
  • temp = value_buf[i];  
  • value_buf[i] = value_buf[i+1];   
  • value_buf[i+1] = temp;  
  • }  
  • }  
  • }  
  • return value_buf[(n-1)/2];  
  • }  
  • 3.算术平均滤波方法解析: 连续取n个采样值进行平均运算,n值较大时:信号平滑度较高,但灵敏度较低 n值较小时:信号平滑度较低,但灵敏度较高。n值的选取:一般12左右。 优点: 适应于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动 缺点: 对于测量速度较慢或要求数据计算速度较快的实时控制并不适用,比较浪费ram [cpp] view plain copy
  • #define n 12  
  • char filter()  
  • {  
  • int  sum = 0;  
  • for ( count=0;count{  
  • sum + = get_ad();  
  • delay();  
  • }  
  • return (char)(sum/n);  
  • 4.递推平均滤波(滑动平均滤波法)方法解析: 把连续取n个采样值看成一个队列,队列的长度固定为n,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据(先进先出)。 把队列中的n个数据进行算术平均运算,就可获得新的滤波结果。n值的选取:一般12. 优点: 对周期性干扰有良好的抑制作用,平滑度高,适应于高频振荡的系统 缺点: 灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差。不易消除由于脉冲干扰所引起打的采样值偏差,不适用于脉冲干扰比较严重的场合 浪费ram [cpp] view plain copy
  • #define n 12   
  • char value_buf[n];  
  • char i=0;  
  • char filter()  
  • {  
  • char count;  
  • int  sum=0;  
  • value_buf[i++] = get_ad();  
  • if ( i == n )   i = 0;  
  • for ( count=0;countsum = value_buf[count];  
  • return (char)(sum/n);  
  • }  
  • 5.中位值平均滤波法(防脉冲干扰平均滤波法)方法解析: 相当于中位值滤波+算术平均滤波,连续采样n个数据,去掉一个最大值和一个最小值,然后计算n-2个数据的算术平均值。 n值的选取:3-14 优点:融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。 缺点: 测量速度较慢,和算法平均滤波一样,浪费ram。 [cpp] view plain copy
  • #define n 12  
  • char filter()  
  • {  
  • char count,i,j;  
  • char value_buf[n];  
  • int  sum=0,temp=0;  
  • for  (count=0;count{  
  • value_buf[count] = get_ad();  
  • delay();  
  • }  
  • for (j=0;j{  
  • for (i=0;i{  
  • if ( value_buf[i]>value_buf[i+1] )  
  • {  
  • temp = value_buf[i];  
  • value_buf[i] = value_buf[i+1];   
  • value_buf[i+1] = temp;  
  • }  
  • }  
  • }  
  • for(count=1;countsum += value[count];  
  • return (char)(sum/(n-2));  
  • }  
  • 6一阶滞后滤波法方法解析: 取a=0-1 本次滤波结果=(1-a)*本次采样值+a*上次滤波结果 优点: 对周期性干扰具有良好的抑制作用,适用于波动频率较高的场合 缺点: 相位滞后,灵敏度低,滞后程度取决于a值的大小,不能消除滤波频率高于采样频率的1/2的干扰信号 [cpp] view plain copy
  • #define a 50  
  • char value;  
  • char filter()  
  • {  
  • char  new_value;  
  • new_value = get_ad();  
  • return (100-a)*value + a*new_value;   
  • }  
  • 7.加权递推平均滤波法方法解析: 是对递推平均滤波法的改进,即不同时刻的数据加以不同的权 通常是,越接近现时刻的数据,权取得越大,给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。 优点: 适用于有较大纯滞后时间常数的对象,和采样周期较短的系统 缺点: 对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号,不能迅速反应系统当前所受干扰的严重程度,滤波效果差。 [cpp] view plain copy
  • #define n 12  
  • char code coe[n] = {1,2,3,4,5,6,7,8,9,10,11,12};  
  • char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;  
  • char filter()  
  • {  
  • char count;  
  • char value_buf[n];  
  • int  sum=0;  
  • for (count=0,count{  
  • value_buf[count] = get_ad();  
  • delay();  
  • }  
  • for (count=0,countsum += value_buf[count]*coe[count];  
  • return (char)(sum/sum_coe);  
  • }   8.消抖滤波法 方法解析: 设置一个滤波计数器,将每次采样值与当前有效值比较: 如果采样值=当前有效值,则计数器清零,如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限n(溢出),如果计数器溢出,则将本次值替换当前有效值,并清计数器 优点: 对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动。 缺点: 对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统 [cpp] view plain copy
  • #define n 12  
  • char filter()  
  • {  
  • char count=0;  
  • char new_value;  
  • new_value = get_ad();  
  • while (value !=new_value);  
  • {  
  • count++;  
  • if (count>=n)   return new_value;  
  • delay();  
  • new_value = get_ad();  
  • }  
  • return value;      
  • }  
  • 10.低通数字滤波解析: 低通滤波也称一阶滞后滤波,方法是第n次采样后滤波结果输出值是(1-a)乘第n次采样值加a乘上次滤波结果输出值。可见a<<1。 该方法适用于变化过程比较慢的参数的滤波的c程序函数如下: [cpp] view plain copy
  • float low_filter(float low_buf[])  
  • {  
  • float sample_value;  
  • float x=0.01;  
  • sample_value=(1_x)*low_buf[1]+x*low buf[0];  
  • retrun(sample_value);  
  • }  
  • 我要举报
    如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    大家都在看
    这个世界上有黑色的灯吗?
    从1到10的中位数是A.5B.6C.4.5D.5.5
    北半球一年中几月份是大陆气温最高A.5月B.6月
    冈布奥飞船掠夺战斗力为什么没有搜索时高
    如图,AD∥BC,BD平分∠ABC,∠A:∠ABC=2:1
    谁能提供带"习惯"二字的名言?
    合兴村委会办公地址在什么地方?我要处理点事
    用三个0和四个5组成的七位数中,一个零都不读
    徐州技师学院九里校区从火车站做几路车能到
    贵州各市收割水稻时间表
    下列各组词语中的读音,与所给注音全都相同的
    太阳村委会办公地址在什么地方?我要处理点事
    单选题生物的各个物种既能保持基本稳定,又能
    现在我们的餐桌已愈来愈离不开肉类食品。一般
    奔驰c260l导航地图换成百度地图
    推荐资讯
    电脑触摸板被锁住了,按什么键解锁
    用“<”、“>”或“=”号填空:(1)-59___
    我国由于冷锋活动而出现的天气有A.东部夏秋季
    2018广东文科高考报一所高校离最低投档线差3
    好奇问下大家,减震器什么牌子比较有名些
    下列词语中加下划线的字,每组的读音都不相同
    生活的接龙游戏有哪些
    实数a在数轴上对应点的位置如图所示,化简|a+
    恐龙特急克塞号的口号
    QQ飞车如何拜师?
    单选题若直角三角形的三边分别为连续的三个自
    不属于昆虫的动物是A.菜粉蝶B.蝗虫C.蜜蜂D.蜥
    正方形一边上任一点到这个正方形两条对角线的
    阴历怎么看 ?