📄 lcd.lst
字号:
272 0DAA l54
273 0DAA 2509 fcall _Lcd_Check_Busy
274 0DAB 3800 iorlw 0
275 0DAC 1D03 btfss 3,2
276 0DAD 2DAA goto l54
277 ;lcd.c: 242: if(lcdcounter==20)
278 0DAE 0820 movf _lcdcounter,w
279 0DAF 3A14 xorlw 20
280 0DB0 1D03 btfss 3,2
281 0DB1 2DBA goto l57
282 ;lcd.c: 243: {
283 0DB2 3014 movlw 20
284 0DB3 25F2 120A 158A fcall _Lcd_MoveTo_Position
285 ;lcd.c: 245: while(Lcd_Check_Busy());
286 0DB6 l58
287 0DB6 2509 fcall _Lcd_Check_Busy
288 0DB7 3800 iorlw 0
289 0DB8 1D03 btfss 3,2
290 0DB9 2DB6 goto l58
291 0DBA l57
292 ;lcd.c: 246: }
293 0DBA 0820 movf _lcdcounter,w
294 0DBB 3A28 xorlw 40
295 0DBC 1D03 btfss 3,2
296 0DBD 2DC6 goto l61
297 ;lcd.c: 248: {
298 0DBE 3028 movlw 40
299 0DBF 25F2 120A 158A fcall _Lcd_MoveTo_Position
300 ;lcd.c: 250: while(Lcd_Check_Busy());
301 0DC2 l62
302 0DC2 2509 fcall _Lcd_Check_Busy
303 0DC3 3800 iorlw 0
304 0DC4 1D03 btfss 3,2
305 0DC5 2DC2 goto l62
306 0DC6 l61
307 ;lcd.c: 251: }
308 0DC6 0820 movf _lcdcounter,w
309 0DC7 3A3C xorlw 60
310 0DC8 1D03 btfss 3,2
311 0DC9 2DD2 goto l65
312 ;lcd.c: 253: {
313 0DCA 303C movlw 60
314 0DCB 25F2 120A 158A fcall _Lcd_MoveTo_Position
315 ;lcd.c: 255: while(Lcd_Check_Busy());
316 0DCE l66
317 0DCE 2509 fcall _Lcd_Check_Busy
318 0DCF 3800 iorlw 0
319 0DD0 1D03 btfss 3,2
320 0DD1 2DCE goto l66
321 0DD2 l65
322 ;lcd.c: 256: }
323 0DD2 0820 movf _lcdcounter,w
324 0DD3 3A50 xorlw 80
325 0DD4 1D03 btfss 3,2
326 0DD5 2DDF goto l69
327 ;lcd.c: 258: {
328 0DD6 3000 movlw 0
329 0DD7 25F2 120A 158A fcall _Lcd_MoveTo_Position
330 ;lcd.c: 260: while(Lcd_Check_Busy());
331 0DDA l70
332 0DDA 2509 fcall _Lcd_Check_Busy
333 0DDB 3800 iorlw 0
334 0DDC 1D03 btfss 3,2
335 0DDD 2DDA goto l70
336 ;lcd.c: 261: lcdcounter=0;
337 0DDE 01A0 clrf _lcdcounter
338 0DDF l69
339 ;lcd.c: 262: }
340 0DDF 0AA0 incf _lcdcounter
341 ;lcd.c: 264: TRISD = 0xFF;
342 0DE0 30FF movlw -1
343 0DE1 1683 bsf 3,5
344 0DE2 0088 movwf 8 ;volatile
345 ;lcd.c: 265: RA1 = 1;
346 0DE3 1283 bcf 3,5
347 0DE4 1485 bsf 5,1
348 ;lcd.c: 266: RA2 = 1;
349 0DE5 1505 bsf 5,2
350 ;lcd.c: 267: RA3 = 1;
351 0DE6 1585 bsf 5,3
352 ;lcd.c: 268: asm("nop");
353 0DE7 0000 nop ;#
354 ;lcd.c: 269: *lcddata = PORTD;
355 0DE8 0826 movf ?a_Lcd_Read_Data,w
356 0DE9 0084 movwf 4
357 0DEA 1383 bcf 3,7
358 0DEB 0808 movf 8,w ;volatile
359 0DEC 0080 movwf 0
360 ;lcd.c: 270: RA3 = 0;
361 0DED 1185 bcf 5,3
362 ;lcd.c: 271: TRISD = 0x00;
363 0DEE 1683 bsf 3,5
364 0DEF 0188 clrf 8 ;volatile
365 ;lcd.c: 272: }
366 0DF0 1283 bcf 3,5
367 0DF1 0008 return
368 ;lcd.c: 321: void Lcd_MoveTo_Position(unsigned
+ char position)
369 ;lcd.c: 322: {
370 0DF2 _Lcd_MoveTo_Position
371 ; _cmd assigned to ?a_Lcd_MoveTo_Position+0
372 0000 _Lcd_MoveTo_Position$cmd set ?a_Lcd_MoveTo_Posi
+ tion
373 ; _position assigned to ?a_Lcd_MoveTo_Position+
+ 1
374 0000 _Lcd_MoveTo_Position$position set ?a_Lcd_MoveTo
+ _Position+1
375 ;_position stored from w
376 0DF2 0183 clrf 3 ;select bank 0
377 0DF3 00D2 movwf ?a_Lcd_MoveTo_Position+1
378 ;lcd.c: 323: unsigned char cmd=0x80;
379 0DF4 3080 movlw -128
380 0DF5 00D1 movwf ?a_Lcd_MoveTo_Position
381 ;lcd.c: 325: if(position > 80)
382 0DF6 3051 movlw 81
383 0DF7 0252 subwf ?a_Lcd_MoveTo_Position+1,w
384 0DF8 1C03 btfss 3,0
385 0DF9 2DFC goto l82
386 ;lcd.c: 326: position = 80;
387 0DFA 3050 movlw 80
388 0DFB 00D2 movwf ?a_Lcd_MoveTo_Position+1
389 0DFC l82
390 ;lcd.c: 327: lcdcounter=position;
391 0DFC 0852 movf ?a_Lcd_MoveTo_Position+1,w
392 0DFD 00A0 movwf _lcdcounter
393 ;lcd.c: 328: if (position > 59)
394 0DFE 303C movlw 60
395 0DFF 0252 subwf ?a_Lcd_MoveTo_Position+1,w
396 0E00 1C03 btfss 3,0
397 0E01 2E04 goto l83
398 ;lcd.c: 329: position += 0x18;
399 0E02 3018 movlw 24
400 0E03 2E0F goto L8
401 ;lcd.c: 330: else
402 0E04 l83
403 ;lcd.c: 331: {
404 0E04 3028 movlw 40
405 0E05 0252 subwf ?a_Lcd_MoveTo_Position+1,w
406 0E06 1C03 btfss 3,0
407 0E07 2E0A goto l85
408 ;lcd.c: 333: position -= 0x14;
409 0E08 30EC movlw -20
410 0E09 2E0F goto L8
411 ;lcd.c: 334: else
412 0E0A l85
413 ;lcd.c: 335: {
414 0E0A 3014 movlw 20
415 0E0B 0252 subwf ?a_Lcd_MoveTo_Position+1,w
416 0E0C 1C03 btfss 3,0
417 0E0D 2E10 goto l84
418 ;lcd.c: 337: position += 0x2c;
419 0E0E 302C movlw 44
420 0E0F L8
421 0E0F 07D2 addwf ?a_Lcd_MoveTo_Position+1
422 ;lcd.c: 338: }
423 0E10 l84
424 ;lcd.c: 339: }
425 ;lcd.c: 340: cmd=cmd|position;
426 0E10 0852 movf ?a_Lcd_MoveTo_Position+1,w
427 0E11 04D1 iorwf ?a_Lcd_MoveTo_Position
428 ;lcd.c: 341: while(Lcd_Check_Busy());
429 0E12 l88
430 0E12 2509 fcall _Lcd_Check_Busy
431 0E13 3800 iorlw 0
432 0E14 1D03 btfss 3,2
433 0E15 2E12 goto l88
434 ;lcd.c: 342: Lcd_Write_Cmd(cmd);
435 0E16 0851 movf ?a_Lcd_MoveTo_Position,w
436 0E17 2D1C ljmp _Lcd_Write_Cmd
437 ;lcd.c: 63: void Lcd_Cursor_Left(void)
438 ;lcd.c: 64: {
439 0E18 _Lcd_Cursor_Left
440 ; _temp_lcdcounter assigned to ?a_Lcd_Cursor_Le
+ ft+0
441 0000 _Lcd_Cursor_Left$temp_lcdcounter set ?a_Lcd_Cur
+ sor_Left
442 ;lcd.c: 65: unsigned char temp_lcdcounter = 0;
443 0E18 0183 clrf 3 ;select bank 0
444 0E19 01CB clrf ?a_Lcd_Cursor_Left
445 ;lcd.c: 67: if((lcdcounter == 0) || (lcdcounter
+ == 20) || (lcdcounter == 40) || (lcdcounter ==
+ 60))
446 0E1A 08A0 movf _lcdcounter
447 0E1B 1903 btfsc 3,2
448 0E1C 2E29 goto u120
449 0E1D 0820 movf _lcdcounter,w
450 0E1E 3A14 xorlw 20
451 0E1F 1903 btfsc 3,2
452 0E20 2E29 goto u120
453 0E21 0820 movf _lcdcounter,w
454 0E22 3A28 xorlw 40
455 0E23 1903 btfsc 3,2
456 0E24 2E29 goto u120
457 0E25 0820 movf _lcdcounter,w
458 0E26 3A3C xorlw 60
459 0E27 1D03 btfss 3,2
460 0E28 2E2C goto l19
461 0E29 u120
462 ;lcd.c: 68: {
463 0E29 0820 movf _lcdcounter,w
464 0E2A 3E13 addlw 19
465 0E2B 2E2D goto L1
466 ;lcd.c: 70: }
467 0E2C l19
468 ;lcd.c: 72: {
469 0E2C 0320 decf _lcdcounter,w
470 0E2D L1
471 0E2D 00CB movwf ?a_Lcd_Cursor_Left
472 ;lcd.c: 74: }
473 ;lcd.c: 75: Lcd_MoveTo_Position(temp_lcdcounter
+ );
474 0E2E 2DF2 ljmp _Lcd_MoveTo_Position
475 ;lcd.c: 85: void Lcd_Cursor_Right(void)
476 ;lcd.c: 86: {
477 0E2F _Lcd_Cursor_Right
478 ; _temp_lcdcounter assigned to ?a_Lcd_Cursor_Ri
+ ght+0
479 0000 _Lcd_Cursor_Right$temp_lcdcounter set ?a_Lcd_Cu
+ rsor_Right
480 ;lcd.c: 87: unsigned char temp_lcdcounter = 0;
481 0E2F 0183 clrf 3 ;select bank 0
482 0E30 01CB clrf ?a_Lcd_Cursor_Right
483 ;lcd.c: 89: if((lcdcounter == 19) || (lcdcounte
+ r == 39) || (lcdcounter == 59) || (lcdcounter =
+ = 79))
484 0E31 0820 movf _lcdcounter,w
485 0E32 3A13 xorlw 19
486 0E33 1903 btfsc 3,2
487 0E34 2E41 goto u190
488 0E35 0820 movf _lcdcounter,w
489 0E36 3A27 xorlw 39
490 0E37 1903 btfsc 3,2
491 0E38 2E41 goto u190
492 0E39 0820 movf _lcdcounter,w
493 0E3A 3A3B xorlw 59
494 0E3B 1903 btfsc 3,2
495 0E3C 2E41 goto u190
496 0E3D 0820 movf _lcdcounter,w
497 0E3E 3A4F xorlw 79
498 0E3F 1D03 btfss 3,2
499 0E40 2E44 goto l22
500 0E41 u190
501 ;lcd.c: 90: {
502 0E41 0820 movf _lcdcounter,w
503 0E42 3EED addlw -19
504 0E43 2E45 goto L2
505 ;lcd.c: 92: }
506 0E44 l22
507 ;lcd.c: 94: {
508 0E44 0A20 incf _lcdcounter,w
509 0E45 L2
510 0E45 00CB movwf ?a_Lcd_Cursor_Right
511 ;lcd.c: 96: }
512 ;lcd.c: 97: Lcd_MoveTo_Position(temp_lcdcounter
+ );
513 0E46 2DF2 ljmp _Lcd_MoveTo_Position
514 ;lcd.c: 107: void Lcd_Cursor_Up(void)
515 ;lcd.c: 108: {
516 0E47 _Lcd_Cursor_Up
517 ; _temp_lcdcounter assigned to ?a_Lcd_Cursor_Up
+ +0
518 0000 _Lcd_Cursor_Up$temp_lcdcounter set ?a_Lcd_Curso
+ r_Up
519 ;lcd.c: 109: unsigned char temp_lcdcounter = 0;
520 0E47 0183 clrf 3 ;select bank 0
521 0E48 01CB clrf ?a_Lcd_Cursor_Up
522 ;lcd.c: 111: if(lcdcounter <= 19)
523 0E49 3014 movlw 20
524 0E4A 0220 subwf _lcdcounter,w
525 ;lcd.c: 112: {
526 0E4B 0820 movf _lcdcounter,w
527 0E4C 1803 btfsc 3,0
528 0E4D 2E50 goto L4
529 0E4E 3E3C addlw 60
530 0E4F 2E51 goto L3
531 ;lcd.c: 114: }
532 ;lcd.c: 116: {
533 0E50 L4
534 0E50 3EEC addlw -20
535 0E51 L3
536 0E51 00CB movwf ?a_Lcd_Cursor_Up
537 ;lcd.c: 118: }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -