鹽城工業(yè)職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院 王麗麗 黃春香
無線遙控小車控制系統(tǒng)軟件設(shè)計(jì)
鹽城工業(yè)職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院 王麗麗 黃春香
本控制系統(tǒng)基于STC89C51單片機(jī),將單片機(jī)作為系統(tǒng)控制核心,系統(tǒng)由主機(jī)和從機(jī)組成,通過無線傳輸,主機(jī)發(fā)送控制指令,從機(jī)接收指令并控制小車運(yùn)行,實(shí)現(xiàn)無線遙控小車控制系統(tǒng)。主機(jī)軟件設(shè)計(jì)分為無線數(shù)據(jù)傳輸程序、控制程序和顯示程序,從機(jī)軟件設(shè)計(jì)分為小車車速數(shù)據(jù)采集(中斷處理程序)、無線傳輸程序、車體控制程序、數(shù)碼顯示程序。通過調(diào)試,控制系統(tǒng)較好地實(shí)現(xiàn)了無線遙控小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、顯示運(yùn)動狀態(tài)和行駛路程的功能。
無線遙控;STC89C51;RF1100無線模塊;軟件設(shè)計(jì)
無線電遙控技術(shù)發(fā)展歷史僅有幾十年,20世紀(jì)20年代,才剛剛出現(xiàn)無線電遙控的雛形。二次世界大戰(zhàn)以后,無線電遙控技術(shù)得到迅速發(fā)展,并逐漸應(yīng)用于建設(shè)、軍事、國防、工農(nóng)業(yè)生產(chǎn)以及科學(xué)技術(shù)領(lǐng)域。無線電波是由發(fā)射點(diǎn)向周圍傳播,可穿透阻擋物,而且傳播距離也相當(dāng)遙遠(yuǎn),因此它能完成在很大區(qū)域和空間內(nèi)的控制,成為遙控的主導(dǎo)形式,在國防、軍事、生產(chǎn)、建設(shè)和日常生活中有極廣泛的應(yīng)用。
依據(jù)無線小車控制系統(tǒng)的總體結(jié)構(gòu),整個小車系統(tǒng)由移動平臺、車載控制系統(tǒng)、遙控系統(tǒng)和傳感器檢測四大部分組成。結(jié)合無線通信技術(shù)與單片機(jī)控制技術(shù),實(shí)現(xiàn)控制無線小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn),并顯示相應(yīng)的數(shù)據(jù)。
主機(jī)軟件設(shè)計(jì)分為無線數(shù)據(jù)傳輸程序,控制程序和顯示程序。當(dāng)系統(tǒng)上電復(fù)位后,首先對系統(tǒng)初始化,包括無線模塊和液晶模塊初始化,再根據(jù)系統(tǒng)功能實(shí)現(xiàn)要求掃描按鍵,然后根據(jù)按鍵的不同功能發(fā)送對應(yīng)的控制信號,本系統(tǒng)設(shè)置4個控制按鍵為key1、key2、key3、key4,分別接到單片機(jī)的 P1.1、P1.2、P1.4、P1.7口,控制按鍵發(fā)送的控制信號分別是1、2、3、4,其功能分別是前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn),再判斷從機(jī)是否發(fā)送小車運(yùn)動的轉(zhuǎn)數(shù)信號,等待接收數(shù)據(jù),將接收到數(shù)據(jù)進(jìn)行處理,用轉(zhuǎn)數(shù)乘以小車的車輪周長,并將處理好的數(shù)據(jù)傳給接收標(biāo)志位buff,再送到lcd1602液晶模塊顯示。軟件流程圖如圖1所示。
圖1 軟件主機(jī)流程圖
3.1 從機(jī)主流程圖
系統(tǒng)上電復(fù)位時,首先是系統(tǒng)初始化,包括單片機(jī)寄存器初始化和無線模塊初始化,再設(shè)置功能標(biāo)志位buff和計(jì)數(shù)器標(biāo)志位geshu,然后等待并判斷無線模塊是否接收到主機(jī)發(fā)送的控制信號,如果判定是,則接收此數(shù)據(jù)并賦予功能標(biāo)志位buff,根據(jù)不同的功能標(biāo)志執(zhí)行相應(yīng)的控制程序,實(shí)現(xiàn)對小車的運(yùn)動狀態(tài)的控制,本系統(tǒng)設(shè)置的功能標(biāo)志buff有4種狀態(tài),分別為1、2、3、4,其功能分別是前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn),再根據(jù)霍爾傳感器的測量脈沖信號進(jìn)入相應(yīng)的中斷服務(wù)程序,并進(jìn)行數(shù)據(jù)處理,處理完后再通過無線發(fā)送給主機(jī),中斷服務(wù)程序執(zhí)行后返回主程序,計(jì)數(shù)器清零,為接收下一次數(shù)據(jù)作準(zhǔn)備。軟件流程圖如圖2所示。
3.2 從機(jī)中斷流程圖
系統(tǒng)要求測量小車行駛的路程,其測量方法是通過計(jì)數(shù)小車在行駛過程中車輪轉(zhuǎn)動的圈數(shù),其圈數(shù)通過霍爾傳感器檢測,霍爾傳感器測量電路和磁鋼共同完成其測量裝置,將霍爾傳感器檢測的脈沖由T0引腳(P3.2引腳)輸入,來一個脈沖計(jì)數(shù)器值加1(程序中為geshu++)。
圖2 軟件從機(jī)主流程圖
圖3 外部中斷0服務(wù)子程序
圖4 定時器T0中斷服務(wù)子程序
要測量小車的速度,先測量其車輪轉(zhuǎn)速,將T0工作在定時方式,設(shè)置初值為0,測量車輪一圈所用的時間,如果定時時間溢出(超過定時最大值)則進(jìn)入內(nèi)部中斷即中斷1,計(jì)數(shù)值加1(程序中為NUM++),然后再進(jìn)行數(shù)據(jù)處理,轉(zhuǎn)化為轉(zhuǎn)速(單位rad/s),可再進(jìn)行處理表示成速度(單位m/s)。軟件流程圖如圖3、圖4所示。
本系統(tǒng)采用STC89C51單片機(jī)作為控制核心,利用無線傳輸,通過完整的設(shè)計(jì)并優(yōu)化小車的硬件系統(tǒng)、軟件系統(tǒng)和機(jī)械系統(tǒng),最終實(shí)現(xiàn)了無線遙控小車的控制功能,能夠通過無線靈活地控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn),能夠完成在lcd1602液晶上顯示運(yùn)動狀態(tài)和小車行駛路程。
[1]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社, 1991.
[2]郭天祥.新概念51單片機(jī)C語言教程[M].北京:電子工業(yè)出版社,2008.
[3]王暉.基于MCS-51單片機(jī)的設(shè)計(jì)調(diào)試與原理[J].現(xiàn)代電子技術(shù),2006,29(8):113-114.
[4]孫維明,石江宏,陳岳林.可編程RF收發(fā)器CC1100的原理及開發(fā)[J].國外電子元器件,2007(09).
[5]潘旭兵,林中.基于CC1100的無線手持終端的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2007(10).