系统的设计框架
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
复制代码
|