江蘇常州輕工職業(yè)技術(shù)學(xué)院 韓迎輝
電動按摩床的單片機控制系統(tǒng)
江蘇常州輕工職業(yè)技術(shù)學(xué)院 韓迎輝
本文主要介紹電動按摩床控制系統(tǒng)的設(shè)計,包括系統(tǒng)硬件和軟件的設(shè)計,具體給出了硬件電路組成、軟件功能劃分,以及系統(tǒng)軟硬件控制功能的實現(xiàn)方法。本電動按摩床控制系統(tǒng)實現(xiàn)了多級振動控制、定位信息自動存儲等功能,并具有控制功能靈活、使用方便、性價比高的特點。
電動按摩床 單片機
本文介紹的電動按摩床控制系統(tǒng),是用單片機作主控制器,按摩床控制模式包括床體的升降控制、振動控制和床體的位置記憶。以上控制方式通過手控器上的3個模式選擇鍵進(jìn)行選擇:MEM(存儲模式),MES(振動模式),ADJ(升降模式)。手控器與單片機之間的連接方式分有線連接和無線連接兩種。
升降控制分背部升降和足部升降,分別由兩個推桿電機進(jìn)行控制;振動控制也分背部振動和足部振動兩種情況,由兩個振動電機進(jìn)行控制。升降及振動位置由手控器上的back(背部)、foot(足部)鍵進(jìn)行選擇,振動按摩的力度可分十個檔位進(jìn)行調(diào)節(jié),手控器上的Up/ Down按鍵可增加/減少一個檔位。
在存儲模式下,分別按動手控器上的S1、S2、S3鍵,可將當(dāng)前床體位置作為記憶值(位置1、位置2、位置3)存儲到EEPROM存儲器中。而在升降模式下,按S1、S2、S3鍵,可將床體位置調(diào)整到被記憶過的3個位置上。
控制系統(tǒng)的硬件主要由主控制器、脈沖定位控制部分、分級電壓輸出電路、無線接收部分、手控器接口和EEPROM存儲器接口等組成。系統(tǒng)組成框圖如圖1所示。
圖1 系統(tǒng)組成框圖
主控制器使用AT89S52單片機。AT89S52 是一種低功耗、高性能CMOS8位微控制器,與MCS-51單片機產(chǎn)品兼容,具有8K在系統(tǒng)可編程Flash 存儲器,使用Atmel公司高密度非易失性存儲器技術(shù)制造,片上Flash允許程序存儲器在系統(tǒng)可編程,也可使用常規(guī)編程器編程。
電動按摩床的升降運動分足部升降和背部升降,分別由推桿電機A和推桿電機B控制。推桿電機可正反轉(zhuǎn)運行,經(jīng)絲桿、變速箱帶動推桿伸縮,從而控制足部的升降和背部的升降。電動床推桿電機及傳動機構(gòu)如圖2所示。
電動按摩床升降位置的定位控制,是通過單片機對連接在電機尾部的脈沖發(fā)生器(PG)進(jìn)行計數(shù)實現(xiàn)。
脈沖發(fā)生器是在推桿電機軸上安裝一個圓盤,圓盤的圓周上均勻分布n個凸塊,在圓盤附近固定一個光電傳感器(槽形光耦),當(dāng)圓盤旋轉(zhuǎn)一周,光電傳感器輸出n個脈沖,此脈沖加到單片機引腳上,單片機通過計數(shù)得到脈沖個數(shù)(正轉(zhuǎn)時增計數(shù),反轉(zhuǎn)時減計數(shù)),可知推桿電機轉(zhuǎn)動的圈數(shù),最終可計算出推桿伸縮的位移,從而實現(xiàn)升降位置的精確定位。
其中,足部脈沖加到單片機INT0引腳,背部脈沖加到單片機INT1引腳。
圖2 電動床推桿電機及傳動機構(gòu)
電動按摩床振動力度的調(diào)節(jié),通過分級控制振動電機的電壓實現(xiàn),振動強度分10檔,每按手控器上的Up/ Down按鍵一次可增加或減少一個檔位。調(diào)節(jié)電路結(jié)構(gòu)如圖3所示。
圖3 電壓調(diào)節(jié)電路框圖
單片機輸出4位碼經(jīng)4028(BCD—十進(jìn)制譯碼器芯片)的Q0~Q9輸出,控制十路光耦的輸入端,使其中的一路導(dǎo)通,該光耦輸出回路中的電阻(R0~R9中的一個,其阻值各不相同)被并入RB電阻兩端,控制LM317T輸出至振動電機線圈的電壓發(fā)生變化,以控制振動電機的振動強度。利用Up/ Down按鍵改變單片機4位輸出碼,并入電阻在R0~R9之間切換,進(jìn)而使LM317T輸出電壓值可調(diào),使振動強度發(fā)生變化。
4028的輸入、輸出狀態(tài)如表1所示。
表1 4028的輸入、輸出狀態(tài)
手控器工作在無線控制模式下,通過無線發(fā)送方式傳遞控制信息,單片機通過無線接收電路接收控制信號。單片機的無線接收電路采用超外差方式,通過單片機T0中斷接收,此種方式可繞過一定障礙物,接收范圍較寬,但對時序有較高的要求,受現(xiàn)場干擾較大,需要在單片機的軟件中進(jìn)行抗干擾處理。
當(dāng)手控器接上連接線,可作有線控制器,此時,利用單片機的串行口作手控器接口,其中RXD引腳作輸入,TXD引腳作輸出。使用時,手控器與主控器間要進(jìn)行對碼。
EEPROM存儲器,用于存儲位置定位信息,其中包括2個推桿電機的位置信息。每次系統(tǒng)上電后,單片機通過讀EEPROM存儲器獲取所存的定位信息;單片機也可將新的位置信息寫入EEPROM存儲器。定位信息最多可同時存儲3個記憶位置和1個當(dāng)前位置數(shù)據(jù)。
EEPROM存儲器采用AT24LC04芯片,該芯片為I2C器件,具有512×8位的存儲容量,引腳排列如下圖所示,其中A0、A1和A2是地址選擇輸入端,SCL串行時鐘線,SDA串行數(shù)據(jù)線。
AT89S52單片機不帶I2C總線,因此必須根據(jù)I2C總線的時序用單片機的I/O口模擬I2C總線時序?qū)崿F(xiàn)其功能。
本系統(tǒng)中用單片機的P0.1與芯片的SCL相連,單片機的P0.2和SDA相連;單片機通過P0.1的高低電平得到控制I2C的虛擬時鐘,P0.2作數(shù)據(jù)傳輸?shù)碾p向端口,為單片機和AT24LC04之間提供數(shù)據(jù)線,電路連接如圖4所示。
圖4 AT89S52單片機與AT24LC04的接口
本系統(tǒng)共使用了五個中斷源。它們分別作以下用途:
T0:無線接收中斷
T1:定時中斷
INT0:背部升降控制處理
INT1:足部升降控制處理
串行口:有線接收中斷
控制系統(tǒng)的軟件由主程序、各中斷源的中斷服務(wù)程序、以及子程序組成。
主程序主要完成系統(tǒng)初始化、讀EEPROM、通信口檢測、掃描鍵盤、鍵處理、寫EEPROM等功能。流程如圖5所示。其中讀寫EEPROM和鍵處理操作通過子程序?qū)崿F(xiàn)。
系統(tǒng)初始化主要完成中斷源初始化、通信口初始化、輸出狀態(tài)初始化等工作。
單片機對EEPROM存儲器中所存的定位信息進(jìn)行讀取和重新寫入。
讀串行口狀態(tài),判斷手控器的操作方式(無線或有線),并根據(jù)不同的操作方式,對電動床進(jìn)行控制。
圖5 主程序流程
判斷有無鍵按下,有鍵按下進(jìn)而判斷按鍵位置并進(jìn)行鍵功能的處理。
需處理的按鍵包括3個模式選擇鍵:MEM、MES、ADJ;2個位置選擇鍵back、foot;2個振動按摩力度調(diào)節(jié)鍵UP、DOWN;3個存儲選擇鍵S1、S2、S3鍵。
由于AT89S52單片機內(nèi)部資源被充分使用,因此本系統(tǒng)具有很高的性價比。作者參與了電動按摩床控制系統(tǒng)的設(shè)計與調(diào)試工作,針對如何解決抗干擾這一問題,除了軟件抗干擾之外,在硬件上也采取了相應(yīng)的措施,首先在電源回路中采用環(huán)形變壓器加扼流圈,在電機兩端加阻容濾波器,對脈沖發(fā)生器電路增加硬件消抖處理,以提高計數(shù)精度。本電動按摩床控制系統(tǒng)經(jīng)過實際運行證明,系統(tǒng)控制功能可靠,使用方便,完全能符合用戶的要求。
[1]一種智能無線數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn).西北師范大學(xué)學(xué)報,2008年第2 期.佘乾順,馬勝前等
[2]用數(shù)字集成電路實現(xiàn)時序邏輯電路的功能.電子工程師.1999年第5期.涂金龍