單片機的圖形化編程方法探討
發布時間:2008/8/16 0:00:00 訪問次數:1245
引言
單片機可以用匯編語言編程,也可以用高級語言c、basic編程,也可以用圖形化語言編程。
工業控制中普遍采用可編程控制器,其cpu模塊內的微控制器往往是普通的單片機,而可編程控制器可以梯形圖編程,或者用流程圖編程。現在的智能教育機器人控制器均用單片機,而這些機器人的編程大多支持流程圖編程。上海廣茂達電子信息有限公司的能力風暴系列機器人采用vjc可視化流程圖與c語言編程;中鳴機器人系列采用機器人快車軟件編程,該軟件也是可視化流程圖與c語言編程;西米亞公司的樂高系列、博思威龍機器人、美國的vex系列機器人、雙龍公司的機器人diy系列均可以采用可視化流程圖與c語言編程。而這些機器人的控制系統核心均為單片機。由此可知,普通單片機的開發一定可以采用流程圖編程。其實,機器人的流程圖編制軟件可以反過來作為相應單片機的編程軟件。下面用一個實例詳細說明單片機如何用圖形化編程。
1 問題描述
某機器上,2臺電機通過滾珠絲杠驅動工作臺做順序運動,如圖1所示。用單片機系統控制2臺電機,實現規定的順序動作。當行程開關kx1壓下時,電機d1帶動卡緊機構右移,右移到撞塊壓下kx2時,電機d1停轉,并且這種狀態延遲一段時間t1。電機d2按以下順序開始動作:當行程開關kx3壓下時,電機d2帶動工作臺右移,工作臺右移到撞塊壓下kx4時,電機d2停轉,并且這種狀態延遲一段時間t2;然后電機d2反轉,帶著工作臺向左返回,工作臺返回左側壓下kx3時,電機d2停轉,同時電機d1反轉,松開卡緊機構直到kx1壓下,電機d1停轉。
2 單片機控制系統組成
實現上述控制功能的方案有多種,如繼電器接觸器控制系統、可編程序控制器控制系統、單片機控制系統等。本文用單片機控制系統來實現上述控制動作,單片機控制系統的組成如圖3所示。
單片機采用motorola公司的mc68hc11e1。為了仿真實驗的需要,單片機控制系統采用上海廣茂達電子信息有限公司的能力風暴機器人 asuii中的主控制板。行程開關kx1~kx4用機器人上的碰撞開關來模擬,碰撞開關電路如圖4(a)所示。電機d1、d2用機器人2輪的驅動電機來模擬,電路如圖4(b)所示。其中,電機驅動芯片選用的是ti公司的sn754410。
3 vjc程序流程
使用能力風暴機器人的編程開發環境vjc1.6(可以從上海廣茂達電子信息有限公司網站上下載)編制、調試和下載程序。針對上述單片機雙電機啟停控制系統,用vjc1.6編制的流程圖如圖5所示。實際的單片機控制系統,只要把相應的傳感器及其驅動電路、電機及其驅動電路更改成適應實際對象的元器件,就仍然可以用這種單片機控制板和相應的編程軟件。更進一步的應用可以擴充軟硬件系統。
程序總體為一循環程序。在每一次循環中,依次檢測4個碰撞開關,按照電機的動作順序要求啟動或停止電機。程序模塊的使用和變量的設置方法此處從略,請參見說明書,或與上海廣茂達電子信息有限公司聯系。
圖5的流程圖在vjc1.6環境下可以轉化為c語言程序,具體可參看vjc1.6的使用。
在vjc1.6環境下編制的程序,無論是流程圖還是c語言程序,均可以直接下載到單片機的閃存或eeprom中,這也是這種編程和開發方法受到人們歡迎的原因。但是目前這種方法僅用在以單片機為核心的智能機器人的程序開發之中,還沒有專門用于單片機開發的這種圖形化編程環境,相信不久的將來就會出現這種方法。
結語
這里單片機系統實現的功能就相當于一個可編程控制器系統,而且編程語言是流程圖語言。可見,某些單片機系統略加擴充就可以成為一個可以使用流程圖編程、c語言編程和匯編語言編程的功能相當完備的可編程控制器,從而與現有的可編程控制器在工業控制領域并駕齊驅。
引言
單片機可以用匯編語言編程,也可以用高級語言c、basic編程,也可以用圖形化語言編程。
工業控制中普遍采用可編程控制器,其cpu模塊內的微控制器往往是普通的單片機,而可編程控制器可以梯形圖編程,或者用流程圖編程。現在的智能教育機器人控制器均用單片機,而這些機器人的編程大多支持流程圖編程。上海廣茂達電子信息有限公司的能力風暴系列機器人采用vjc可視化流程圖與c語言編程;中鳴機器人系列采用機器人快車軟件編程,該軟件也是可視化流程圖與c語言編程;西米亞公司的樂高系列、博思威龍機器人、美國的vex系列機器人、雙龍公司的機器人diy系列均可以采用可視化流程圖與c語言編程。而這些機器人的控制系統核心均為單片機。由此可知,普通單片機的開發一定可以采用流程圖編程。其實,機器人的流程圖編制軟件可以反過來作為相應單片機的編程軟件。下面用一個實例詳細說明單片機如何用圖形化編程。
1 問題描述
某機器上,2臺電機通過滾珠絲杠驅動工作臺做順序運動,如圖1所示。用單片機系統控制2臺電機,實現規定的順序動作。當行程開關kx1壓下時,電機d1帶動卡緊機構右移,右移到撞塊壓下kx2時,電機d1停轉,并且這種狀態延遲一段時間t1。電機d2按以下順序開始動作:當行程開關kx3壓下時,電機d2帶動工作臺右移,工作臺右移到撞塊壓下kx4時,電機d2停轉,并且這種狀態延遲一段時間t2;然后電機d2反轉,帶著工作臺向左返回,工作臺返回左側壓下kx3時,電機d2停轉,同時電機d1反轉,松開卡緊機構直到kx1壓下,電機d1停轉。
2 單片機控制系統組成
實現上述控制功能的方案有多種,如繼電器接觸器控制系統、可編程序控制器控制系統、單片機控制系統等。本文用單片機控制系統來實現上述控制動作,單片機控制系統的組成如圖3所示。
單片機采用motorola公司的mc68hc11e1。為了仿真實驗的需要,單片機控制系統采用上海廣茂達電子信息有限公司的能力風暴機器人 asuii中的主控制板。行程開關kx1~kx4用機器人上的碰撞開關來模擬,碰撞開關電路如圖4(a)所示。電機d1、d2用機器人2輪的驅動電機來模擬,電路如圖4(b)所示。其中,電機驅動芯片選用的是ti公司的sn754410。
3 vjc程序流程
使用能力風暴機器人的編程開發環境vjc1.6(可以從上海廣茂達電子信息有限公司網站上下載)編制、調試和下載程序。針對上述單片機雙電機啟停控制系統,用vjc1.6編制的流程圖如圖5所示。實際的單片機控制系統,只要把相應的傳感器及其驅動電路、電機及其驅動電路更改成適應實際對象的元器件,就仍然可以用這種單片機控制板和相應的編程軟件。更進一步的應用可以擴充軟硬件系統。
程序總體為一循環程序。在每一次循環中,依次檢測4個碰撞開關,按照電機的動作順序要求啟動或停止電機。程序模塊的使用和變量的設置方法此處從略,請參見說明書,或與上海廣茂達電子信息有限公司聯系。
圖5的流程圖在vjc1.6環境下可以轉化為c語言程序,具體可參看vjc1.6的使用。
在vjc1.6環境下編制的程序,無論是流程圖還是c語言程序,均可以直接下載到單片機的閃存或eeprom中,這也是這種編程和開發方法受到人們歡迎的原因。但是目前這種方法僅用在以單片機為核心的智能機器人的程序開發之中,還沒有專門用于單片機開發的這種圖形化編程環境,相信不久的將來就會出現這種方法。
結語
這里單片機系統實現的功能就相當于一個可編程控制器系統,而且編程語言是流程圖語言。可見,某些單片機系統略加擴充就可以成為一個可以使用流程圖編程、c語言編程和匯編語言編程的功能相當完備的可編程控制器,從而與現有的可編程控制器在工業控制領域并駕齊驅。