您的位置:控制工程论坛网论坛 » 教程与手册 » 单片机中定时/计数器在消除瞬时干扰中的应用

wilton_gao

wilton_gao   |   当前状态:离线

总积分:123  2024年可用积分:0

注册时间: 2008-01-16

最后登录时间: 2009-09-29

空间 发短消息加为好友

单片机中定时/计数器在消除瞬时干扰中的应用

wilton_gao  发表于 2008/9/13 16:04:02      659 查看 1 回复  [上一主题]  [下一主题]

手机阅读

原理

  在金属抗拉、抗压强度和生铁团矿破碎压力测量等实验中,要求实验仪器能准确测量出被采样信号的最大值。由于单片机价格低廉,动作可靠,因此这些实验仪器常选用单片机进行控制。在理想无干扰的状态下,实验过程中这些被采样信号的时域曲线有一个共同的特点:在到达最大值之前,曲线呈单调递增趋势,而在最大值之后,信号呈现单调递减趋势,且递减速率比上升速率大得多。例如,在理想状态下45钢抗拉强度实验中,试棒所受拉力的时域曲线如图1所示。但是,在这些实验中,不可避免地会存在各种形式的干扰。45#钢在有瞬时干扰情况下拉力时域曲线如图2所示。干扰的存在给这些实验仪器的研制带来了很大的技术困难。

  根据金属抗拉、抗压强度和生铁团矿破碎压力在测试过程中时域曲线变化特征,利用89C51单片机中的定时/计数器,结合相应的的软件处理,可消除采样过程中的瞬时干扰,准确测量出金属的抗拉、抗压强度和生铁团矿破碎时的压力最大值。


图1 45#钢无干扰状态拉力时域曲线
 

图2 45#钢在瞬时干扰下的拉力时域曲线

  在89C51单片机中有两个可编程的定时/计数器—定时/计数器0与定时/计数器1(8032/8052还有定时/计数器2),可由程序选择作为定时器用或作为计数器用,定时时间或计数值由程序设定。定时/计数器的核心是一个十六位的加法计数器,当作定时器用时,加法计数器对内部机器周期脉冲计数。在定时器的工作过程中,加法计数器的内容是可读回CPU的。借助单片机中定时/计数器的这些特点来编制消除瞬时干扰的程序。

  软件具体编制方法如下:把定时/计数器选作定时器用,设置好工作方式,在程序运行过程中不产生中段请求信号,选择内存中的某一单元(例如R0),在其中设一初始值(如果初始值大于255,则需要两个内存单元),使得此初始值对应的机器周期的时间比干扰信号的作用时间长,而比实际所需采样信号的作用时间短(由于干扰信号与实际所需信号作用时间存在很大的差异,做到这一点并不困难)。由CPU对A/D输入信号进行处理,当检测到被采样信号有上升趋势时启动定时器,并将定时器的初值设为0,在被采样信号到达最大值时,读回定时器中十六位计数器的值,以之与R0初始值比较。若比初始值小,说明采集到的是干扰信号的幅值,应该舍去,并给计数器清零,重新返回采样;若比初始值大,则可确定此时采集到的为所需的测量值,可以存储起来或者通过显示、打印输出。

  由于十六位计数器最多只能计时216个机器周期,如果系统晶振为12MHz,则其最长计时时间为66.5毫秒,对于作用时间比较长的采样系统就显得不够。由于实际信号作用时间长,当采样到最大值时加法计数器可能早已溢出,此时我们就不能确定计数器里的值与R0中所设初始值的大小了。为了解决这个问题,可对上述程序做些修改,具体如下:将定时器设为中断工作方式,定时初值为0,R0中设初始值A,在检测干扰信号时,由于干扰信号作用时间短,检测到干扰信号幅值时计数器中的值小于R0中的初始值A;而在检测实际作用信号时,定时器会产生溢出。定时器溢出时向CPU发出中断请求。在中断程序中给定时器设立另一初值B,使B>A,中断返回后计数器从B开始计数,当测试到被测信号的最大值时,加法计数器中的值一定比初始值A大。因此我们就可以通过比较加法计数器中的值和R0中的初始值A来区分干扰信号和实际测量信号。

1楼 0 0 回复
  • wilton_gao

    wilton_gao   |   当前状态:离线

    总积分:123  2024年可用积分:0

    注册时间: 2008-01-16

    最后登录时间: 2009-09-29

    空间 发短消息加为好友

    wilton_gao   发表于 2008/9/13 16:04:02

    在高炉炼铁中,铁矿粉不能直接加入炉内冶炼,而应先制成球团,称为生铁团矿。为了保证生铁团矿在运输和装炉过程中不至碎裂,必须测出其抗压强度。团矿压力实验仪要求能准确地测出生铁团矿的破碎压力值,并显示和打印出来。笔者设计的生铁团矿压力实验仪中单片机采样和控制系统框图如图3所示,该实验仪的工作过程如下:团矿放置在生铁团矿压力实验仪的托盘上,电机正转,托盘上升,球团矿与传感器接触并受压,传感器压力信号通过A/D转换后输入单片机,由单片机通过计算求出最大值。得到最大值后立即停止电机运转,显示、打印破碎压力值。然后电机反转,托盘下降,进行下一次实验。



    图3 压力实验仪单片机系统框图


      在球团矿压力实验仪中,存在着电机频繁地启动与停止,在电机启动与停止的瞬时,由于电路中存在能量的突变,产生了严重的电磁干扰,给采样信号造成很大的影响,从而引起电机的误动作。但干扰作用时间很短,一般为十几微秒到几十微秒,而球团矿从受压到破碎这一过程一般在10~50ms。此干扰不易为一般的RC滤波器所滤除。笔者使用上述软件方法,基本上使此干扰得到控制。软件的程序流程图如图4。




    图4 生铁团矿压力实验仪单片机控制程序流程图


      对于采样信号作用时间长的系统,则需要采用定时器的中断工作方式。主程序的流程图与图4很类似,二者只是在定时器的初始化设置上有些不同。中断程序的流程图如图5所示。




    图5 中断程序流程图
    2楼 回复本楼

    引用 wilton_gao 2008/9/13 16:04:02 发表于2楼的内容

总共 , 当前 /