應用單片機的控制電路相關情況解析方案
2.2 接收電路
接收電路主要作用是將發(fā)射機發(fā)射出的已調的編碼指令信號接收下來,并進行放大后送到解調電路,解調電路將已經調制的指令編碼信號解調出來,還原為編碼信號。指令譯碼器將編碼指令信號進行譯碼,最后由驅動電路來驅動執(zhí)行電路實現各種指令的操作控制。圖3為接收機主電路,發(fā)射機傳來的信號由P3.O輸入后送至P1口,由軟件控制P1的相應端口輸出控制信號。P1口的4位A/D端口可以接到不同的控制端。由于是比例遙控,所以應將輸出口的控制信號送到下一級比例遙控專用的伺服電路。
整個系統(tǒng)的執(zhí)行部分是由直流電動機驅動電路來完成的,主要控制模型的行進方向和速度。單片機STCl2C2052AD既是協(xié)調整個接收機工作的控制器,又是數據處理器和運算器,由于它直接有PWM功能,因此不需要占用單片機資源,可以直接產生占空比可變的脈沖信號,對橋式雙向電路驅動電動機進行電壓控制,從而完成對電動機驅動、轉速以及前進或后退的控制,并能夠實現脈寬精確調速。
圖3中,與單片機左邊相連的部分為電動機驅動電路。該電路由2對晶體管組成一個橋式互補對稱電路,其中包含了電動機。電動機是一種將電脈沖信號轉換成階躍型的角位移或者直線位移的變換器,它的旋轉是以固定的角度(步距角)運行的。當4個晶體管均為低電平時(由芯片控制),這4個晶體管的集電極和發(fā)射極均不能導通,此時電動機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。
另外,設計中還要求能夠對模型進行速度的控制??刂齐妱訖C的運行速度,實際上就是控制系統(tǒng)發(fā)出時鐘脈沖的頻率或著是換相的周期,即在升速過程中,使脈沖的輸出頻率逐漸增加;在減速過程中,使脈沖的輸出頻率逐漸減少。脈沖信號的頻率可以用軟件延時和硬件中斷兩種方法來確定:
①采用軟件延時,一般是根據所需的時間常數來設計一個子程序。該程序包含一定的指令,設計者要對這些指令的執(zhí)行時間進行精確的計算,以便確定延時時間。在每次確定前進方向之后調用一個延時子程序,待延時結束以后再執(zhí)行換向,這樣周而復始就可以發(fā)出一定頻率的CP脈沖或換向周期。延時子程序的延時時間與換向程序所用的時間和,就是CP脈沖的周期。該方法簡單,占用資源少,全部由軟件實現,調用不同的子程序就可以實現不同速度的運行;但是,若占用CPU的時間過長,就不能在運行時處理其他的工作,因此它比較適合簡單的控制過程。
②使用單片機中的定時器直接對系統(tǒng)時鐘脈沖或某一固定頻率的時鐘脈沖進行計數,計數值由編程決定。定時器啟動后,定時器從裝載的初值開始對系統(tǒng)及其周期進行加計數。當定時器溢出時,定時器產生中斷,系統(tǒng)轉去執(zhí)行定時中斷子程序,將電機換向子程序放在定時中斷服務程序中,定時中斷一次,電機換向一次,從而實現電機的速度控制。用定時中斷方式來控制電動機的速度,實際上是不斷改變定時器裝載值的大小。
2.3 單片機程序設計
由于單片機的各個引腳都有很多功能,因此在軟件程序設計中要特別注意它們的定義和對片內特殊功能寄存器的初始化設置,以便實現相應的功能。在初始化設置完成之后,開始接收第1通道數據,同時必須使接收單片機同步接收通道數據,相隔一定時間查詢第1通道當前電壓A/D轉換的結果是否與查詢之前的結果相同。如果相同,則繼續(xù)發(fā)送下一個通道的數據;反之,則立即向接收機發(fā)送該通道的通道號和相應的A/D轉換結果,且在延時10 ms后準備發(fā)送下一個通道的數據。全部數據發(fā)送完畢后再重新開始新一輪的數據查詢和發(fā)送。延時的目的在于給接收單片機留出一定的處理時間。圖4(a)所示為發(fā)射單片機程序設計流程。
DIY機械鍵盤相關社區(qū):機械鍵盤DIY
評論