亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于52系列單片機(jī)的多路舵機(jī)控制方法

文檔序號(hào):10552303閱讀:346來源:國知局
一種基于52系列單片機(jī)的多路舵機(jī)控制方法
【專利摘要】本發(fā)明涉及一種基于52系列單片機(jī)的多路舵機(jī)控制方法,其包括:(1)搭建控制框架;(2)按照周期為20ms,脈沖寬度為0.5ms~2.5ms標(biāo)準(zhǔn)舵機(jī)進(jìn)行定時(shí)時(shí)間分配,每路舵機(jī)的高電平持續(xù)時(shí)間為0.5ms~2.5ms,然后將需要控制的端口等分成多個(gè)端口組,并對(duì)該多個(gè)端口組進(jìn)行排序;(3)將所有端口組的端口的電平變?yōu)榈碗娖剑?4)對(duì)T0定時(shí)器和T1定時(shí)器進(jìn)行初始化配置;(5)對(duì)T0定時(shí)器和T1定時(shí)器進(jìn)行賦值;(6)遍歷所有的端口組,直到T0定時(shí)器和T1定時(shí)器中斷關(guān)閉為止。
【專利說明】
一種基于52系列單片機(jī)的多路舵機(jī)控制方法
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于機(jī)器人應(yīng)用控制領(lǐng)域,具體涉及一種基于52系列單片機(jī)的多路舵機(jī)控制方法。
【背景技術(shù)】
[0002]隨著當(dāng)今社會(huì)科技發(fā)展迅速,處理器的功能在不停的提升,性能不斷的被優(yōu)化,而在各行業(yè)應(yīng)用了很多年的52系列的單片機(jī)由于沒有自帶pwm的端口,所以在很多領(lǐng)域的應(yīng)用受到了很大的限制,尤其是機(jī)器人的領(lǐng)域,沒有多路的Pwm使得52系列單片機(jī)被擋在了多自由度機(jī)器人的門外;但是52系列單片機(jī)由于在價(jià)格和穩(wěn)定性等方面的優(yōu)勢(shì)勉強(qiáng)沒有被市場(chǎng)淘汰;如何將52系列單片機(jī)應(yīng)用到在多機(jī)舵機(jī)的控制板上,進(jìn)而降低成本成為一個(gè)急需解決的問題。

【發(fā)明內(nèi)容】

[0003]發(fā)明目的:本發(fā)明針對(duì)上述現(xiàn)有技術(shù)存在的問題做出改進(jìn),即本發(fā)明公開了一種基于52系列單片機(jī)的多路舵機(jī)控制方法,其可以使沒有pwm輸出口的52系列單片機(jī)實(shí)現(xiàn)高精確度多路可調(diào)Pwm波,可以利用這些可以調(diào)節(jié)的pwm波來控制多路舵機(jī),使52系列的功能更加的完善。
[0004]技術(shù)方案:一種基于52系列單片機(jī)的多路舵機(jī)控制方法,包括以下步驟:
[0005](I)搭建控制框架,該控制框架包括:
[0006]TO中斷模塊:按照設(shè)定的中斷順序依次給TO定時(shí)器中需要控制的端口賦初值;
[0007]T1中斷模塊:按照設(shè)定的中斷順序依次給Tl定時(shí)器中需要控制的端口賦初值;
[0008]定時(shí)器定時(shí)初值比較模塊,用于判斷TO定時(shí)器和Tl定時(shí)器初值的大小,依據(jù)比較的結(jié)果更改低優(yōu)先級(jí)的定時(shí)器的定時(shí)初值;
[0009]舵機(jī)控制模塊,用來存放和改變TO定時(shí)器和Tl定時(shí)器所需要控制的端口的定時(shí)初值;
[00? O ] (2)按照周期為20ms,脈沖寬度為0.5ms?2.5ms標(biāo)準(zhǔn)舵機(jī)進(jìn)行定時(shí)時(shí)間分配,每路舵機(jī)的高電平持續(xù)時(shí)間為0.5ms?2.5ms,然后將需要控制的端口等分成多個(gè)端口組,并對(duì)該多個(gè)端口組進(jìn)行排序,每一個(gè)端口組包括兩個(gè)端口,該端口兩個(gè)分別受TO定時(shí)器和Tl定時(shí)器控制;
[0011](3)將所有端口組的端口的電平變?yōu)榈碗娖剑?br>[0012](4)對(duì)TO定時(shí)器和Tl定時(shí)器進(jìn)行初始化配置,同時(shí)TO定時(shí)器和Tl定時(shí)器初始化的初值差小于0.5ms;
[0013](5)對(duì)TO定時(shí)器和Tl定時(shí)器進(jìn)行賦值;
[0014](51)通過TO中斷模塊控制TO定時(shí)器進(jìn)入中斷,將第一端口組中TO定時(shí)器控制的端口變?yōu)楦唠娖剑瑫r(shí)為TO定時(shí)器賦初值,TO定時(shí)器初值為舵機(jī)控制模塊中此路端口對(duì)應(yīng)的定時(shí)初值;
[0015](52)通過Tl中斷模塊控制Tl定時(shí)器進(jìn)入中斷,將第一端口組中Tl定時(shí)器控制的端口變?yōu)楦唠娖?,同時(shí)為Tl定時(shí)器賦初值,Tl定時(shí)器初值為舵機(jī)控制模塊中此路端口對(duì)應(yīng)的定時(shí)初值;
[0016](53)通過定時(shí)器定時(shí)初值比較模塊比較中步驟(51)得到的TO定時(shí)器初值和步驟
(52)得到的Tl定時(shí)器初值的大小,通過比較的結(jié)果改變低優(yōu)先級(jí)Tl定時(shí)器的高電平的初值
[0017](531)若TO定時(shí)器初值大于Tl定時(shí)器初值,則對(duì)Tl定時(shí)器初值重新進(jìn)行賦值,其值等于步驟(52)得到的TI定時(shí)器初值減去TI,TI的值為TO定時(shí)器進(jìn)入中斷時(shí)到賦初值開始時(shí)的時(shí)間;
[0018](532)若TO定時(shí)器初值等于Tl定時(shí)器初值,則對(duì)Tl定時(shí)器初值重新進(jìn)行賦值,其值等于步驟(52)得到的Tl定時(shí)器初值減去T2,T2的值為TO定時(shí)器進(jìn)入中斷時(shí)到賦初值開始時(shí)的時(shí)間;
[0019](532)若TO定時(shí)器初值小于Tl定時(shí)器初值,則調(diào)換TO和Tl的中斷優(yōu)先級(jí),對(duì)TO定時(shí)器初值重新進(jìn)行賦值,其值等于步驟(52)得到的TO定時(shí)器初值減去Τ3,Τ3的值為Tl定時(shí)器進(jìn)入中斷時(shí)到賦初值開始時(shí)的時(shí)間;
[0020](54)通過TO中斷模塊控制TO定時(shí)器進(jìn)入中斷,將第一端口組中TO定時(shí)器控制的端口由高電平改為低電平,同時(shí)為TO定時(shí)器進(jìn)行二次賦值,TO定時(shí)器二次賦值等于2.5ms減去TO定時(shí)器初值;
[0021 ] (55)通過Tl中斷模塊控制Tl定時(shí)器進(jìn)入中斷,將第一端口組中Tl定時(shí)器控制的端口由高電平變?yōu)榈碗娖?,并?duì)Tl定時(shí)器進(jìn)行二次賦值,Tl定時(shí)器二次賦值等于2.5ms-Tl定時(shí)器初值;
[0022](6)遍歷所有的端口組,重復(fù)步驟(51)?(55),直到TO定時(shí)器和Tl定時(shí)器中斷關(guān)閉為止。
[0023]進(jìn)一步地,步驟(2)中若所需要控制的端口的數(shù)量為奇數(shù),多余的一路端口隨機(jī)分配給TO定時(shí)器或Tl定時(shí)器。
[0024]更進(jìn)一步地,若所需要控制的端口的數(shù)量為奇數(shù),多余出來一路端口不需要對(duì)初值進(jìn)行比較。
[0025]有益效果:本發(fā)明公開的一種基于52系列單片機(jī)的多路舵機(jī)控制方法具有以下有益效果:
[0026]1、將價(jià)格低廉且穩(wěn)定性好的52系列單片機(jī)應(yīng)用到機(jī)器人控制領(lǐng)域,節(jié)約成本;
[0027]2、同時(shí)可以應(yīng)用到其他需要pwm的領(lǐng)域;
[0028]3、對(duì)52單片機(jī)的應(yīng)用范圍進(jìn)一步拓展。
【具體實(shí)施方式】
:
[0029]下面對(duì)本發(fā)明的【具體實(shí)施方式】詳細(xì)說明。
[0030]具體實(shí)施例1
[0031 ]一種基于52系列單片機(jī)的多路舵機(jī)控制方法,包括以下步驟:
[0032](I)搭建控制框架,該控制框架包括:
[0033]T0中斷模塊:按照設(shè)定的中斷順序依次給TO定時(shí)器中需要控制的端口賦初值;
[0034]Tl中斷模塊:按照設(shè)定的中斷順序依次給Tl定時(shí)器中需要控制的端口賦初值;
[0035]定時(shí)器定時(shí)初值比較模塊,用于判斷TO定時(shí)器和Tl定時(shí)器初值的大小,依據(jù)比較的結(jié)果更改低優(yōu)先級(jí)的定時(shí)器的定時(shí)初值;
[0036]舵機(jī)控制模塊,用來存放和改變TO定時(shí)器和Tl定時(shí)器所需要控制的端口的定時(shí)初值;
[0037](2)按照周期為20ms,脈沖寬度為0.5ms標(biāo)準(zhǔn)舵機(jī)進(jìn)行定時(shí)時(shí)間分配,每路舵機(jī)的高電平持續(xù)時(shí)間為0.5ms,然后將需要控制的端口等分成多個(gè)端口組,并對(duì)該多個(gè)端口組進(jìn)行排序,每一個(gè)端口組包括兩個(gè)端口,該端口兩個(gè)分別受TO定時(shí)器和Tl定時(shí)器控制;
[0038](3)將所有端口組的端口的電平變?yōu)榈碗娖剑?br>[0039](4)對(duì)TO定時(shí)器和Tl定時(shí)器進(jìn)行初始化配置,同時(shí)TO定時(shí)器和Tl定時(shí)器初始化的初值差小于0.5ms;
[0040](5)對(duì)TO定時(shí)器和Tl定時(shí)器進(jìn)行賦值;
[0041 ] (51)通過TO中斷模塊控制TO定時(shí)器進(jìn)入中斷,將第一端口組中TO定時(shí)器控制的端口變?yōu)楦唠娖?,同時(shí)為TO定時(shí)器賦初值,TO定時(shí)器初值為舵機(jī)控制模塊中此路端口對(duì)應(yīng)的定時(shí)初值;
[0042](52)通過Tl中斷模塊控制Tl定時(shí)器進(jìn)入中斷,將第一端口組中Tl定時(shí)器控制的端口變?yōu)楦唠娖?,同時(shí)為Tl定時(shí)器賦初值,Tl定時(shí)器初值為舵機(jī)控制模塊中此路端口對(duì)應(yīng)的定時(shí)初值;
[0043](53)通過定時(shí)器定時(shí)初值比較模塊比較中步驟(51)得到的TO定時(shí)器初值和步驟
(52)得到的Tl定時(shí)器初值的大小,通過比較的結(jié)果改變低優(yōu)先級(jí)Tl定時(shí)器的高電平的初值
[0044](531)若TO定時(shí)器初值大于Tl定時(shí)器初值,則對(duì)Tl定時(shí)器初值重新進(jìn)行賦值,其值等于步驟(52)得到的TI定時(shí)器初值減去TI,TI的值為TO定時(shí)器進(jìn)入中斷時(shí)到賦初值開始時(shí)的時(shí)間;
[0045](532)若TO定時(shí)器初值等于Tl定時(shí)器初值,則對(duì)Tl定時(shí)器初值重新進(jìn)行賦值,其值等于步驟(52)得到的Tl定時(shí)器初值減去T2,T2的值為TO定時(shí)器進(jìn)入中斷時(shí)到賦初值開始時(shí)的時(shí)間;
[0046](532)若TO定時(shí)器初值小于Tl定時(shí)器初值,則調(diào)換TO和Tl的中斷優(yōu)先級(jí),對(duì)TO定時(shí)器初值重新進(jìn)行賦值,其值等于步驟(52)得到的TO定時(shí)器初值減去Τ3,Τ3的值為Tl定時(shí)器進(jìn)入中斷時(shí)到賦初值開始時(shí)的時(shí)間;
[0047](54)通過TO中斷模塊控制TO定時(shí)器進(jìn)入中斷,將第一端口組中TO定時(shí)器控制的端口由高電平改為低電平,同時(shí)為TO定時(shí)器進(jìn)行二次賦值,TO定時(shí)器二次賦值等于2.5ms減去步驟(53)得到的TO定時(shí)器初值;
[0048](55)通過Tl中斷模塊控制Tl定時(shí)器進(jìn)入中斷,將第一端口組中Tl定時(shí)器控制的端口由高電平變?yōu)榈碗娖?,并?duì)Tl定時(shí)器進(jìn)行二次賦值,Tl定時(shí)器二次賦值等于2.5ms-步驟
(53)得到的Tl定時(shí)器初值;
[0049](6)遍歷所有的端口組,重復(fù)步驟(51)?(55),直到TO定時(shí)器和Tl定時(shí)器中斷關(guān)閉為止。
[0050]進(jìn)一步地,步驟(2)中若所需要控制的端口的數(shù)量為奇數(shù),多余的一路端口隨機(jī)分配給TO定時(shí)器或Tl定時(shí)器。
[0051 ]更進(jìn)一步地,若所需要控制的端口的數(shù)量為奇數(shù),多余出來一路端口不需要對(duì)初值進(jìn)行比較。
[0052]具體實(shí)施例2
[0053]與具體實(shí)施例1大致相同,區(qū)別僅僅在于:
[0054]步驟(2)中按照周期為20ms,脈沖寬度為2.5ms標(biāo)準(zhǔn)舵機(jī)進(jìn)行定時(shí)時(shí)間分配,每路舵機(jī)的高電平持續(xù)時(shí)間為2.5ms。
[0055]具體實(shí)施例3
[0056]與具體實(shí)施例1大致相同,區(qū)別僅僅在于:
[0057]步驟(2)中按照周期為20ms,脈沖寬度為Ims標(biāo)準(zhǔn)舵機(jī)進(jìn)行定時(shí)時(shí)間分配,每路舵機(jī)的高電平持續(xù)時(shí)間為Ims ο
[0058]上面對(duì)本發(fā)明的實(shí)施方式做了詳細(xì)說明。但是本發(fā)明并不限于上述實(shí)施方式,在所屬技術(shù)領(lǐng)域普通技術(shù)人員所具備的知識(shí)范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下做出各種變化。
【主權(quán)項(xiàng)】
1.一種基于52系列單片機(jī)的多路舵機(jī)控制方法,其特征在于,包括以下步驟: (1)搭建控制框架,該控制框架包括: TO中斷模塊:按照設(shè)定的中斷順序依次給TO定時(shí)器中需要控制的端口賦初值; TI中斷模塊:按照設(shè)定的中斷順序依次給TI定時(shí)器中需要控制的端口賦初值; 定時(shí)器定時(shí)初值比較模塊,用于判斷TO定時(shí)器和Tl定時(shí)器初值的大小,依據(jù)比較的結(jié)果更改低優(yōu)先級(jí)的定時(shí)器的定時(shí)初值; 舵機(jī)控制模塊,用來存放和改變TO定時(shí)器和Tl定時(shí)器所需要控制的端口的定時(shí)初值; (2)按照周期為20ms,脈沖寬度為0.5ms?2.5ms標(biāo)準(zhǔn)舵機(jī)進(jìn)行定時(shí)時(shí)間分配,每路舵機(jī)的高電平持續(xù)時(shí)間為0.5ms?2.5ms,然后將需要控制的端口等分成多個(gè)端口組,并對(duì)該多個(gè)端口組進(jìn)行排序,每一個(gè)端口組包括兩個(gè)端口,該端口兩個(gè)分別受TO定時(shí)器和Tl定時(shí)器控制; (3)將所有端口組的端口的電平變?yōu)榈碗娖剑? (4)對(duì)TO定時(shí)器和Tl定時(shí)器進(jìn)行初始化配置,同時(shí)TO定時(shí)器和Tl定時(shí)器初始化的初值差小于0.5ms; (5)對(duì)TO定時(shí)器和Tl定時(shí)器進(jìn)行賦值; (51)通過TO中斷模塊控制TO定時(shí)器進(jìn)入中斷,將第一端口組中TO定時(shí)器控制的端口變?yōu)楦唠娖剑瑫r(shí)為TO定時(shí)器賦初值,TO定時(shí)器初值為舵機(jī)控制模塊中此路端口對(duì)應(yīng)的定時(shí)初值; (52)通過TI中斷模塊控制TI定時(shí)器進(jìn)入中斷,將第一端口組中TI定時(shí)器控制的端口變?yōu)楦唠娖?,同時(shí)為Tl定時(shí)器賦初值,Tl定時(shí)器初值為舵機(jī)控制模塊中此路端口對(duì)應(yīng)的定時(shí)初值; (53)通過定時(shí)器定時(shí)初值比較模塊比較中步驟(51)得到的TO定時(shí)器初值和步驟(52)得到的Tl定時(shí)器初值的大小,通過比較的結(jié)果改變低優(yōu)先級(jí)Tl定時(shí)器的高電平的初值 (531)若TO定時(shí)器初值大于Tl定時(shí)器初值,則對(duì)Tl定時(shí)器初值重新進(jìn)行賦值,其值等于步驟(52)得到的Tl定時(shí)器初值減去Tl,T1的值為TO定時(shí)器進(jìn)入中斷時(shí)到賦初值開始時(shí)的時(shí)間; (532)若TO定時(shí)器初值等于Tl定時(shí)器初值,則對(duì)Tl定時(shí)器初值重新進(jìn)行賦值,其值等于步驟(52)得到的Tl定時(shí)器初值減去T2,T2的值為TO定時(shí)器進(jìn)入中斷時(shí)到賦初值開始時(shí)的時(shí)間; (532)若TO定時(shí)器初值小于Tl定時(shí)器初值,則調(diào)換TO和Tl的中斷優(yōu)先級(jí),對(duì)TO定時(shí)器初值重新進(jìn)行賦值,其值等于步驟(52)得到的TO定時(shí)器初值減去Τ3,Τ3的值為Tl定時(shí)器進(jìn)入中斷時(shí)到賦初值開始時(shí)的時(shí)間; (54)通過TO中斷模塊控制TO定時(shí)器進(jìn)入中斷,將第一端口組中TO定時(shí)器控制的端口由高電平改為低電平,同時(shí)為TO定時(shí)器進(jìn)行二次賦值,TO定時(shí)器二次賦值等于2.5ms減去TO定時(shí)器初值; (55)通過TI中斷模塊控制TI定時(shí)器進(jìn)入中斷,將第一端口組中Tl定時(shí)器控制的端口由高電平變?yōu)榈碗娖剑?duì)Tl定時(shí)器進(jìn)行二次賦值,Tl定時(shí)器二次賦值等于2.5ms-Tl定時(shí)器初值; (6)遍歷所有的端口組,重復(fù)步驟(51)?(55),直到TO定時(shí)器和Tl定時(shí)器中斷關(guān)閉為止。2.根據(jù)權(quán)利要求1所述的一種基于52系列單片機(jī)的多路舵機(jī)控制方法,其特征在于,步驟(2)中若所需要控制的端口的數(shù)量為奇數(shù),多余的一路端口隨機(jī)分配給TO定時(shí)器或Tl定時(shí)器。3.根據(jù)權(quán)利要求2所述的一種基于52系列單片機(jī)的多路舵機(jī)控制方法,其特征在于,若所需要控制的端口的數(shù)量為奇數(shù),多余出來一路端口不需要對(duì)初值進(jìn)行比較。
【文檔編號(hào)】G05B19/042GK105911921SQ201610428812
【公開日】2016年8月31日
【申請(qǐng)日】2016年6月16日
【發(fā)明人】常坤, 武風(fēng)波, 劉海強(qiáng), 馬文凱, 李榮榮
【申請(qǐng)人】西安科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1