📄 motor.lst
字号:
C51 COMPILER V7.06 MOTOR 05/09/2007 09:05:50 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MOTOR
OBJECT MODULE PLACED IN motor.OBJ
COMPILER INVOKED BY: E:\Program Files\C51\BIN\C51.EXE motor.c BROWSE DEBUG OBJECTEXTEND
stmt 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 sbit lck = P3^5;//模块初始化片选的锁存信号
18 sbit HC138A = P1^5;
19 sbit HC138B = P1^6;
20 sbit HC138C = P1^7;//功能指示灯控制
21
22 uchar code FFW[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//正转数组
23 uchar code REV[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};//反转数组
24 uchar rate ;
25 /********************************************************/
26 /*
27 /* 延时
28 /* 11.0592MHz时钟,
29 /*
30 /********************************************************/
31 void delay()
32 {
33 1 uchar k;
34 1 uint s;
35 1 k = rate;
36 1 do
37 1 {
38 2 for(s = 0 ; s <100 ; s++) ;
39 2 }while(--k);
40 1 }
41
42
43 void delay2(uchar k)
44 {
45 1
46 1 uchar s;
47 1 for(s = 0 ; s <k ; s++) ;
48 1
49 1 }
C51 COMPILER V7.06 MOTOR 05/09/2007 09:05:50 PAGE 2
50
51 /********************************************************/
52 /*
53 /*步进电机正转
54 /*
55 /********************************************************/
56 void motor_ffw()
57 {
58 1 uchar i;
59 1
60 1 for (i=0; i<8; i++) //一个周期转30度
61 1 {
62 2 P0 = FFW[i];//取数据
63 2 delay(); //调节转速
64 2 }
65 1 }
66
67 /********************************************************/
68 /*
69 /*步进电机反转
70 /*
71 /********************************************************/
72 void motor_rev()
73 {
74 1 uchar i;
75 1
76 1 for (i=0; i<8; i++) //一个周期转30度
77 1 {
78 2 P0 = REV[i]; //取数据
79 2 delay(); //调节转速
80 2 }
81 1 }
82
83 /********************************************************
84 *
85 *步进电机运行
86 *
87 *********************************************************/
88 void motor_turn()
89 {
90 1 uchar x;
91 1 rate=0x30;
92 1 x=0xf0;
93 1 do
94 1 {
95 2 motor_ffw(); //正转加速
96 2 rate--;
97 2 }while(rate!=0x0a);
98 1
99 1 do
100 1 {
101 2 motor_ffw(); //正转匀速
102 2 x--;
103 2 }while(x!=0x01);
104 1
105 1 do
106 1 {
107 2 motor_ffw(); //正转减速
108 2 rate++;
109 2 }while(rate!=0x30);
110 1 do
111 1 {
C51 COMPILER V7.06 MOTOR 05/09/2007 09:05:50 PAGE 3
112 2 motor_rev(); //反转加速
113 2 rate--;
114 2 }while(rate!=0x0a);
115 1
116 1 do
117 1 {
118 2 motor_rev(); //反转匀速
119 2 x--;
120 2 }while(x!=0x01);
121 1
122 1 do
123 1 {
124 2 motor_rev(); //反转减速
125 2 rate++;
126 2 }while(rate!=0x30);
127 1 }
128
129 /********************************************************
130 *
131 * 主程序
132 *
133 *********************************************************/
134 main()
135 {
136 1 lck = 0;
137 1 P1 = 0xff;//初始化模块片选信号
138 1 lck = 1;
139 1 while(1)
140 1 {
141 2 P0 = 0x00;//ULN2003输出高电平
142 2 delay2(255);
143 2
144 2 motor_turn();
145 2
146 2 }
147 1 }
148
149
150
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 144 ----
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 + -