电动按摩床的单片机控制系统
2010-09-04江苏常州轻工职业技术学院韩迎辉
江苏常州轻工职业技术学院 韩迎辉
电动按摩床的单片机控制系统
江苏常州轻工职业技术学院 韩迎辉
本文主要介绍电动按摩床控制系统的设计,包括系统硬件和软件的设计,具体给出了硬件电路组成、软件功能划分,以及系统软硬件控制功能的实现方法。本电动按摩床控制系统实现了多级振动控制、定位信息自动存储等功能,并具有控制功能灵活、使用方便、性价比高的特点。
电动按摩床 单片机
一、前言
本文介绍的电动按摩床控制系统,是用单片机作主控制器,按摩床控制模式包括床体的升降控制、振动控制和床体的位置记忆。以上控制方式通过手控器上的3个模式选择键进行选择:MEM(存储模式),MES(振动模式),ADJ(升降模式)。手控器与单片机之间的连接方式分有线连接和无线连接两种。
升降控制分背部升降和足部升降,分别由两个推杆电机进行控制;振动控制也分背部振动和足部振动两种情况,由两个振动电机进行控制。升降及振动位置由手控器上的back(背部)、foot(足部)键进行选择,振动按摩的力度可分十个档位进行调节,手控器上的Up/ Down按键可增加/减少一个档位。
在存储模式下,分别按动手控器上的S1、S2、S3键,可将当前床体位置作为记忆值(位置1、位置2、位置3)存储到EEPROM存储器中。而在升降模式下,按S1、S2、S3键,可将床体位置调整到被记忆过的3个位置上。
二、控制系统的硬件结构
控制系统的硬件主要由主控制器、脉冲定位控制部分、分级电压输出电路、无线接收部分、手控器接口和EEPROM存储器接口等组成。系统组成框图如图1所示。
图1 系统组成框图
1.主控制器
主控制器使用AT89S52单片机。AT89S52 是一种低功耗、高性能CMOS8位微控制器,与MCS-51单片机产品兼容,具有8K在系统可编程Flash 存储器,使用Atmel公司高密度非易失性存储器技术制造,片上Flash允许程序存储器在系统可编程,也可使用常规编程器编程。
2.脉冲定位控制部分
电动按摩床的升降运动分足部升降和背部升降,分别由推杆电机A和推杆电机B控制。推杆电机可正反转运行,经丝杆、变速箱带动推杆伸缩,从而控制足部的升降和背部的升降。电动床推杆电机及传动机构如图2所示。
电动按摩床升降位置的定位控制,是通过单片机对连接在电机尾部的脉冲发生器(PG)进行计数实现。
脉冲发生器是在推杆电机轴上安装一个圆盘,圆盘的圆周上均匀分布n个凸块,在圆盘附近固定一个光电传感器(槽形光耦),当圆盘旋转一周,光电传感器输出n个脉冲,此脉冲加到单片机引脚上,单片机通过计数得到脉冲个数(正转时增计数,反转时减计数),可知推杆电机转动的圈数,最终可计算出推杆伸缩的位移,从而实现升降位置的精确定位。
其中,足部脉冲加到单片机INT0引脚,背部脉冲加到单片机INT1引脚。
图2 电动床推杆电机及传动机构
3.分级电压输出电路
电动按摩床振动力度的调节,通过分级控制振动电机的电压实现,振动强度分10档,每按手控器上的Up/ Down按键一次可增加或减少一个档位。调节电路结构如图3所示。
图3 电压调节电路框图
单片机输出4位码经4028(BCD—十进制译码器芯片)的Q0~Q9输出,控制十路光耦的输入端,使其中的一路导通,该光耦输出回路中的电阻(R0~R9中的一个,其阻值各不相同)被并入RB电阻两端,控制LM317T输出至振动电机线圈的电压发生变化,以控制振动电机的振动强度。利用Up/ Down按键改变单片机4位输出码,并入电阻在R0~R9之间切换,进而使LM317T输出电压值可调,使振动强度发生变化。
4028的输入、输出状态如表1所示。
表1 4028的输入、输出状态
4.无线接收部分
手控器工作在无线控制模式下,通过无线发送方式传递控制信息,单片机通过无线接收电路接收控制信号。单片机的无线接收电路采用超外差方式,通过单片机T0中断接收,此种方式可绕过一定障碍物,接收范围较宽,但对时序有较高的要求,受现场干扰较大,需要在单片机的软件中进行抗干扰处理。
5.手控器接口
当手控器接上连接线,可作有线控制器,此时,利用单片机的串行口作手控器接口,其中RXD引脚作输入,TXD引脚作输出。使用时,手控器与主控器间要进行对码。
6.EEPROM 存储器接口
EEPROM存储器,用于存储位置定位信息,其中包括2个推杆电机的位置信息。每次系统上电后,单片机通过读EEPROM存储器获取所存的定位信息;单片机也可将新的位置信息写入EEPROM存储器。定位信息最多可同时存储3个记忆位置和1个当前位置数据。
EEPROM存储器采用AT24LC04芯片,该芯片为I2C器件,具有512×8位的存储容量,引脚排列如下图所示,其中A0、A1和A2是地址选择输入端,SCL串行时钟线,SDA串行数据线。
AT89S52单片机不带I2C总线,因此必须根据I2C总线的时序用单片机的I/O口模拟I2C总线时序实现其功能。
本系统中用单片机的P0.1与芯片的SCL相连,单片机的P0.2和SDA相连;单片机通过P0.1的高低电平得到控制I2C的虚拟时钟,P0.2作数据传输的双向端口,为单片机和AT24LC04之间提供数据线,电路连接如图4所示。
图4 AT89S52单片机与AT24LC04的接口
三、控制系统的软件设计
本系统共使用了五个中断源。它们分别作以下用途:
T0:无线接收中断
T1:定时中断
INT0:背部升降控制处理
INT1:足部升降控制处理
串行口:有线接收中断
控制系统的软件由主程序、各中断源的中断服务程序、以及子程序组成。
1.主程序流程
主程序主要完成系统初始化、读EEPROM、通信口检测、扫描键盘、键处理、写EEPROM等功能。流程如图5所示。其中读写EEPROM和键处理操作通过子程序实现。
2.系统初始化
系统初始化主要完成中断源初始化、通信口初始化、输出状态初始化等工作。
3.读写EEPROM
单片机对EEPROM存储器中所存的定位信息进行读取和重新写入。
4.通信口检测
读串行口状态,判断手控器的操作方式(无线或有线),并根据不同的操作方式,对电动床进行控制。
图5 主程序流程
5.扫描键盘与键处理
判断有无键按下,有键按下进而判断按键位置并进行键功能的处理。
需处理的按键包括3个模式选择键:MEM、MES、ADJ;2个位置选择键back、foot;2个振动按摩力度调节键UP、DOWN;3个存储选择键S1、S2、S3键。
四、结束语
由于AT89S52单片机内部资源被充分使用,因此本系统具有很高的性价比。作者参与了电动按摩床控制系统的设计与调试工作,针对如何解决抗干扰这一问题,除了软件抗干扰之外,在硬件上也采取了相应的措施,首先在电源回路中采用环形变压器加扼流圈,在电机两端加阻容滤波器,对脉冲发生器电路增加硬件消抖处理,以提高计数精度。本电动按摩床控制系统经过实际运行证明,系统控制功能可靠,使用方便,完全能符合用户的要求。
[1]一种智能无线数据采集系统的设计与实现.西北师范大学学报,2008年第2 期.佘乾顺,马胜前等
[2]用数字集成电路实现时序逻辑电路的功能.电子工程师.1999年第5期.涂金龙