⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p18demo.lst

📁 详细讲解了PIC18单片机的各个功能模块的使用方法和运用技巧
💻 LST
📖 第 1 页 / 共 5 页
字号:
0003E2 EC?? F???      00546         call    d_write
0003E6 0E20           00547         movlw   0x20                    ;space
0003E8 6E??           00548         movwf   temp_wr 
0003EA EC?? F???      00549         call    d_write
0003EE 0E3D           00550         movlw   A'='
0003F0 6E??           00551         movwf   temp_wr 
0003F2 EC?? F???      00552         call    d_write
                      00553 
0003F6 0E20           00554         movlw   0x20                    ;space
0003F8 6E??           00555         movwf   temp_wr 
0003FA EC?? F???      00556         call    d_write
                      00557 
0003FE 50??           00558         movf    MSD,W                   ;send high digit
000400 6E??           00559         movwf   temp_wr
000402 EC?? F???      00560         call    d_write
000406 50??           00561         movf    MsD,W                   ;send middle digit
000408 6E??           00562         movwf   temp_wr
00040A EC?? F???      00563         call    d_write
00040E 50??           00564         movf    LSD,W                   ;send low digit
000410 6E??           00565         movwf   temp_wr
000412 EC?? F???      00566         call    d_write
000416 0E43           00567         movlw   A'C'                    ;send "C" for celcius
000418 6E??           00568         movwf   temp_wr 
00041A EC?? F???      00569         call    d_write
                      00570 
00041E 0E20           00571         movlw   0x20                    ;space
000420 6E??           00572         movwf   temp_wr 
000422 EC?? F???      00573         call    d_write
000426 0E20           00574         movlw   0x20                    ;space
000428 6E??           00575         movwf   temp_wr 
MPASM  5.20                       P18DEMO.ASM   5-28-2008  15:51:06         PAGE 13


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00042A EC?? F???      00576         call    d_write
00042E 0E20           00577         movlw   0x20                    ;space
000430 6E??           00578         movwf   temp_wr 
000432 EC?? F???      00579         call    d_write
                      00580         
000436 EC?? F???      00581         call    LCDLine_2               ;send "RB0 = Exit" to LCD
00043A 0E90           00582         movlw   .144
00043C 6E??           00583         movwf   ptr_pos
00043E EC?? F???      00584         call    stan_char_2
                      00585         
000442 A081           00586         btfss   select                  ;wait for RB0 release
000444 D???           00587         bra     $-2
000446 EC?? F???      00588         call    delay_100ms
00044A A081           00589         btfss   select                  ;exit ?
00044C D???           00590         bra     menu_clock              ;YES, goto main menu
00044E B09E           00591         btfsc   PIR1,TMR1IF             ;2 second overflow occur ??
000450 EC?? F???      00592         call    write_eeprom            ;YES
000454 D???           00593         bra     get_temp                ;NO, get temperature again
                      00594 
                      00595         
                      00596 ;----------------- CLOCK ------------------------------------------
                      00597 
000456                00598 clock
000456 A081           00599         btfss   select                  ;wait for RB0 button release
000458 D???           00600         bra     $-2
00045A 0E0F           00601         movlw   0x0F                    ;intitialize TIMER1
00045C 6ECD           00602         movwf   T1CON
00045E 6A??           00603         clrf    seconds
000460 6A??           00604         clrf    minutes
000462 6A??           00605         clrf    hours
000464                00606 overflow        
000464 909E           00607         bcf     PIR1,TMR1IF
000466 0E80           00608         movlw   0x80            
000468 6ECF           00609         movwf   TMR1H                   ;load regs for 1 sec overflow
00046A 6ACE           00610         clrf    TMR1L
                      00611 
00046C 2A??           00612         incf    seconds,F               ;increment seconds
00046E 50??           00613         movf    seconds,W
000470 083C           00614         sublw   .60
000472 A4D8           00615         btfss   STATUS,Z                ;increment minutes ?
000474 D???           00616         bra     clk_done
000476 2A??           00617         incf    minutes,F               
000478 6A??           00618         clrf    seconds
                      00619 
00047A 50??           00620         movf    minutes,W
00047C 083C           00621         sublw   .60
00047E A4D8           00622         btfss   STATUS,Z                ;increment hours ?
000480 D???           00623         bra     clk_done        
000482 2A??           00624         incf    hours,F                 
000484 6A??           00625         clrf    minutes
                      00626 
000486 50??           00627         movf    hours,W
000488 080D           00628         sublw   .13
MPASM  5.20                       P18DEMO.ASM   5-28-2008  15:51:06         PAGE 14


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00048A A4D8           00629         btfss   STATUS,Z
00048C D???           00630         bra     clk_done
00048E 0E01           00631         movlw   .1                      ;start a new 12 hour period
000490 6E??           00632         movwf   hours
000492                00633 clk_done
000492 50??           00634         movf    hours,W                 ;send hours to LCD
000494 EC?? F???      00635         call    bin_bcd
                      00636 
000498 EC?? F???      00637         call    LCDLine_1               ;place time on line 1
                      00638 
00049C 50??           00639         movf    MsD,W                   ;send middle digit
00049E 6E??           00640         movwf   temp_wr
0004A0 EC?? F???      00641         call    d_write
0004A4 50??           00642         movf    LSD,W                   ;send low digit
0004A6 6E??           00643         movwf   temp_wr
0004A8 EC?? F???      00644         call    d_write 
0004AC 0E3A           00645         movlw   0x3A                    ;send  :   colon
0004AE 6E??           00646         movwf   temp_wr
0004B0 EC?? F???      00647         call    d_write
                      00648 
0004B4 50??           00649         movf    minutes,W               ;send minutes to LCD
0004B6 EC?? F???      00650         call    bin_bcd
                      00651 
0004BA 50??           00652         movf    MsD,W                   ;send middle digit
0004BC 6E??           00653         movwf   temp_wr
0004BE EC?? F???      00654         call    d_write
0004C2 50??           00655         movf    LSD,W                   ;send low digit
0004C4 6E??           00656         movwf   temp_wr
0004C6 EC?? F???      00657         call    d_write 
0004CA 0E3A           00658         movlw   0x3A                    ; send :   colon
0004CC 6E??           00659         movwf   temp_wr
0004CE EC?? F???      00660         call    d_write
                      00661 
0004D2 50??           00662         movf    seconds,W               ;send seconds to LCD
0004D4 EC?? F???      00663         call    bin_bcd
                      00664 
0004D8 50??           00665         movf    MsD,W                   ;send middle digit
0004DA 6E??           00666         movwf   temp_wr
0004DC EC?? F???      00667         call    d_write
0004E0 50??           00668         movf    LSD,W                   ;send low digit
0004E2 6E??           00669         movwf   temp_wr
0004E4 EC?? F???      00670         call    d_write
                      00671 
0004E8 0E20           00672         movlw   0x20                    ;send 3 spaces after 00:00:00
0004EA 6E??           00673         movwf   temp_wr
0004EC EC?? F???      00674         call    d_write
0004F0 0E20           00675         movlw   0x20
0004F2 6E??           00676         movwf   temp_wr
0004F4 EC?? F???      00677         call    d_write
0004F8 0E20           00678         movlw   0x20
0004FA 6E??           00679         movwf   temp_wr
0004FC EC?? F???      00680         call    d_write
                      00681         
MPASM  5.20                       P18DEMO.ASM   5-28-2008  15:51:06         PAGE 15


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

000500 0E70           00682         movlw   .112                    ;send "RA4=Dn RB0=Menu" to LCD
000502 6E??           00683         movwf   ptr_pos
000504 EC?? F???      00684         call    stan_char_2
                      00685 
000508 A880           00686         btfss   scroll                  ;set time ??
00050A D???           00687         bra     set_time
                      00688 
00050C A081           00689         btfss   select                  ;return to main menu ??
00050E D???           00690         bra     menu
                      00691         
000510 A09E           00692         btfss   PIR1,TMR1IF             ;has timer1 overflowed ?        
000512 D???           00693         bra     $-2                     ;NO, wait til overflow
000514 D???           00694         bra     overflow                ;YES
                      00695 
000516 0012           00696         return
                      00697 ;*******************************************************************
                      00698 
                      00699 
                      00700 ;************************** ROUTINES ******************************
                      00701 ;******************************************************************
                      00702 ;******************************************************************
                      00703                 
                      00704 ;----Standard code, Place characters on line-1--------------------------
000518                00705 stan_char_1
000518 EC?? F???      00706         call    LCDLine_1               ;mvoe cursor to line 1 
00051C 0E10           00707         movlw   .16                     ;1-full line of LCD
00051E 6E??           00708         movwf   ptr_count
000520 0E??           00709         movlw   UPPER stan_table
000522 6EF8           00710         movwf   TBLPTRU
000524 0E??           00711         movlw   HIGH stan_table
000526 6EF7           00712         movwf   TBLPTRH
000528 0E??           00713         movlw   LOW stan_table
00052A 6EF6           00714         movwf   TBLPTRL
00052C 50??           00715         movf    ptr_pos,W
00052E 26F6           00716         addwf   TBLPTRL,F
000530 6AE8           00717         clrf    WREG
000532 22F7           00718         addwfc  TBLPTRH,F
000534 22F8           00719         addwfc  TBLPTRU,F
                      00720 
000536                00721 stan_next_char_1
000536 0009           00722         tblrd   *+
000538 CFF5 F???      00723         movff   TABLAT,temp_wr                  
00053C EC?? F???      00724         call    d_write                 ;send character to LCD
                      00725 
000540 2E??           00726         decfsz  ptr_count,F             ;move pointer to next char
000542 D???           00727         bra     stan_next_char_1
                      00728 
000544 0E0A           00729         movlw   "\n"                    ;move data into TXREG
000546 6EAD           00730         movwf   TXREG                   ;next line
000548 A2AC           00731         btfss   TXSTA,TRMT              ;wait for data TX
00054A EF?? F???      00732         goto    $-2
00054E 0E0D           00733         movlw   "\r"                    ;move data into TXREG
000550 6EAD           00734         movwf   TXREG                   ;carriage return
MPASM  5.20                       P18DEMO.ASM   5-28-2008  15:51:06         PAGE 16


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

000552 A2AC           00735         btfss   TXSTA,TRMT              ;wait for data TX
000554 EF?? F???      00736         goto    $-2
                      00737 
000558 0012           00738         return
                      00739 
                      00740 ;----Standard code, Place characters on line-2--------------------------
00055A                00741 stan_char_2     
00055A EC?? F???      00742         call    LCDLine_2               ;move cursor to line 2 
00055E 0E10           00743         movlw   .16                     ;1-full line of LCD
000560 6E??           00744         movwf   ptr_count
000562 0E??           00745         movlw   UPPER stan_table
000564 6EF8           00746         movwf   TBLPTRU
000566 0E??           00747         movlw   HIGH stan_table

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -