MPASM 02.01 Released CAPAC2.ASM 11-3-1998 18:01:01 PAGE 1 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00001 LIST P=16F84 00002 00000085 00003 TRISA EQU 85 00000086 00004 TRISB EQU 86 00000005 00005 PORTA EQU 05 00000006 00006 PORTB EQU 06 00000000 00007 W EQU 0 00000001 00008 f EQU 1 00000002 00009 PC EQU 02 00000008 00010 EDATA EQU 08 00000009 00011 EADR EQU 09 00000088 00012 ECON1 EQU 88 00000089 00013 ECON2 EQU 89 00000001 00014 TIMER0 EQU 01 00000081 00015 OPCION EQU 81 00000003 00016 STATUS EQU 03 00000010 00017 REG1 EQU 10 00000012 00018 REG3 EQU 12 00000017 00019 REG4 EQU 17 0000001B 00020 AUXCI EQU 1B 0000001C 00021 BANDER1 EQU 1C 0000001E 00022 PER1 EQU 1E 0000001F 00023 REG5A EQU 1F 00000020 00024 BANDERS EQU 20 00000022 00025 REG1A EQU 22 00000023 00026 REG2A EQU 23 00000024 00027 REG3A EQU 24 00000025 00028 REG4A EQU 25 00000026 00029 CICLO EQU 26 0000000B 00030 INTCON EQU 0X0B 00031 #DEFINE COMP PORTA,2 00032 #DEFINE TRIGGER PORTA,3 00033 #DEFINE ENABLE PORTA,1 00034 #DEFINE RS PORTA,0 00035 #DEFINE CARRY STATUS,0 00036 #DEFINE OVERFL INTCON,2 ;BANDERA DE OVERFLOW DE TIMER0 00037 0000 00038 ORG 00 0000 2801 00039 GOTO INICIO 00040 0001 1683 00041 INICIO BSF 3,5 ;CONFIGURAR PUERTOS 0002 3004 00042 MOVLW 0X04 0003 0085 00043 MOVWF TRISA 0004 3000 00044 MOVLW 0X00 0005 0086 00045 MOVWF TRISB 0006 3080 00046 MOVLW 0X80 0007 0081 00047 MOVWF OPCION ;PREESCALIZADOR 1:2, CON FLANCO DE SUBIDA 0008 1683 00048 BSF 3,5 0009 1085 00049 BCF ENABLE ;LCD DESHABILITADO; 000A 3064 00050 MOVLW .100 ;RETARDO DE ESTABILIDAD DE LCD MPASM 02.01 Released CAPAC2.ASM 11-3-1998 18:01:01 PAGE 2 LOC OBJECT CODE LINE SOURCE TEXT VALUE 000B 0090 00051 MOVWF REG1 000C 207A 00052 CALL RETARDO 000D 3038 00053 MOVLW 0X38 ; INICIA LCD A 8 BITS Y 2 LINEAS 000E 206F 00054 CALL CONTROL 000F 3006 00055 MOVLW 0X06 ; MENSAJE FIJO EN PANTALLA 0010 206F 00056 CALL CONTROL 0011 300C 00057 MOVLW 0X0C ; ACTIVA EL DISPLAY 0012 206F 00058 CALL CONTROL 0013 3001 00059 MOVLW 0X01 ; BORRAR PANTALLA 0014 206F 00060 CALL CONTROL 00061 0015 1585 00062 CLEAR BSF TRIGGER ; DESCARGAR CONDENSADOR 0016 110B 00063 BCF OVERFL ; BORRAR BANDERA DEL TIMER0 0017 30FA 00064 MOVLW .250 0018 0090 00065 MOVWF REG1 0019 207A 00066 CALL RETARDO ; RETARDO DE DESCARGA TOTAL DE C 001A 30FA 00067 MOVLW .250 001B 0090 00068 MOVWF REG1 001C 207A 00069 CALL RETARDO 001D 01A2 00070 CLRF REG1A ; CLEAR AL CONTADOR 001E 01A3 00071 CLRF REG2A 001F 01A4 00072 CLRF REG3A 0020 01A5 00073 CLRF REG4A 0021 019F 00074 CLRF REG5A 0022 01A0 00075 CLRF BANDERS 0023 0181 00076 CLRF TIMER0 0024 1185 00077 BCF TRIGGER ; INICIAR CARGA DEL CONDENSADOR 0025 110B 00078 FARA1 BCF OVERFL 0026 1905 00079 FARAD2 BTFSC COMP ; COMPARACION VMAX DEL CONDENSADOR 0027 282C 00080 GOTO CICLO2 0028 1D0B 00081 BTFSS OVERFL 0029 2826 00082 GOTO FARAD2 ; ESPERAR QUE CARGUE EL CONDENSADOR 002A 0AA0 00083 INCF BANDERS,f 002B 2825 00084 GOTO FARA1 00085 002C 0801 00086 CICLO2 MOVF TIMER0,W ; GUARDAR # DE PULSOS EN CICLO 002D 00A6 00087 MOVWF CICLO 002E 009B 00088 MOVWF AUXCI 002F 0AA0 00089 INCF BANDERS,f 0030 0820 00090 MOVF BANDERS,W 0031 009C 00091 MOVWF BANDER1 ; GUARDAR # DE BANDERAS EN BANDER1 0032 3002 00092 MOVLW .2 ; PERIODO PARA REPETIR DATOS 0033 009E 00093 MOVWF PER1 0034 2084 00094 CXLOS CALL INCONT 0035 0BA6 00095 DECFSZ CICLO,f ; CONTAR # DE PULSOS DEL TIMER0 0036 2834 00096 GOTO CXLOS 0037 0BA0 00097 DECFSZ BANDERS,f ; DECREMENTAR CICLO DE ACUERDO A 0038 2843 00098 GOTO CONTF ; # DE BANDERAS 0039 0B9E 00099 DECFSZ PER1,f 003A 283E 00100 GOTO REPIT 003B 1585 00101 BSF TRIGGER ; DESCARGAR CONDENSADOR 003C 2046 00102 CALL VISUAL 003D 2815 00103 GOTO CLEAR MPASM 02.01 Released CAPAC2.ASM 11-3-1998 18:01:01 PAGE 3 LOC OBJECT CODE LINE SOURCE TEXT VALUE 003E 081B 00104 REPIT MOVF AUXCI,W ; RECUPERAR LOS DATOS DEL CONTEO 003F 00A6 00105 MOVWF CICLO ; PARA 2 VEZ Y PODER COMPENSAR PREESCALIZADOR 0040 081C 00106 MOVF BANDER1,W 0041 00A0 00107 MOVWF BANDERS 0042 2834 00108 GOTO CXLOS 0043 30FF 00109 CONTF MOVLW 0XFF 0044 00A6 00110 MOVWF CICLO 0045 2834 00111 GOTO CXLOS 00112 0046 3030 00113 VISUAL MOVLW 0X30 ; PERMITE VISUALIZAR LOS DATOS DE LOS REG Y 0047 07A2 00114 ADDWF REG1A,f ; LOS CONVIERTE DE BCD A ASCII 0048 07A3 00115 ADDWF REG2A,f 0049 07A4 00116 ADDWF REG3A,f 004A 07A5 00117 ADDWF REG4A,f 004B 079F 00118 ADDWF REG5A,f 004C 3001 00119 MOVLW .1 004D 206F 00120 CALL CONTROL 004E 3023 00121 MOVLW "#" 004F 2071 00122 CALL DATO 0050 3046 00123 MOVLW "F" 0051 2071 00124 CALL DATO 0052 3041 00125 MOVLW "A" 0053 2071 00126 CALL DATO 0054 3052 00127 MOVLW "R" 0055 2071 00128 CALL DATO 0056 3041 00129 MOVLW "A" 0057 2071 00130 CALL DATO 0058 3044 00131 MOVLW "D" 0059 2071 00132 CALL DATO 005A 3049 00133 MOVLW "I" 005B 2071 00134 CALL DATO 005C 304F 00135 MOVLW "O" 005D 2071 00136 CALL DATO 005E 3053 00137 MOVLW "S" 005F 2071 00138 CALL DATO 0060 303A 00139 MOVLW ":" 0061 2071 00140 CALL DATO 0062 081F 00141 MOVF REG5A,W 0063 2071 00142 CALL DATO 0064 0825 00143 MOVF REG4A,W 0065 2071 00144 CALL DATO 0066 0824 00145 MOVF REG3A,W 0067 2071 00146 CALL DATO 0068 302E 00147 MOVLW "." 0069 2071 00148 CALL DATO 006A 0823 00149 MOVF REG2A,W 006B 2071 00150 CALL DATO 006C 0822 00151 MOVF REG1A,W 006D 2071 00152 CALL DATO 006E 0008 00153 RETURN 00154 006F 1005 00155 CONTROL BCF RS ; ESTA RUTINA GENERA LOS PULSOS PARA ENVIAR 0070 2872 00156 GOTO DATO1 ; UN DATO O UNA INSTRUCCION AL LCD MPASM 02.01 Released CAPAC2.ASM 11-3-1998 18:01:01 PAGE 4 LOC OBJECT CODE LINE SOURCE TEXT VALUE 0071 1405 00157 DATO BSF RS 0072 1485 00158 DATO1 BSF ENABLE 0073 0086 00159 MOVWF PORTB 0074 3005 00160 MOVLW .5 0075 0090 00161 MOVWF REG1 0076 207A 00162 CALL RETARDO 0077 1085 00163 BCF ENABLE 0078 207A 00164 CALL RETARDO 0079 3400 00165 RETLW 0 00166 007A 0810 00167 RETARDO MOVF REG1,W ; RETARDO VARIABLE DE ESTABILIDAD 007B 0092 00168 MOVWF REG3 007C 30FA 00169 LOOP1 MOVLW .250 007D 0097 00170 MOVWF REG4 007E 0000 00171 LOOP NOP 007F 0B97 00172 DECFSZ REG4,f 0080 287E 00173 GOTO LOOP 0081 0B92 00174 DECFSZ REG3,f 0082 287C 00175 GOTO LOOP1 0083 0008 00176 RETURN 00177 0084 0AA2 00178 INCONT INCF REG1A,f ; RUTINA PARA UNIDADES,DECENAS,CENTENAS DE 0085 300A 00179 MOVLW 0X0A ; LOS VALORES DE CAPACITANCIA A MEDIR 0086 0622 00180 XORWF REG1A,W 0087 1D03 00181 BTFSS 3,2 0088 28A2 00182 GOTO SALIR 0089 01A2 00183 CLRF REG1A 008A 0AA3 00184 INCF REG2A,f 008B 300A 00185 MOVLW 0X0A 008C 0623 00186 XORWF REG2A,W 008D 1D03 00187 BTFSS 3,2 008E 28A2 00188 GOTO SALIR 008F 01A3 00189 CLRF REG2A 0090 0AA4 00190 INCF REG3A,f 0091 300A 00191 MOVLW 0X0A 0092 0624 00192 XORWF REG3A,W 0093 1D03 00193 BTFSS 3,2 0094 28A2 00194 GOTO SALIR 0095 01A4 00195 CLRF REG3A 0096 0AA5 00196 INCF REG4A,f 0097 300A 00197 MOVLW 0X0A 0098 0625 00198 XORWF REG4A,W 0099 1D03 00199 BTFSS 3,2 009A 28A2 00200 GOTO SALIR 009B 01A5 00201 CLRF REG4A 009C 0A9F 00202 INCF REG5A,f 009D 300A 00203 MOVLW 0X0A 009E 061F 00204 XORWF REG5A,W 009F 1D03 00205 BTFSS 3,2 00A0 28A2 00206 GOTO SALIR 00A1 019F 00207 CLRF REG5A 00A2 0008 00208 SALIR RETURN 00209 END MPASM 02.01 Released CAPAC2.ASM 11-3-1998 18:01:01 PAGE 5 SYMBOL TABLE LABEL VALUE AUXCI 0000001B BANDER1 0000001C BANDERS 00000020 CARRY STATUS,0 CICLO 00000026 CICLO2 0000002C CLEAR 00000015 COMP PORTA,2 CONTF 00000043 CONTROL 0000006F CXLOS 00000034 DATO 00000071 DATO1 00000072 EADR 00000009 ECON1 00000088 ECON2 00000089 EDATA 00000008 ENABLE PORTA,1 FARA1 00000025 FARAD2 00000026 INCONT 00000084 INICIO 00000001 INTCON 0000000B LOOP 0000007E LOOP1 0000007C OPCION 00000081 OVERFL INTCON,2 PC 00000002 PER1 0000001E PORTA 00000005 PORTB 00000006 REG1 00000010 REG1A 00000022 REG2A 00000023 REG3 00000012 REG3A 00000024 REG4 00000017 REG4A 00000025 REG5A 0000001F REPIT 0000003E RETARDO 0000007A RS PORTA,0 SALIR 000000A2 STATUS 00000003 TIMER0 00000001 TRIGGER PORTA,3 TRISA 00000085 TRISB 00000086 VISUAL 00000046 W 00000000 __16F84 00000001 f 00000001 MPASM 02.01 Released CAPAC2.ASM 11-3-1998 18:01:01 PAGE 6 MEMORY USAGE MAP ('X' = Used, '-' = Unused) 0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXX------------- ---------------- All other memory blocks unused. Program Memory Words Used: 163 Program Memory Words Free: 861 Errors : 0 Warnings : 0 reported, 0 suppressed Messages : 3 reported, 0 suppressed