?? zhjbjdj1.lst
字號:
C51 COMPILER V6.23a ZHJBJDJ1 05/09/2004 20:44:55 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE ZHJBJDJ1
OBJECT MODULE PLACED IN zhjbjdj1.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE zhjbjdj1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*旋轉適粘度計步進電機驅動程序晶振24MHZ*/
2
3 #include <at89x51.h>
4 #include <absacc.h>
5 #include <intrins.h>
6
7 #define DA1 XBYTE[0x8000]//定義硬件地址
8 #define DA2 XBYTE[0x8100]
9 #define LEVEL1 XBYTE[0x8200]
10 #define LEVEL2 XBYTE[0x8300]
11
12 unsigned char Command=0,Command_up,Step_Num=0,Speed=0,Addr=4,Start_f=0,Start_stepnum=2,Start_steptimes=10;
13 unsigned char Iasuffix=0,Ibsuffix=0;TimeH=0,TimeL=0;
14
15 unsigned char code IAB[256]={0,3,6,9,12,16,19,22,25,28,31,34,37,40,43,46
16 ,49,51,54,57,60,63,65,68,71,73,76,78,81,83,85,88,90,92,94,96,98,100,102
17 ,104,106,107,109,111,112,113,115,116,117,118,120,121,122,122,123,124,125
18 ,125,126,126,126,127,127,127,127,127,127,127,126,126,126,125,125,124,123
19 ,122,122,121,120,118,117,116,115,113,112,111,109,107,106,104,102,100,98
20 ,96,94,92,90,88,85,83,81,78,76,73,71,68,65,63,60,57,54,51,49,46,43,40,37
21 ,34,31,28,25,22,19,16,12,9,6,3,0,131,134,137,140,144,147,150,153,156,159
22 ,162,165,168,171,174,177,179,182,185,188,191,193,196,199,201,204,206,209
23 ,211,213,216,218,220,222,224,226,228,230,232,234,235,237,239,240,241,243
24 ,244,245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,255
25 ,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,245,244,243
26 ,241,240,239,237,235,234,232,230,228,226,224,222,220,218,216,213,211,209
27 ,206,204,201,199,196,193,191,188,185,182,179,177,174,171,168,165,162,159
28 ,156,153,150,147,144,140,137,134,131};
29
30 void init(void)
31 {
32 1 TMOD|=0x21;//初始化T1及串口,波特率9600,24M時鐘
33 1 SCON=0xf0;//T1為16位計數器
34 1 PCON|=0x80;
35 1 TH1=0xf3;
36 1 TL1=0xf3;
37 1 TR1=1;
38 1 TR0=0;
39 1 ES=1;
40 1 ET0=1;
41 1 EA=1;
42 1 //RI=0;
43 1 //TI=0;
44 1 }
45
46 void servial(void) interrupt 4 using 3
47 {
48 1 if (RI==1)
49 1 {
50 2 RI=0;
51 2 if (SM2==1&&SBUF==Addr)
52 2 {SM2=0;TB8=1;SBUF=Addr;
53 3 while (TI!=1);
54 3 TI=0;
55 3 }
C51 COMPILER V6.23a ZHJBJDJ1 05/09/2004 20:44:55 PAGE 2
56 2 else
57 2 {if(SM2==0&&SBUF==0xff&&RB8==1) SM2=1;
58 3 else if (SM2==0&&RB8==0)
59 3 {Command=SBUF;
60 4 TB8=1;
61 4 SBUF=Command;
62 4 if (Command>=1&&Command<=18)TR0=0;
63 4 while (TI!=1);
64 4 TI=0;
65 4 }
66 3 }
67 2 }
68 1 }
69
70 void time0(void) interrupt 1 using 1
71 {
72 1 TH0=TimeH;
73 1 TL0=TimeL;
74 1 TR0=1;
75 1 Command=32;
76 1 }
77
78 main()
79 {
80 1 init();
81 1 while(1)
82 1 switch(Command)
83 1 {
84 2 case 0:
85 2 LEVEL1=0xff;
86 2 _nop_();_nop_();
87 2 LEVEL2=0xff;
88 2 _nop_();_nop_();
89 2 DA1=0x00;
90 2 _nop_();_nop_();
91 2 DA2=0x00;
92 2 Iasuffix=0;
93 2 Ibsuffix=64;
94 2 Start_f=0;
95 2 Command=88;
96 2 break;
97 2 case 1:
98 2 Step_Num=1;
99 2 TimeH=0xc2;
100 2 TimeL=0xf6;
101 2 TH0=TimeH;
102 2 TL0=TimeL;
103 2 Command=88;
104 2 break;
105 2 case 2:
106 2 Step_Num=1;
107 2 TimeH=0xDB;
108 2 TimeL=0x60;
109 2 TH0=TimeH;
110 2 TL0=TimeL;
111 2 Command=88;
112 2 break;
113 2 case 3:
114 2 Step_Num=1;
115 2 TimeH=0xe1;
116 2 TimeL=0x7a;
117 2 TH0=TimeH;
C51 COMPILER V6.23a ZHJBJDJ1 05/09/2004 20:44:55 PAGE 3
118 2 TL0=TimeL;
119 2 Command=88;
120 2 break;
121 2 case 4:
122 2 Step_Num=1;
123 2 TimeH=0xed;
124 2 TimeL=0xaf;
125 2 TH0=TimeH;
126 2 TL0=TimeL;
127 2 Command=88;
128 2 break;
129 2 case 5:
130 2 Step_Num=1;
131 2 TimeH=0xf3;
132 2 TimeL=0xca;
133 2 TH0=TimeH;
134 2 TL0=TimeL;
135 2 Command=88;
136 2 break;
137 2 case 6:
138 2 Step_Num=4;
139 2 TimeH=0xdb;
140 2 TimeL=0x60;
141 2 TH0=TimeH;
142 2 TL0=TimeL;
143 2 Command=88;
144 2 break;
145 2 case 7:
146 2 Step_Num=4;
147 2 TimeH=0xe2;
148 2 TimeL=0xb3;
149 2 TH0=TimeH;
150 2 TL0=TimeL;
151 2 Command=88;
152 2 break;
153 2 case 8:
154 2 Step_Num=4;
155 2 TimeH=0xe5;
156 2 TimeL=0x97;
157 2 TH0=TimeH;
158 2 TL0=TimeL;
159 2 Command=88;
160 2 break;
161 2 case 9:
162 2 Step_Num=4;
163 2 TimeH=0xed;
164 2 TimeL=0xaf;
165 2 TH0=TimeH;
166 2 TL0=TimeL;
167 2 Command=88;
168 2 break;
169 2 case 10:
170 2 Step_Num=4;
171 2 TimeH=0xf1;
172 2 TimeL=0x59;
173 2 TH0=TimeH;
174 2 TL0=TimeL;
175 2 Command=88;
176 2 break;
177 2 case 11:
178 2 Step_Num=16;
179 2 TimeH=0xcf;
C51 COMPILER V6.23a ZHJBJDJ1 05/09/2004 20:44:55 PAGE 4
180 2 TimeL=0x2b;
181 2 TH0=TimeH;
182 2 TL0=TimeL;
183 2 Command=88;
184 2 break;
185 2 case 12:
186 2 Step_Num=16;
187 2 TimeH=0xe2;
188 2 TimeL=0xb3;
189 2 TH0=TimeH;
190 2 TL0=TimeL;
191 2 Command=88;
192 2 break;
193 2 case 13:
194 2 Step_Num=16;
195 2 TimeH=0xe7;
196 2 TimeL=0x95;
197 2 TH0=TimeH;
198 2 TL0=TimeL;
199 2 Command=88;
200 2 break;
201 2 case 14:
202 2 Step_Num=16;
203 2 TimeH=0xf1;
204 2 TimeL=0x59;
205 2 TH0=TimeH;
206 2 TL0=TimeL;
207 2 Command=88;
208 2 break;
209 2 case 15:
210 2 Step_Num=16;
211 2 TimeH=0xf6;
212 2 TimeL=0x3b;
213 2 TH0=TimeH;
214 2 TL0=TimeL;
215 2 Command=88;
216 2 break;
217 2 case 16:
218 2 Step_Num=32;
219 2 TimeH=0xf4;
220 2 TimeL=0x47;
221 2 TH0=TimeH;
222 2 TL0=TimeL;
223 2 Start_f=1;
224 2 Command=88;
225 2 break;
226 2 case 17:
227 2 Step_Num=32;
228 2 TimeH=0xf6;
229 2 TimeL=0x3b;
230 2 TH0=TimeH;
231 2 TL0=TimeL;
232 2 Start_f=1;
233 2 Command=88;
234 2 break;
235 2 case 18:
236 2 Step_Num=32;
237 2 TimeH=0xfa;
238 2 TimeL=0x23;
239 2 TH0=TimeH;
240 2 TL0=TimeL;
241 2 Start_f=1;
C51 COMPILER V6.23a ZHJBJDJ1 05/09/2004 20:44:55 PAGE 5
242 2 Command=88;
243 2 break;
244 2 case 30://開始運轉命令
245 2 Iasuffix=0;
246 2 Ibsuffix=64;
247 2 TR0=1;
248 2
249 2 Command=88;
250 2 break;
251 2 case 31://停止運轉命令
252 2 TR0=0;
253 2 Command=0;
254 2 break;
255 2 case 32://運轉
256 2 if (Start_f==1) {Command=33;break;}
257 2
258 2 DA1=IAB[Iasuffix];
259 2 DA2=IAB[Ibsuffix];
260 2
261 2 Iasuffix+=Step_Num;
262 2 Ibsuffix+=Step_Num;
263 2
264 2 //if (Iasuffix>255)Iasuffix=0;
265 2 //if (Ibsuffix>255)Ibsuffix=0;
266 2 Command=88;
267 2 break;
268 2
269 2 case 33://啟動曲線
270 2 DA1=IAB[Iasuffix];
271 2 DA2=IAB[Ibsuffix];
272 2
273 2 Iasuffix+=Start_stepnum;
274 2 Ibsuffix+=Start_stepnum;
275 2
276 2 //if (Iasuffix>255)Iasuffix=0;//Iasuffix Ibsuffix為8位
277 2 //if (Ibsuffix>255)Ibsuffix=0;
278 2
279 2 Start_steptimes--;
280 2 if (Start_steptimes<=0)
281 2 {Start_steptimes=10;Start_stepnum=Start_stepnum*2;}
282 2 if (Start_stepnum==32) Start_f=0;
283 2 Command=88;
284 2 break;
285 2
286 2 case 88:
287 2 break;
288 2 default:
289 2 break;
290 2 }
291 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 809 ----
CONSTANT SIZE = 256 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 ----
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 + -