?? 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 + -