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

📄 p18demo.lst

📁 详细讲解了PIC18单片机的各个功能模块的使用方法和运用技巧
💻 LST
📖 第 1 页 / 共 5 页
字号:
000104 A081           00166         btfss   select                  ;wait for RB0 release
000106 EF?? F???      00167         goto    $-2
                      00168 
00010A 0E00           00169         movlw   0x00                    ;voltmeter
00010C 6E??           00170         movwf   ptr_pos
00010E EC?? F???      00171         call    stan_char_1
                      00172 
000112 0E40           00173         movlw   .64                     ;RA4=Next  RB0=Now
000114 6E??           00174         movwf   ptr_pos
000116 EC?? F???      00175         call    stan_char_2
MPASM  5.20                       P18DEMO.ASM   5-28-2008  15:51:06         PAGE  5


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00011A                00176 v_wait
00011A A081           00177         btfss   select                  ;voltmeter measurement ??
00011C D???           00178         bra     voltmeter
00011E B880           00179         btfsc   scroll                  ;next mode ??
000120 D???           00180         bra     v_wait                  ;NO
000122 A880           00181         btfss   scroll                  ;YES
000124 D???           00182         bra     $-2                     ;wait for RA4 release
                      00183 ;------------------ BUZZER --------------------------------------
000126                00184 menu_buz
000126 A081           00185         btfss   select                  ;wait for RB0 release
000128 D???           00186         bra     $-2                     
                      00187 
00012A 0E10           00188         movlw   .16                     ;buzzer
00012C 6E??           00189         movwf   ptr_pos
00012E EC?? F???      00190         call    stan_char_1
                      00191 
000132 0E40           00192         movlw   .64                     ;RA4=Next  RB0=Now
000134 6E??           00193         movwf   ptr_pos
000136 EC?? F???      00194         call    stan_char_2
00013A                00195 b_wait
00013A A081           00196         btfss   select                  ;Buzzer sound ??
00013C EF?? F???      00197         goto    buzzer                  ;YES
000140 B880           00198         btfsc   scroll                  ;NO, next mode ??
000142 EF?? F???      00199         goto    b_wait                  ;NO
000146 A880           00200         btfss   scroll                  ;YES
000148 D???           00201         bra     $-2                     ;wait for RA4 release
                      00202 ;----------------- TEMPERATURE MEASUREMENT ----------------------
00014A                00203 menu_temp
00014A A880           00204         btfss   scroll                  ;wait for RA4 release
00014C D???           00205         bra     $-2             
                      00206 
00014E 0E20           00207         movlw   .32                     ;temperature
000150 6E??           00208         movwf   ptr_pos
000152 EC?? F???      00209         call    stan_char_1
                      00210 
000156 0E40           00211         movlw   .64                     ;RA4=Next  RB0=Now
000158 6E??           00212         movwf   ptr_pos
00015A EC?? F???      00213         call    stan_char_2
00015E                00214 t_wait
00015E A081           00215         btfss   select                  ;temperature measurement ??
000160 D???           00216         bra     temp                    ;YES
000162 B880           00217         btfsc   scroll                  ;NO, next mode ??
000164 D???           00218         bra     t_wait                  ;NO
000166 A880           00219         btfss   scroll                  ;YES
000168 D???           00220         bra     $-2                     ;wait for release
                      00221 ;------------------ CLOCK TIME ----------------------------------
00016A                00222 menu_clock
00016A A081           00223         btfss   select                  ;wait for RB0 release
00016C D???           00224         bra     $-2             
                      00225 
00016E 0E30           00226         movlw   .48                     ;clock
000170 6E??           00227         movwf   ptr_pos
000172 EC?? F???      00228         call    stan_char_1
MPASM  5.20                       P18DEMO.ASM   5-28-2008  15:51:06         PAGE  6


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00229 
000176 0E40           00230         movlw   .64                     ;RA4=Next  RB0=Now
000178 6E??           00231         movwf   ptr_pos
00017A EC?? F???      00232         call    stan_char_2
00017E                00233 c_wait
00017E A081           00234         btfss   select                  ;goto time ??
000180 D???           00235         bra     clock                   ;YES
000182 B880           00236         btfsc   scroll                  ;NO, next mode ??
000184 D???           00237         bra     c_wait                  ;NO
000186 A880           00238         btfss   scroll                  ;YES
000188 D???           00239         bra     $-2                     ;wait for release
                      00240 ;-------------------------------------------------------------------
00018A D???           00241         bra     menu                    ;begining of menu
00018C 0012           00242         return
                      00243 
                      00244 ;*******************************************************************
                      00245 
                      00246 
                      00247 
                      00248 
                      00249 ;************* STANDARD USER CODE **********************************
                      00250 
                      00251 ;------------- Voltmeter--------------------------------------------
00018E                00252 voltmeter
00018E A081           00253         btfss   select                  ;wait for RB0 release
000190 D???           00254         bra     $-2
                      00255 
000192 0E41           00256         movlw   B'01000001'             ;configure A/D converter        
000194 6EC2           00257         movwf   ADCON0                  ;turn A/D on
000196 0E0E           00258         movlw   b'00001110'             ;RA0 = analog input
000198 6EC1           00259         movwf   ADCON1
                      00260 
00019A 0EA0           00261         movlw   .160                    ;send "Volts = " to the LCD
00019C 6E??           00262         movwf   ptr_pos
00019E EC?? F???      00263         call    stan_char_1
0001A2                00264 volts_again
0001A2 84C2           00265         bsf     ADCON0,GO               ;start conversion
0001A4 B4C2           00266         btfsc   ADCON0,GO
0001A6 D???           00267         bra     $-2
0001A8 50C4           00268         movf    ADRESH,W
                      00269 
0001AA 6E??           00270         movwf   AARGB0                  ;move adresh into AARGB1
0001AC 0EC3           00271         movlw   0xC3                    ;19.5mV/step   0xC3 = 195
0001AE 6E??           00272         movwf   BARGB0
0001B0 EC?? F???      00273         call    UMUL0808L
                      00274         
0001B4 0E64           00275         movlw   0x64                    ;divide result by 100 (0x64)
0001B6 6E??           00276         movwf   BARGB0
0001B8 EC?? F???      00277         call    UDIV1608L
                      00278         
0001BC 50??           00279         movf    AARGB0,W                ;prepare for 16-bit binary to BCD
0001BE 6E??           00280         movwf   NumH
0001C0 50??           00281         movf    AARGB1,W
MPASM  5.20                       P18DEMO.ASM   5-28-2008  15:51:06         PAGE  7


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0001C2 6E??           00282         movwf   NumL
0001C4 EC?? F???      00283         call    bin16_bcd               ;get volts ready for LCD
                      00284         
0001C8 EC?? F???      00285         call    LCDLine_2               ;display A/D result on 2nd line
0001CC 50??           00286         movf    Hund,W                  ;get hunds
0001CE EC?? F???      00287         call    bin_bcd
0001D2 50??           00288         movf    LSD,W                   ;send high digit from the LSD #.xx      
0001D4 6E??           00289         movwf   temp_wr
0001D6 EC?? F???      00290         call    d_write
0001DA 0E2E           00291         movlw   A'.'                    ;send decimal point "."
0001DC 6E??           00292         movwf   temp_wr
0001DE EC?? F???      00293         call    d_write
                      00294         
0001E2 50??           00295         movf    Tens,W                  ;get tens
0001E4 EC?? F???      00296         call    bin_bcd
0001E8 50??           00297         movf    LSD,W                   ;send low digit   x.#x
0001EA 6E??           00298         movwf   temp_wr
0001EC EC?? F???      00299         call    d_write
                      00300 
0001F0 50??           00301         movf    Ones,W                  ;get ones
0001F2 EC?? F???      00302         call    bin_bcd
0001F6 50??           00303         movf    LSD,W                   ;send low digit   x.x#
0001F8 6E??           00304         movwf   temp_wr
0001FA EC?? F???      00305         call    d_write
0001FE 0E56           00306         movlw   A'V'                    ;send "V" unit
000200 6E??           00307         movwf   temp_wr
000202 EC?? F???      00308         call    d_write
                      00309 
000206 0E20           00310         movlw   0x20                    ;3 spaces       
000208 6E??           00311         movwf   temp_wr
00020A EC?? F???      00312         call    d_write
00020E 0E20           00313         movlw   0x20                    
000210 6E??           00314         movwf   temp_wr
000212 EC?? F???      00315         call    d_write
000216 0E20           00316         movlw   0x20                    
000218 6E??           00317         movwf   temp_wr
00021A EC?? F???      00318         call    d_write
00021E 0E52           00319         movlw   A'R'                    ;send "RB0=Exit" to LCD
000220 6E??           00320         movwf   temp_wr
000222 EC?? F???      00321         call    d_write
000226 0E42           00322         movlw   A'B'                    
000228 6E??           00323         movwf   temp_wr
00022A EC?? F???      00324         call    d_write
00022E 0E30           00325         movlw   A'0'                    
000230 6E??           00326         movwf   temp_wr
000232 EC?? F???      00327         call    d_write
000236 0E3D           00328         movlw   A'='                    
000238 6E??           00329         movwf   temp_wr
00023A EC?? F???      00330         call    d_write
00023E 0E45           00331         movlw   A'E'                    
000240 6E??           00332         movwf   temp_wr
000242 EC?? F???      00333         call    d_write
000246 0E78           00334         movlw   A'x'            
MPASM  5.20                       P18DEMO.ASM   5-28-2008  15:51:06         PAGE  8


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

000248 6E??           00335         movwf   temp_wr
00024A EC?? F???      00336         call    d_write
00024E 0E69           00337         movlw   A'i'                    
000250 6E??           00338         movwf   temp_wr
000252 EC?? F???      00339         call    d_write
000256 0E74           00340         movlw   A't'                    
000258 6E??           00341         movwf   temp_wr
00025A EC?? F???      00342         call    d_write
00025E 0E20           00343         movlw   0x20                    ;2 spaces       
000260 6E??           00344         movwf   temp_wr
000262 EC?? F???      00345         call    d_write
000266 0E20           00346         movlw   0x20                    
000268 6E??           00347         movwf   temp_wr
00026A EC?? F???      00348         call    d_write
                      00349 
00026E 0E0D           00350         movlw   "\r"                    ;move data into TXREG
000270 6EAD           00351         movwf   TXREG                   ;carriage return
000272 A2AC           00352         btfss   TXSTA,TRMT              ;wait for data TX
000274 D???           00353         bra     $-2
                      00354 
000276 A081           00355         btfss   select                  ;exit volt measurement ??
000278 D???           00356         bra     menu_buz                        ;YES
00027A D???           00357         bra     volts_again             ;NO, do conversion again
                      00358 
                      00359 ;--------------------- BUZZER --------------------------------------
00027C                00360 buzzer
00027C A081           00361         btfss   select                  ;wait for RB0 release
00027E D???           00362         bra     $-2
                      00363 
000280 0E80           00364         movlw   0x80                    ;start at these PWM values
000282 6ECB           00365         movwf   PR2                     ;initialize PWM period 
000284 0E80           00366         movlw   0x80                    
000286 6EBE           00367         movwf   CCPR1L                  ;initialize PWM duty cycle

⌨️ 快捷键说明

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