
图5.3 PORT5步进马达控制图。
P50 0 0 1 1
P51 1 1 0 0
P52 1 0 0 1
P53 0 1 1 0
图5.4 PORT5步进马达控制時序图。
图5.3中可以看出,PORT5接到STEP MOTOR的对应引脚,图5.4可以看出PORT5应該送出的信号。图5.3中P50和P51的输出必須反相,P52和P53的输出必須反相,而P50和P52必須有相位差,假设P50和P52的相位差为90度,于是导出图5.4 的時序图。
图5.4的時序图中,可以看出有四个相位会一直循环,分別是:
|
|
Phase 0 |
Phase 1 |
Phase 2 |
Phase 3 |
|
P50 |
0 |
0 |
1 |
1 |
|
P51 |
1 |
1 |
0 |
0 |
|
P52 |
1 |
0 |
0 |
1 |
|
P53 |
0 |
1 |
1 |
0 |
|
Value |
0x06 |
0x0A |
0x09 |
0x05 |
上表中有四个基本相位数值。所以只要不停的送出这四个相位,STEP MOTOR就会不停的旋转,送出的速度快,STEP MOTOR的转速就快,但是要在STEP MOTOR的旋转极限之內。
PORT5 == 5 ; 定义
; 程序开始
MOV A, @0X0 ;將A设成0X0。
IOW PORT5 ;设定PORT5为输出口。
AGAIN:
MOV A, @0X06 ;设定A的值为0X06。
MOV PORT5, A ;將A的值输出到PORT5。
MOV A, @0X0A ;设定A的值为0X0A。
MOV PORT5, A
MOV A, @0X09 ;设定A = 0X09。
MOV PORT5, A
MOV A, @0X05 ;设定A = 0X05。
MOV PORT5, A ;设定PORT5 = 5。
JMP AGAIN ;循环。