Seensor de Tempratura

download Seensor de Tempratura

If you can't read please download the document

description

assembler

Transcript of Seensor de Tempratura

LIST P=16F877A INCLUDE ;Libreria del dispositivo __CONFIG 3F71H;__CONFIG _HS_OSC &_CP_OFF &_WDT_OFF &_LVP_OFF &_PWRTE_ON;variable del delay del adcVAL EQU H'20';variable para el delay del enable lcdVAL2 EQU 0X30VAL1 EQU 0X31;variables para separar el resultado de ADC en valor de BCDUNIDADES EQU 0X32DECENAS EQU 0X33CENTENAS EQU 0X34RESTO EQU 0X35 ORG 0H GOTO INICIO ORG 05HINICIO CLRF PORTA CLRF PORTB CLRF PORTC CLRF PORTD BSF STATUS,RP0 BCF STATUS,RP1;configuracion de puertos C-D para el LCD CLRF TRISC CLRF TRISD;configuracion delpuerto A para ADC MOVLW 00H MOVWF ADCON1 MOVLW 3FH MOVWF TRISA MOVLW H'0';CONFIGURACION DEL PUERTO b paramostrar el resultado ADC MOVWF TRISB BCF STATUS,RP0;inicio del programaSTART CALL START_LCD GOTO START_ADC;iniciar LCDSTART_LCD BCF PORTC,0 MOVLW 0X01 MOVWF PORTD CALL COMANDO MOVLW 0X0C MOVWF PORTD CALL COMANDO MOVLW 0X3C MOVWF PORTD CALL COMANDO BSF PORTC,0 RETURN;rutina para enviar comandosENVIA BSF PORTC,0 CALL COMANDO RETURN;rutina para enviar comandosCOMANDO BSF PORTC,1 CALL DELAY2 CALL DELAY2 BCF PORTC,1 CALL DELAY2 RETURN;rutina para limpiar la pantalla LCDERASE_LCD BCF PORTC,0 MOVLW 0X01 MOVWF PORTD CALL COMANDO BSF PORTC,0 RETURN;configuracion convertudor A/DSTART_ADC MOVLW B'11000001' MOVWF ADCON0;CHS0=0 GO/DONE=0 ADON=1CICLO BSF ADCON0,2 CALL DELAY1ESPERA BTFSC ADCON0,2 GOTO ESPERA MOVF ADRESH,0 MOVWF PORTB;rutina que muestra temperaturaPRINT_TEMP CALL ERASE_LCD MOVLW 'T' MOVWF PORTD CALL ENVIA MOVWF PORTD CALL ENVIA MOVLW '=' MOVWF PORTD CALL ENVIA CALL READ_TEMP MOVF CENTENAS,W MOVWF PORTD CALL ENVIA MOVF DECENAS,W MOVWF PORTD CALL ENVIA MOVF UNIDADES,W MOVWF PORTD CALL ENVIA MOVLW B'00000000' MOVWF PORTD CALL ENVIA MOVLW H'DF' MOVWF PORTD CALL ENVIA MOVLW 'C' MOVWF PORTD CALL ENVIA GOTO CICLO;rutina que obtine el valor de temperatura a partir del resultado del conREAD_TEMP CLRF CENTENAS CLRF DECENAS CLRF UNIDADES MOVF ADRESH,W ADDWF ADRESH,W MOVWF RESTO;comienza el procdeso de obtencion de valoresCENTENAS1 MOVLW D'100' SUBWF RESTO,W BTFSS STATUS,C GOTO DECENAS1 MOVWF RESTO INCF CENTENAS,1 GOTO CENTENAS1DECENAS1 MOVLW D'10' SUBWF RESTO,W BTFSS STATUS,C GOTO UNIDADES1 MOVWF RESTO INCF DECENAS,1 GOTO DECENAS1UNIDADES1 MOVF RESTO,W MOVWF UNIDADES;CLRF resto ;rutina de equivaklente ASCIIOBTEN_ASCII MOVLW H'30' IORWF UNIDADES,F IORWF DECENAS,F IORWF CENTENAS,F RETURN;rutina que genera un delay de 20microsegDELAY1 MOVLW H'30' MOVWF VALLOOP DECFSZ VAL,1 GOTO LOOP RETURN;subrutina de retardo para enable_lcdDELAY2 MOVLW 0XFF MOVWF VAL1LOOP1 MOVLW 0XFF MOVWF VAL2LOOP2 DECFSZ VAL2,1 GOTO LOOP2 DECFSZ VAL1,1 GOTO LOOP1 RETURN END