劉小姐:136-1796-2469
傳 真:0755-27808905
郵 箱:421496682@qq.com
Q Q:421496682
網 址: www.sz-hqkj.com
地 址:深圳市寶安區福海街道和平社區福園一路高新建工業園廠房3棟202
正是舵機的操控信號是一個脈寬調制信號,所以很便利和數字系統進行接口。只要能發生規範的操控信號的數字設備都能夠用來操控舵機,比如PLC、單片機等。這兒介紹使用51系列單片機發生舵機的操控信號來進行操控的辦法,編程語言爲C51。之所以介紹這種辦法僅僅由于笔者用2051實現過,本着負責的態度,所以敢在這兒寫出來。程序用的是我的四足步行機器人,有修改。單片機並不是操控舵機的好辦法,期望在此能起到抛磚引玉的作用。舵機模塊

2051有兩個16位的內部計數器,咱們就用它來發生周期20ms的脈沖信號,根據需要,改動輸出脈寬。基本思路如下(請對照下面的程序):
我用的晶振頻率爲12M,2051一個時鍾周期爲12個晶振周期,正好是1/1000ms,計數器每隔1/1000ms計一次數。以計數器1爲例,先設定脈寬的初始值,程序中初始爲1.5ms,在for循環中能夠隨時通過改動a值來改動,然後設定計數器計數初始值爲a,並置輸出p12爲高位。當計數結束時,觸發計數器溢出中止函數,便是voidTImer0(void)interrupt1using1,在子函數中,改動輸出p12爲反相(此刻跳爲低位),在用20000(代表20ms周期)減去高位用的時刻a,便是本周期中低位的時刻,c=20000-a,並設定此刻的計數器初值爲c,直到定時器再次發生溢出中止,重複上一過程。電動液壓舵機