打開客服菜單
contact us

聯係BBIN导航

IC解密首頁 > 案例展示分類 > AT89C2051解密單片機程序在多路舵機控製電路的應用案例
AT89C2051解密單片機程序在多路舵機控製電路的應用案例
編輯 :

專業芯片解密公司

時間 : 2019-07-29 18:09 瀏覽量 : 25

BBIN导航IC破解公司專業芯片解密,解密單片機程序,IC破解,芯片程序反匯編修改,電路板抄板,原理圖BOM表製作,樣機調試,PCBA成品加工生產一條龍服務!

AT89C2051解密單片機程序在多路舵機控製電路的應用案例

舵機是一種位置伺服的驅動器。它接收一定的控製信號,輸出一定的角度,適用於那些需要角度不斷變化並可以保持的控製係統。在微機電係統和航模中,它是一個基本的輸出執行機構。以FUTABA-S3003型舵機為例,圖1是FUFABA-S3003型舵機的內部電路。

舵機的工作原理是:PWM信號由接收通道進入信號解調電路BA66881。的12腳進行解調,獲得一個直流偏置電壓。該直流偏置電壓與電位器的電壓比較,獲得電壓差由BA6688的3腳輸出。該輸出送人電機驅動集成電路BA6686,以驅動電機正反轉。當電機轉速一定時,通過級聯減速齒輪帶動電位器R。,旋轉,直到電壓差為O,電機停止轉動。舵機的控製信號是PWM信號,利用占空比的變化改變舵機的位置。

 

舵機的控製方法

電源線和地線用於提供舵機內部的直流電機和控製線路所需的能源.電壓通常介於4~6V,一般取5V。注意,給舵機供電電源應能提供足夠的功率。控製線的輸入是一個寬度可調的周期性方波脈衝信號,方波脈衝信號的周期為20 ms(即頻率為50 Hz)。當方波的脈衝寬度改變時,舵機轉軸的角度發生改變,角度變化與脈衝寬度的變化成正比。

舵機控製器硬件電路設計

從上述舵機轉角的控製方法可看出,舵機的控製信號實質是一個可嗣寬度的方波信號(PWM)。該方波信號可由FPGA、模擬電路或單片機來產生。采用FPGA成本較高,用模擬電路來實現則電路較複雜,不適合作多路輸出。一般采用單片機作舵機的控製器。目前采用單片機做舵機控製器的方案比較多,可以利用單片機的定時器中斷實現PWM。該方案將20ms的周期信號分為兩次定時中斷來完成:一次定時實現高電平定時Th;一次定時實現低電平定時T1。Th、T1的時間值隨脈衝寬度的變換而變化,但,Th+T1=20ms。該方法的優點是,PWM信號完全由單片機內部定時器的中斷來實現,不需要添加外圍硬件。缺點是一個周期中的PWM信號要分兩次中斷來完成,兩次中斷的定時值計算較麻煩;為了滿足20ms的周期,單片機晶振的頻率要降低;不能實現多路輸出。也可以采用單片機+8253計數器的實現方案。該方案由單片機產生計數脈衝(或外部電路產生計數脈衝)提供給8253進行計數,由單片機給出8253的計數比較值來改變輸出脈寬。該方案的優點是可以實現多路輸出,軟件設計較簡單;缺點是要添加l片8253計數器,增加了硬件成本。本文在綜合上述兩個單片機舵機控製方案基礎上,提出了一個新的單片機設計方案,如圖4所示。

 

該方案的舵機控製器以AT89C2051($0.5940)單片機為核心,555構成的振蕩器作為定時基準,單片機通過對555振蕩器產生的脈衝信號進行計數來產生PWM信號。該控製器中單片機可以產生8個通道的PWM信號,分別由AT89C2051的P1.0~Pl.7(12~19引腳)端口輸出。輸出的8 路PWM信號通過光耦隔離傳送到下一級電路中。因為信號通過光耦傳送過程中進行了反相,因此從光耦出來的信號必須再經過反相器進行反相。方波信號經過光耦傳輸後,前沿和後沿會發生畸變,因此反相器采用CD40106($0.1125)施密特反相器對光耦傳輸過來的信號進行整形,產生標準的PWM方波信號。筆者在實驗過程中發現,舵機在運行過程中要從電源吸納較大的電流,若舵機與單片機控製器共用一個電源,則舵機會對單片機產生較大的幹擾。因此,舵機與單片機控製器采用兩個電源供電,兩者不共地,通過光耦來隔離,並且給舵機供電的電源最好采用輸出功率較大的開關電源。該舵機控製器占用單片機的個SCI串口。串口用於接收上位機傳送過來的控製命令,以調節每一個通道輸出信號的脈衝寬度。MAX232($2.0686)為電平轉換器,將上位機的RS232($780.5000)電平轉換成TTL電平。

實現多路PWM信號的原理

 

在模擬電路中,PWM脈衝信號可以通過直流電平與鋸齒波信號比較來得到。在單片機中,鋸齒波可以通過對整型變量加1操作來實現,如圖5所示。假定單片機程序中設置一整型變量SawVal,其值變化範圍為O~N。555振蕩電路產生的外部計數時鍾信號輸入到AT89C2051的INTO腳。每當在外部計數時鍾脈衝的下降沿,單片機產生外部中斷,執行外部中斷INT0的中斷服務程序。每產生一次外部中斷,對SawVal執行一次加1操作,若SawVal已達到最大值N,則對SawVal清O。SawVal值的變化規律相當於鋸齒波,如圖5所示。若在單片機程序中設置另一整型變量DutyVal,其值的變化範圍為 O~N。每當在SawVal清0時,DulyVal從上位機發送的控製命令中讀入脈衝寬度係數值,例如為H(0≤H≤N)。若 DutyVal≥SawVal,則對應端口輸出高電平;若DutyVal《Sawval,則對應端口輸出低電平。從圖5中可看出,若改變 DutyVal的值,則對應端口輸出脈衝的寬度發生變化,但輸出脈衝的頻率不變,此即為PWM波形。

解密單片機程序熱線:0755-29558766  13418519739  QQ:905156827  林工