«Conversión analógico/digital» gy Amoona Ac•Ka6pR 03, 2010 S pagos Práctica «Conversión Analógico/Digital» OBJETIVO Implementar un algoritmo para medición de un vo taje analógico y despliegue de su magnitud en 2 dígitos con indicadores luminosos de 7 segmentos. MATERIAL Y EQUIPO: • PIC16F873 • Fuente de vo taje • Display 7 segmentos • Transistor NPN (222 ors • Resistencias (10,3 C], 1 DESARROLLO Configuración de puertos digitales de salida Configuración de entrada analógica y convertidor AID Configuración de TMRO para interrupción periódica
Almacenamiento del resultado de la conversión A/D Interrupción TMRO Despliegue de unidades o decenas Inicio de conversión AID truncado. Con la conversión justificada a la izquierda y tomando el valor de ADRESH, las conversiones se truncan a 8 bits sin afecta I resolución de salida deseada. CODIGO FUENTE: ;PRACTICA4 LIST P=16F873 #include «Pl 6F873.
INC» COCIENTE EQU 21h DATO_L EQU 22h DATO_D EQU 23h DATO_H EQU 24h DATO EQU 27h ORG 00h GOTO INICIO INICIO BSF STATUS,RPO ;Banco 1 de registros TRISA,O ;RA0 como entrada gcp TRISA,I RA2 como salida 3CF TRISA,2 ;RA2 como salida CLRF TRISC BSF ADCONI ,PCFG3 ;Poner el pin PCFG3a 1 para seleccionar la configuración de control del puerto A,’D ADCON1,PCFG2 ;poner el Pin PCFG2a1 para seleccionar la
configuración de control del puerto A/D ADCONI,PCFGI ;poner el Pin PCFGI a 1 para seleccionar la configuración de control RI_IFS 3CF ADCONI,PCFGO CFGO a O para seleccionar ADCONO,CHSI ;Selección del canal cero para conversión AID del registro ADCONO BCF ADCONO,CHSO ;Selección del canal cero para conversión AID del registro ADCONO BSF ADCONO,ADON operando CALL WRT TABLE escribir la tabla. odulo del convertidor A/D está Llama a la subrutina WRT_TABLE para BSF ;Conversión AID está en progreso, activar p’ empezar la conversión AID CICLO BTFSCADCONO,GO DONE GOTO CICLO MOVF ADRESH,O conversion MOVWF DATO_D ;Respalda en W el resultado de la lo guarda en DATO_D MOVLW 05h CALLDIVISION ‘Llama a la subrutina de división MOVF COCIENTE,O MOVWF DATO D DATO D-W-COCIENTE MOVLW OAh CALL DIVISION ;DATO D/IO MOVWF DATO H MOVF MOVWF DATO L BTFSS PORTAI GOTO UNIDADES BCF PORTA,I Decenas del número a mostrar ;Unidades del número a mostrar esplegar unidades 31_1fS BSF PORTAI GOTO AS DIVISION CLRF COCIENTE RESTA SUBWF DATO BTFSS STATUS,C ,encendido del display ;DATO D W c-l DATO>-W GOTO SALDIV ;salida Si INCF COCIENTE,F ;lncrementa el cociente GOTO RESTA regresa SALDIV ;Compensa el residuo RETURN tremina WRT TABLE acp STATUS,RPO MOVLW 0x30 memoria MOVWF FSR MOVLW OX7E MOVWF INDF INCF FSR MOVLW ox30 MOVLW 0x6D ;manda el apuntador a la posición inicial de RAM ;Carga el valor 1 en W ;Mueve el contenido de W a INDF lncrementa FSR ;Carga el valor 2 en W ;Carga el valor 3 en W 406 S MOVLW 0x4E MOVLW 0x3D MOVLW ox4F MOVLW ox47 ;Carga el valor 13 en W ;Carga el valor 14 en W ;Carga el valor 15 en W ;Carga el valor 16 en W CONVERT ;Rutina para convertir datos BCD a 7 segmentos MOVLW OFh ANDWFDATO,I ->lnstrucción para truncar el valor del dato en A a 4 digitas MOVI_W 0x30 ;Ponle la dirección inicial de la tabla en W MOVWF FSR ;carga la dirección de inicio de la tabla en FSR MOVF DATO,O ADDWFFSR,I suma el valor de DATO a FSR MOVF INDF,O END SÜFS