江蘇常州輕工職業技術學院 韓迎輝
電動按摩床的單片機控制系統
江蘇常州輕工職業技術學院 韓迎輝
本文主要介紹電動按摩床控制系統的設計,包括系統硬件和軟件的設計,具體給出了硬件電路組成、軟件功能劃分,以及系統軟硬件控制功能的實現方法。本電動按摩床控制系統實現了多級振動控制、定位信息自動存儲等功能,并具有控制功能靈活、使用方便、性價比高的特點。
電動按摩床 單片機
本文介紹的電動按摩床控制系統,是用單片機作主控制器,按摩床控制模式包括床體的升降控制、振動控制和床體的位置記憶。以上控制方式通過手控器上的3個模式選擇鍵進行選擇:MEM(存儲模式),MES(振動模式),ADJ(升降模式)。手控器與單片機之間的連接方式分有線連接和無線連接兩種。
升降控制分背部升降和足部升降,分別由兩個推桿電機進行控制;振動控制也分背部振動和足部振動兩種情況,由兩個振動電機進行控制。升降及振動位置由手控器上的back(背部)、foot(足部)鍵進行選擇,振動按摩的力度可分十個檔位進行調節,手控器上的Up/ Down按鍵可增加/減少一個檔位。
在存儲模式下,分別按動手控器上的S1、S2、S3鍵,可將當前床體位置作為記憶值(位置1、位置2、位置3)存儲到EEPROM存儲器中。而在升降模式下,按S1、S2、S3鍵,可將床體位置調整到被記憶過的3個位置上。
控制系統的硬件主要由主控制器、脈沖定位控制部分、分級電壓輸出電路、無線接收部分、手控器接口和EEPROM存儲器接口等組成。系統組成框圖如圖1所示。

圖1 系統組成框圖
主控制器使用AT89S52單片機。AT89S52 是一種低功耗、高性能CMOS8位微控制器,與MCS-51單片機產品兼容,具有8K在系統可編程Flash 存儲器,使用Atmel公司高密度非易失性存儲器技術制造,片上Flash允許程序存儲器在系統可編程,也可使用常規編程器編程。
電動按摩床的升降運動分足部升降和背部升降,分別由推桿電機A和推桿電機B控制。推桿電機可正反轉運行,經絲桿、變速箱帶動推桿伸縮,從而控制足部的升降和背部的升降。電動床推桿電機及傳動機構如圖2所示。
電動按摩床升降位置的定位控制,是通過單片機對連接在電機尾部的脈沖發生器(PG)進行計數實現。
脈沖發生器是在推桿電機軸上安裝一個圓盤,圓盤的圓周上均勻分布n個凸塊,在圓盤附近固定一個光電傳感器(槽形光耦),當圓盤旋轉一周,光電傳感器輸出n個脈沖,此脈沖加到單片機引腳上,單片機通過計數得到脈沖個數(正轉時增計數,反轉時減計數),可知推桿電機轉動的圈數,最終可計算出推桿伸縮的位移,從而實現升降位置的精確定位。
其中,足部脈沖加到單片機INT0引腳,背部脈沖加到單片機INT1引腳。

圖2 電動床推桿電機及傳動機構
電動按摩床振動力度的調節,通過分級控制振動電機的電壓實現,振動強度分10檔,每按手控器上的Up/ Down按鍵一次可增加或減少一個檔位。調節電路結構如圖3所示。

圖3 電壓調節電路框圖
單片機輸出4位碼經4028(BCD—十進制譯碼器芯片)的Q0~Q9輸出,控制十路光耦的輸入端,使其中的一路導通,該光耦輸出回路中的電阻(R0~R9中的一個,其阻值各不相同)被并入RB電阻兩端,控制LM317T輸出至振動電機線圈的電壓發生變化,以控制振動電機的振動強度。利用Up/ Down按鍵改變單片機4位輸出碼,并入電阻在R0~R9之間切換,進而使LM317T輸出電壓值可調,使振動強度發生變化。
4028的輸入、輸出狀態如表1所示。

表1 4028的輸入、輸出狀態
手控器工作在無線控制模式下,通過無線發送方式傳遞控制信息,單片機通過無線接收電路接收控制信號。單片機的無線接收電路采用超外差方式,通過單片機T0中斷接收,此種方式可繞過一定障礙物,接收范圍較寬,但對時序有較高的要求,受現場干擾較大,需要在單片機的軟件中進行抗干擾處理。
當手控器接上連接線,可作有線控制器,此時,利用單片機的串行口作手控器接口,其中RXD引腳作輸入,TXD引腳作輸出。使用時,手控器與主控器間要進行對碼。
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:足部升降控制處理
串行口:有線接收中斷
控制系統的軟件由主程序、各中斷源的中斷服務程序、以及子程序組成。
主程序主要完成系統初始化、讀EEPROM、通信口檢測、掃描鍵盤、鍵處理、寫EEPROM等功能。流程如圖5所示。其中讀寫EEPROM和鍵處理操作通過子程序實現。
系統初始化主要完成中斷源初始化、通信口初始化、輸出狀態初始化等工作。
單片機對EEPROM存儲器中所存的定位信息進行讀取和重新寫入。
讀串行口狀態,判斷手控器的操作方式(無線或有線),并根據不同的操作方式,對電動床進行控制。

圖5 主程序流程
判斷有無鍵按下,有鍵按下進而判斷按鍵位置并進行鍵功能的處理。
需處理的按鍵包括3個模式選擇鍵:MEM、MES、ADJ;2個位置選擇鍵back、foot;2個振動按摩力度調節鍵UP、DOWN;3個存儲選擇鍵S1、S2、S3鍵。
由于AT89S52單片機內部資源被充分使用,因此本系統具有很高的性價比。作者參與了電動按摩床控制系統的設計與調試工作,針對如何解決抗干擾這一問題,除了軟件抗干擾之外,在硬件上也采取了相應的措施,首先在電源回路中采用環形變壓器加扼流圈,在電機兩端加阻容濾波器,對脈沖發生器電路增加硬件消抖處理,以提高計數精度。本電動按摩床控制系統經過實際運行證明,系統控制功能可靠,使用方便,完全能符合用戶的要求。
[1]一種智能無線數據采集系統的設計與實現.西北師范大學學報,2008年第2 期.佘乾順,馬勝前等
[2]用數字集成電路實現時序邏輯電路的功能.電子工程師.1999年第5期.涂金龍