📄 bskz.lst
字号:
C51 COMPILER V7.50 BSKZ 05/01/1985 17:56:26 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE BSKZ
OBJECT MODULE PLACED IN bskz.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bskz.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //步进电机变速(加速,匀速,减速)控制
2 //2007年6月16日
3 //王志炎
4
5 #include<reg51.h>
6 sbit A=P1^6;//第一相
7 sbit D=P1^7;//第二相
8 sbit H=P3^2;//第三相
9 sbit C=P3^3;//第四相
10 sbit I=P1^4;//高电平正转,低电平反转
11 unsigned char j;
12 unsigned char t;
13
14 void Delay(unsigned char i)
15 {
16 1 do
17 1 {
18 2 TH0 = 0xFF;
19 2 TL0 = 0xF0;
20 2 TR0 = 1; //启动定时器
21 2 while ( !TF0 ); //等待定时器溢出
22 2 TR0 = 0; //停止定时器
23 2 TF0 = 0; //清除溢出标志
24 2 } while ( --i!= 0 ); //循环t 次
25 1 }
26
27 void z_biansu(unsigned char t)//正转变速
28 {
29 1 for(j=0;j<4;j++)
30 1
31 1 switch(j)
32 1 {
33 2 case 0:
34 2 D=1;
35 2 H=0;
36 2 C=0;
37 2 A=0;
38 2 Delay(30+t*2);
39 2 break;
40 2 case 1:
41 2 D=0;
42 2 H=1;
43 2 C=0;
44 2 A=0;
45 2 Delay(30+t*2);
46 2 break;
47 2 case 2:
48 2 D=0;
49 2 H=0;
50 2 C=1;
51 2 A=0;
52 2 Delay(30+t*2);
53 2 break;
54 2 case 3:
55 2 D=0;
C51 COMPILER V7.50 BSKZ 05/01/1985 17:56:26 PAGE 2
56 2 H=0;
57 2 C=0;
58 2 A=1;
59 2 Delay(30+t*2);
60 2 break;
61 2 default:break;
62 2 }
63 1 }
64 void f_biansu(unsigned char t)//反转变速
65 {
66 1 for(j=0;j<4;j++)
67 1
68 1 switch(j)
69 1 {
70 2 case 0:
71 2 D=0;
72 2 H=0;
73 2 C=0;
74 2 A=1;
75 2 Delay(30+t*2);
76 2 break;
77 2 case 1:
78 2 D=0;
79 2 H=0;
80 2 C=1;
81 2 A=0;
82 2 Delay(30+t*2);
83 2 break;
84 2 case 2:
85 2 D=0;
86 2 H=1;
87 2 C=0;
88 2 A=0;
89 2 Delay(30+t*2);
90 2 break;
91 2 case 3:
92 2 D=1;
93 2 H=0;
94 2 C=0;
95 2 A=0;
96 2 Delay(30+t*2);
97 2 break;
98 2 default:break;
99 2 }
100 1 }
101
102 void z_yunsu()//正转匀速
103 {
104 1 for(j=0;j<4;j++)
105 1 switch(j)
106 1 {
107 2 case 0:
108 2 D=1;
109 2 H=0;
110 2 C=0;
111 2 A=0;
112 2 Delay(30);
113 2 break;
114 2 case 1:
115 2 D=0;
116 2 H=1;
117 2 C=0;
C51 COMPILER V7.50 BSKZ 05/01/1985 17:56:26 PAGE 3
118 2 A=0;
119 2 Delay(30);
120 2 break;
121 2 case 2:
122 2 D=0;
123 2 H=0;
124 2 C=1;
125 2 A=0;
126 2 Delay(30);
127 2 break;
128 2 case 3:
129 2 D=0;
130 2 H=0;
131 2 C=0;
132 2 A=1;
133 2 Delay(30);
134 2 break;
135 2 default:break;
136 2 }
137 1
138 1 }
139
140 void f_yunsu()//反转匀速
141 {
142 1 for(j=0;j<4;j++)
143 1
144 1 switch(j)
145 1 {
146 2 case 0:
147 2 D=0;
148 2 H=0;
149 2 C=0;
150 2 A=1;
151 2 Delay(30);
152 2 break;
153 2 case 1:
154 2 D=0;
155 2 H=0;
156 2 C=1;
157 2 A=0;
158 2 Delay(30);
159 2 break;
160 2 case 2:
161 2 D=0;
162 2 H=1;
163 2 C=0;
164 2 A=0;
165 2 Delay(30);
166 2 break;
167 2 case 3:
168 2 D=1;
169 2 H=0;
170 2 C=0;
171 2 A=0;
172 2 Delay(30);
173 2 break;
174 2 default:break;
175 2 }
176 1 }
177
178 //主函数
179 void main(void)
C51 COMPILER V7.50 BSKZ 05/01/1985 17:56:26 PAGE 4
180 {
181 1 if(I==1)//正转
182 1 {
183 2 for(t=30;t>0;t--)//正转加速,走30步
184 2 z_biansu(t);
185 2
186 2
187 2 for(t=200;t>0;t--)//正转匀速,走200步
188 2 z_yunsu();
189 2
190 2 for(t=0;t<30;t++)//正转减速,走30步
191 2 z_biansu(t);
192 2 }
193 1
194 1 else //反转
195 1 {
196 2 for(t=30;t>0;t--)//反转加速,走30步
197 2 f_biansu(t);
198 2
199 2 for(t=200;t>0;t--)//反转匀速,走200步
200 2
201 2 f_yunsu();
202 2
203 2 for(t=0;t<30;t++)//反转减速,走30步
204 2 f_biansu(t);
205 2 }
206 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 399 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
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 + -