MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 1 LOC OBJECT CODE LINE SOURCE TEXT VALUE Warning[215]: Processor superseded by command line. Verify processor symbol. 00001 List p=16C84 00002 #include 00001 LIST 00002 ; P16C84.INC Standard Header File, Version 1.00 Microchip Technology, Inc. Message[301]: MESSAGE: (Processor-header file mismatch. Verify selected processor.) 00134 LIST 00003 ;------------------------------------------------------ 00004 ; Decliation 00005 ;----------------------------------------------------- 00006 0000000C 00007 DPDT EQU 0CH ; LCD Output data 0000000F 00008 CNT1 EQU 0FH 00000010 00009 CNT2 EQU 10H 00000011 00010 CNT3 EQU 11H 00000012 00011 CNT4 EQU 12H 00000013 00012 CNT5 EQU 13H 00013 00000014 00014 BIN_H EQU 14H ; Binary Data area 00000015 00015 BIN_L EQU 15H 00000016 00016 R0 EQU 16H ; BCD Data area 00000017 00017 R1 EQU 17H 00000018 00018 R2 EQU 18H 00000019 00019 Count EQU 19H ; Count 0000001A 00020 Temp1 EQU 1AH 0000001B 00021 ASC1 EQU 1BH ; ASCII digit area 0000001C 00022 ASC2 EQU 1CH 0000001D 00023 ASC3 EQU 1DH 0000001E 00024 ASC4 EQU 1EH 00025 0000001F 00026 WTEMP EQU 1FH ; Stack for W register 00000020 00027 STTEMP EQU 20H ; Stack for Status register 00000021 00028 PULSEUP EQU 21H ; Pulse Multi at up 00000022 00029 BIN_L2 EQU 22H 00000023 00030 BIN_H2 EQU 23H 00000024 00031 SIF1 EQU 24H ; Shift Register HC164 No.1 Data 00000025 00032 SIF2 EQU 25H ; Shift Register HC164 No.2 Data 00000026 00033 SIFLOOP EQU 26H 00000027 00034 I_SIF1 EQU 27H ; Inverted Shift Register Data No.1 00000028 00035 I_SIF2 EQU 28H ; Inverted Shift register Data No.2 00000029 00036 PULSEDW EQU 29H ; Pluse Multi at Down 00037 0000002A 00038 Mode EQU 2AH ; Display "TX"/"RX" 0000002B 00039 CNT6 EQU 2BH ; For 100mS timer 0000002C 00040 INC_MX EQU 2CH ; If frequency reaches to the highet(50.800), th is 00041 ; will set "01". 0000002D 00042 DEC_MX EQU 2DH ; If frequency reaches to the lowest(50.500), th is 00043 ; will set "01". 00044 Warning[205]: Found directive in column 1. (ORG) 0000 00045 ORG h'0' MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 2 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0000 2805 00046 GOTO Main ; Main Routine Warning[205]: Found directive in column 1. (ORG) 0004 00047 ORG 04H 0004 286C 00048 GOTO Int ; Set Interuput routine address 00049 0005 00050 Main 00051 0005 212F 00052 CALL PORTINI ; Port A and B initialize 0006 1605 00053 BSF PORTA,4 ; Relay OFF (Receirve) 00054 00055 ;*************PLL Initialize 10049KHz ****************** 0007 3041 00056 MOVLW B'01000001' ; HC164 No.1 Data N7--N0 0008 00A7 00057 MOVWF I_SIF1 0009 3027 00058 MOVLW B'00100111' ; HC164 No.2 Data N15--N8 000A 00A8 00059 MOVWF I_SIF2 00060 000B 21E1 00061 CALL Inv000 ; Bit Patturn exchange 000C 20B9 00062 CALL Sft000 ; Call Shift Test 00063 ;********************************************************* 00064 000D 3052 00065 MOVLW 'R' ; Initial Mode is RX as Receive 000E 00AA 00066 MOVWF Mode ; Store Initial Mode data 00067 000F 3002 00068 MOVLW 2H ; 600(Dec)=258H 0010 00A3 00069 MOVWF BIN_H2 0011 3058 00070 MOVLW H'58' ; 58H 0012 00A2 00071 MOVWF BIN_L2 0013 3003 00072 MOVLW H'3' ; Rotary Encoder pulse multi 0014 00A1 00073 MOVWF PULSEUP 0015 00A9 00074 MOVWF PULSEDW 00075 0016 3000 00076 MOVLW H'0' ; Max/Min Frequency flag clear 0017 00AC 00077 MOVWF INC_MX 0018 00AD 00078 MOVWF DEC_MX 00079 0019 2139 00080 CALL BinTOBCD 001A 2108 00081 CALL BCDtoASC 00082 001B 217A 00083 CALL LCD_INI ; LCD Module Initialize 00084 001C 21BC 00085 CALL LCD_CLR ; Opening Message 001D 3050 00086 MOVLW 'P' 001E 21A0 00087 CALL LCD_DATA 001F 304C 00088 MOVLW 'L' 0020 21A0 00089 CALL LCD_DATA 0021 304C 00090 MOVLW 'L' 0022 21A0 00091 CALL LCD_DATA 0023 3020 00092 MOVLW ' ' 0024 21A0 00093 CALL LCD_DATA 0025 3055 00094 MOVLW 'U' 0026 21A0 00095 CALL LCD_DATA 0027 306E 00096 MOVLW 'n' 0028 21A0 00097 CALL LCD_DATA MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 3 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0029 3069 00098 MOVLW 'i' 002A 21A0 00099 CALL LCD_DATA 002B 3074 00100 MOVLW 't' 002C 21A0 00101 CALL LCD_DATA 002D 3020 00102 MOVLW ' ' 002E 21A0 00103 CALL LCD_DATA 002F 304A 00104 MOVLW 'J' 0030 21A0 00105 CALL LCD_DATA 0031 3046 00106 MOVLW 'F' 0032 21A0 00107 CALL LCD_DATA 0033 3032 00108 MOVLW '2' 0034 21A0 00109 CALL LCD_DATA 0035 3053 00110 MOVLW 'S' 0036 21A0 00111 CALL LCD_DATA 0037 3044 00112 MOVLW 'D' 0038 21A0 00113 CALL LCD_DATA 0039 3052 00114 MOVLW 'R' 003A 21A0 00115 CALL LCD_DATA 00116 003B 21D6 00117 CALL TIM1S 003C 21D6 00118 CALL TIM1S 00119 003D 20DC 00120 CALL DISP_ASC 00121 003E 3090 00122 MOVLW B'10010000' ;RB0/INT 003F 008B 00123 MOVWF INTCON ; 00124 0040 00125 LOOP 0040 1986 00126 BTFSC PORTB,3 0041 2857 00127 GOTO Loop10 00128 0042 082A 00129 MOVF Mode,W 0043 3C52 00130 SUBLW 'R' ; Last Mode data is 'R' ? 0044 1903 00131 BTFSC STATUS,2 ; Check Zero flag 0045 2840 00132 Goto LOOP ; 00133 ;----------------------- (TX->RX Process)------------------------------ 0046 138B 00134 BCF INTCON,GIE ; Disable Interrupt during transaction. 0047 3052 00135 MOVLW 'R' 0048 00AA 00136 MOVWF Mode 0049 20FD 00137 CALL DISP_ASC_10 ; Change character TX->RX 00138 ;***************************************************************** 004A 30C7 00139 MOVLW B'11000111' ; Minus 4551KHz (1000111000111) 004B 02A7 00140 SUBWF I_SIF1,1 ; Store low byte (D7-D0) 004C 1803 00141 BTFSC STATUS,0 ; Check Carry 004D 284F 00142 GOTO LOOP8 ; If Carry=0 then skip decrement of I_SIF2 004E 03A8 00143 DECF I_SIF2,1 ; Decrement I_SIF2 004F 00144 LOOP8 004F 3011 00145 MOVLW B'00010001' ; 0050 02A8 00146 SUBWF I_SIF2,1 ; Store High byte (D15-D8) 00147 ;***************************************************************** 0051 21E1 00148 CALL Inv000 ; Bit Patturn exchange 0052 20B9 00149 CALL Sft000 ; Call Shift Test MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 4 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00150 0053 21DC 00151 CALL TIME100M ; 100mS Wait 0054 1605 00152 BSF PORTA,4 ; Relay OFF (Recieve) 0055 178B 00153 BSF INTCON,GIE ; Enable Interrupt 0056 286B 00154 GOTO Loop20 00155 ;---------------------------------------------------------------------- 0057 00156 Loop10 0057 082A 00157 MOVF Mode,W 0058 3C54 00158 SUBLW 'T' ; Last Mode data is 'T' ? 0059 1903 00159 BTFSC STATUS,2 ; Check Zero flag 005A 2840 00160 GOTO LOOP ; Last is 'TX' then nothing should do 00161 ;--------------------------- (RX->TX Process )-------------------------- 005B 138B 00162 BCF INTCON,GIE ; Disable Interrupt during transaction 005C 3054 00163 MOVLW 'T' 005D 00AA 00164 MOVWF Mode ; Store 'T' to Mode 005E 20FD 00165 CALL DISP_ASC_10 ; Change character RX->TX 00166 00167 ;****************************************************************** 005F 30C7 00168 MOVLW B'11000111' ; Plus 4551KHz (1000111000111) 0060 07A7 00169 ADDWF I_SIF1,1 ; Store low byte (D7-D0) 0061 1C03 00170 BTFSS STATUS,0 ; Carry ? 0062 2864 00171 GOTO Loop12 ; If Carry=0 then skip increment of I_SIF2 0063 0AA8 00172 INCF I_SIF2,1 ; Increment I_SIF2 0064 00173 Loop12 0064 3011 00174 MOVLW B'00010001' ; 0065 07A8 00175 ADDWF I_SIF2,1 ; Store High byte (D15-D8) 00176 ;****************************************************************** 0066 21E1 00177 CALL Inv000 ; Bit Patturn exchange 0067 20B9 00178 CALL Sft000 ; Call Shift Test 00179 0068 21DC 00180 CALL TIME100M ; 100mS Wait for PLL Stable (Moved to before Relay ON <- V1.2) 0069 1205 00181 BCF PORTA,4 ; Relay ON (Transmit) 006A 178B 00182 BSF INTCON,GIE ; Enable Interrupt 006B 00183 Loop20 006B 2840 00184 GOTO LOOP 00185 00186 ;------------------ Interruput prosessing --------------- 006C 00187 Int 006C 009F 00188 MOVWF WTEMP ; Push W register value to Temp 006D 0E03 00189 SWAPF STATUS,W 006E 00A0 00190 MOVWF STTEMP ; Push Status register to Temp 00191 006F 00192 Int100 ; Check Whchi is the pulse ,"Up" or "Down" ? 006F 1886 00193 BTFSC PORTB,1 ; Check PB1 0070 288A 00194 GOTO Int130 ; If PB1=1 goto "Up" data (Int130) 00195 0071 00196 Int110 ; If "Down Pulse" Message[305]: Using default destination of 1 (file). 0071 0BA9 00197 DECFSZ PULSEDW ; Decrement the multi and check 5 times continue 0072 2880 00198 Goto Int210 ; If 5 times yet, Goto Int210 0073 00199 Int120 0073 3000 00200 MOVLW H'0' ; Max.Frequency flag clear MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 5 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0074 00AC 00201 MOVWF INC_MX 00202 0075 082D 00203 MOVF DEC_MX,W ; Check whether the minimum or normal ? 0076 3C01 00204 SUBLW H'1' ; If DEC_MX is 01 then skip decrement 0077 1903 00205 BTFSC STATUS,2 ; Check Zero flag 0078 28A6 00206 Goto Int001 ; 00207 0079 03A2 00208 DECF BIN_L2,1 ; Decrement 007A 0822 00209 MOVF BIN_L2,W 007B 3CFF 00210 SUBLW H'FF' ; If 'FF' then decrement upper degit 007C 1D03 00211 BTFSS STATUS,2 007D 2883 00212 GOTO Int215 007E 03A3 00213 DECF BIN_H2,1 ; Decrement upper degit 007F 2883 00214 GOTO Int215 0080 00215 Int210 0080 3003 00216 MOVLW H'3' 0081 00A1 00217 MOVWF PULSEUP ; Reset "Up" multi 0082 28A6 00218 GOTO Int001 ; Goto RETURN 00219 0083 00220 Int215 0083 3003 00221 MOVLW H'3' 0084 00A1 00222 MOVWF PULSEUP ; Reset "Up" multi 0085 00A9 00223 MOVWF PULSEDW ; Reset "Down"multi 0086 0BA7 00224 DECFSZ I_SIF1,1 ; Decrement PLL Data HC164 No.1 0087 2889 00225 GOTO INT217 0088 0BA8 00226 DECFSZ I_SIF2,1 ; Decrement PLL Data HC164 No.2 0089 00227 INT217 0089 28A0 00228 GOTO Int002 ; New Data will be displaying and Frequency would be cha nged 00229 008A 00230 Int130 ; If "Up Pulse"; Message[305]: Using default destination of 1 (file). 008A 0BA1 00231 DECFSZ PULSEUP ; Increment the multi and check 5 times continue 008B 2896 00232 GOTO Int220 ; If 5 times yet, Goto Int220 008C 00233 Int140 008C 3000 00234 MOVLW H'0' ; Minimum frequency flag clear 008D 00AD 00235 MOVWF DEC_MX 00236 008E 082C 00237 MOVF INC_MX,W ; Check whether the maxmum or normal ? 008F 3C01 00238 SUBLW H'1' ; If DEC_MX is 01 then skip decrement 0090 1903 00239 BTFSC STATUS,2 ; Check Zero flag 0091 28A6 00240 Goto Int001 ; 00241 0092 0FA2 00242 INCFSZ BIN_L2,1 ; Increment 0093 2899 00243 GOTO Int225 0094 0AA3 00244 INCF BIN_H2,1 0095 2899 00245 GOTO Int225 0096 00246 Int220 0096 3003 00247 MOVLW H'3' 0097 00A9 00248 MOVWF PULSEDW ; Reset "Up" multi 0098 28A6 00249 GOTO Int001 ; Goto RETURN 00250 0099 00251 Int225 MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 6 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0099 3003 00252 MOVLW H'3' 009A 00A9 00253 MOVWF PULSEDW ; Reset "Down" Multi 009B 00A1 00254 MOVWF PULSEUP ; Reset "Up" Multi 00255 00256 009C 0FA7 00257 INCFSZ I_SIF1,1 ; Increment PLL Data HC164 No.1 009D 289F 00258 GOTO Int227 009E 0FA8 00259 INCFSZ I_SIF2,1 ; Increment PLL Data HC164 No.2 009F 00260 Int227 009F 28A0 00261 GOTO Int002 ; New Data will be displaying and Frequency would be cha nged 00262 00263 ; DECFSZ PULSE,1 00264 ; GOTO Int001 ; If PULSE is not zero, goto RET 00265 ; MOVLW 05H 00266 ; MOVWF PULSE ; Reset Pulse multi 00267 00268 ; BTFSC PORTB,1 ; Check PB1 00269 ; GOTO Int003 ; If PB1=1 goto Add data (Int003) 00270 00271 ; DECFSZ BIN_L2,1 ; Decrement 00272 ; GOTO Int002 00273 ; DECF BIN_H2,1 00274 ; GOTO Int002 00275 ;Int003 ; Add FREQ data 00276 ; INCFSZ BIN_L2,1 ; Increment 00277 ; GOTO Int002 00278 ; INCF BIN_H2,1 00A0 00279 Int002 00A0 2139 00280 CALL BinTOBCD 00A1 2108 00281 CALL BCDtoASC 00A2 20DC 00282 CALL DISP_ASC 00A3 21E1 00283 CALL Inv000 ; Bit Patturn exchange 00A4 20B9 00284 CALL Sft000 ; Call Shift Test 00A5 20AC 00285 CALL Limit ; Freq limit check 00286 00A6 0E20 00287 Int001 SWAPF STTEMP,W ; Restore Status 00A7 0083 00288 MOVWF STATUS 00A8 0E9F 00289 SWAPF WTEMP,F 00A9 0E1F 00290 SWAPF WTEMP,W ; Restore W 00291 00AA 108B 00292 BCF INTCON,INTF ; 00AB 0009 00293 RETFIE 00294 ;----------------- Frequency limit check ---------------- 00AC 00295 Limit 00296 ; Check lower 00AC 0817 00297 MOVF R1,W ; Take "R2" as the highest degit of BCD 00AD 3C03 00298 SUBLW H'3' ; Check it whether lower than .3XXKHz 00AE 1C03 00299 BTFSS STATUS,0 ; check Carry flag 00AF 28B2 00300 GOTO Limit10 ; If higher than 400KHz ,Skip the routine 00301 00B0 3001 00302 MOVLW H'1' ; Limit flag set for decresing 00B1 00AD 00303 MOVWF DEC_MX MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 7 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00304 ; Check upper 00B2 00305 Limit10 00B2 0817 00306 MOVF R1,W ; Take "R2" as the highest degit of BCD 00B3 3C07 00307 SUBLW H'7' ; Check it whether greater than .800KHz 00B4 1803 00308 BTFSC STATUS,0 ; Check Carry 00B5 28B8 00309 GOTO Limit50 ; If less than .800KHz, skip the routine 00310 00B6 3001 00311 MOVLW H'1' ; Limit flag set for incresing 00B7 00AC 00312 MOVWF INC_MX 00B8 00313 Limit50 00B8 0008 00314 Return 00315 ;----------------- Shift Register Control --------------- 00316 ; 1st HC164 loop 00B9 3008 00317 Sft000 MOVLW 8H ; Loop Count set 00BA 00A6 00318 MOVWF SIFLOOP 00319 00BB 1185 00320 Sft100 BCF PORTA,3 ; RA3 Fall(Init) for HC164 Clock 00BC 21C5 00321 CALL TIME10 ; 10uS wait 00322 00BD 1003 00323 Sft101 BCF STATUS,0 ; C flag clear 00BE 0CA4 00324 RRF SIF1,1 ; Shift LSB to C flag 00BF 1803 00325 BTFSC STATUS,0 ; If C is clear, skip the next instruction 00C0 28C3 00326 Goto Sft102 ; If C is set Goto Sft102 00327 00C1 1506 00328 BSF PORTB,2 ; HC164 Data is "1" 00C2 28C4 00329 Goto Sft103 00C3 1106 00330 Sft102 BCF PORTB,2 ; HC164 Data is "0" 00331 00C4 1585 00332 Sft103 BSF PORTA,3 ; RA3 Rise for HC164 Clock 00C5 21C5 00333 CALL TIME10 ; 10uS wait 00C6 1185 00334 BCF PORTA,3 ; RA3 fall 00C7 21C5 00335 CALL TIME10 00336 00C8 0BA6 00337 DECFSZ SIFLOOP,1 ; Loop X8 00C9 28BB 00338 GOTO Sft100 00339 00340 ; 2nd HC164 loop 00CA 3008 00341 Sft150 MOVLW 8H ; Loop Count set 00CB 00A6 00342 MOVWF SIFLOOP 00343 00CC 1185 00344 Sft200 BCF PORTA,3 ; RA3 Fall(Init) for HC164 Clock 00CD 21C5 00345 CALL TIME10 ; 10uS wait 00346 00CE 1003 00347 Sft201 BCF STATUS,0 ; C flag clear 00CF 0CA5 00348 RRF SIF2,1 ; Shift LSB to C flag 00D0 1803 00349 BTFSC STATUS,0 ; If C is clear, skip the next instruction 00D1 28D4 00350 Goto Sft202 ; If C is set Goto Sft202 00351 00D2 1506 00352 BSF PORTB,2 ; HC164 Data is "1" 00D3 28D5 00353 Goto Sft203 00D4 1106 00354 Sft202 BCF PORTB,2 ; HC164 Data is "0"r MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 8 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00355 00D5 1585 00356 Sft203 BSF PORTA,3 ; RA3 Rise for HC164 Clock 00D6 21C5 00357 CALL TIME10 ; 10uS wait 00D7 1185 00358 BCF PORTA,3 ; RA3 fall 00D8 21C5 00359 CALL TIME10 00360 00D9 0BA6 00361 DECFSZ SIFLOOP,1 ; Loop X8 00DA 28CC 00362 GOTO Sft200 00363 00DB 0008 00364 Return 00365 00366 ;------------------ Display ASCII data to LCD ------------ 00DC 00367 DISP_ASC 00DC 21BC 00368 CALL LCD_CLR ; Clear Screen 00DD 3020 00369 MOVLW ' ' 00DE 21A0 00370 CALL LCD_DATA 00DF 3046 00371 MOVLW 'F' 00E0 21A0 00372 CALL LCD_DATA 00E1 3052 00373 MOVLW 'R' 00E2 21A0 00374 CALL LCD_DATA 00E3 3045 00375 MOVLW 'E' 00E4 21A0 00376 CALL LCD_DATA 00E5 3051 00377 MOVLW 'Q' 00E6 21A0 00378 CALL LCD_DATA 00E7 3020 00379 MOVLW ' ' 00E8 21A0 00380 CALL LCD_DATA 00E9 3035 00381 MOVLW '5' 00EA 21A0 00382 CALL LCD_DATA 00EB 081B 00383 MOVF ASC1,W 00EC 21A0 00384 CALL LCD_DATA 00ED 302E 00385 MOVLW '.' 00EE 21A0 00386 CALL LCD_DATA 00387 00EF 081C 00388 MOVF ASC2,W 00F0 21A0 00389 CALL LCD_DATA 00F1 081D 00390 MOVF ASC3,W 00F2 21A0 00391 CALL LCD_DATA 00F3 081E 00392 MOVF ASC4,W 00F4 21A0 00393 CALL LCD_DATA 00394 00F5 3020 00395 MOVLW ' ' 00F6 21A0 00396 CALL LCD_DATA 00F7 304D 00397 MOVLW 'M' 00F8 21A0 00398 CALL LCD_DATA 00F9 3048 00399 MOVLW 'H' 00FA 21A0 00400 CALL LCD_DATA 00FB 307A 00401 MOVLW 'z' 00FC 21A0 00402 CALL LCD_DATA 00FD 00403 DISP_ASC_10 00FD 30C0 00404 MOVLW 0xC0 ; Command 00FE 21AE 00405 CALL LCD_CMD 00406 00FF 3020 00407 MOVLW ' ' MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 9 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0100 21A0 00408 CALL LCD_DATA 0101 082A 00409 MOVF Mode,W ; When transmitting, "T" Receving "R" 0102 21A0 00410 CALL LCD_DATA 0103 3058 00411 MOVLW 'X' 0104 21A0 00412 CALL LCD_DATA 00413 0105 3080 00414 MOVLW 0x80 ; Command 0106 21AE 00415 CALL LCD_CMD 00416 00417 0107 0008 00418 RETURN 00419 ;------------------ Convert BCD to ASCII ----------------- 0108 00420 BCDtoASC: 0108 00421 d1_writebcd: 0108 0817 00422 movf R1,W ; Fetch 0109 0E17 00423 swapf R1,W ; swap nibbles 010A 390F 00424 andlw 0x0f ; clear bits 4-7 010B 3E06 00425 addlw 0x06 ; add 6 010C 1C83 00426 btfss STATUS,DC ; if a-f, DC=1 010D 2910 00427 goto d1_lessnine ; if DC=0, < 9, so goto lessnine 010E 3E31 00428 addlw 0x31 ; add 31h to make ascii 010F 2911 00429 goto d1_save_asc1 ; skip to output 0110 00430 d1_lessnine: 0110 3E2A 00431 addlw 0x2a 0111 00432 d1_save_asc1: ; add offset for 0-9 to make ascii 0111 009B 00433 movwf ASC1 00434 0112 0817 00435 movf R1,W ; restore W 0113 390F 00436 andlw 0x0f ; clear bits 4-7 0114 3E06 00437 addlw 0x06 ; add 6 0115 1C83 00438 btfss STATUS,DC ; if a-f, DC=1 0116 2919 00439 goto d1_lessnine2 ; if DC=0, < 9, so goto lessnine 0117 3E31 00440 addlw 0x31 ; add 31h to make ascii 0118 291A 00441 goto d1_save_asc2 ; skip to output 0119 00442 d1_lessnine2: 0119 3E2A 00443 addlw 0x2a ; add offset for 0-9 to 011A 00444 d1_save_asc2: 011A 009C 00445 movwf ASC2 00446 011B 00447 d2_writebcd: 011B 0818 00448 movf R2,W ; Fetch 011C 0E18 00449 swapf R2,W ; swap nibbles 011D 390F 00450 andlw 0x0f ; clear bits 4-7 011E 3E06 00451 addlw 0x06 ; add 6 011F 1C83 00452 btfss STATUS,DC ; if a-f, DC=1 0120 2923 00453 goto d2_lessnine ; if DC=0, < 9, so goto lessnine 0121 3E31 00454 addlw 0x31 ; add 31h to make ascii 0122 2924 00455 goto d2_save_asc3 ; skip to output 0123 00456 d2_lessnine: 0123 3E2A 00457 addlw 0x2a ; add offset for 0-9 to make ascii 0124 00458 d2_save_asc3: 0124 009D 00459 movwf ASC3 00460 MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 10 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0125 0818 00461 movf R2,W ; restore W 0126 390F 00462 andlw 0x0f ; clear bits 4-7 0127 3E06 00463 addlw 0x06 ; add 6 0128 1C83 00464 btfss STATUS,DC ; if a-f, DC=1 0129 292C 00465 goto d2_lessnine2 ; if DC=0, < 9, so goto lessnine 012A 3E31 00466 addlw 0x31 ; add 31h to make ascii 012B 292D 00467 goto d2_save_asc4 ; skip to output 012C 00468 d2_lessnine2: 012C 3E2A 00469 addlw 0x2a ; add offset for 0-9 to 012D 00470 d2_save_asc4: 012D 009E 00471 movwf ASC4 00472 012E 0008 00473 RETURN 00474 ;---------------- Port Initialize -------------------- 012F 00475 PORTINI ; Port A and B initialize 012F 1683 00476 BSF STATUS,RP0 0130 138B 00477 BCF INTCON,GIE 00478 0131 3080 00479 MOVLW b'10000000' Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 0132 0081 00480 MOVWF OPTION_REG 0133 3000 00481 MOVLW b'00000000' ; All of PORT A bits are Output Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 0134 0085 00482 MOVWF TRISA 0135 300B 00483 MOVLW b'00001011' ; RB0,1,3 Input RB2,RB4-7 Output Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 0136 0086 00484 MOVWF TRISB 0137 1283 00485 BCF STATUS,RP0 0138 0008 00486 RETURN 00487 ; -------------- Exchange Binary to BCD --------------- 0139 00488 BinTOBCD: 0139 0822 00489 MOVF BIN_L2,0 013A 0095 00490 MOVWF BIN_L 013B 0823 00491 MOVF BIN_H2,0 013C 0094 00492 MOVWF BIN_H 00493 013D 1003 00494 BCF STATUS,0 ;Clear Carry bit 013E 3010 00495 MOVLW .16 013F 0099 00496 MOVWF Count 0140 0196 00497 CLRF R0 0141 0197 00498 CLRF R1 0142 0198 00499 CLRF R2 0143 00500 Loop16 0143 0D95 00501 RLF BIN_L,F 0144 0D94 00502 RLF BIN_H,F 0145 0D98 00503 RLF R2,F 0146 0D97 00504 RLF R1,F 0147 0D96 00505 RLF R0,F 00506 0148 0B99 00507 DECFSZ Count,F 0149 294B 00508 GOTO adjDEC 014A 3400 00509 RETLW 0 014B 00510 adjDEC MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 11 LOC OBJECT CODE LINE SOURCE TEXT VALUE 014B 3018 00511 MOVLW R2 014C 0084 00512 MOVWF FSR 014D 2155 00513 CALL adjBCD 00514 014E 3017 00515 MOVLW R1 014F 0084 00516 MOVWF FSR 0150 2155 00517 CALL adjBCD 00518 0151 3016 00519 MOVLW R0 0152 0084 00520 MOVWF FSR 0153 2155 00521 CALL adjBCD 00522 0154 2943 00523 GOTO Loop16 00524 0155 00525 adjBCD 0155 3003 00526 MOVLW 3 0156 0700 00527 ADDWF 0,W 0157 009A 00528 MOVWF Temp1 0158 199A 00529 BTFSC Temp1,3 ; test if result >7 0159 0080 00530 MOVWF 0 015A 3030 00531 MOVLW 30 015B 0700 00532 ADDWF 0,W 015C 009A 00533 MOVWF Temp1 015D 1B9A 00534 BTFSC Temp1,7 ; Test if result >7 015E 0080 00535 MOVWF 0 ; Save As MSD 015F 3400 00536 RETLW 0 00537 00538 ;-------------- LCD Busy ------------------------------ 0160 00539 LCD_BUSY 0160 018C 00540 CLRF DPDT 0161 1683 00541 BSF STATUS,RP0 ;Bank 1 Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 0162 1781 00542 BSF OPTION_REG,7 ;Turn off PORTB pull up 0163 30FF 00543 MOVLW 0FFH ;PORTB input Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 0164 0086 00544 MOVWF TRISB 0165 1283 00545 BCF STATUS,RP0 ;Bank 0 0166 1105 00546 BCF PORTA,2 ;RS low 0167 1485 00547 BSF PORTA,1 ;R/W high 0168 1405 00548 BSF PORTA,0 ;E high 0169 1005 00549 BCF PORTA,0 ;E low 016A 0806 00550 MOVF PORTB,W ;get upper 016B 39F0 00551 ANDLW 0F0H ;Mask out lower 016C 008C 00552 MOVWF DPDT 016D 1405 00553 BSF PORTA,0 ;E high 016E 1005 00554 BCF PORTA,0 ;E low 016F 0806 00555 MOVF PORTB,W ;get lower 0170 390F 00556 ANDLW 0FH ;Mask out upper 0171 048C 00557 IORWF DPDT,F ;upper+lower 0172 1B8C 00558 BTFSC DPDT,7 ;BUSY flag check 0173 2960 00559 GOTO LCD_BUSY ;retry 00560 0174 1085 00561 BCF PORTA,1 ;R/W low MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 12 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0175 1683 00562 BSF STATUS,RP0 ;Bank 1 0176 300B 00563 MOVLW B'00001011' ;RB0,1,2,3 input Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 0177 0086 00564 MOVWF TRISB ;PORTB 0178 1283 00565 BCF STATUS,RP0 ;Bank 0 0179 0008 00566 RETURN 00567 017A 00568 LCD_INI 017A 21D0 00569 CALL TIME5M ;wait 017B 3030 00570 MOVLW 030H ;Function set 8bits 017C 0086 00571 MOVWF PORTB 017D 1085 00572 BCF PORTA,1 ;R/W 017E 1105 00573 BCF PORTA,2 ;RS 017F 1405 00574 BSF PORTA,0 ;E high 0180 1005 00575 BCF PORTA,0 ;E low 0181 21D0 00576 CALL TIME5M ;wait 0182 3030 00577 MOVLW 030H ;Function reset 8bits 0183 0086 00578 MOVWF PORTB 0184 1085 00579 BCF PORTA,1 ;R/W 0185 1105 00580 BCF PORTA,2 ;RS 0186 1405 00581 BSF PORTA,0 ;E high 0187 1005 00582 BCF PORTA,0 ;E low 0188 21BF 00583 CALL TIME100 0189 3030 00584 MOVLW 030H ;Function reset 8bits 018A 0086 00585 MOVWF PORTB 018B 1085 00586 BCF PORTA,1 018C 1105 00587 BCF PORTA,2 018D 1405 00588 BSF PORTA,0 018E 1005 00589 BCF PORTA,0 018F 21BF 00590 CALL TIME100 0190 3020 00591 MOVLW 020H ;Function set 4bits mode 0191 0086 00592 MOVWF PORTB ;under the 8bits mode 0192 1085 00593 BCF PORTA,1 0193 1105 00594 BCF PORTA,2 0194 1405 00595 BSF PORTA,0 0195 1005 00596 BCF PORTA,0 0196 21BF 00597 CALL TIME100 ;From here 4bits mode 00598 0197 302C 00599 MOVLW 02CH ;function DL=0 4bit mode 0198 21AE 00600 CALL LCD_CMD 0199 3008 00601 MOVLW 08H ;Display off D=C=B=0 019A 21AE 00602 CALL LCD_CMD 019B 300C 00603 MOVLW 0CH ;Display on D=1 C=B=0 019C 21AE 00604 CALL LCD_CMD 019D 3006 00605 MOVLW 06H ;Entry I/D=1 S=0 019E 21AE 00606 CALL LCD_CMD 019F 0008 00607 RETURN 00608 00609 ;----------Print LCD Data--------------------------- 01A0 00610 LCD_DATA 01A0 008C 00611 MOVWF DPDT ;save dat 01A1 39F0 00612 ANDLW 0F0H ;mask lower 01A2 0086 00613 MOVWF PORTB MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 13 LOC OBJECT CODE LINE SOURCE TEXT VALUE 01A3 1085 00614 BCF PORTA,1 ;R/W 01A4 1505 00615 BSF PORTA,2 ;RS high 01A5 1405 00616 BSF PORTA,0 ;E high 01A6 1005 00617 BCF PORTA,0 ;E low 01A7 0E0C 00618 SWAPF DPDT,W ;get data lower 01A8 39F0 00619 ANDLW 0F0H 01A9 0086 00620 MOVWF PORTB 01AA 1405 00621 BSF PORTA,0 01AB 1005 00622 BCF PORTA,0 01AC 2160 00623 CALL LCD_BUSY 01AD 0008 00624 RETURN 00625 00626 ;**** コマンドデータ出力 ***** 01AE 00627 LCD_CMD 01AE 008C 00628 MOVWF DPDT ;save dat 01AF 39F0 00629 ANDLW 0F0H ;mask lower 01B0 0086 00630 MOVWF PORTB 01B1 1085 00631 BCF PORTA,1 ;R/W 01B2 1105 00632 BCF PORTA,2 ;RS low 01B3 1405 00633 BSF PORTA,0 ;E high 01B4 1005 00634 BCF PORTA,0 ;E low 01B5 0E0C 00635 SWAPF DPDT,W ;get data lower 01B6 39F0 00636 ANDLW 0F0H 01B7 0086 00637 MOVWF PORTB 01B8 1405 00638 BSF PORTA,0 01B9 1005 00639 BCF PORTA,0 00640 01BA 2160 00641 CALL LCD_BUSY 01BB 0008 00642 RETURN 00643 00644 ;**** 表示クリアコマンド出力 **** 01BC 00645 LCD_CLR 01BC 3001 00646 MOVLW 01H ;clear command 01BD 21AE 00647 CALL LCD_CMD 01BE 0008 00648 RETURN 00649 00650 ;********************************* 00651 ; NumeTimers 00652 ; TIME10 :10usec 00653 ; TIME100 :100usec 00654 ; TIME1M :1msec 00655 ; TIME5M :5msec 00656 ; TIM1S :1sec 00657 ; TIM100M ;100mS 00658 ;********************************* 00659 01BF 00660 TIME100 ;100usec 01BF 3009 00661 MOVLW 9H 01C0 008F 00662 MOVWF CNT1 01C1 00663 T_LP1 01C1 21C5 00664 CALL TIME10 ;2+(25+3)*9-1=253 01C2 0B8F 00665 DECFSZ CNT1,F 01C3 29C1 00666 GOTO T_LP1 MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 14 LOC OBJECT CODE LINE SOURCE TEXT VALUE 01C4 0008 00667 RETURN ;254*0.4=100usec(about) 00668 01C5 00669 TIME10 ;10usec 01C5 3007 00670 MOVLW 7H 01C6 0090 00671 MOVWF CNT2 01C7 00672 T_LP2 01C7 0B90 00673 DECFSZ CNT2,F ;2+3*7-1=22 01C8 29C7 00674 GOTO T_LP2 01C9 0008 00675 RETURN ;22+1=23 00676 01CA 00677 TIME1M ;1msec(about) 01CA 300A 00678 MOVLW 0AH 01CB 0091 00679 MOVWF CNT3 01CC 00680 T_LP3 01CC 21BF 00681 CALL TIME100 ;2+(254+3)*10-1=2541 01CD 0B91 00682 DECFSZ CNT3,F 01CE 29CC 00683 GOTO T_LP3 01CF 0008 00684 RETURN ;2542 00685 01D0 00686 TIME5M ;5msec(about) 01D0 303B 00687 MOVLW 3BH 01D1 0092 00688 MOVWF CNT4 01D2 00689 T_LP4 01D2 21BF 00690 CALL TIME100 ;2+(254+3)*59-1=15164 01D3 0B92 00691 DECFSZ CNT4,F 01D4 29D2 00692 GOTO T_LP4 01D5 0008 00693 RETURN ;15165 00694 01D6 00695 TIM1S 01D6 30C8 00696 MOVLW 0C8H ;set 200 01D7 0093 00697 MOVWF CNT5 01D8 00698 T_LP5 01D8 21D0 00699 CALL TIME5M 01D9 0B93 00700 DECFSZ CNT5,F 01DA 29D8 00701 GOTO T_LP5 01DB 0008 00702 RETURN 00703 01DC 00704 TIME100M 01DC 3014 00705 MOVLW 14H ; Set 20 01DD 00AB 00706 MOVWF CNT6 01DE 00707 T_LP6 01DE 21D0 00708 CALL TIME5M Message[305]: Using default destination of 1 (file). Warning[219]: Invalid RAM location specified. Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 01DF 0BDE 00709 DECFSZ T_LP6 01E0 0008 00710 RETURN 00711 00712 ;-----------(Invert HC164 Data )----------------------- 01E1 00713 Inv000 01E1 3000 00714 MOVLW 0H ; Clear SIF/SIF2 01E2 00A4 00715 MOVWF SIF1 01E3 00A5 00716 MOVWF SIF2 MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 15 LOC OBJECT CODE LINE SOURCE TEXT VALUE 01E4 00717 Inv100 01E4 3080 00718 MOVLW H'80' 01E5 1C27 00719 BTFSS I_SIF1,0 ; Check I_SIF1 Bit 0 01E6 29E8 00720 Goto Inv110 01E7 07A5 00721 ADDWF SIF2,1 ; If Bit0=1 Then Add 80H to SIF2 01E8 00722 Inv110 01E8 3040 00723 MOVLW H'40' 01E9 1CA7 00724 BTFSS I_SIF1,1 ; Check I_SIF1 Bit1 01EA 29EC 00725 Goto Inv120 01EB 07A5 00726 ADDWF SIF2,1 ; If Bit1=1 Then Add 40H to SIF2 01EC 00727 Inv120 01EC 3020 00728 MOVLW H'20' 01ED 1D27 00729 BTFSS I_SIF1,2 ; Check I_SIF1 Bit2 01EE 29F0 00730 Goto Inv130 01EF 07A5 00731 ADDWF SIF2,1 ; If Bit2=1 Then Add 20H to SIF2 01F0 00732 Inv130 01F0 3010 00733 MOVLW H'10' 01F1 1DA7 00734 BTFSS I_SIF1,3 ; Check I_SIF1 Bit3 01F2 29F4 00735 Goto Inv140 01F3 07A5 00736 ADDWF SIF2,1 ; If Bit3=1 Then Add 10H to SIF2 01F4 00737 Inv140 01F4 3008 00738 MOVLW H'08' 01F5 1E27 00739 BTFSS I_SIF1,4 ; Check I_SIF1 Bit 4 01F6 29F8 00740 Goto Inv150 01F7 07A5 00741 ADDWF SIF2,1 ; If Bit0=4 Then Add 8H to SIF2 01F8 00742 Inv150 01F8 3004 00743 MOVLW H'4' 01F9 1EA7 00744 BTFSS I_SIF1,5 ; Check I_SIF1 Bit5 01FA 29FC 00745 Goto Inv160 01FB 07A5 00746 ADDWF SIF2,1 ; If Bit1=1 Then Add 4H to SIF2 01FC 00747 Inv160 01FC 3002 00748 MOVLW H'2' 01FD 1F27 00749 BTFSS I_SIF1,6 ; Check I_SIF1 Bit6 01FE 2A00 00750 Goto Inv170 01FF 07A5 00751 ADDWF SIF2,1 ; If Bit2=1 Then Add 2H to SIF2 0200 00752 Inv170 0200 3001 00753 MOVLW H'1' 0201 1FA7 00754 BTFSS I_SIF1,7 ; Check I_SIF1 Bit3 0202 2A04 00755 Goto Inv200 0203 07A5 00756 ADDWF SIF2,1 ; If Bit3=1 Then Add 1H to SIF2 00757 ; ---- HC164 No.2 ------ 0204 00758 Inv200 0204 3080 00759 MOVLW H'80' 0205 1C28 00760 BTFSS I_SIF2,0 ; Check I_SIF2 Bit 0 0206 2A08 00761 Goto Inv210 0207 07A4 00762 ADDWF SIF1,1 ; If Bit0=1 Then Add 80H to SIF1 0208 00763 Inv210 0208 3040 00764 MOVLW H'40' 0209 1CA8 00765 BTFSS I_SIF2,1 ; Check I_SIF2 Bit1 020A 2A0C 00766 Goto Inv220 020B 07A4 00767 ADDWF SIF1,1 ; If Bit1=1 Then Add 40H to SIF1 020C 00768 Inv220 020C 3020 00769 MOVLW H'20' MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 16 LOC OBJECT CODE LINE SOURCE TEXT VALUE 020D 1D28 00770 BTFSS I_SIF2,2 ; Check I_SIF2 Bit2 020E 2A10 00771 Goto Inv230 020F 07A4 00772 ADDWF SIF1,1 ; If Bit2=1 Then Add 20H to SIF1 0210 00773 Inv230 0210 3010 00774 MOVLW H'10' 0211 1DA8 00775 BTFSS I_SIF2,3 ; Check I_SIF2 Bit3 0212 2A14 00776 Goto Inv240 0213 07A4 00777 ADDWF SIF1,1 ; If Bit3=1 Then Add 10H to SIF1 0214 00778 Inv240 0214 3008 00779 MOVLW H'08' 0215 1E28 00780 BTFSS I_SIF2,4 ; Check I_SIF2 Bit 4 0216 2A18 00781 Goto Inv250 0217 07A4 00782 ADDWF SIF1,1 ; If Bit0=4 Then Add 8H to SIF1 0218 00783 Inv250 0218 3004 00784 MOVLW H'4' 0219 1EA8 00785 BTFSS I_SIF2,5 ; Check I_SIF2 Bit5 021A 2A1C 00786 Goto Inv260 021B 07A4 00787 ADDWF SIF1,1 ; If Bit1=1 Then Add 4H to SIF1 021C 00788 Inv260 021C 3002 00789 MOVLW H'2' 021D 1F28 00790 BTFSS I_SIF2,6 ; Check I_SIF2 Bit6 021E 2A20 00791 Goto Inv270 021F 07A4 00792 ADDWF SIF1,1 ; If Bit2=1 Then Add 2H to SIF1 0220 00793 Inv270 0220 3001 00794 MOVLW H'1' 0221 1FA8 00795 BTFSS I_SIF2,7 ; Check I_SIF2 Bit7 0222 2A24 00796 Goto Inv280 0223 07A4 00797 ADDWF SIF1,1 ; If Bit3=1 Then Add 1H to SIF1 0224 00798 Inv280 0224 0008 00799 Return 00800 00801 END MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 17 SYMBOL TABLE LABEL VALUE ASC1 0000001B ASC2 0000001C ASC3 0000001D ASC4 0000001E BCDtoASC 00000108 BIN_H 00000014 BIN_H2 00000023 BIN_L 00000015 BIN_L2 00000022 BinTOBCD 00000139 C 00000000 CNT1 0000000F CNT2 00000010 CNT3 00000011 CNT4 00000012 CNT5 00000013 CNT6 0000002B Count 00000019 DC 00000001 DEC_MX 0000002D DISP_ASC 000000DC DISP_ASC_10 000000FD DPDT 0000000C EEADR 00000009 EECON1 00000088 EECON2 00000089 EEDATA 00000008 EEIE 00000006 EEIF 00000004 F 00000001 FSR 00000004 GIE 00000007 INC_MX 0000002C INDF 00000000 INT217 00000089 INTCON 0000000B INTE 00000004 INTEDG 00000006 INTF 00000001 IRP 00000007 I_SIF1 00000027 I_SIF2 00000028 Int 0000006C Int001 000000A6 Int002 000000A0 Int100 0000006F Int110 00000071 Int120 00000073 Int130 0000008A Int140 0000008C Int210 00000080 Int215 00000083 Int220 00000096 MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 18 SYMBOL TABLE LABEL VALUE Int225 00000099 Int227 0000009F Inv000 000001E1 Inv100 000001E4 Inv110 000001E8 Inv120 000001EC Inv130 000001F0 Inv140 000001F4 Inv150 000001F8 Inv160 000001FC Inv170 00000200 Inv200 00000204 Inv210 00000208 Inv220 0000020C Inv230 00000210 Inv240 00000214 Inv250 00000218 Inv260 0000021C Inv270 00000220 Inv280 00000224 LCD_BUSY 00000160 LCD_CLR 000001BC LCD_CMD 000001AE LCD_DATA 000001A0 LCD_INI 0000017A LOOP 00000040 LOOP8 0000004F Limit 000000AC Limit10 000000B2 Limit50 000000B8 Loop10 00000057 Loop12 00000064 Loop16 00000143 Loop20 0000006B Main 00000005 Mode 0000002A NOT_PD 00000003 NOT_RBPU 00000007 NOT_TO 00000004 OPTION_REG 00000081 PCL 00000002 PCLATH 0000000A PORTA 00000005 PORTB 00000006 PORTINI 0000012F PS0 00000000 PS1 00000001 PS2 00000002 PSA 00000003 PULSEDW 00000029 PULSEUP 00000021 R0 00000016 R1 00000017 MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 19 SYMBOL TABLE LABEL VALUE R2 00000018 RBIE 00000003 RBIF 00000000 RD 00000000 RP0 00000005 RP1 00000006 SIF1 00000024 SIF2 00000025 SIFLOOP 00000026 STATUS 00000003 STTEMP 00000020 Sft000 000000B9 Sft100 000000BB Sft101 000000BD Sft102 000000C3 Sft103 000000C4 Sft150 000000CA Sft200 000000CC Sft201 000000CE Sft202 000000D4 Sft203 000000D5 T0CS 00000005 T0IE 00000005 T0IF 00000002 T0SE 00000004 TIM1S 000001D6 TIME10 000001C5 TIME100 000001BF TIME100M 000001DC TIME1M 000001CA TIME5M 000001D0 TMR0 00000001 TRISA 00000085 TRISB 00000086 T_LP1 000001C1 T_LP2 000001C7 T_LP3 000001CC T_LP4 000001D2 T_LP5 000001D8 T_LP6 000001DE Temp1 0000001A W 00000000 WR 00000001 WREN 00000002 WRERR 00000003 WTEMP 0000001F Z 00000002 _CP_OFF 00003FFF _CP_ON 00003FEF _HS_OSC 00003FFE _LP_OSC 00003FFC _PWRTE_OFF 00003FF7 _PWRTE_ON 00003FFF MPASM 5.06.4 AM_TRS_PLL_V1_2.ASM 2-9-2008 15:38:12 PAGE 20 SYMBOL TABLE LABEL VALUE _RC_OSC 00003FFF _WDT_OFF 00003FFB _WDT_ON 00003FFF _XT_OSC 00003FFD __16F84A 00000001 adjBCD 00000155 adjDEC 0000014B d1_lessnine 00000110 d1_lessnine2 00000119 d1_save_asc1 00000111 d1_save_asc2 0000011A d1_writebcd 00000108 d2_lessnine 00000123 d2_lessnine2 0000012C d2_save_asc3 00000124 d2_save_asc4 0000012D d2_writebcd 0000011B MEMORY USAGE MAP ('X' = Used, '-' = Unused) 0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 00C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0100 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0140 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0180 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 01C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0200 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXX----------- ---------------- All other memory blocks unused. Program Memory Words Used: 546 Program Memory Words Free: 478 Errors : 0 Warnings : 4 reported, 0 suppressed Messages : 11 reported, 0 suppressed