3.软件设计 该驱动器根据拨码开关KX、KY的不同组合有三种工作方式供选择: 方式1为中断方式:P3.5(INT1)为步进脉冲输入端,P3.7为正反转脉冲输入端。上位机(PC机或单片机)与驱动器仅以2条线相连。 方式2为串行通讯方式:上位机(PC机或单片机)将控制命令发送给驱动器,驱动器根据控制命令自行完成有关控制过程。 方式3为拨码开关控制方式:通过K1~K5的不同组合,直接控制步进电机。 当上电或按下复位键KR后,AT89C2051先检测拨码开关KX、KY的状态,根据KX、KY 的不同组合,进入不同的工作方式。以下给出方式1的程序流程框图与源程序。 在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20H单元的各位为步进电机正转标志位;21H单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步。 图4 方式1程序框图 方式1源程序: MOV 20H,#00H ;20H单元置初值,电机正转位置指针 MOV 21H,#00H ;21H单元置初值,电机反转位置指针 MOV P1,#0C0H ;P1口置初值,防止电机上电短路 MOV TMOD,#60H ;T1计数器置初值,开中断 MOV TL1,#0FFH MOV TH1,#0FFH SETB ET1 SETB EA SETB TR1 SJMP $ ;***********计数器1中断程序************ IT1P: JB P3.7,FAN ;电机正、反转指针 ;*************电机正转***************** JB 00H,LOOP0 JB 01H,LOOP1 JB 02H,LOOP2 JB 03H,LOOP3 JB 04H,LOOP4 JB 05H,LOOP5 JB 06H,LOOP6 JB 07H,LOOP7 LOOP0: MOV P1,#0D0H MOV 20H,#02H MOV 21H,#40H AJMP QUIT LOOP1: MOV P1,#090H MOV 20H,#04H MOV 21H,#20H AJMP QUIT LOOP2: MOV P1,#0B0H MOV 20H,#08H MOV 21H,#10H AJMP QUIT LOOP3: MOV P1,#030H MOV 20H,#10H MOV 21H,#08H AJMP QUIT LOOP4: MOV P1,#070H MOV 20H,#20H MOV 21H,#04H AJMP QUIT LOOP5: MOV P1,#060H MOV 20H,#40H MOV 21H,#02H AJMP QUIT LOOP6: MOV P1,#0E0H MOV 20H,#80H MOV 21H,#01H AJMP QUIT LOOP7: MOV P1,#0C0H (责任编辑:admin) |