Вы находитесь на странице: 1из 7

Universidad Nacional Autnoma de Mxico

Facultad de Ingeniera
Laboratorio de Microcomputadoras
Prctica # 6
Convertidor Analgico/Digital
Ejercicio 1
1.- Inicio
2.- Configurar puertos
3.- Recibe valor en el puerto A
4.- Si no cambia el valor en el puerto A
5.- Transforma valor analgico a digital
6.- En caso contrario
7.- Regresa al paso 3
8.- FIN
processor 16f877 ;Indica la versin de procesador
include <p16f877.inc> ;Incluye la librera de la versin del procesador
org 0H ;Carga al vector de RESET la direccin de inicio
goto inicio
org 05H ;Direccin de inicio del programa del usuario
valor1 equ h'21' ;Declarando variables
valor2 equ h'22'
valor3 equ h'23'
cte1 equ 00h
cte2 equ 50h
cte3 equ 60h
inicio:
CLRF PORTA
BSF STATUS,RP0 ;Cambia la banco 1
BCF STATUS,RP1 ;Configura puertos A y E como ANALOGICAS
CLRF ADCON1
;MOVLW h'FF' ;Configura el puerto A como entrada
;MOVWF TRISA
;bsf ADCON1,2
CLRF TRISB
BCF STATUS,RP0 ;Regresa al banco cero
MOVLW B'11000001'
MOVWF ADCON0;Se carga el valor de W en ADCON0
LOOP:
;BCF ADCON0,3;Seleccionando el canal de entrada
;BCF ADCON0,4
BSF ADCON0,2;Enciede preoceso de conversin

;CALL RETARDO;llamada a retardo de .5s


;BSF ADCON0,0; Encender el convertidor A/D
ESPERA:
BTFSC ADCON0,2;Se pregunta si ya termino la conversin
GOTO ESPERA;No, ve a espera
MOVF ADRESH,W;si, movemos el valor a W
MOVWF PORTB;Cargamos el valor de W en PortB
GOTO LOOP
;Rutina que genera retardo de .5 s
RETARDO:
movlw cte1
movwf valor1
tres movlw cte2
movwf valor2
dos movlw cte3
movwf valor3
uno decfsz valor3
goto uno
decfsz valor2
goto dos
decfsz valor1
goto tres
return
END
Ejercicio 2
1.- Inicio
2.- Configurar puertos
3.- Recibe valor en el puerto A
4.- Si el valor del puerto A es menor que 1/3 Vcc y no cambia
5.- Manda 001 al puerto B
6.- Regresa al paso 3
7.- Si el valor del puerto A es mayor que 1/3, menor que 2/3 Vcc y no
cambia
8.- Manda 011 al puerto B
9.- Regresa al paso 3
10.- En caso contrario
11.- Manda 111 al puerto B
12.- Regresa al paso 3
13.- Fin
processor 16f877 ;Indica la versin de procesador
include <p16f877.inc> ;Incluye la librera de la versin del procesador
org 0H ;Carga al vector de RESET la direccin de inicio
goto inicio
org 05H ;Direccin de inicio del programa del usuario
VOLTAJE EQU H'24';Declarando constantes

valor1 equ h'21'


valor2 equ h'22'
valor3 equ h'23'
cte1 equ 00h
cte2 equ 50h
cte3 equ 60h
inicio:
CLRF PORTA
BSF STATUS,RP0 ;Cambia la banco 1
BCF STATUS,RP1
;Configura puertos A y E como ANALOGICAS
CLRF ADCON1
;MOVLW h'FF' ;Configura el puerto A como entrada
;MOVWF TRISA
;bsf ADCON1,2
CLRF TRISB
BCF STATUS,RP0 ;Regresa al banco cero
MOVLW B'11000001'
MOVWF ADCON0;Se carga el valor de W en ADCON0
LOOP:
BSF ADCON0,2;Se inicia el proceso de conversion
;CALL RETARDO
;BSF ADCON0,0;Se enciede el convertidor
ESPERA:
BTFSC ADCON0,2;SE pregunta si ya acabo la conversin
GOTO ESPERA;no, ve a espera
MOVF ADRESH,W;si, guarda el valor en W
MOVWF VOLTAJE;El valor de W se guarda en la variable voltaje
MOVLW H'54';Se carga W con 54
SUBWF VOLTAJE,0;Se hace la resta de W -voltaje y se guarda el resultado en
W
BTFSC STATUS,C;Se compara si el resultado fue negativo o positivo
GOTO DOSTERCIOS;negativo, ve a Dostercios
MOVLW H'07';positivio, se carga 07 en W
MOVWF PORTB;Se carga el valor de W en PORTB
GOTO LOOP
DOSTERCIOS:
MOVLW H'8A';Se carga W con 8A
SUBWF VOLTAJE,0;Se hace la resta de W -voltaje y se guarda el resultado en
W
BTFSC STATUS,C;Se compara si el resultado fue negativo o positivo
GOTO UNTERCIO;negativo, ve a untercio
MOVLW H'03';positivo, carga 03 en w

MOVWF PORTB;Se carga el valor de W en PORTB


GOTO LOOP
UNTERCIO:
MOVLW H'01';Se carga 1 en W
MOVWF PORTB;Se carga el valor de W en PORTB
GOTO LOOP
;Subrutina de retardo de .5 s
RETARDO:
movlw cte1
movwf valor1
tres movlw cte2
movwf valor2
dos movlw cte3
movwf valor3
uno decfsz valor3
goto uno
decfsz valor2
goto dos
decfsz valor1
goto tres
return
END
Ejercicio 3
1.- Inicio
2.- Configurar puertos
3.- Recibe valor en el puerto A
4.- Si el bit 001 del puerto A es mayor que 100, 010 y no cambia
5.- Manda 001 al puerto B
6.- Regresa al paso 3
7.- Si el bit 010 del puerto A es mayor que 100, 001 y no cambia
8.- Manda 011 al puerto B
9.- Regresa al paso 3
10.- En caso contrario
11.- Manda 111 al puerto B
12.- Regresa al paso 3
13.- Fin
processor 16f877 ;Indica la versin de procesador
include <p16f877.inc> ;Incluye la librera de la versin del procesador
org 0H ;Carga al vector de RESET la direccin de inicio
goto inicio
org 05H ;Direccin de inicio del programa del usuario
V1 EQU H'24';Se declaran variables
V2 EQU H'25'
V3 EQU H'26'
valor1 equ h'21'

valor2 equ h'22'


valor3 equ h'23'
cte1 equ 00h
cte2 equ 50h
cte3 equ 60h
INICIO:
CLRF PORTA
BSF STATUS,RP0 ;Cambia la banco 1
BCF STATUS,RP1
;Configura puertos A y E como ANALOGICAS
CLRF ADCON1
;MOVLW h'FF' ;Configura el puerto A como entrada
;MOVWF TRISA
;bsf ADCON1,2
CLRF TRISB
BCF STATUS,RP0 ;Regresa al banco cero
MOVLW B'11000001'
MOVWF ADCON0 ; SE carga W en ADCON0
VALOR1:
BSF ADCON0,2;SE inicia el proceso de conversin
BTFSC ADCON0,2;SE pregunta si ya acabo el proceso de conversion
GOTO VOLOR1;no, regresa a valor1
MOVF ADRESH,W;si, se carga el valor en W
MOVWF V1;se carga el valor de W en V1
VALOR2:
BSF ADCON0,2;SE inicia el proceso de conversin
BTFSC ADCON0,2;SE pregunta si ya acabo el proceso de conversion
GOTO VOLOR2;no, regresa a valor2
MOVF ADRESH,W;si, se carga el valor en W
MOVWF V2;se carga el valor de W en V2
VALOR3:
BSF ADCON0,2;SE inicia el proceso de conversin
BTFSC ADCON0,2;SE pregunta si ya acabo el proceso de conversion
GOTO VOLOR3;no, regresa a valor3
MOVF ADRESH,W;si, se carga el valor en W
MOVWF V3;se carga el valor de W en V3
V1MAYOR:
MOVF V1,W;Se carga el valore de V1 en W
SUBWF V2,0;Se hace la resta de W -voltaje
BTFSC STATUS,C;Se compara si el resultado fue negativo o positivo
GOTO V2MAYOR;negativo
MOVF V1,W;Se carga el valore de V1 en W
SUBWF V3,0;Se hace la resta de W -voltaje
BTFSC STATUS,C;Se compara si el resultado fue negativo o positivo

GOTO V3MAYOR;negativo
MOVLW H01;positivo, continua
MOVWF PORTB;Se carga 1 en PORTB
GOTO INICIO
V2MAYOR:
MOVF V2,W;Se carga el valore de V2 en W
SUBWF V3,0;Se hace la resta de W -voltaje
BTFSC STATUS,C;Se compara si el resultado fue negativo o positivo
GOTO V3MAYOR;Negativo
MOVLW H03;positivo, continua
MOVWF PORTB;Se carga 3 en PORTB
GOTO INICIO
V3MAYOR:
MOVLW H07
MOVWF PORTB;se carga 7 en PORTB
GOTO INICIO
RETARDO:
movlw cte1
movwf valor1
tres movlw cte2
movwf valor2
dos movlw cte3
movwf valor3
uno decfsz valor3
goto uno
decfsz valor2
goto dos
decfsz valor1
goto tres
return
END
Perifricos usados
Entrada:
-Potencimetros
Salidas:
-LEDs
Modo de direccionamiento
Directo
Flujo de datos
-Se uso el PortA como entrada

-Se uso el PortB como salida


Se utilizaron los registros
-20
-21
-22
-23
-24
-25
-26
-50
-60

Вам также может понравиться