系統的設計框架
L297、L298N與電機的電路設計
系統的總電路設計此電路由一塊STC89C51,3塊L297、3塊L298N、3臺4相4拍步進電機器以及相關的電路組成。利用單片機3個并行I/O口的部分引腳(P0.0~P0.6,P1.0.~P1.6,P2.0~P2.6)連接驅動芯片,各個端口直接與驅動芯片L297直接相連,L297與L298N共用一個+5V的電源,輸出+36V的步進電機驅動電壓;L298N的2、3、13、14四個輸出引腳直接與一個四相四拍的步進電機相連。以同樣的方式,連接另外兩臺電機的控制電路。 系統的總電路設計圖
步進電機轉速控制可由程序延時來完成,也可由定時器延時來完成,相應的程序如下:
- PUSH A ;保護現場
- MOV R4,#N ;設置步長計數器
- CLR C ;轉向標志為1,轉移
- ORL C,D5H
- JC ROTE
- MOV R0,#20H ;正轉控制字首址
- AJMP LOOP
- ROTE: MOV R0,27H ;反轉控制字首址
- LOOP: MOV A,@R0
- MOV P1,A ;輸出控制脈沖
- ACALL DLY ;調用延時程序
- INC R0 ;控制字存儲地址增1
- MOV A,#00H
- . ORL A,@R0 ;是結束標志轉移
- JZ TPL LOOP1: DJNZ R4,LOOP ;步數不為0,轉移
- 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 變頻調速程序與相應的流程圖
- 主程序:ORC 0000H
- SJMP START
- ORG 000BH
- LJMP INT0
- ORG 0030H
- START: MOV DPTR,addr16 ;T0初值地址指針
- MOV R3,1BH ;賦頻率階梯記數器值
- MOV R2,1AH ;賦階梯步長計數器值
- CLR C
- ORL C,73H
- JC ROTE
- MOV R0,#20H ;正轉控制字首址
- AJMP PH
- ROTE: MOV R0,#27H ;反轉控制字首址
- 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關中斷
- SJMP [ DISCUZ_CODE_2 ]nbsp; ;結束
-
- 中斷服務程序:
- INT0: PUSH A ;保護現場
- MOV A,@R0
- MOV P1, A
- INC R0
- MOV A, #00H
- ORL A, @R0
- JZ TPL ;是結束標志,轉
- RR: DEC R2 ;步長計數器減1
- MOV A, #00H
- ORL A, R2
- JZ THL ;階梯步長計數器為0,轉
- PRL: CLR C
- CLR C, 71H
-
- JNC ROTEL ;是降頻,轉移
- 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 ;恢復現場
- RETI ;中斷返回
- THL: DJNZ R3,AT ;頻率階梯減1不為0,轉
- 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
復制代碼
|