基于单片机的凸轮控制器软硬件实现
2012-04-13唐中燕
唐中燕
TANG Zhong-yan
(华北电力大学 河北 保定 071003)
(North China Electric Power University,Baoding Hebei,071003)
基于单片机的凸轮控制器软硬件实现
The Realization of the Cam Controller Base on Micro-computer
唐中燕
TANG Zhong-yan
(华北电力大学 河北 保定 071003)
(North China Electric Power University,Baoding Hebei,071003)
基于单片机的凸轮控制器是通过软硬件结合实现的。根据送入单片机的转轴角位置信号以及事先设置好的凸轮数据参数,控制器即可产生相应凸轮开关状态信号。实现方法方便、灵活。
单片机;凸轮;流程图;汇编语言
0 引言
凸轮主要用于检测机械设备某一个轴的角位置,当到达不同的角位置时发出不同的开关状态信号。例如按照工艺要求,某凸轮的功能为:每周包含 4 个区间(00~600、610~1200、1210~3000、3010~3600), 其中 1、3 区间为 ON 状态,2、4 区间为OFF状态。当改变工艺过程时,需重新制作机械凸轮,十分不方便。利用单片机的记忆功能及软硬件可方便的设计一个凸轮控制器,而构成一个或多个“电子凸轮”。“电子凸轮”的工艺改变十分灵活,满足了需经常改变工艺过程的实际需要。
1 参数设置
为了方便灵活的改变凸轮工艺,可利用单片机存储数据的功能,事先按照工艺要求将凸轮数据参数设置在存储器中,通过改变所存储的数据参数就可改变凸轮工艺。本设计可实现最多8个电子凸轮,若每个电子凸轮最多可以有8个区间。则对应数据参数表如表1~表3所示。
①电子凸轮区间数表:共8个数据,每个数据占1字节,对应一个电子凸轮,表示其区间数。只给出了0#凸轮数据;
②电子凸轮区间设置表:共8组数据,每组数据对应一个电子凸轮,每组数据中有8个数据,每个数据2字节,共占16字节,给出了该电子凸轮的各区间角度。只给出了0#凸轮的数据;
③电子凸轮区间状态表:共8组数据,每组数据占1字节,对应一个电子凸轮,给出了该电子凸轮在各区间要输出的开关状态信号。只给出了0#凸轮的数据。
表1 电子凸轮区间数表
表2 电子凸轮区间设置表
表3 电子凸轮区间状态表
图1 硬件电路原理图
以这些表格为基础,配以相应的软硬件就可方便、快捷地实现8个电子凸轮的功能。
2 硬件设计
本设计的硬件电路原理图如图1所示。
利用8个光电编码器可检测8个转轴的角位置。转轴每转1°编码器输出一个脉冲,单片机对该脉冲进行计数即可得到转轴的角度。编码器输出脉冲作为D触发器的控制脉冲,8个D触发器的输出端经OC门线或在一起,接到单片机外部中断0(/INT0)引脚。当8个光电编码器中的任一个输出脉冲信号时,会使相应 D触发器输出为“1”,经反相后为“0”,引起/INT0的中断触发,单片机中断响应后转去执行中断服务程序。在中断服务程序中首先要进行中断源的查询,即通过查询P1口线的状态判断是哪个编码器发出的脉冲,然后进行对应脉冲的计数、计算对应转轴的转动角度。因为中断采用的是电平触发方式,所以还要从P2口相应引脚输出负脉冲,以撤销中断申请。P0口用于输出8个电子凸轮所发出的开关状态信号。
3 软件设计
单片机得到每个转轴的实际角度后,再判断该角度处在相应电子凸轮的哪个区间,然后输出对应的开关状态信号。上述控制过程在中断服务程序中进行。
8个电子凸轮要输出的开关状态信号共8个。在RAM中设一个输出状态信号的缓冲区,为1个单元,称为输出控制字。当经过以上数据处理、判断,得到需输出的区间状态后,先将它写入输出控制字中的对应位,再将该字中数据送到对应输出接口P0实现输出。
主程序及中断服务程序如下:
4 结论
该凸轮控制器设计的核心方法是:事先设置好电子凸轮数据参数,再利用单片机查表指令取出相应数据来实现凸轮功能。当需要改变凸轮设置时,只需将新数据再写到存储器中即可,实现非常灵活。
[1]丁元杰.单片微机原理及应用[J].北京:机械工业出版社,1999.
王洪泽]