單片機STCl2C2052AD的比例遙控系統
圖3中,與單片機左邊相連的部分為電動機驅動電路。該電路由2對晶體管組成一個橋式互補對稱電路,其中包含了電動機。電動機是一種將電脈沖信號轉換成階躍型的角位移或者直線位移的變換器,它的旋轉是以固定的角度(步距角)運行的。當4個晶體管均為低電平時(由芯片控制),這4個晶體管的集電極和發射極均不能導通,此時電動機a端和b端均為O V,電動機不能轉動。當P3.0和P3.2為高電平,P3.1和P3.3為低電平時,晶體管T1和T3均導通,此時a端得到高電平,而b端與地相通,電動機開始轉動。除去晶體管T1和T3的壓降,電動機的兩端大概可以得到4.5 V的電壓。同樣道理,當P3.1和P3.3為高電平,P3.O和P3.2為低電平時,b端得到高電平,而a端與地相通,電動機反轉。通過該橋式電路,控制P3.O和P3.2、P3.1和P3.3端口的電平(注意:這4個端口不能全部為高電平)便可以實現電動機的正轉、反轉和停轉,即實現了模型的前進或后退。為了消除電動機的電弧干擾,應在電動機兩側加一個小電容,其值為0.1μF。本文引用地址:http://www.104case.com/article/173869.htm
另外,設計中還要求能夠對模型進行速度的控制。控制電動機的運行速度,實際上就是控制系統發出時鐘脈沖的頻率或著是換相的周期,即在升速過程中,使脈沖的輸出頻率逐漸增加;在減速過程中,使脈沖的輸出頻率逐漸減少。脈沖信號的頻率可以用軟件延時和硬件中斷兩種方法來確定:
①采用軟件延時,一般是根據所需的時間常數來設計一個子程序。該程序包含一定的指令,設計者要對這些指令的執行時間進行精確的計算,以便確定延時時間。在每次確定前進方向之后調用一個延時子程序,待延時結束以后再執行換向,這樣周而復始就可以發出一定頻率的CP脈沖或換向周期。延時子程序的延時時間與換向程序所用的時間和,就是CP脈沖的周期。該方法簡單,占用資源少,全部由軟件實現,調用不同的子程序就可以實現不同速度的運行;但是,若占用CPU的時間過長,就不能在運行時處理其他的工作,因此它比較適合簡單的控制過程。
②使用單片機中的定時器直接對系統時鐘脈沖或某一固定頻率的時鐘脈沖進行計數,計數值由編程決定。定時器啟動后,定時器從裝載的初值開始對系統及其周期進行加計數。當定時器溢出時,定時器產生中斷,系統轉去執行定時中斷子程序,將電機換向子程序放在定時中斷服務程序中,定時中斷一次,電機換向一次,從而實現電機的速度控制。用定時中斷方式來控制電動機的速度,實際上是不斷改變定時器裝載值的大小。
2.3 單片機程序設計
由于單片機的各個引腳都有很多功能,因此在軟件程序設計中要特別注意它們的定義和對片內特殊功能寄存器的初始化設置,以便實現相應的功能。在初始化設置完成之后,開始接收第1通道數據,同時必須使接收單片機同步接收通道數據,相隔一定時間查詢第1通道當前電壓A/D轉換的結果是否與查詢之前的結果相同。如果相同,則繼續發送下一個通道的數據;反之,則立即向接收機發送該通道的通道號和相應的A/D轉換結果,且在延時10 ms后準備發送下一個通道的數據。全部數據發送完畢后再重新開始新一輪的數據查詢和發送。延時的目的在于給接收單片機留出一定的處理時間。圖4(a)所示為發射單片機程序設計流程。
評論