该程序是控制8拍的步进马达,马达电压12V。
马达的驱动与MCU的硬件接口如下:
MCU为SN8P2714K
A-P4.7 B-P4.6 C-P4.5 D-P4.4(A,B,C,D为步进马达的4条接线)
USTTABLE:
DW 0080H ;A
DW 00C0H ;AB
DW 0040H ;B
DW 0060H ;BC
DW 0020H ;C
DW 0030H ;CD
DW 0010H ;D
DW 0090H ;DA
SIDETABLE:
DW 0080H ;A
DW 0090H ;DA
DW 0010H ;D
DW 0030H ;CD
DW 0020H ;C
DW 0060H ;BC
DW 0040H ;B
DW 00C0H ;AB
//步进电机驱动
MOTORRUN: //脉冲时间要大于1MS电机才能动
B0BTS0 PROTE
MOV A,#JUSTTABLE$M //逆转
B0BTS1 PROTE
MOV A,#SIDETABLE$M //顺转
B0 MOV Y,A
B0BTS0 PROTE
MOV A,#JUSTTABLE$L
B0BTS1 PROTE
MOV A,#SIDETABLE$L
ADD A,ROTECNT
B0 MOV Z,A
MOV C
B0 MOV P4,A
INCMS ROTECNT
MOV A,ROTECNT
SUB A,#08
B0BTS1 FC
JMP MOTORRUNOUT
CLR ROTECNT //一个周期一个角度
MOTORRUNOUT:
RET
参考链接:http://pICavr.h15.rree.com/news/2008-10/8553.htm