📄 moter.lst
字号:
C51 COMPILER V7.50 MOTER 04/19/2008 21:54:23 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MOTER
OBJECT MODULE PLACED IN moter.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE moter.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************/
2 /*****************************************************************/
3 /*
-
4 /* 步进电机加减速运行程序
-
5 /* 步进电机启动时,转速由慢到快逐步加速。
-
6 /* 步进电机匀速运行
-
7 /* 步进电机由快到慢逐步减速到停止
8 /*
-
-
9 /******************************************************************/
10
11 #include <reg52.h>
12 #include <string.h>
13
14 #define uchar unsigned char
15 #define uint unsigned int
16
17
18 uchar code FFW[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//正转数组
19 uchar code REV[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};//反转数组
20 uchar rate ;
21 /********************************************************/
22 /*
23 /* 延时
24 /* 11.0592MHz时钟,
25 /*
26 /********************************************************/
27 void delay()
28 {
29 1 uchar k;
30 1 uint s;
31 1 k = rate;
32 1 do
33 1 {
34 2 for(s = 0 ; s <100 ; s++) ;
35 2 }while(--k);
36 1 }
37
38
39 void delay2(uchar k)
40 {
41 1
42 1 uchar s;
43 1 for(s = 0 ; s <k ; s++) ;
44 1
45 1 }
46
47 /********************************************************/
48 /*
49 /*步进电机正转
C51 COMPILER V7.50 MOTER 04/19/2008 21:54:23 PAGE 2
50 /*
51 /********************************************************/
52 void motor_ffw()
53 {
54 1 uchar i;
55 1
56 1 for (i=0; i<8; i++) //一个周期转30度
57 1 {
58 2 P0 = FFW[i];//取数据
59 2
60 2 delay(); //调节转速
61 2 }
62 1 }
63
64 /********************************************************/
65 /*
66 /*步进电机反转
67 /*
68 /********************************************************/
69 void motor_rev()
70 {
71 1 uchar i;
72 1
73 1 for (i=0; i<8; i++) //一个周期转30度
74 1 {
75 2 P0 = REV[i]; //取数据
76 2
77 2 delay(); //调节转速
78 2 }
79 1 }
80
81 /********************************************************
82 *
83 *步进电机运行
84 *
85 *********************************************************/
86 void motor_turn()
87 {
88 1 uchar x;
89 1 rate=0x30;//转动速度,越小越快
90 1 x=0xf0;//同一速度运行时间
91 1 do
92 1 {
93 2 motor_ffw(); //正转加速
94 2 rate--;
95 2 }while(rate!=0x0a);
96 1
97 1 do
98 1 {
99 2 motor_ffw(); //正转匀速
100 2 x--;
101 2 }while(x!=0x01);
102 1
103 1 do
104 1 {
105 2 motor_ffw(); //正转减速
106 2 rate++;
107 2 }while(rate!=0x30);
108 1 do
109 1 {
110 2 motor_rev(); //反转加速
111 2 rate--;
C51 COMPILER V7.50 MOTER 04/19/2008 21:54:23 PAGE 3
112 2 }while(rate!=0x0a);
113 1
114 1 do
115 1 {
116 2 motor_rev(); //反转匀速
117 2 x--;
118 2 }while(x!=0x01);
119 1
120 1 do
121 1 {
122 2 motor_rev(); //反转减速
123 2 rate++;
124 2 }while(rate!=0x30);
125 1 }
126
127 /********************************************************
128 *
129 * 主程序
130 *
131 *********************************************************/
132 main()
133 {
134 1
135 1 P0=0xf0;
136 1
137 1 while(1)
138 1 {
139 2 P0 = 0x00;//ULN2003输出高电平
140 2
141 2 delay2(255);
142 2
143 2 motor_turn();
144 2
145 2 }
146 1 }
147
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 140 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -