版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于TMS320F2812步進(jìn)電機(jī)控制系統(tǒng)</p><p> 【摘要】設(shè)計(jì)基于DSP芯片TMS320F2812控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)。TMS320F281x系列處理器是基于TMS320C2xx內(nèi)核的32位定點(diǎn)數(shù)字信號(hào)處理器,器件上集成了多種先進(jìn)的外設(shè),為電機(jī)及其他運(yùn)動(dòng)控制領(lǐng)域應(yīng)用提供了良好的平臺(tái)。設(shè)計(jì)實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)調(diào)速、定時(shí)、定步、正反轉(zhuǎn)以及勵(lì)磁方式控制,并通過(guò)TMS320F2812片內(nèi)集成AD
2、C模塊獲取電機(jī)電流。LCD12864結(jié)合四個(gè)按鍵以菜單模式選擇各項(xiàng)功能,人機(jī)交換界面友好。該設(shè)計(jì)可精確控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn),按鍵控制靈敏,能實(shí)現(xiàn)步進(jìn)電機(jī)長(zhǎng)時(shí)間工作。</p><p> 關(guān)鍵詞:DSP;步進(jìn)電機(jī);精確控制;ADC;菜單模式</p><p><b> 電子系統(tǒng)設(shè)計(jì)任務(wù)書(shū)</b></p><p> 本次設(shè)計(jì)以TMS320F2812
3、DSP芯片為核心控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn),并通過(guò)LCD12864顯示相關(guān)參數(shù)。</p><p> ?。?)設(shè)計(jì)實(shí)現(xiàn)基于TMS320F2812的最小控制系統(tǒng);</p><p> ?。?)能利用TMS320F2812控制步進(jìn)電機(jī)轉(zhuǎn)向、轉(zhuǎn)速等;</p><p> ?。?)用12864液晶顯示轉(zhuǎn)向、轉(zhuǎn)速、操作模式等狀態(tài)信息參數(shù);</p><p> (4)實(shí)
4、現(xiàn)其他外加功能。</p><p> 2011年9月29日</p><p><b> 目錄 </b></p><p> 1 系統(tǒng)方案 …………………………………………………………………………………… 1</p><p> 1.1 設(shè)計(jì)要求……………………………………………………………………………………1</p
5、><p> 1.2 系統(tǒng)總體框圖………………………………………………………………………………1</p><p> 1.3系統(tǒng)方案論證………………………………………………………………………………1</p><p> 1.3.1控制器的論證與選擇……………………………………………………………………1</p><p> 1.3.2電源模塊的論證
6、與選擇…………………………………………………………………2</p><p> 1.3.3電機(jī)驅(qū)動(dòng)模塊選擇…………………………………………………………… 3</p><p> 2. 系統(tǒng)理論分析與計(jì)算………………………………………………………………………3</p><p> 2.1 步進(jìn)電機(jī)轉(zhuǎn)速計(jì)算……………………………………………………………………… 3<
7、;/p><p> 2.2 TMS320F2812的AD校正…………………………………………………………………3</p><p> 3. 硬件電路與軟件設(shè)計(jì)………………………………………………………………………4</p><p> 3.1各模塊電路設(shè)計(jì)……………………………………………………………………………4</p><p> 3.1.
8、1 電源模塊…………………………………………………………………………………4</p><p> 3.1.2步進(jìn)電機(jī)模塊……………………………………………………………………………4</p><p> 3.2程序設(shè)計(jì)……………………………………………………………………………………5</p><p> 3.2.1程序功能描述與設(shè)計(jì)思路…………………………………………
9、……………………5</p><p> 3.2.2程序流程圖………………………………………………………………………………6</p><p> 3.2.2.1 主程序流程圖…………………………………………………………………………6</p><p> 3.2.2.2 定時(shí)模式狀態(tài)流程圖…………………………………………………………………7</p><
10、;p> 3.2.2.3 定步模式狀態(tài)流程圖…………………………………………………………………8</p><p> 3.2.2.4 勵(lì)磁方式選擇流程圖…………………………………………………………………8</p><p> 3.2.2.5 按鍵實(shí)時(shí)消抖流程圖…………………………………………………………………9</p><p> 4.總結(jié)與心得…………………
11、…………………………………………………………………9</p><p> 5.參考文獻(xiàn)………………………………………………………………………………………10</p><p> 附錄………………………………………………………………………………………………11</p><p> 1.設(shè)計(jì)PCB圖……………………………………………………………………………………11&l
12、t;/p><p> 2.相關(guān)程序………………………………………………………………………………………11</p><p><b> 1. 系統(tǒng)方案</b></p><p><b> 1.1 設(shè)計(jì)要求</b></p><p> 設(shè)計(jì)并制作一個(gè)基于TMS320F2812步進(jìn)電機(jī)控制系統(tǒng),能控制步進(jìn)電機(jī)
13、各種狀態(tài),并用LCD12864顯示,按鍵控制靈敏,能夠長(zhǎng)時(shí)間工作。</p><p> 1.2 系統(tǒng)總體框圖</p><p> 本系統(tǒng)主要由TMS320F2812模塊、電源模塊、液晶顯示模塊、電機(jī)驅(qū)動(dòng)模塊組成,系統(tǒng)框圖如圖1。 </p><p><b> 圖1 系統(tǒng)總體框圖</b></p><p> 1. 3系統(tǒng)方
14、案論證</p><p> 1. 3. 1控制器的論證與選擇</p><p> 方案一:采用STC89C52單片機(jī)芯片控制系統(tǒng)。STC89C52是一種低功耗、高性能CMOS8位微控制器,最高運(yùn)作頻率35Mhz,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器,價(jià)格便宜。但其RAM只有512Byte空間,不能用于在線(xiàn)調(diào)試。且芯片沒(méi)有集成AD模塊,需要另外搭建AD電路,增加了電路的復(fù)雜性。<
15、/p><p> 方案二:采用TMS320F2812DSP處理芯片控制系統(tǒng)。TMS320F2812具有32位的運(yùn)算精度,采用增強(qiáng)的哈佛總線(xiàn)結(jié)構(gòu)能夠完成指令的并行處理,在單周期內(nèi)通過(guò)流水線(xiàn)完成指令和數(shù)據(jù)的同時(shí)提取,處理能力可達(dá)150MIPS。支持JTAG邊界掃描接口,可實(shí)現(xiàn)在線(xiàn)調(diào)試。其片上具有128K*16位的Flash存儲(chǔ)器和18K*16位的SRAM,可存儲(chǔ)龐大的程序。TMS320F2812器件上還集成了多種先進(jìn)的外
16、設(shè)(如AD模塊),為電機(jī)及其他運(yùn)動(dòng)控制領(lǐng)域應(yīng)用提供了良好的平臺(tái)。</p><p> 基于TMS320F2812上述諸多優(yōu)點(diǎn),本次設(shè)計(jì)采用其作為系統(tǒng)控制芯片。</p><p> 1. 3. 2電源模塊的論證與選擇</p><p> 由于采用SANYODENKI 103-770-1三洋步進(jìn)電機(jī),其工作電流最大達(dá)到1A,可通過(guò)7812和7805兩級(jí)穩(wěn)壓實(shí)現(xiàn)1A大電流
17、輸出。但由于穩(wěn)壓芯片壓降大,導(dǎo)致大電流輸出時(shí)耗散功率(P=(Vi-Vo)Io)很大,需要解決發(fā)熱問(wèn)題。</p><p> 方案一:采用7809在中間過(guò)渡,通過(guò)這樣兩級(jí)的調(diào)整,壓差分別是降為3V和4V,兩塊電源芯片耗散功率及溫度隨之降低。這樣固然對(duì)避免發(fā)燙有一定的幫助,但是我們注意到,電源芯片78XX的效率只有60%到75%,通過(guò)這么多的環(huán)節(jié)到5V的時(shí)候功率已經(jīng)比較小了。沒(méi)有負(fù)載的時(shí)候電源芯片的輸出是5V,加上負(fù)
18、載后輸出容易被拉低,特別是大負(fù)載大電流時(shí)。</p><p> 方案二:采用降壓功耗電阻(串接在12V與7805的輸入端之間),來(lái)降低7805的耗散功率,電阻取值可用電阻壓降(取3~4V)除以7805的最大輸出電流Iom求得。但是加個(gè)功耗電阻,由于系統(tǒng)的電流是變化的,那么功耗電阻上的電壓會(huì)很不穩(wěn)定的變化,這樣7805的輸入端電壓也會(huì)不穩(wěn)定。而且長(zhǎng)時(shí)間大電流工作時(shí),如果電阻發(fā)熱嚴(yán)重,電阻阻值會(huì)增大,而7805輸入電
19、壓不能低于8V,否則7805工作不正常,這樣做容易使系統(tǒng)供電不穩(wěn)定。</p><p> 方案三:采用大面積的散熱器進(jìn)行散熱。78XX最大輸出電流可達(dá)1.5A,只要散熱快,就能長(zhǎng)時(shí)間驅(qū)動(dòng)最大1A的電機(jī)。 實(shí)驗(yàn)證明,使用大面積散熱片后穩(wěn)壓芯片長(zhǎng)時(shí)間大電流輸出都不會(huì)很燙,系統(tǒng)能穩(wěn)定工作。</p><p> 方案四:用PNP管擴(kuò)流,這樣的話(huà)可以把7805的負(fù)載能力提高,還在大電流的時(shí)候提高效率
20、,從而降低功耗。但其電路相對(duì)復(fù)雜,而且對(duì)擴(kuò)流PNP管要求高。</p><p> 綜上所述,選擇方案三解決發(fā)熱問(wèn)題,同時(shí)簡(jiǎn)化了電路,提高了電路的穩(wěn)定性。</p><p> 1.3.3電機(jī)驅(qū)動(dòng)模塊選擇</p><p> 方案一:三極管搭建驅(qū)動(dòng)電路,不過(guò)比較復(fù)雜,可靠性也會(huì)降低。</p><p> 方案二:選用專(zhuān)用的電機(jī)驅(qū)動(dòng)芯片L298N,
21、接口簡(jiǎn)單,操作方便,且輸出電流可達(dá)2.5 A,能實(shí)現(xiàn)對(duì)1A電機(jī)的驅(qū)動(dòng)。</p><p> 方案三:使用達(dá)林頓驅(qū)動(dòng)器ULN2003。該芯片可最多驅(qū)動(dòng)八線(xiàn)步進(jìn)電機(jī)。但是ULN2003最大灌電流只有500mA,不能滿(mǎn)足該控制系統(tǒng)大電流驅(qū)動(dòng)的要求。</p><p> 綜上,選擇L298N作為電機(jī)驅(qū)動(dòng)。</p><p> 2. 系統(tǒng)理論分析與計(jì)算</p>
22、<p> 2.1 步進(jìn)電機(jī)轉(zhuǎn)速計(jì)算</p><p> 不同的勵(lì)磁方式電機(jī)有不同的步距角。全步(一相、二相)勵(lì)磁方式步距角為1.8°,令步進(jìn)時(shí)間為T(mén)(s),則每1s步進(jìn)度數(shù)為 ,每分鐘的轉(zhuǎn)數(shù)為,即轉(zhuǎn)速V=0.3/T;同理,半步(一二相)勵(lì)磁方式步距角為0.9°,轉(zhuǎn)速V=0.15/T。</p><p> 2.2 TMS320F2812的AD校正</p
23、><p> ADC的轉(zhuǎn)換結(jié)果和實(shí)際值相比,誤差比較大,最大可達(dá)到9%左右。通過(guò)AD校正,可將誤差控制在1%左右。2812的ADC轉(zhuǎn)換精度較差的主要原因是存在增益誤差和偏移誤差,要提高轉(zhuǎn)換精度必須對(duì)這兩種誤差進(jìn)行補(bǔ)償。</p><p> 理想的12位ADC轉(zhuǎn)換模擬量輸入X和數(shù)字量輸出Y關(guān)系為:Y=mi*X (mi=4095/3=1365); 設(shè)實(shí)際增益為ma,實(shí)際偏移為b,則Y=ma*X+
24、b. 通過(guò)對(duì)開(kāi)發(fā)板上3.3V和1.8V兩路精準(zhǔn)電壓的測(cè)量,解二元一次方程可得ma 和 b 。只要知道數(shù)字量轉(zhuǎn)換結(jié)果Y,就可以得到實(shí)際的輸入量.通過(guò)計(jì)算得ma=1290/1289, b=35 ; 故取ma=1;b=35;由于AD轉(zhuǎn)換結(jié)果數(shù)據(jù)時(shí)刻變化,因此無(wú)法精確獲得ma 和 b 值,但可通過(guò)平均值法求得ma 和 b ,使AD轉(zhuǎn)換誤差控制在1%左右。</p><p> 3. 硬件電路與軟件設(shè)計(jì)</p>
25、<p> 3. 1各模塊電路設(shè)計(jì)</p><p> 3.1.1 電源模塊</p><p> 220V交流市電通過(guò)電源變壓器變換成交流低壓15V,再經(jīng)過(guò)橋式整流電路D6~D9和濾波電容C2的整流和濾波,在固定式三端穩(wěn)壓器LM7812的Vin和GND兩端形成一個(gè)并不十分穩(wěn)定的直流電壓(該電壓常常會(huì)因?yàn)槭须婋妷旱牟▌?dòng)或負(fù)載的變化等原因而發(fā)生變化)。此直流電壓經(jīng)過(guò)7812和78
26、05的穩(wěn)壓和C3~C9的濾波便在穩(wěn)壓電源的輸出端產(chǎn)生了精度高、穩(wěn)定度好的直流輸出電壓。</p><p> D2、D3、D4二極管起保護(hù)作用。</p><p> 3. 1. 2步進(jìn)電機(jī)模塊</p><p> 圖5 步進(jìn)電機(jī)模塊原理圖</p><p> 圖中左邊光電耦合器起電氣隔離和電平轉(zhuǎn)換作用,中間為L(zhǎng)298N驅(qū)動(dòng)芯片,D12~D1
27、9二極管起保護(hù)和續(xù)流作用。右邊10個(gè)10電阻(0.25W)并聯(lián)得到1(2.5W)采樣電阻進(jìn)行AD采樣。</p><p><b> 3. 2程序設(shè)計(jì)</b></p><p> 3. 2. 1程序功能描述與設(shè)計(jì)思路</p><p> 設(shè)計(jì)實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)調(diào)速、定時(shí)、定步、正反轉(zhuǎn)以及勵(lì)磁方式控制,并通過(guò)TMS320F2812片內(nèi)集成ADC模塊獲取
28、電機(jī)電流。LCD12864結(jié)合四個(gè)按鍵以菜單模式選擇各項(xiàng)功能。</p><p> ?。?)為防止功能的沖突,程序中應(yīng)用大量標(biāo)志來(lái)記錄各種功能狀態(tài),同一狀態(tài)下可有顯示標(biāo)志和功能執(zhí)行標(biāo)志。顯示標(biāo)志用來(lái)顯示液晶,顯示完成后標(biāo)志立即清零,避免液晶一直刷新影響顯示效果;功能執(zhí)行標(biāo)志能夠保持功能狀態(tài)信息,等待功能選擇,在功能執(zhí)行完成(一般在返回上級(jí)操作時(shí))后清零標(biāo)志。</p><p> ?。?)利用定
29、時(shí)器進(jìn)行按鍵實(shí)時(shí)消抖。利用定時(shí)器可對(duì)按鍵進(jìn)入和退出都進(jìn)行實(shí)時(shí)消抖,這樣不需等待按鍵釋放就能保證每次按下按鍵為單次觸發(fā),避免了延時(shí)按鍵消抖占時(shí)、要等待的弊端,極大地提高了CPU工作效率,實(shí)時(shí)性好。由于按鍵消抖不需要很高的優(yōu)先級(jí),故程序中使用EVA通用定時(shí)器1進(jìn)行按鍵消抖。同時(shí)該定時(shí)器也用作時(shí)鐘計(jì)數(shù),這樣共用可減少定時(shí)器的使用,提高程序的運(yùn)行效率。</p><p> (3)CPU定時(shí)器0用作步進(jìn)脈沖延時(shí)來(lái)控制電機(jī)轉(zhuǎn)
30、速。由于電機(jī)轉(zhuǎn)速要求精度高,故使用優(yōu)先級(jí)最高的定時(shí)器—CPU定時(shí)器0作為步進(jìn)延時(shí)。</p><p> (4)過(guò)采樣法進(jìn)行AD轉(zhuǎn)換。程序?qū)我煌ǖ蓝啻尾蓸樱ㄟ^(guò)取平均值法提高采樣精度,同時(shí)可以減慢AD轉(zhuǎn)換結(jié)果的變化,有利于LCD12864液晶顯示。</p><p> 3. 2. 2程序流程圖</p><p> 3.2.2.1 主程序流程圖</p>
31、<p> 3.2.2.2 定時(shí)模式狀態(tài)流程圖 </p><p> 3.2.2.3 定步模式狀態(tài)流程圖</p><p> 3.2.2.4 勵(lì)磁方式選擇流程圖</p><p> 3.2.2.5 按鍵實(shí)時(shí)消抖流程圖</p><p><b> 4.總結(jié)與心得</b></p>
32、<p> 通過(guò)本次系統(tǒng)設(shè)計(jì),收獲了許多。</p><p> ?。?)學(xué)會(huì)對(duì)DSP芯片TMS320F2812的初步控制應(yīng)用。設(shè)計(jì)過(guò)程中,通過(guò)老師課堂講解《DSP控制器原理及應(yīng)用》以及課后學(xué)習(xí)各種參考書(shū)籍,對(duì)TMS320F2812理論知識(shí)有了較深入的了解,然后通過(guò)對(duì)SR-DSP2812V20開(kāi)發(fā)板的實(shí)驗(yàn)調(diào)試,掌握了對(duì)SR-DSP2812V20開(kāi)發(fā)板的基本應(yīng)用。</p><p>
33、(2)在程序應(yīng)用方面,掌握了按鍵實(shí)時(shí)消抖原理及其編程應(yīng)用,懂得了應(yīng)用標(biāo)志來(lái)規(guī)劃功能狀態(tài)的思想。這兩點(diǎn)能夠極大地優(yōu)化程序設(shè)計(jì),為以后的程序設(shè)計(jì)提供了很好的方案。同時(shí),通過(guò)對(duì)上千行程序的編寫(xiě),提高了程序調(diào)試分析能力。</p><p> ?。?)硬件設(shè)計(jì)方面。為了實(shí)現(xiàn)1A電流輸出的電源設(shè)計(jì),通過(guò)相關(guān)書(shū)籍和互聯(lián)網(wǎng)查閱了大量資料,從中學(xué)到了關(guān)于電源方面的許多知識(shí),特別是懂得了從阻抗匹配和功率去分析問(wèn)題的思想。設(shè)計(jì)中通過(guò)分析
34、并解決步進(jìn)電機(jī)控制中出現(xiàn)的現(xiàn)象及問(wèn)題,加深了對(duì)步進(jìn)電機(jī)的控制應(yīng)用。</p><p> ?。?)本次電子系統(tǒng)設(shè)計(jì)是畢業(yè)設(shè)計(jì)前的最后一次系統(tǒng)設(shè)計(jì),通過(guò)認(rèn)真完成設(shè)計(jì)任務(wù)將更好的為畢業(yè)設(shè)計(jì)做準(zhǔn)備。</p><p><b> 5.參考文獻(xiàn)</b></p><p> ?。?)郭天祥.《新概念51單片機(jī)C語(yǔ)言教程》.電子工業(yè)出版社.</p>
35、<p> ?。?)嚴(yán)桂蘭.《C語(yǔ)言程序設(shè)計(jì)與應(yīng)用教程》.廈門(mén)大學(xué)出版社.</p><p> ?。?)馬建國(guó).《電子系統(tǒng)設(shè)計(jì)教程》.高等教育出版社.</p><p> (4)蘇奎峰、呂強(qiáng)、陳圣儉.《TMS320F2812原理與開(kāi)發(fā)》.電子工業(yè)出版社.</p><p><b> 附錄</b></p><p>&
36、lt;b> 設(shè)計(jì)PCB圖</b></p><p><b> 相關(guān)程序</b></p><p><b> //AD轉(zhuǎn)換</b></p><p> if(AdcRegs.ADC_ST_FLAG.bit.SEQ1_BSY==0&&1==zhujiemian)</p><
37、;p><b> {</b></p><p> if(1==adfinish)</p><p><b> {</b></p><p> a1[m]=AdcRegs.RESULT0>>4; </p><p> adresult+=a1[m];</p>
38、;<p><b> m++;</b></p><p><b> if(50==m)</b></p><p><b> {</b></p><p><b> m=0;</b></p><p> if(adresult*300/2047
39、5<=35)adresult=0;</p><p> else adresult=adresult*300/20475-35;//adresult=adresult*3*1000/4095/200;</p><p> AdcRegs.ADCTRL2.bit.RST_SEQ1=1;</p><p> AdcRegs.ADCTRL2.bit.SOC_SEQ1
40、=1;</p><p> adfinish=1;</p><p><b> } </b></p><p><b> }</b></p><p><b> } </b></p><p> interrupt void ISRTimer0(
41、void)</p><p><b> {</b></p><p> PieCtrl.PIEACK.bit.ACK7=1;</p><p><b> //電機(jī)驅(qū)動(dòng)</b></p><p> if(1==yixianglici)</p><p><b> {
42、 </b></p><p> if(0==time)</p><p><b> {</b></p><p> switch(MotorStep)</p><p><b> {</b></p><p><b> case 0:</b>
43、</p><p> ClrF1;//0010</p><p><b> SetF2;</b></p><p><b> SetF3;</b></p><p><b> SetF4;</b></p><p> MotorStep = 1;<
44、/p><p><b> break;</b></p><p><b> case 1:</b></p><p> SetF1;//0011</p><p><b> SetF2;</b></p><p><b> ClrF3;</b
45、></p><p><b> SetF4;</b></p><p> MotorStep = 2;</p><p><b> break;</b></p><p><b> case 2: </b></p><p> SetF1;//0
46、001</p><p><b> ClrF2;</b></p><p><b> SetF3;</b></p><p> SetF4; </p><p> MotorStep = 3;</p><p><b> break;</b
47、></p><p><b> case 3:</b></p><p> SetF1;//1001</p><p><b> SetF2;</b></p><p><b> SetF3;</b></p><p><b> ClrF
48、4;</b></p><p> MotorStep = 0;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(1==tim
49、e)</p><p><b> {</b></p><p> switch(MotorStep)</p><p><b> {</b></p><p><b> case 0:</b></p><p> SetF1;//1001</p&g
50、t;<p><b> SetF2;</b></p><p><b> SetF3;</b></p><p><b> ClrF4;</b></p><p> MotorStep = 1;</p><p><b> break;</b>
51、;</p><p><b> case 1:</b></p><p> SetF1;//0001</p><p><b> ClrF2;</b></p><p><b> SetF3;</b></p><p><b> SetF4;&
52、lt;/b></p><p> MotorStep = 2;</p><p><b> break;</b></p><p> case 2: </p><p> SetF1;//0011</p><p><b> SetF2;</b>&l
53、t;/p><p><b> ClrF3;</b></p><p> SetF4; </p><p> MotorStep = 3;</p><p><b> break;</b></p><p><b> case 3:</b>
54、;</p><p> ClrF1;//0010</p><p><b> SetF2;</b></p><p><b> SetF3;</b></p><p><b> SetF4;</b></p><p> MotorStep = 0;<
55、;/p><p><b> break;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p> if(1==erxianglici)&
56、lt;/p><p><b> {</b></p><p> if(0==time)</p><p><b> {</b></p><p> switch(MotorStep)</p><p><b> {</b></p><p&
57、gt;<b> case 0:</b></p><p> ClrF1;//0010</p><p><b> SetF2;</b></p><p><b> ClrF3;</b></p><p><b> SetF4;</b></p>
58、<p> MotorStep = 1;</p><p><b> break;</b></p><p><b> case 1:</b></p><p> SetF1;//0011</p><p><b> ClrF2;</b></p>&
59、lt;p><b> ClrF3;</b></p><p><b> SetF4;</b></p><p> MotorStep = 2;</p><p><b> break;</b></p><p><b> case 2: </b>&
60、lt;/p><p> SetF1;//0001</p><p><b> ClrF2;</b></p><p><b> SetF3;</b></p><p> ClrF4; </p><p> MotorStep = 3;</p>&
61、lt;p><b> break;</b></p><p><b> case 3:</b></p><p> ClrF1;//1001</p><p><b> SetF2;</b></p><p><b> SetF3;</b></
62、p><p><b> ClrF4;</b></p><p> MotorStep = 0;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p
63、><p> else if(1==time)</p><p><b> {</b></p><p> switch(MotorStep)</p><p><b> {</b></p><p><b> case 0:</b></p>
64、<p> ClrF1;//1001</p><p><b> SetF2;</b></p><p><b> SetF3;</b></p><p><b> ClrF4;</b></p><p> MotorStep = 1;</p><
65、p><b> break;</b></p><p><b> case 1:</b></p><p> SetF1;//0001</p><p><b> ClrF2;</b></p><p><b> SetF3;</b></p&g
66、t;<p><b> ClrF4;</b></p><p> MotorStep = 2;</p><p><b> break;</b></p><p> case 2: </p><p> SetF1;//0011</p><p&g
67、t;<b> ClrF2;</b></p><p><b> ClrF3;</b></p><p> SetF4; </p><p> MotorStep = 3;</p><p><b> break;</b></p><p
68、><b> case 3:</b></p><p> ClrF1;//0010</p><p><b> SetF2;</b></p><p><b> ClrF3;</b></p><p><b> SetF4;</b></p>
69、;<p> MotorStep = 0;</p><p><b> break;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p>
70、<p> if(1==yierxianglici)</p><p><b> {</b></p><p> if(0==time)</p><p><b> {</b></p><p> switch(MotorStep)</p><p><b&g
71、t; {</b></p><p><b> case 0:</b></p><p> ClrF1;//0010</p><p><b> SetF2;</b></p><p><b> SetF3;</b></p><p><
72、b> SetF4;</b></p><p> MotorStep = 1;</p><p><b> break;</b></p><p><b> case 1:</b></p><p> ClrF1;//0011</p><p><b&g
73、t; SetF2;</b></p><p><b> ClrF3;</b></p><p><b> SetF4;</b></p><p> MotorStep = 2;</p><p><b> break;</b></p><p&g
74、t;<b> case 2: </b></p><p> SetF1;//0001</p><p><b> SetF2;</b></p><p><b> ClrF3;</b></p><p> SetF4; </p><p
75、> MotorStep = 3;</p><p><b> break;</b></p><p><b> case 3:</b></p><p> SetF1;//1001</p><p><b> ClrF2;</b></p><p>
76、;<b> ClrF3;</b></p><p><b> SetF4;</b></p><p> MotorStep = 4;</p><p><b> break;</b></p><p><b> case 4:</b></p>
77、<p> SetF1;//0010</p><p><b> ClrF2;</b></p><p><b> SetF3;</b></p><p><b> SetF4;</b></p><p> MotorStep = 5;</p>&l
78、t;p><b> break;</b></p><p><b> case 5:</b></p><p> SetF1;//0011</p><p><b> ClrF2;</b></p><p><b> SetF3;</b></p
79、><p><b> ClrF4;</b></p><p> MotorStep = 6;</p><p><b> break;</b></p><p><b> case 6: </b></p><p> SetF1;//0001</p&
80、gt;<p><b> SetF2;</b></p><p><b> SetF3;</b></p><p> ClrF4; </p><p> MotorStep = 7;</p><p><b> break;</b></p
81、><p><b> case 7:</b></p><p> ClrF1;//1001</p><p><b> SetF2;</b></p><p><b> SetF3;</b></p><p><b> ClrF4;</b&g
82、t;</p><p> MotorStep = 0;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(1==time)</p&g
83、t;<p><b> {</b></p><p> switch(MotorStep)</p><p><b> {</b></p><p><b> case 0:</b></p><p> ClrF1;//0010</p><p&
84、gt;<b> SetF2;</b></p><p><b> SetF3;</b></p><p><b> ClrF4;</b></p><p> MotorStep = 1;</p><p><b> break;</b></p>
85、;<p><b> case 1:</b></p><p> SetF1;//0011</p><p><b> SetF2;</b></p><p><b> SetF3;</b></p><p><b> ClrF4;</b>&
86、lt;/p><p> MotorStep = 2;</p><p><b> break;</b></p><p><b> case 2: </b></p><p> SetF1;//0001</p><p><b> ClrF2;</b>&l
87、t;/p><p><b> SetF3;</b></p><p> ClrF4; </p><p> MotorStep = 3;</p><p><b> break;</b></p><p><b> case 3:</b>
88、</p><p> SetF1;//1001</p><p><b> ClrF2;</b></p><p><b> SetF3;</b></p><p><b> SetF4;</b></p><p> MotorStep = 4;<
89、/p><p><b> break;</b></p><p><b> case 4:</b></p><p> SetF1;//0010</p><p><b> ClrF2;</b></p><p><b> ClrF3;</b
90、></p><p><b> SetF4;</b></p><p> MotorStep = 5;</p><p><b> break;</b></p><p><b> case 5:</b></p><p> SetF1;//001
91、1</p><p><b> SetF2;</b></p><p><b> ClrF3;</b></p><p><b> SetF4;</b></p><p> MotorStep = 6;</p><p><b> break;
92、</b></p><p><b> case 6: </b></p><p> ClrF1;//0001</p><p><b> SetF2;</b></p><p><b> ClrF3;</b></p><p> SetF4
93、; </p><p> MotorStep = 7;</p><p><b> break;</b></p><p><b> case 7:</b></p><p> ClrF1;//1001</p><p><b> SetF2;&
94、lt;/b></p><p><b> SetF3;</b></p><p><b> SetF4;</b></p><p> MotorStep = 0;</p><p><b> break;</b></p><p><b>
95、 }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(1==dingbustart)</p><p><b> {</b></p><p> dingbucount++;
96、</p><p><b> //多一步,需減一</b></p><p> dingbuhaisheng=dingbupreset-dingbucount;</p><p> if(dingbucount==dingbupreset)</p><p><b> {</b></p>
97、<p> dingbustart=0;</p><p> dingbucount=0;</p><p> StopCpuTimer0();</p><p><b> } </b></p><p><b> }</b></p><p><b>
98、 }</b></p><p> //EVA定時(shí)器1程序,實(shí)現(xiàn)按鍵消抖,時(shí)鐘計(jì)數(shù)</p><p> interrupt void eva_timer1_isr(void)</p><p><b> { </b></p><p> keynow=GpioDataRegs.GPADAT.bit.GPIOA
99、0 & GpioDataRegs.GPADAT.bit.GPIOA2 & GpioDataRegs.GPBDAT.bit.GPIOB11 & GpioDataRegs.GPBDAT.bit.GPIOB14;</p><p> if(flag==0)</p><p><b> {</b></p><p> if(ke
100、ynow!=keylast)</p><p><b> {</b></p><p> keylast=keynow;</p><p><b> flag=1;</b></p><p><b> }</b></p><p><b> }
101、</b></p><p> else if(flag==1)</p><p><b> {</b></p><p> if(keynow==keylast)</p><p><b> {</b></p><p> if(keyvalue!=keynow)
102、</p><p><b> {</b></p><p><b> flag=0;</b></p><p> keyvalue=keynow;</p><p> if(1==zhujiemian)</p><p><b> {</b></p
103、><p> if(0==GpioDataRegs.GPBDAT.bit.GPIOB11)</p><p><b> {</b></p><p><b> time++;</b></p><p> if(2==time)time=0;</p><p><b>
104、}</b></p><p> else if(0==GpioDataRegs.GPBDAT.bit.GPIOB14)</p><p><b> {</b></p><p> moshixuanze=1;</p><p> moshixuanzexianshi=1;</p><p&g
105、t; zhujiemian=0;</p><p> shijianshuaxin1=0;</p><p><b> }</b></p><p> else if(0==GpioDataRegs.GPADAT.bit.GPIOA0)</p><p><b> {</b></p>
106、<p> if(50>speed)</p><p><b> {</b></p><p><b> speed++;</b></p><p> ConfigCpuTimer(&CpuTimer0,80,speed*5000);</p><p> StartC
107、puTimer0();</p><p> zhuansushuaxin=1;</p><p><b> }</b></p><p><b> }</b></p><p> else if(0==GpioDataRegs.GPADAT.bit.GPIOA2)</p><p&
108、gt;<b> {</b></p><p> if(1<speed)</p><p><b> {</b></p><p><b> speed--;</b></p><p> ConfigCpuTimer(&CpuTimer0,80,speed*500
109、0);</p><p> StartCpuTimer0();</p><p> zhuansushuaxin=1;</p><p><b> } </b></p><p><b> }</b></p><p><b> }</b>
110、</p><p> else if(1==moshixuanze)</p><p><b> {</b></p><p> if(0==GpioDataRegs.GPBDAT.bit.GPIOB11)//右上</p><p><b> {</b></p><p>
111、licifangshi=1;</p><p> licifangshixianshi=1;</p><p> if(0==licikeyflag)yixianglicixianshi=1;</p><p> else if(1==licikeyflag)yixianglicixianshi=1;</p><p> else if(2=
112、=licikeyflag)yierxianglicixianshi=1;</p><p> else if(3==licikeyflag)erxianglicixianshi=1;</p><p> moshixuanze=0;</p><p><b> }</b></p><p> else if(0==Gpi
113、oDataRegs.GPBDAT.bit.GPIOB14)//右下</p><p><b> {</b></p><p> zhujiemian=1;</p><p> zhujiemianxianshi=1;</p><p> moshixuanze=0;</p><p> shiji
114、anshuaxin1=1;</p><p><b> }</b></p><p> else if(0==GpioDataRegs.GPADAT.bit.GPIOA0)//左下</p><p><b> {</b></p><p> dingbumoshi=1;</p><
115、;p> dingbumoshixianshi=1;</p><p> moshixuanze=0;</p><p><b> }</b></p><p> else if(0==GpioDataRegs.GPADAT.bit.GPIOA2)//左上</p><p><b> {</b>
116、;</p><p> dingshimoshi=1;</p><p> dingshimoshixianshi=1;</p><p> moshixuanze=0;</p><p><b> } </b></p><p><b> }</b></p&g
117、t;<p> else if(1==dingshimoshi)</p><p><b> {</b></p><p> if(0==GpioDataRegs.GPBDAT.bit.GPIOB14)//右下</p><p><b> {</b></p><p> if(1==
118、dingshixuanze)</p><p><b> {</b></p><p> dingshixuanze=0;</p><p> dingshimoshixianshi=1;</p><p> if(0==dingshiset)flag1=0;</p><p><b>
119、 }</b></p><p> else if(1==dingshikaiqi||1==dingshiguangbi||1==dingshiready||1==dingshistart)</p><p><b> {</b></p><p> dingshikaiqi=dingshiguangbi=dingshiready=d
120、ingshistart=0;</p><p> dingshixuanze=1;</p><p> dingshixuanzexianshi=1;</p><p> dingshikaiqiflag=dingshiguangbiflag=0;</p><p> resetstart=0;</p><p>
121、StartCpuTimer0();</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> dingshimoshi=0;</p><p> moshixu
122、anze=1;</p><p> moshixuanzexianshi=1;</p><p> dingshishijianxianshi=0;</p><p><b> } </b></p><p><b> }</b></p><p> else if(0
123、==GpioDataRegs.GPBDAT.bit.GPIOB11)//右上</p><p><b> {</b></p><p> if(0==flag1)</p><p> { </p><p><b> flag1=0;</b></p><p&
124、gt; dingshixuanze=1;</p><p> dingshixuanzexianshi=1;</p><p><b> }</b></p><p> else if(1==dingshikaiqi||1==dingshiguangbi)</p><p><b> {</b>&
125、lt;/p><p> dingshiset++;</p><p> if(3==dingshiset)</p><p><b> {</b></p><p> dingshiready=1;</p><p> dingshireadyxianshi=1;</p><p&g
126、t; dingshikaiqi=dingshiguangbi=0;</p><p> dingshiset=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>
127、 else if(0==GpioDataRegs.GPADAT.bit.GPIOA2)//左上</p><p> { </p><p> if(1==dingshixuanze)</p><p><b> {</b></p><p> dingshikaiqi=1;</p>&l
128、t;p> dingshikaiqiflag=1;</p><p> dingshiguangbiflag=0;</p><p> dingshikaiqixianshi=1;</p><p> dingshixuanze=0;</p><p> StopCpuTimer0();</p><p><
129、b> }</b></p><p> else if(1==dingshikaiqi||1==dingshiguangbi)</p><p><b> {</b></p><p> shijianshuaxin3=1;</p><p> if(2==dingshiset)</p>
130、<p><b> {</b></p><p> if(23==hour2)hour2=0;</p><p> else hour2++;</p><p><b> }</b></p><p> else if(1==dingshiset)</p><p>
131、<b> {</b></p><p> if(59==min2)min2=0;</p><p> else min2++; </p><p><b> }</b></p><p> else if(0==dingshiset)</p><p><b
132、> {</b></p><p> if(59==sec2)sec2=0;</p><p> else sec2++; </p><p><b> }</b></p><p><b> }</b></p><p> else if(1=
133、=dingshiready)</p><p><b> {</b></p><p><b> start++;</b></p><p> if(1==start)</p><p><b> {</b></p><p> if(0==hour2&
134、amp;&0==min2&&0==sec2)</p><p><b> {</b></p><p> StartCpuTimer0();</p><p><b> }</b></p><p> else if(1==dingshikaiqiflag)</p>
135、;<p><b> {</b></p><p> StopCpuTimer0();</p><p> if(1==resetstart)</p><p><b> {</b></p><p> StartCpuTimer0();</p><p><
136、;b> }</b></p><p><b> }</b></p><p> else if(1==dingshiguangbiflag)</p><p><b> {</b></p><p> StartCpuTimer0();</p><p>&
137、lt;b> }</b></p><p><b> }</b></p><p> if(2==start)</p><p><b> {</b></p><p><b> start=0;</b></p><p> StopC
138、puTimer0(); </p><p><b> }</b></p><p> } </p><p><b> } </b></p><p> else if(0==GpioDataRegs.GPADAT.bit.GPIOA0)//左下</
139、p><p><b> {</b></p><p> if(1==dingshixuanze)</p><p><b> {</b></p><p> dingshiguangbi=1;</p><p> dingshiguangbiflag=1;</p>
140、<p> dingshikaiqiflag=0;</p><p> dingshiguangbixianshi=1;</p><p> dingshixuanze=0;</p><p> dingshishijianxianshi=1;</p><p> shijianshuaxin2=shijianshuaxin3=1;
141、</p><p> StopCpuTimer0();</p><p><b> }</b></p><p> else if(1==dingshikaiqi||1==dingshiguangbi)</p><p><b> {</b></p><p> shijia
142、nshuaxin3=1;</p><p> if(2==dingshiset)</p><p><b> {</b></p><p> if(0==hour2)hour2=23;</p><p> else hour2--;</p><p><b> }</b>&l
143、t;/p><p> else if(1==dingshiset)</p><p><b> {</b></p><p> if(0==min2)min2=59;</p><p> else min2--; </p><p><b> }</b></p&
144、gt;<p> else if(0==dingshiset)</p><p><b> {</b></p><p> if(0==sec2)sec2=59;</p><p> else sec2--; </p><p><b> }</b></p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于TMS320F2812的步進(jìn)電機(jī)控制系統(tǒng)研究.pdf
- 基于TMS320F2812的平動(dòng)電機(jī)的控制系統(tǒng)設(shè)計(jì).pdf
- 基于tms320f2812的交流電機(jī)控制系統(tǒng)的設(shè)計(jì)
- 基于tms320f2812的小型充電系統(tǒng)
- 基于TMS320F2812的異步電機(jī)矢量控制系統(tǒng)的研究.pdf
- 基于TMS320F2812的交流伺服電機(jī)控制器.pdf
- 基于TMS320F2812的永磁同步電機(jī)伺服控制系統(tǒng)研究.pdf
- 基于TMS320F2812的開(kāi)關(guān)磁阻電機(jī)控制策略研究.pdf
- 基于TMS320F2812的多軸運(yùn)動(dòng)控制系統(tǒng)研究.pdf
- 基于TMS320F2812的無(wú)刷直流電機(jī)控制系統(tǒng)設(shè)計(jì).pdf
- 基于TMS320F2812的異步電機(jī)空間矢量控制系統(tǒng)的研究.pdf
- 基于TMS320F2812的小型無(wú)人機(jī)控制系統(tǒng)設(shè)計(jì).pdf
- 基于DSP TMS320F2812多軸運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì).pdf
- 基于TMS320F2812的同步高速攝影控制系統(tǒng)的研究.pdf
- 基于TMS320F2812直線(xiàn)超聲電機(jī)驅(qū)動(dòng)控制平臺(tái)的研究.pdf
- 基于TMS320F2812的感應(yīng)電機(jī)直接轉(zhuǎn)矩控制研究.pdf
- 基于TMS320F2812的異步電機(jī)直接轉(zhuǎn)矩控制系統(tǒng)研究與實(shí)踐.pdf
- 基于TMS320F2812的永磁同步電機(jī)交流調(diào)速系統(tǒng).pdf
- 基于TMS320F2812的開(kāi)關(guān)磁阻電機(jī)調(diào)速系統(tǒng)的研究.pdf
- 基于tms320f2812的無(wú)刷直流電機(jī)控制
評(píng)論
0/150
提交評(píng)論