專利名稱:電動模型的程序控制方法
技術領域:
本發明涉及一種電動模型的控制方法,特別涉及一種由數字計算機及數字計算機程序對電動模型的控制方法。
目前,普遍使用的玩具類電動模型的控制方法較為簡單,多數采用時序集成電路對電動模型的動作時間和順序進行控制,使電動模型重復進行有限的動作,該類控制雖然電路結構簡單,但卻存著動作較單一、動作速度不變,其制作成的玩具類產品觀賞性較差等到缺點。
本發明的目的在于針對背景技術中電動模型控制的缺點,提供一種電動模型的程序控制方法,該方法能根據需要對多種動作進行組合,而且動作的順序和速度可變。
本發明的解決方案是在計算機程序中設置電動模型的動作順序、動作時間和動作速度,由計算機運行程序并控制輸出一系列頻率可變化的電脈沖,再由外部電路轉換為相應變化的電壓以控制電動模型的執行機構。本發明包括數字計算機和調速器,所述計算機由中央處理器、存儲器、輸入/輸出口采用常規連接構成;所述調速器的輸入端與計算機輸出口連接,調速器的輸出端與電動模型的某一動作執行機構連接,該執行機構的定位信號傳遞至計算機輸入口一對應的輸入信號線,以使中央處理器能判斷該執行機構的動作是否定位。在數字計算機的存儲器中存儲有電動模型的動作速度表和動作順序表,速度表可有多個,每個速度表的字節數與輸出口總輸出位數相同(如輸出口共有8個輸出位,則每個分表由8個字節組成;輸出口共有16個輸出位,則每個分表由16個字節組成),每個字節中相同二進制位固定地與輸出口的某一輸出位對應(如每個字節中的最低位對應輸出口的最低位,每個字節中的1位對應輸出口的1位…),其中的二進制數“1”或“0”則表示某一時間內需要輸出高電平或低電平。所述動作順序表分為多個段,每段對應電動模型的一組動作,每段內容包括電動模型一組動作的動作時間、該組動作對應的速度表地址、輸出位控制字和輸入位屏蔽字,輸出位控制字和輸入位屏蔽字的位數分別與輸出口總輸出位數和輸入口的總輸入位數相同(例如輸出位數和輸位數均為16位,則屏蔽字和控制字均為16個二進制位,即兩個字節);其中輸入位屏蔽字用以屏蔽掉該組動作不用的定位信號,輸出位控制字用來選擇需要輸出信號的輸出位;動作順序表的每一段對應一個速度表,動作順序表的地址及長度存儲在程序存儲器中某一固定地址開始的連續地址單元內。該數字計算機執行以下步驟1)從存儲器中取動作順序表的地址及長度,將動作順序表的首段作為當前段,并將動作順序表的長度存入寄存器;2)將動作順序表中當前段所對應一組動作的動作時間、輸入位屏蔽字、輸出位控制字和速度表地址分別存入寄存器;3)讀取輸入信號并將其與輸入位屏蔽字、控制字進行邏輯運算,以屏蔽不需要的輸入信號和確定需要輸入信號的輸出位,并將結果存入寄存器;4)讀取當前動作對應的速度表,并將上步運算結果分別與速度表中的每個速度字進行運算,每運算一次即將結果輸出;在該運算周期內,被選擇的輸出位將輸出電脈沖信號;5)判斷動作時間是否結束,如果時間未結束則程序轉移到第3步執行,以循環輸出電脈沖信號,否則繼續下步;6)利用動作順序表的長度判斷是否己執行完順序表中的每段,如果未完成則將動作順序表的下一段作為當前段,程序轉移到第2步執行,否則,結束該次運行。
為保證程序能正常運行,在存儲器中存儲有定時中斷服務程序,該中斷服務程序向定時復位電路(看門狗)輸出脈沖;當程序因干擾而走飛時,定時復位電路得不到輸入信號而輸出信號使中央處理器被強制復位。
本發明利用數字計算機運行程序控制輸出一系列頻率可隨速度設定值變化而變化的電脈沖信號,由外部電路將電脈沖信號轉換為相應的電壓信號來控制電動模型的動作執行機構,并通過定時復位電路來保證程序正常運行,因而具有控制準確、及時和可靠的優點改變本發明中的動作順序表和/或速度表中的內容即可實現多種動作的組合和/或動作的速度,而無須改變主要程序,因而本發明還具有運用方便和適應性較強的優點,本發明尤其適用于玩具類和娛樂類電動模型。
下面結合附圖對本發明進行詳細說明
圖1為本發明的主要結構框圖;圖2為本發明實施例的電路原理圖;圖3為存儲在圖2所示的計算機存儲器中的程序所表示的流程圖;圖4為中斷服務程序所表示的流程圖;圖中1、中央處理器(CPU),2、地址總線,3、存儲器,4、數據總線,5、控制總線,6、復位電路,7、輸出口,7-1、低輸出位,7-2、高輸出位,8、輸入口,8-1、低輸入位,8-2、高輸入位,9、信號輸出線,10、信號輸入線,11、調速器,12、定位信號,13、譯碼器,14、或門。
參照圖1程序存儲器3存儲程序及數據,中央處理器1通過地址總線2、數據總線4和控制總線5從存儲器3中讀取程序指令及數據;外部定位信號12通過信號輸入線10將電平信號送到輸入口8,在程序指令控制下,中央處理器1通過控制總線5和數據總線4從輸入口8讀入數據,或將內部數據通過控制總線和數據總線送至輸出口7,再經輸出口7的輸出端傳遞至調速器11的輸入端,由調速器轉換后輸出。
如圖2所示,本實施例中計算機的輸出口7具有16個輸出位,分為高輸出位和低輸出位,輸入口8具有16個輸入位,分為高輸入位和低輸入位;中央處理器1采用intel8031單片機,存儲器3為2764EPROM只讀存儲器,鎖存器74LS373用來保持存儲器地址的低字節,輸出口7采用兩片觸發器74LS377,輸入口8采用兩片74LS244,譯碼器13采用74LS138,或門14采用74LS32,譯碼器13和或門14用來分配輸入口8和輸出口7的控制信號;調速器11由三極管Q1、Q2、場效應管Q3和電R1~R4構成,三極管Q1的基極作為調速器11的輸入端,其集電極與電源正極間串聯電阻R1、R2,場效應管Q3的柵極通過電阻R3接電源負極,其漏極與電源正極間接負載電機,三極管Q2的基極接電阻R1、R2的連接點,其集電極與場效應管的柵極連接;該圖中輸出口7可連接16個調速器,輸入口可連接相應的16個定位信號。當輸出位輸出高電平信號時,三極管Q1、Q2導通,場效應管Q3的柵極為正電壓,此時場效應管Q3導通(柵極電壓高于開啟電壓),電機通電開始工作,當輸出低電平信號時,三極管Q1、Q2和場效應管Q3均截止。根據場效應管漏極電流隨柵極電壓變化而改變的特性,因此,當輸出位輸出頻率變化的脈沖時,在場效管Q3的基極將得到變化的正電壓,因而漏極電流即通過電機線圈的電流亦隨柵極電壓而變化,由此使得加在電機上的電壓產生變化,從而實現對電機調速。圖中的復位電路6由時序集成電路NE555構成,輸入端與中央處理器1的輸出P1.0連接,輸出端與中央處理器1的復位端RESET連接;復位電路6的輸入端在一定間隔時間內無輸入信號則輸出端將產生高電平信號,該信號使中央處理器1復位。
在圖2所示的數字計算機的輸入口具有16個輸入位,輸出口具有16個輸出位,因此存儲在程序存儲器中的每個速度表由連續存儲的16個字節的速度字組成,每個速度字為一個字節即8個二進制位,其中每連續的兩個字節為一組,稱為低字節和高字節;順序表中的輸出位控制字和輸入位屏蔽字由低字節和高字節兩個字節組成。在速度表和順序表中,低字節的8個二進制位與低輸入位或低輸出位的8個位對應,高字節的8個二進制位分別與高輸入位或高輸出位的8個位對應。速度字中的二進制數‘1’表示對應的輸出位輸出高電平,反之則表示對應的輸出位輸出低電平,8個低字節速度字中的相同位(共8位,如8個1位)又構成一個字節,該字節即為對應的低輸出位的速度字,表示了電脈沖的占空比,8個高字節速度字亦同理。如果順序表某段需要輸出位控制電動模型的執行機構,則該組控制字相應位的二進制數為‘1’,否則為‘0’,如果該執行機構受定位信號控制,則該組屏蔽字相應位的二進制數為‘1’,否則為‘0’。
圖3是存儲在程序存儲中的程序執行的示意圖,圖中指示的每一步在實際執行的程序中,可包含一個或多個步驟。程序啟動102步完成一些初始化工作后執行104步,從固定的存儲單元讀取順序表的長度和順序表的地址,并將順序表的首段作為當前段,該段對應電動模型的第一組動作,其中包括動作時間、速度表地址、控制字和屏蔽字,106步將上述段包括的數據存儲到寄存器。108步首先從輸入端口讀入電動模型的定位信號,將其與屏蔽字進行‘與’運算,再將結果和控制字進行‘異或’運算并將結果存入寄存器,110步讀取第一個速度字即低字節速度字,112步則將速度字和108步的‘異或’結果進行‘與’運算并輸出到相應的輸出端口,即低字節速度字運算結果輸出到低輸出位7-1,之后取第二個速度字即高字節速度字進行運算,并將運算結果輸出到高輸出位7-2;因為電動模型的一組動作中某一個或幾個動作可能不受定位信號的控制即到定位點后仍需繼續執行該動作,而其余動作則到定位點后即停止,所以108步中的‘與‘運算則使運算結果中與不受定位信號控制的輸出位相對應的二進制位的二進制數為‘0’,同時允許受定位信號控制的輸出位相應的輸入,即如果有輸入信號則使相對應的二進制位的二進制數為‘1’,‘異或’運算則使運算結果中與受定位信號控制的輸出位在有定位信號輸入后其對應的二進制位的二進制數為‘0’,再和速度字進行‘與’時使該位始終為‘0’,即輸出位輸出低電平。114步判斷是否和速度表中的16個字節均進行了運算,如果沒有運算完,則執行116步,取下一速度字并啟動112步,如果已和所有速度字進行了運算則執行118步,判斷動作時間是否結束,如果動作時間未結束則執行108步循環輸出脈沖,如果動作時間結束則執行120步,將順序表長度減1并判斷是否為0,如果不為0表示順序表中的段未執行完,則順序表下移一段并啟動106步,如果為0表示順序表中的段已執行完,則結束運行。
圖3所表示的程序在實際編程執行中,從110步到118步(包括114步到112步的循環)大約需要1秒的時間,動作時間填01H則表示1秒,03H則表示3秒,…以此類推,因此在118步中用動作時間減1是否為0來進行判斷。對動作時間亦可通過用定時器來進行定時。
圖4為中斷服務程序,該程序利用定時中斷定時向復位電路輸出信號。200步為中央處理器1響應中斷開始執行服務程序,202步保存被中斷程序的現場數據,如狀態字、程序指針等,204步通過中央處理器1的P1.0位向復位電路6輸入信號,使程序在正常運行時保證復位電路輸出低電平信號,206步恢復被中斷程序的現場數據,如狀態字、程序指針等,208步則返回被中斷程序繼續執行。
權利要求
1.一種電動模型的程序控制方法,包括數字計算機和調速器,所述計算機由中央處理器、存儲器、輸入/輸出口采用常規連接構成;所述調速器的輸入端與計算機輸出口連接,調速器的輸出端與電動模型的動作執行機構連接,該執行機構的定位信號傳遞至計算機輸入口一對應的輸入信號線,以使中央處理器能判斷該執行機構的動作是否定位;其特征在于在數字計算機的存儲器中存儲有電動模型的動作速度表和動作順序表;所述的動作速度表包括多個速度字;所述動作順序表分為多個段,每段對應電動模型的一組動作,每段內容包括電動模型一組動作的動作時間,該組動作對應的速度表地址,輸出位控制字和輸入位屏蔽字,所述動作順序表的地址及長度存儲在程序存儲器中某一固定地址地址單元內;該數字計算機執行以下步驟1)從存儲器中取動作順序表的地址及長度,將動作順序表的首段作為當前段,并將動作順序表的長度存入寄存器;2)將動作順序表中當前段所對應一組動作的動作時間、輸入位屏蔽字、輸出位控制字和速度表地址并分別存入寄存器;3)讀取輸入信號并將其與輸入位屏蔽字、輸出位控制字進行邏輯運算,以屏蔽不需要的輸入信號和確定需要輸入信號的輸出位,并將結果存入寄存器;4)讀取當前動作對應的速度表,并將上步運算結果分別與速度表中的每個速度字進行運算,每運算一次即將結果輸出;在該運算周期內,被選擇的輸出位將輸出電脈沖信號;5)判斷動作時間是否結束,如果時間未結束則程序轉移到第3步執行,以循環輸出電脈沖信號,否則繼續下步;6)利用動作順序表的長度判斷是否已執行完順序表中的每一段,如果未完成則將動作順序表的下一段作為當前段,程序轉移到第2步執行,否則,結束該次運行。
2.根據權利要求1所述的電動模型的程序控制方法,其特征在于所述的速度表由多個表構成,每個表的速度字的字節數與輸出口的輸出位數相同。
3.根據權利要求1或2所述的電動模型的程序控制方法,其特征在于所述速度表中的速度字的二進制位與輸出口的輸出位對應。
4.根據權利要求1所述的電動模型的程序控制方法,其特征在于所述的輸入位屏蔽字的二進制位數與輸入位的位數相同,所述的輸出位控制字的二進制位數與輸出位的位數相同。
5.根據權利要求1所述的電動模型的程序控制方法,其特征在于在存儲器中存儲有定時中斷服務程序,該中斷服務程序向定時復位電路輸出脈沖;當程序因干擾而死機時,定時復位電路得不到輸入脈沖而輸出信號使中央處理器被強制復位。
全文摘要
該發明公開了一種電動模型的控制方法,包括數字計算機及與其輸出口連接的調速器;在數字計算機的程序存儲器中存儲有電動模型的一個動作或多個動作的組合構成的動作順序表以及動作對應的速度表,計算機程序根據表中的數據進行運算并控制輸出一系列頻率可隨速度設定值變化的電脈沖信號,再由外部電路將電脈沖信號轉換為相應的電壓信號來控制電動模型的動作執行機構,該發明具有控制準確、及時,運行可靠和適應性較強的優點。
文檔編號G06F9/46GK1288191SQ0011618
公開日2001年3月21日 申請日期2000年10月16日 優先權日2000年10月16日
發明者孫傳倫 申請人:自貢市摯友電器有限公司