基于proteus步进电机仿真及程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
proteus中的步进电机有两种,
六线制(MOTOR-STEPPER)和四线制(MOTOR-BISTEPPER),六线制的左右中间两根线接电源,任然剩下四根,但的顺序和四线制的不同,见下图。
注意a,b,c,d的顺序
在实际情况中,单片机是不能直接拖动步进电机的,需用ULN2003这样的器件
两个步进电机都是四相电机。
如果用四拍:
那么P2输出的(顺时针)顺序就是:0x03,0x06,0x0c,0x09
a 1 0 0 1
b 1 1 0 0
c 0 1 1 0
d 0 0 1 1
如果用八拍:
那么P2输出的(顺时针)顺序就是:0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
a 1 1 0 0 0 0 0 1
b 0 1 1 1 0 0 0 0
c 0 0 0 1 1 1 0 0
d 0 0 0 0 0 1 1 1
给一个测试八拍的仿真程序:
1.#include<reg5
2.h>
2.
3.main(){
4.while(1){
5.unsigned int i,j,k;
6.for(k=0;k<255;k++){
7.for(i=0;i<75;i++)
8.for(j=0;j<255;j++);
9.P2=0x01;
10.for(i=0;i<75;i++)
11.for(j=0;j<255;j++);
12.P2=0x03;
13. for(i=0;i<75;i++)
14.for(j=0;j<255;j++);
15.P2=0x02;
16.
17. for(i=0;i<75;i++)
18.for(j=0;j<255;j++);
19.P2=0x06;
20.for(i=0;i<75;i++)
21.for(j=0;j<255;j++);
22.P2=0x04;
23.for(i=0;i<75;i++)
24.for(j=0;j<255;j++);
25.P2=0x0c;
26. for(i=0;i<75;i++)
27.for(j=0;j<255;j++);
28.P2=0x08;
29.
30. for(i=0;i<75;i++)
31.for(j=0;j<255;j++);
32.P2=0x09;
33.
34.
35.}
36. }
37.}