MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 1 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00001 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 00002 ; 00003 ; TIMIN.ASM MPB 25-8-05 00004 ; 00005 ; Measure input period using Timer1 16-bit capture 00006 ; and display in microseconds 00007 ; 00008 ; STATUS: Capture working 00009 ; Conversion working 00010 ; Display in progress 00011 ; 00012 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 00013 00014 PROCESSOR 16F877A 00015 00016 ; Clock = XT 4MHz, standard fuse settings: 00017 2007 3731 00018 __CONFIG 0x3731 00019 00020 ; LABEL EQUATES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 00021 00022 INCLUDE "P16F877A.INC" ; Standard register labels 00001 LIST 00002 ; P16F877A.INC Standard Header File, Version 1.00 Microchip Technology, Inc. 00398 LIST 00023 00024 ; Local label equates..................................... 00025 00000020 00026 Hibyte EQU 020 00000021 00027 Lobyte EQU 021 00028 00000022 00029 Tents EQU 022 00000023 00030 Thous EQU 023 00000024 00031 Hunds EQU 024 00000025 00032 Tens EQU 025 00000026 00033 Ones EQU 026 00034 00035 00036 ; Program begins ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 00037 0000 00038 ORG 0 ; Place machine code 0000 0000 00039 NOP ; Required for ICD mode 0001 2805 00040 GOTO init 00041 0004 00042 ORG 4 ; Interrupt vector adress 0004 2814 00043 GOTO ISR ; jump to service routine 00044 0005 0000 00045 init NOP 0006 1683 1303 00046 BANKSEL TRISD ; Select bank 1 Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 0008 0188 00047 CLRF TRISD ; Initialise display port Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 0009 018C 00048 CLRF PIE1 ; Disable peripheral interrupts MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 2 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00049 000A 1283 1303 00050 BANKSEL PORTD ; Select bank 0 000C 0188 00051 CLRF PORTD ; Clear display outputs 00052 000D 30C0 00053 MOVLW B'11000000' ; Enable.. 000E 008B 00054 MOVWF INTCON ; ..peripheral interrupts 000F 3004 00055 MOVLW B'00000100' ; Capture mode: 0010 0097 00056 MOVWF CCP1CON ; ..every falling edge 0011 3001 00057 MOVLW B'00000001' ; Enable.. 0012 0090 00058 MOVWF T1CON ; ..Timer 1 00059 0013 28E6 00060 GOTO start ; Jump to main program 00061 00062 ; INTERRUPT SERVICE ROUTINE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 00063 0014 018E 00064 ISR CLRF TMR1L 0015 018F 00065 CLRF TMR1H 0016 110C 00066 BCF PIR1,CCP1IF ; Reset interrupt flag 0017 0009 00067 RETFIE 00068 00069 ; SUBROUTINES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 00070 00071 INCLUDE "LCDIS.INC" ; Include display routines 00001 ;-------------------------------------------------------------- 00002 ; LCDIS.INC MPB 19-12-05 00003 ; 00004 ; Include file to operate 16x2 LCD display 00005 ; Uses GPR 70 - 75 00006 ; 00007 ; Final version 00008 ;-------------------------------------------------------------- 00009 00000070 00010 Timer1 EQU 70 ; 1ms count register 00000071 00011 TimerX EQU 71 ; Xms count register 00000072 00012 Var EQU 72 ; Output variable 00000073 00013 Point EQU 73 ; Program table pointer 00000074 00014 Select EQU 74 ; Used to set or clear RS bit 00000075 00015 OutCod EQU 75 ; Temp store for output code 00016 00000001 00017 RS EQU 1 ; Register select output bit 00000002 00018 E EQU 2 ; Enable display input 00019 00020 00021 ;-------------------------------------------------------------- 00022 ; 1ms delay with 1us cycle time (1000 cycles) 00023 ;-------------------------------------------------------------- 0018 30F9 00024 onems MOVLW D'249' ; Count for 1ms delay 0019 00F0 00025 MOVWF Timer1 ; Load count 001A 0000 00026 loop1 NOP ; Pad for 4 cycle loop Message[305]: Using default destination of 1 (file). 001B 0BF0 00027 DECFSZ Timer1 ; Count 001C 281A 00028 GOTO loop1 ; until Z 001D 0008 00029 RETURN ; and finish MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 3 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00030 00031 ;-------------------------------------------------------------- 00032 ; Delay Xms 00033 ; Receives count in W, uses Onems 00034 ;-------------------------------------------------------------- 001E 00F1 00035 xms MOVWF TimerX ; Count for X ms 001F 2018 00036 loopX CALL onems ; Delay 1ms Message[305]: Using default destination of 1 (file). 0020 0BF1 00037 DECFSZ TimerX ; Repeat X times 0021 281F 00038 GOTO loopX ; until Z 0022 0008 00039 RETURN ; and finish 00040 00041 ;-------------------------------------------------------------- 00042 ; Generate data/command clock siganl E 00043 ;-------------------------------------------------------------- 0023 1508 00044 pulseE BSF PORTD,E ; Set E high 0024 2018 00045 CALL onems ; Delay 1ms 0025 1108 00046 BCF PORTD,E ; Reset E low 0026 2018 00047 CALL onems ; Delay 1ms 0027 0008 00048 RETURN ; done 00049 00050 ;-------------------------------------------------------------- 00051 ; Send a command byte in two nibbles from RB4 - RB7 00052 ; Receives command in W, uses PulseE and Onems 00053 ;-------------------------------------------------------------- 0028 00F5 00054 send MOVWF OutCod ; Store output code 0029 39F0 00055 ANDLW 0F0 ; Clear low nybble 002A 0088 00056 MOVWF PORTD ; Output high nybble 002B 18F4 00057 BTFSC Select,RS ; Test RS bit 002C 1488 00058 BSF PORTD,RS ; and set for data 002D 2023 00059 CALL pulseE ; and clock display register 002E 2018 00060 CALL onems ; wait 1ms for display 00061 Message[305]: Using default destination of 1 (file). 002F 0EF5 00062 SWAPF OutCod ; Swap low and high nybbles 0030 0875 00063 MOVF OutCod,W ; Retrieve output code 0031 39F0 00064 ANDLW 0F0 ; Clear low nybble 0032 0088 00065 MOVWF PORTD ; Output low nybble 0033 18F4 00066 BTFSC Select,RS ; Test RS bit 0034 1488 00067 BSF PORTD,RS ; and set for data 0035 2023 00068 CALL pulseE ; and clock display register 0036 2018 00069 CALL onems ; wait 1ms for display 0037 0008 00070 RETURN ; done 00071 00072 ;-------------------------------------------------------------- 00073 ; Initialise the display 00074 ; Uses Send 00075 ;-------------------------------------------------------------- 0038 3064 00076 inid MOVLW D'100' ; Load count for 100ms delay 0039 201E 00077 CALL xms ; and wait for display start 003A 30F0 00078 MOVLW 0F0 ; Mask for select code 003B 00F4 00079 MOVWF Select ; High nybble not masked 00080 MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 4 LOC OBJECT CODE LINE SOURCE TEXT VALUE 003C 3030 00081 MOVLW 0x30 ; Load initial nibble 003D 0088 00082 MOVWF PORTD ; and output it to display 003E 2023 00083 CALL pulseE ; Latch initial code 003F 3005 00084 MOVLW D'5' ; Set delay 5ms 0040 201E 00085 CALL xms ; and wait 0041 2023 00086 CALL pulseE ; Latch initial code again 0042 2018 00087 CALL onems ; Wait 1ms 0043 2023 00088 CALL pulseE ; Latch initial code again 0044 1208 00089 BCF PORTD,4 ; Set 4-bit mode 0045 2023 00090 CALL pulseE ; Latch it 00091 0046 3028 00092 MOVLW 0x28 ; Set 4-bit mode, 2 lines 0047 2028 00093 CALL send ; and send code 0048 3008 00094 MOVLW 0x08 ; Switch off display 0049 2028 00095 CALL send ; and send code 004A 3001 00096 MOVLW 0x01 ; Code to clear display 004B 2028 00097 CALL send ; and send code 004C 3006 00098 MOVLW 0x06 ; Enable cursor auto inc 004D 2028 00099 CALL send ; and send code 004E 3080 00100 MOVLW 0x80 ; Zero display address 004F 2028 00101 CALL send ; and send code 0050 300C 00102 MOVLW 0x0C ; Turn on display 0051 2028 00103 CALL send ; and send code 00104 0052 0008 00105 RETURN ; Done 00106 00107 ;-------------------------------------------------------------- 00072 00073 ;---------------------------------------------------------------- 00074 ; Convert 16 bit binary result to 5 digits 00075 ;---------------------------------------------------------------- 00076 0053 0815 00077 conv MOVF CCPR1L,W ; Get high byte 0054 00A1 00078 MOVWF Lobyte ; and store 0055 0816 00079 MOVF CCPR1H,W ; Get low byte 0056 00A0 00080 MOVWF Hibyte ; and store 00081 0057 3006 00082 MOVLW 06 ; Correction value 0058 1003 00083 BCF STATUS,C ; prepare carry flag Message[305]: Using default destination of 1 (file). 0059 07A1 00084 ADDWF Lobyte ; add correction 005A 1803 00085 BTFSC STATUS,C ; and carry Message[305]: Using default destination of 1 (file). 005B 0AA0 00086 INCF Hibyte ; in required 00087 005C 01A2 00088 CLRF Tents ; clear ten thousands register 005D 01A3 00089 CLRF Thous ; clear thousands register 005E 01A4 00090 CLRF Hunds ; clear hundreds register 005F 01A5 00091 CLRF Tens ; clear tens register 0060 01A6 00092 CLRF Ones ; clear ones register 00093 00094 ; Subtract 10000d (2710h) and count ........................... 00095 MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 5 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0061 3010 00096 sub10 MOVLW 010 ; get low byte to sub 0062 1403 00097 BSF STATUS,C ; get ready to subtract Message[305]: Using default destination of 1 (file). 0063 02A1 00098 SUBWF Lobyte ; sub 10h from low byte 0064 1803 00099 BTFSC STATUS,C ; borrow required? 0065 286E 00100 GOTO sub27 ; no - sub high byte 00101 0066 08A0 00102 MOVF Hibyte,F ; yes - check high byte 0067 1D03 00103 BTFSS STATUS,Z ; zero? 0068 286D 00104 GOTO take1 ; no - take borrow 00105 0069 3010 00106 MOVLW 010 ; yes - load low byte to add 006A 1003 00107 BCF STATUS,C ; get ready to add Message[305]: Using default destination of 1 (file). 006B 07A1 00108 ADDWF Lobyte ; restore low byte 006C 287C 00109 GOTO subE8 ; next digit 00110 Message[305]: Using default destination of 1 (file). 006D 03A0 00111 take1 DECF Hibyte ; take borrow 00112 006E 3027 00113 sub27 MOVLW 027 ; get high byte to sub 006F 1403 00114 BSF STATUS,C ; get ready to subtract Message[305]: Using default destination of 1 (file). 0070 02A0 00115 SUBWF Hibyte ; sub from high byte 0071 1C03 00116 BTFSS STATUS,C ; borrow taken? 0072 2875 00117 GOTO done1 ; yes - restore remainder Message[305]: Using default destination of 1 (file). 0073 0AA2 00118 INCF Tents ; no - count ten thousand 0074 2861 00119 GOTO sub10 ; sub 10000 again 00120 0075 3010 00121 done1 MOVLW 010 ; restore.. 0076 1003 00122 BCF STATUS,C ; get ready to add Message[305]: Using default destination of 1 (file). 0077 07A1 00123 ADDWF Lobyte ; restore low byte 0078 1803 00124 BTFSC STATUS,C ; Carry into high byte? Message[305]: Using default destination of 1 (file). 0079 0AA0 00125 INCF Hibyte ; yes - add carry to high byte 007A 3027 00126 MOVLW 027 ; restore.. Message[305]: Using default destination of 1 (file). 007B 07A0 00127 ADDWF Hibyte ; ..high byte 00128 00129 00130 ; Subtract 1000d (03E8) and count................................. 00131 007C 30E8 00132 subE8 MOVLW 0E8 ; get low byte to sub 007D 1403 00133 BSF STATUS,C ; get ready to subtract Message[305]: Using default destination of 1 (file). 007E 02A1 00134 SUBWF Lobyte ; sub from low byte 007F 1803 00135 BTFSC STATUS,C ; borrow required? 0080 2889 00136 GOTO sub03 ; no - do high byte 00137 0081 08A0 00138 MOVF Hibyte,F ; yes - check high byte 0082 1D03 00139 BTFSS STATUS,Z ; zero? MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 6 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0083 2888 00140 GOTO take2 ; no - take borrow 00141 0084 30E8 00142 MOVLW 0E8 ; load low byte to add 0085 1003 00143 BCF STATUS,C ; get ready to add Message[305]: Using default destination of 1 (file). 0086 07A1 00144 ADDWF Lobyte ; restore low byte 0087 2897 00145 GOTO sub64 ; next digit 00146 Message[305]: Using default destination of 1 (file). 0088 03A0 00147 take2 DECF Hibyte ; take borrow 00148 0089 3003 00149 sub03 MOVLW 03 ; get high byte 008A 1403 00150 BSF STATUS,C ; get ready to subtract Message[305]: Using default destination of 1 (file). 008B 02A0 00151 SUBWF Hibyte ; sub from high byte 008C 1C03 00152 BTFSS STATUS,C ; borrow taken? 008D 2890 00153 GOTO done2 ; yes - restore high byte Message[305]: Using default destination of 1 (file). 008E 0AA3 00154 INCF Thous ; no - count ten thousand 008F 287C 00155 GOTO subE8 ; sub 1000 again 00156 0090 30E8 00157 done2 MOVLW 0E8 ; restore.. 0091 1003 00158 BCF STATUS,C ; get ready to add Message[305]: Using default destination of 1 (file). 0092 07A1 00159 ADDWF Lobyte ; restore low byte 0093 1803 00160 BTFSC STATUS,C ; Carry into high byte? Message[305]: Using default destination of 1 (file). 0094 0AA0 00161 INCF Hibyte ; yes - add carry to high byte 0095 3003 00162 MOVLW 03 ; restore.. Message[305]: Using default destination of 1 (file). 0096 07A0 00163 ADDWF Hibyte ; ..high byte 00164 00165 00166 00167 ; Subtract 100d (064h) and count................................. 00168 0097 3064 00169 sub64 MOVLW 064 ; get low byte 0098 1403 00170 BSF STATUS,C ; get ready to subtract Message[305]: Using default destination of 1 (file). 0099 02A1 00171 SUBWF Lobyte ; sub from low byte 009A 1803 00172 BTFSC STATUS,C ; borrow required? 009B 28A4 00173 GOTO inchun ; no - inc count 00174 009C 08A0 00175 MOVF Hibyte,F ; yes - check high byte 009D 1D03 00176 BTFSS STATUS,Z ; zero? 009E 28A3 00177 GOTO take3 ; no - take borrow 00178 009F 3064 00179 MOVLW 064 ; load low byte to add 00A0 1003 00180 BCF STATUS,C ; get ready to add Message[305]: Using default destination of 1 (file). 00A1 07A1 00181 ADDWF Lobyte ; restore low byte 00A2 28A6 00182 GOTO subA ; next digit 00183 MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 7 LOC OBJECT CODE LINE SOURCE TEXT VALUE Message[305]: Using default destination of 1 (file). 00A3 03A0 00184 take3 DECF Hibyte ; take borrow 00185 Message[305]: Using default destination of 1 (file). 00A4 0AA4 00186 inchun INCF Hunds ; count hundred 00A5 2897 00187 GOTO sub64 ; sub 100 again 00188 00189 00190 ; Subtract 10d (0Ah) and count, leaving remainder................. 00191 00A6 300A 00192 subA MOVLW 0A ; get low byte to sub 00A7 1403 00193 BSF STATUS,C ; get ready to subtract Message[305]: Using default destination of 1 (file). 00A8 02A1 00194 SUBWF Lobyte ; sub from low byte 00A9 1C03 00195 BTFSS STATUS,C ; borrow required? 00AA 28AD 00196 GOTO rest4 ; yes - restore byte Message[305]: Using default destination of 1 (file). 00AB 0AA5 00197 INCF Tens ; no - count one hundred 00AC 28A6 00198 GOTO subA ; and repeat 00199 Message[305]: Using default destination of 1 (file). 00AD 07A1 00200 rest4 ADDWF Lobyte ; restore low byte 00AE 0821 00201 MOVF Lobyte,W ; copy remainder.. 00AF 00A6 00202 MOVWF Ones ; to ones register 00203 00B0 0008 00204 RETURN ; done 00205 00206 ;--------------------------------------------------------------- 00207 ; Display period in microseconds 00208 ;--------------------------------------------------------------- 00209 00B1 14F4 00210 disp BSF Select,RS ; Set display data mode 00211 00B2 3054 00212 MOVLW 'T' ; Time period 00B3 2028 00213 CALL send ; Display it 00B4 3020 00214 MOVLW ' ' ; Space 00B5 2028 00215 CALL send ; Display it 00B6 303D 00216 MOVLW '=' ; Equals 00B7 2028 00217 CALL send ; Display it 00B8 3020 00218 MOVLW ' ' ; Space 00B9 2028 00219 CALL send ; Display it 00220 00221 ; Supress leading zeros......................................... 00222 00BA 08A2 00223 MOVF Tents,F ; Check digit 00BB 1D03 00224 BTFSS STATUS,Z ; zero? 00BC 28C9 00225 GOTO show1 ; no - show it 00226 00BD 08A3 00227 MOVF Thous,F ; Check digit 00BE 1D03 00228 BTFSS STATUS,Z ; zero? 00BF 28CC 00229 GOTO show2 ; no - show it 00230 00C0 08A4 00231 MOVF Hunds,F ; Check digit MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 8 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00C1 1D03 00232 BTFSS STATUS,Z ; zero? 00C2 28CF 00233 GOTO show3 ; no - show it 00234 00C3 08A5 00235 MOVF Tens,F ; Check digit 00C4 1D03 00236 BTFSS STATUS,Z ; zero? 00C5 28D2 00237 GOTO show4 ; no - show it 00238 00C6 08A6 00239 MOVF Ones,F ; Check digit 00C7 1D03 00240 BTFSS STATUS,Z ; zero? 00C8 28D5 00241 GOTO show5 ; no - show it 00242 00243 ; Display digits of period..................................... 00244 00C9 3030 00245 show1 MOVLW 030 ; Load ASCII offset 00CA 0722 00246 ADDWF Tents,W ; Add digit value 00CB 2028 00247 CALL send ; Display it 00248 00CC 3030 00249 show2 MOVLW 030 ; Load ASCII offset 00CD 0723 00250 ADDWF Thous,W ; Add digit value 00CE 2028 00251 CALL send ; Display it 00252 00CF 3030 00253 show3 MOVLW 030 ; Load ASCII offset 00D0 0724 00254 ADDWF Hunds,W ; Add digit value 00D1 2028 00255 CALL send ; Display it 00256 00D2 3030 00257 show4 MOVLW 030 ; Load ASCII offset 00D3 0725 00258 ADDWF Tens,W ; Add digit value 00D4 2028 00259 CALL send ; Display it 00260 00D5 3030 00261 show5 MOVLW 030 ; Load ASCII offset 00D6 0726 00262 ADDWF Ones,W ; Add digit value 00D7 2028 00263 CALL send ; Display it 00264 00265 ; Show fixed characters......................................... 00266 00D8 3020 00267 MOVLW ' ' ; Space 00D9 2028 00268 CALL send ; Display it 00DA 3075 00269 MOVLW 'u' ; micro 00DB 2028 00270 CALL send ; Display it 00DC 3073 00271 MOVLW 's' ; secs 00DD 2028 00272 CALL send ; Display it 00DE 3020 00273 MOVLW ' ' ; Space 00DF 2028 00274 CALL send ; Display it 00E0 3020 00275 MOVLW ' ' ; Space 00E1 2028 00276 CALL send ; Display it 00277 00278 ; Home cursor ................................................. 00279 00E2 10F4 00280 BCF Select,RS ; Set display command mode 00E3 3080 00281 MOVLW 0x80 ; Code to home cursor 00E4 2028 00282 CALL send ; Do it 00E5 0008 00283 RETURN ; done 00284 MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 9 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00285 ;--------------------------------------------------------------- 00286 ; MAIN LOOP 00287 ;--------------------------------------------------------------- 00E6 2038 00288 start CALL inid ; Initialise display 00E7 1683 1303 00289 BANKSEL PIE1 ; Select Bank 1 Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct. 00E9 150C 00290 BSF PIE1,CCP1IE ; Enable capture interrupt 00EA 1283 1303 00291 BANKSEL PORTD ; Select Bank 0 00EC 110C 00292 BCF PIR1,CCP1IF ; Clear CCP1 interrupt flag 00293 00ED 2053 00294 loop CALL conv ; Convert 16 bits to 5 digits 00EE 20B1 00295 CALL disp ; Display period in microsecs 00EF 28ED 00296 GOTO loop 00297 00298 END ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 10 SYMBOL TABLE LABEL VALUE ACKDT 00000005 ACKEN 00000004 ACKSTAT 00000006 ADCON0 0000001F ADCON1 0000009F ADCS0 00000006 ADCS1 00000007 ADDEN 00000003 ADFM 00000007 ADIE 00000006 ADIF 00000006 ADON 00000000 ADRESH 0000001E ADRESL 0000009E BCLIE 00000003 BCLIF 00000003 BF 00000000 BRGH 00000002 C 00000000 C1INV 00000004 C1OUT 00000006 C2INV 00000005 C2OUT 00000007 CCP1CON 00000017 CCP1IE 00000002 CCP1IF 00000002 CCP1M0 00000000 CCP1M1 00000001 CCP1M2 00000002 CCP1M3 00000003 CCP1X 00000005 CCP1Y 00000004 CCP2CON 0000001D CCP2IE 00000000 CCP2IF 00000000 CCP2M0 00000000 CCP2M1 00000001 CCP2M2 00000002 CCP2M3 00000003 CCP2X 00000005 CCP2Y 00000004 CCPR1H 00000016 CCPR1L 00000015 CCPR2H 0000001C CCPR2L 0000001B CHS0 00000003 CHS1 00000004 CHS2 00000005 CIS 00000003 CKE 00000006 CKP 00000004 CM0 00000000 CM1 00000001 MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 11 SYMBOL TABLE LABEL VALUE CM2 00000002 CMCON 0000009C CMIE 00000006 CMIF 00000006 CREN 00000004 CSRC 00000007 CVR0 00000000 CVR1 00000001 CVR2 00000002 CVR3 00000003 CVRCON 0000009D CVREN 00000007 CVROE 00000006 CVRR 00000005 D 00000005 DATA_ADDRESS 00000005 DC 00000001 D_A 00000005 E 00000002 EEADR 0000010D EEADRH 0000010F EECON1 0000018C EECON2 0000018D EEDATA 0000010C EEDATH 0000010E EEIE 00000004 EEIF 00000004 EEPGD 00000007 F 00000001 FERR 00000002 FSR 00000004 GCEN 00000007 GIE 00000007 GO 00000002 GO_DONE 00000002 Hibyte 00000020 Hunds 00000024 I2C_DATA 00000005 I2C_READ 00000002 I2C_START 00000003 I2C_STOP 00000004 IBF 00000007 IBOV 00000005 INDF 00000000 INTCON 0000000B INTE 00000004 INTEDG 00000006 INTF 00000001 IRP 00000007 ISR 00000014 Lobyte 00000021 NOT_A 00000005 NOT_ADDRESS 00000005 MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 12 SYMBOL TABLE LABEL VALUE NOT_BO 00000000 NOT_BOR 00000000 NOT_DONE 00000002 NOT_PD 00000003 NOT_POR 00000001 NOT_RBPU 00000007 NOT_RC8 00000006 NOT_T1SYNC 00000002 NOT_TO 00000004 NOT_TX8 00000006 NOT_W 00000002 NOT_WRITE 00000002 OBF 00000006 OERR 00000001 OPTION_REG 00000081 Ones 00000026 OutCod 00000075 P 00000004 PCFG0 00000000 PCFG1 00000001 PCFG2 00000002 PCFG3 00000003 PCL 00000002 PCLATH 0000000A PCON 0000008E PEIE 00000006 PEN 00000002 PIE1 0000008C PIE2 0000008D PIR1 0000000C PIR2 0000000D PORTA 00000005 PORTB 00000006 PORTC 00000007 PORTD 00000008 PORTE 00000009 PR2 00000092 PS0 00000000 PS1 00000001 PS2 00000002 PSA 00000003 PSPIE 00000007 PSPIF 00000007 PSPMODE 00000004 Point 00000073 R 00000002 RBIE 00000003 RBIF 00000000 RC8_9 00000006 RC9 00000006 RCD8 00000000 RCEN 00000003 RCIE 00000005 MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 13 SYMBOL TABLE LABEL VALUE RCIF 00000005 RCREG 0000001A RCSTA 00000018 RD 00000000 READ_WRITE 00000002 RP0 00000005 RP1 00000006 RS 00000001 RSEN 00000001 RX9 00000006 RX9D 00000000 R_W 00000002 S 00000003 SEN 00000000 SMP 00000007 SPBRG 00000099 SPEN 00000007 SREN 00000005 SSPADD 00000093 SSPBUF 00000013 SSPCON 00000014 SSPCON2 00000091 SSPEN 00000005 SSPIE 00000003 SSPIF 00000003 SSPM0 00000000 SSPM1 00000001 SSPM2 00000002 SSPM3 00000003 SSPOV 00000006 SSPSTAT 00000094 STATUS 00000003 SYNC 00000004 Select 00000074 T0CS 00000005 T0IE 00000005 T0IF 00000002 T0SE 00000004 T1CKPS0 00000004 T1CKPS1 00000005 T1CON 00000010 T1INSYNC 00000002 T1OSCEN 00000003 T1SYNC 00000002 T2CKPS0 00000000 T2CKPS1 00000001 T2CON 00000012 TMR0 00000001 TMR0IE 00000005 TMR0IF 00000002 TMR1CS 00000001 TMR1H 0000000F TMR1IE 00000000 MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 14 SYMBOL TABLE LABEL VALUE TMR1IF 00000000 TMR1L 0000000E TMR1ON 00000000 TMR2 00000011 TMR2IE 00000001 TMR2IF 00000001 TMR2ON 00000002 TOUTPS0 00000003 TOUTPS1 00000004 TOUTPS2 00000005 TOUTPS3 00000006 TRISA 00000085 TRISB 00000086 TRISC 00000087 TRISD 00000088 TRISE 00000089 TRISE0 00000000 TRISE1 00000001 TRISE2 00000002 TRMT 00000001 TX8_9 00000006 TX9 00000006 TX9D 00000000 TXD8 00000000 TXEN 00000005 TXIE 00000004 TXIF 00000004 TXREG 00000019 TXSTA 00000098 Tens 00000025 Tents 00000022 Thous 00000023 Timer1 00000070 TimerX 00000071 UA 00000001 Var 00000072 W 00000000 WCOL 00000007 WR 00000001 WREN 00000002 WRERR 00000003 Z 00000002 _BODEN_OFF 00003FBF _BODEN_ON 00003FFF _CPD_OFF 00003FFF _CPD_ON 00003EFF _CP_ALL 00001FFF _CP_OFF 00003FFF _DEBUG_OFF 00003FFF _DEBUG_ON 000037FF _HS_OSC 00003FFE _LP_OSC 00003FFC _LVP_OFF 00003F7F MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 15 SYMBOL TABLE LABEL VALUE _LVP_ON 00003FFF _PWRTE_OFF 00003FFF _PWRTE_ON 00003FF7 _RC_OSC 00003FFF _WDT_OFF 00003FFB _WDT_ON 00003FFF _WRT_1FOURTH 00003BFF _WRT_256 00003DFF _WRT_HALF 000039FF _WRT_OFF 00003FFF _XT_OSC 00003FFD __16F877A 00000001 conv 00000053 disp 000000B1 done1 00000075 done2 00000090 inchun 000000A4 inid 00000038 init 00000005 loop 000000ED loop1 0000001A loopX 0000001F onems 00000018 pulseE 00000023 rest4 000000AD send 00000028 show1 000000C9 show2 000000CC show3 000000CF show4 000000D2 show5 000000D5 start 000000E6 sub03 00000089 sub10 00000061 sub27 0000006E sub64 00000097 subA 000000A6 subE8 0000007C take1 0000006D take2 00000088 take3 000000A3 xms 0000001E MPASM 03.70.01 Released TIMIN.ASM 3-27-2006 15:47:27 PAGE 16 MEMORY USAGE MAP ('X' = Used, '-' = Unused) 0000 : XX--XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 00C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ---------------- 2000 : -------X-------- ---------------- ---------------- ---------------- All other memory blocks unused. Program Memory Words Used: 238 Program Memory Words Free: 7954 Errors : 0 Warnings : 0 reported, 0 suppressed Messages : 31 reported, 0 suppressed