📄 main.ls1
字号:
215 ; #include<math.h>
216 ; #include <AT89X55.H>
217 ;
218 ; #define M 5//speed test ,one cycle contain M pulses
219 ;
220 ; int Tem_Oil[5];//-20--150;the last byte is average value
221 ; int Tem_Water[5];///-20--150
222 ; unsigned int Pre_Oil[5];//0-1200kpa
223 ; unsigned char Speed;//300--9999
224 ;
225 ; unsigned int Speed_Count=0;//for test speed
226 ; unsigned int Capture_Count=0;
227 ; unsigned int Dispaly_Count=0;
228 ; unsigned int Alarm_Count=0;
229 ;
230 ; void init()
231
---- 232 RSEG ?PR?init?MAIN
0000 233 init:
234 ; SOURCE LINE # 18
235 ; {
236 ; SOURCE LINE # 19
237 ;
238 ;
239 ;
240 ; Speed_Count=0;//for test speed
241 ; SOURCE LINE # 23
0000 E4 242 CLR A
0001 F500 F 243 MOV Speed_Count,A
0003 F500 F 244 MOV Speed_Count+01H,A
245 ; Capture_Count=0;
246 ; SOURCE LINE # 24
0005 F500 F 247 MOV Capture_Count,A
0007 F500 F 248 MOV Capture_Count+01H,A
249 ; Dispaly_Count=0;
250 ; SOURCE LINE # 25
0009 F500 F 251 MOV Dispaly_Count,A
000B F500 F 252 MOV Dispaly_Count+01H,A
253 ; Alarm_Count=0;
254 ; SOURCE LINE # 26
000D F500 F 255 MOV Alarm_Count,A
000F F500 F 256 MOV Alarm_Count+01H,A
A51 MACRO ASSEMBLER MAIN 07/20/2007 11:13:54 PAGE 5
257 ;
258 ; }
259 ; SOURCE LINE # 28
0011 22 260 RET
261 ; END OF init
262
263 ;
264 ; static xdata unsigned char Address_Tem_Oil _at_ 0x0000;
265 ; static xdata unsigned char Address_Pre_Oil _at_ 0x1000;
266 ; static xdata unsigned char Address_Tem_Water _at_ 0x2000;
267 ;
268 ; static xdata unsigned char Address_Dispaly1 _at_ 0xf800;
269 ; static xdata unsigned char Address_Dispaly2 _at_ 0xf400;
270 ; static xdata unsigned char Address_Dispaly3 _at_ 0xf200;
271 ; static xdata unsigned char Address_Dispaly4 _at_ 0xf100;
272 ;
273 ; unsigned char Get_Value(unsigned char Choice)//get value of test from fixed address
274
---- 275 RSEG ?PR?_Get_Value?MAIN
0000 276 _Get_Value:
277 USING 0
278 ; SOURCE LINE # 39
279 ;---- Variable 'Choice?140' assigned to Register 'R7' ----
280 ; {
281 ; SOURCE LINE # 40
282 ; unsigned char value=0;
283 ; SOURCE LINE # 41
284 ;---- Variable 'value?141' assigned to Register 'R6' ----
0000 E4 285 CLR A
0001 FE 286 MOV R6,A
287 ; switch(Choice)
288 ; SOURCE LINE # 42
0002 EF 289 MOV A,R7
0003 24FE 290 ADD A,#0FEH
0005 600C 291 JZ ?C0004
0007 14 292 DEC A
0008 600E 293 JZ ?C0005
000A 2402 294 ADD A,#02H
000C 7013 295 JNZ ?C0002
296 ; {
297 ; SOURCE LINE # 43
298 ; case 1: //for tempreture of oil
299 ; SOURCE LINE # 44
000E 300 ?C0003:
301 ; Address_Tem_Oil=0x33;
302 ; SOURCE LINE # 45
000E 900000 303 MOV DPTR,#Address_Tem_Oil
304 ; _nop_();//delay 30 us
305 ; SOURCE LINE # 46
306 ; value=Address_Tem_Oil;
307 ; SOURCE LINE # 47
308 ; break;
309 ; SOURCE LINE # 48
0011 8008 310 SJMP ?C0078
311 ;
312 ;
313 ; case 2: //for pressure of oil
314 ; SOURCE LINE # 51
0013 315 ?C0004:
316 ; Address_Pre_Oil=0x33;
317 ; SOURCE LINE # 52
0013 901000 318 MOV DPTR,#Address_Pre_Oil
0016 319 ?C0077:
320 ; _nop_();//delay 30 us
321 ; SOURCE LINE # 53
322 ; value=Address_Pre_Oil;
A51 MACRO ASSEMBLER MAIN 07/20/2007 11:13:54 PAGE 6
323 ; SOURCE LINE # 54
324 ; break;
325 ; SOURCE LINE # 55
0016 8003 326 SJMP ?C0078
327 ;
328 ; case 3: //for tempreture of water
329 ; SOURCE LINE # 57
0018 330 ?C0005:
331 ; Address_Tem_Water=0x33;
332 ; SOURCE LINE # 58
0018 902000 333 MOV DPTR,#Address_Tem_Water
001B 334 ?C0078:
001B 7433 335 MOV A,#033H
001D F0 336 MOVX @DPTR,A
337 ; _nop_();//delay 30 us
338 ; SOURCE LINE # 59
001E 00 339 NOP
340 ; value=Address_Tem_Water;
341 ; SOURCE LINE # 60
001F E0 342 MOVX A,@DPTR
0020 FE 343 MOV R6,A
344 ; break;
345 ; SOURCE LINE # 61
346 ; default:
347 ; SOURCE LINE # 62
348 ; break;
349 ; SOURCE LINE # 63
350 ; }
351 ; SOURCE LINE # 64
0021 352 ?C0002:
353 ; return value;
354 ; SOURCE LINE # 65
0021 AF06 355 MOV R7,AR6
356 ; }
357 ; SOURCE LINE # 66
0023 358 ?C0007:
0023 22 359 RET
360 ; END OF _Get_Value
361
362 ;
363 ; Set_Display(unsigned char Choice,unsigned char Value_Diaplay)
364
---- 365 RSEG ?PR?_Set_Display?MAIN
0000 366 L?0088:
367 USING 0
0000 120000 F 368 LCALL _Display_Lookup_Table
0003 8F00 F 369 MOV Temp_Byte?449,R7
0005 370 L?0089:
0005 AD00 F 371 MOV R5,Temp_Byte?449
0007 7F01 372 MOV R7,#01H
0009 373 _Set_Display:
374 ; SOURCE LINE # 68
375 ;---- Variable 'Value_Diaplay?243' assigned to Register 'R5' ----
376 ;---- Variable 'Choice?242' assigned to Register 'R7' ----
377 ; {
378 ; SOURCE LINE # 69
379 ; switch(Choice)
380 ; SOURCE LINE # 70
0009 EF 381 MOV A,R7
000A 24FE 382 ADD A,#0FEH
000C 6010 383 JZ ?C0010
000E 14 384 DEC A
000F 6013 385 JZ ?C0011
0011 14 386 DEC A
0012 6016 387 JZ ?C0012
0014 2403 388 ADD A,#03H
A51 MACRO ASSEMBLER MAIN 07/20/2007 11:13:54 PAGE 7
0016 7017 389 JNZ ?C0014
390 ; {
391 ; SOURCE LINE # 71
392 ; case 1: //for display 1
393 ; SOURCE LINE # 72
0018 394 ?C0009:
395 ; Address_Dispaly1=Value_Diaplay;
396 ; SOURCE LINE # 73
0018 90F800 397 MOV DPTR,#Address_Dispaly1
001B ED 398 MOV A,R5
001C F0 399 MOVX @DPTR,A
400 ;
401 ; break;
402 ; SOURCE LINE # 75
001D 22 403 RET
404 ;
405 ;
406 ; case 2: //for display 2
407 ; SOURCE LINE # 78
001E 408 ?C0010:
409 ; Address_Dispaly2=Value_Diaplay;
410 ; SOURCE LINE # 79
001E 90F400 411 MOV DPTR,#Address_Dispaly2
0021 ED 412 MOV A,R5
0022 F0 413 MOVX @DPTR,A
414 ; break;
415 ; SOURCE LINE # 80
0023 22 416 RET
417 ;
418 ; case 3: //for display 3
419 ; SOURCE LINE # 82
0024 420 ?C0011:
421 ; Address_Dispaly3=Value_Diaplay;
422 ; SOURCE LINE # 83
0024 90F200 423 MOV DPTR,#Address_Dispaly3
0027 ED 424 MOV A,R5
0028 F0 425 MOVX @DPTR,A
426 ; break;
427 ; SOURCE LINE # 84
0029 22 428 RET
429 ;
430 ; case 4: //for display 4
431 ; SOURCE LINE # 86
002A 432 ?C0012:
433 ; Address_Dispaly4=Value_Diaplay;
434 ; SOURCE LINE # 87
002A 90F100 435 MOV DPTR,#Address_Dispaly4
002D ED 436 MOV A,R5
002E F0 437 MOVX @DPTR,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -