標題: 單片機加L297和L298控制步進電機 [打印本頁]
作者: killer00 時間: 2017-4-12 10:39
標題: 單片機加L297和L298控制步進電機
系統(tǒng)的設計框架
5141421924597007774.jpg (260.89 KB, 下載次數(shù): 124)
下載附件
2017-4-14 03:55 上傳
L297、L298N與電機的電路設計
637540822249800331.jpg (434.58 KB, 下載次數(shù): 114)
下載附件
2017-4-14 03:55 上傳
系統(tǒng)的總電路設計此電路由一塊STC89C51,3塊L297、3塊L298N、3臺4相4拍步進電機器以及相關(guān)的電路組成。利用單片機3個并行I/O口的部分引腳(P0.0~P0.6,P1.0.~P1.6,P2.0~P2.6)連接驅(qū)動芯片,各個端口直接與驅(qū)動芯片L297直接相連,L297與L298N共用一個+5V的電源,輸出+36V的步進電機驅(qū)動電壓;L298N的2、3、13、14四個輸出引腳直接與一個四相四拍的步進電機相連。以同樣的方式,連接另外兩臺電機的控制電路。
系統(tǒng)的總電路設計圖
639229672110064270.jpg (446 KB, 下載次數(shù): 113)
下載附件
2017-4-14 03:55 上傳
424745739859163236.jpg (424.74 KB, 下載次數(shù): 123)
下載附件
2017-4-14 03:55 上傳
步進電機轉(zhuǎn)速控制可由程序延時來完成,也可由定時器延時來完成,相應的程序如下:
- PUSH A ;保護現(xiàn)場
- MOV R4,#N ;設置步長計數(shù)器
- CLR C ;轉(zhuǎn)向標志為1,轉(zhuǎn)移
- ORL C,D5H
- JC ROTE
- MOV R0,#20H ;正轉(zhuǎn)控制字首址
- AJMP LOOP
- ROTE: MOV R0,27H ;反轉(zhuǎn)控制字首址
- LOOP: MOV A,@R0
- MOV P1,A ;輸出控制脈沖
- ACALL DLY ;調(diào)用延時程序
- INC R0 ;控制字存儲地址增1
- MOV A,#00H
- . ORL A,@R0 ;是結(jié)束標志轉(zhuǎn)移
- JZ TPL LOOP1: DJNZ R4,LOOP ;步數(shù)不為0,轉(zhuǎn)移
- POP A
- RER
- TPL: MOV A,R0 ;恢復控制字首址
- CLR C
- SUBB A,#06H
- MOV R0,A
- AJMP LOOP1
- DLY: MOV R2,#M
- DLY1: MOV A,#M1
- LOOP: DEC A
- JNZ LOOP
- DJNZ R2,DLY1
- RET
- 7.4 變頻調(diào)速程序與相應的流程圖
- 主程序:ORC 0000H
- SJMP START
- ORG 000BH
- LJMP INT0
- ORG 0030H
- START: MOV DPTR,addr16 ;T0初值地址指針
- MOV R3,1BH ;賦頻率階梯記數(shù)器值
- MOV R2,1AH ;賦階梯步長計數(shù)器值
- CLR C
- ORL C,73H
- JC ROTE
- MOV R0,#20H ;正轉(zhuǎn)控制字首址
- AJMP PH
- ROTE: MOV R0,#27H ;反轉(zhuǎn)控制字首址
- PH: MOV TMOD,#01H ;T0方式1定時
- MOV TL0,#00H ;置T0初值
- MOV TH0, #00H
- SETB TR0 ;啟動T0
- SETB ET0 ;允許T0中斷
- LOOP: MOV A,R3 ;等待中斷
- JNZ LOOP
- CLR EA ;CUP關(guān)中斷
- SJMP [ DISCUZ_CODE_2 ]nbsp; ;結(jié)束
-
- 中斷服務程序:
- INT0: PUSH A ;保護現(xiàn)場
- MOV A,@R0
- MOV P1, A
- INC R0
- MOV A, #00H
- ORL A, @R0
- JZ TPL ;是結(jié)束標志,轉(zhuǎn)
- RR: DEC R2 ;步長計數(shù)器減1
- MOV A, #00H
- ORL A, R2
- JZ THL ;階梯步長計數(shù)器為0,轉(zhuǎn)
- PRL: CLR C
- CLR C, 71H
-
- JNC ROTEL ;是降頻,轉(zhuǎn)移
- MOV A, #00H
- MOVC A, @A+DPTR
- MOV TL0,A ;升頻T0賦初值低8位
- MOV A, #01H
- MOVC A, @A+DPTR
- MOV TH0,A ;升頻T0賦初值高8位
- AJMP QQ
- ROTEL: MOV A, #80H
- MOVC A, @A+DPTR
- MOV TL0,A ;降頻T0賦初值低8位
- MOV A, #81H
- MOVC A, @A+DPTR
- MOV TH0,A ;降頻T0賦初值高8位
- QQ: POP A ;恢復現(xiàn)場
- RETI ;中斷返回
- THL: DJNZ R3,AT ;頻率階梯減1不為0,轉(zhuǎn)
- AJMP QQ
- AT: MOV R2,1AH ;階梯步長賦值
- INC DPTR
- INC DPTR ;TO初值指針更新
- AJMP PRL
- TPL: CLR C
- MOV A, R0
- SUBB A, #06H
- MOV R0, A
- AJMP RR
- END
復制代碼
作者: Jeff_BlindCat 時間: 2020-6-20 01:58
C還沒鼓搗明白,匯編看著更天書了:)
| 歡迎光臨 (http://www.denmoz.com/bbs/) |
Powered by Discuz! X3.1 |