📄 步进马达.lst
字号:
C51 COMPILER V7.10 步絖马达 10/25/2008 22:13:24 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE 步絖马达
OBJECT MODULE PLACED IN 步进马达.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE 步进马达.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 * 标题: 步进电机试验一
3 * 接线: 12v-黑色 Y10-红线 Y11-黄线 Y12-白色 Y13-绿色(对照电路板字符标示)
4
5 * 通过本例程了解步进马达使用及驱动程序编写
6 双四拍工作方式: *
7 * AB-BC-CD-DA (即一个脉冲,转 7.5 度)
8 *
9 * 请学员一定要消化掉本例程, *
10 ********************************************************************************/
11
12 #include "reg52.h"
13 //Motor
14 sbit F1 = P1^0;
15 sbit F2 = P1^1;
16 sbit F3 = P1^2;
17 sbit F4 = P1^3;
18
19
20
21 ///////////////////////////////////////
22 //步进电机驱动
23 unsigned char MotorStep=0;
24 unsigned int MotorTimer = 0;
25 unsigned int TIM,CT;
26
27 void InitMotor()
28 {
29 1 F1 = 1;
30 1 F2 = 1;
31 1 F3 = 1;
32 1 F4 = 1;
33 1 }
34
35
36
37 void SetMotor()
38 {
39 1 // if(Speed == 0) return;
40 1
41 1
42 1 switch(MotorStep)
43 1 {
44 2 case 0:
45 2 if(TIM)
46 2 {
47 3 F1 = 0;
48 3 F2 = 0;
49 3 F3 = 1;
50 3 F4 = 1;
51 3 MotorStep = 1;
52 3 TIM=0;
53 3 }
54 2 break;
55 2
C51 COMPILER V7.10 步絖马达 10/25/2008 22:13:24 PAGE 2
56 2 case 1:
57 2 if(TIM)
58 2 {
59 3 F1 = 1;
60 3 F2 = 0;
61 3 F3 = 0;
62 3 F4 = 1;
63 3 MotorStep = 2;
64 3 TIM=0;
65 3 }
66 2 break;
67 2
68 2 case 2:
69 2 if(TIM)
70 2 {
71 3
72 3
73 3 F1 = 1;
74 3 F2 = 1;
75 3 F3 = 0;
76 3 F4 = 0;
77 3 MotorStep = 3;
78 3 TIM=0;
79 3 }
80 2 break;
81 2
82 2
83 2 case 3:
84 2 if(TIM)
85 2 {
86 3 F1 = 0;
87 3 F2 = 1;
88 3 F3 = 1;
89 3 F4 = 0;
90 3 MotorStep = 0;
91 3 TIM=0;
92 3 }
93 2 break;
94 2 }
95 1
96 1 }
97
98
99 void system_Ini()
100 {
101 1 TMOD|= 0x11;
102 1 TH0=0xDC; //11.0592M
103 1 TL0=0x00;
104 1 IE = 0x8A;
105 1 TR0 = 1;
106 1
107 1
108 1 }
109
110 main()
111 { system_Ini();
112 1 InitMotor();
113 1 while(1)
114 1 {
115 2 SetMotor();
116 2
117 2 }
C51 COMPILER V7.10 步絖马达 10/25/2008 22:13:24 PAGE 3
118 1
119 1
120 1
121 1 }
122
123 /*************************************
124 [ t1 (0.5ms)中断] 中断中做 PWM 输出
125 ------------1000/(0.02ms*250)=200Hz
126 *************************************/
127 void Tzd(void) interrupt 1
128 {
129 1 TH0 = 0xfe; //11.0592
130 1 TL0 = 0x33;
131 1
132 1 if( CT++==20)
133 1 {TIM=1;
134 2 CT=0;
135 2 }
136 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 177 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -