Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

breve examen para poder registrar los conocimientos adquiridos en la materia y asi tenerbb, Exámenes de Ingeniería

Examen sorpresa y rapido comprendimiento

Tipo: Exámenes

2022/2023

Subido el 27/02/2023

martin-robles-9
martin-robles-9 🇲🇽

1 documento

1 / 19

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
LECTURA DE POSICIÓN DE
UN ENCODER ABSOLUTO
Microprocesadores y periféricos.
RoblesBecerra Martin
17-003-0899
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Vista previa parcial del texto

¡Descarga breve examen para poder registrar los conocimientos adquiridos en la materia y asi tenerbb y más Exámenes en PDF de Ingeniería solo en Docsity!

LECTURA DE POSICIÓN DE

UN ENCODER ABSOLUTO

Microprocesadores y periféricos.

RoblesBecerra Martin

Introducción. Con conocimientos de programación de lenguaje ensamblador se tendrá que implementar un circuito con los comandos dependiendo del microcontrolador a utilizar puesto que cambian los comandos en los diferentes modelos. Poder realizar un encoder absoluto para ver la posición en la que se encuentra la flecha por posición en el puerto A. Material y equipo. Microcontrolador PIC16F Fuente de voltaje de 5V Display de 7 segmentos cátodo común. Encoder absoluto. Resistencia de 10K. Puente H L298N. Motor a pasos 5V.

Desarrollo. Código en lenguaje ensamblador. processor PIC16F include <p16f1938.inc> __CONFIG _CONFIG1,_FOSC_INTOSC & _PWRTE_OFF & _WDTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF __CONFIG _CONFIG2, _WRT_OFF & _VCAPEN_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_OFF CBLOCK 0x CONT CONT CONT ENDC ;A y C entradas y B salida REINICIO ORG 000H GOTO INICIO ORG 005H INICIO BANKSEL LATA ;Data Latch CLRF LATA ;

BANKSEL ANSELA ;

CLRF ANSELA ;digital I/O BANKSEL TRISA ; MOVLW B'11111111' ;Set RA<0:7> as inputs MOVWF TRISA MOVLW B'00001' BANKSEL PORTA ; CLRF PORTA ;Init PORTA MOVWF BSR CLRF TRISB MOVLW B'11111111' MOVWF TRISC ;BCF STATUS,RP MOVLW B'00000' MOVWF BSR CLRF PORTB LOOP ;000 GRAY BTFSC PORTA, CALL COM ;CALL Demora_boton BTFSC PORTA, GOTO LOOP ;CALL Demora_boton

BTFSC PORTA,

GOTO LOOP

;CALL Demora_boton ; BTFSC PORTA, CALL COM ;CALL Demora_boton BTFSC PORTA, GOTO LOOP ;CALL Demora_boton MOVLW B'00000000' MOVWF PORTB ; BTFSC PORTA, CALL COM ;CALL Demora_boton BTFSC PORTA, GOTO LOOP ;CALL Demora_boton ; BTFSC PORTA, CALL COM ;CALL Demora_boton BTFSC PORTA,

GOTO LOOP

;CALL Demora_boton MOVLW B'00000000' MOVWF PORTB GOTO LOOP COM NUMERO1 EQU B'00000000' MOVLW NUMERO1 ;W = NUMERO SUBWF PORTC,W; ;PORTB - W(NUMERO) = W BTFSC STATUS,Z MOVLW B'00111111' ;IGUALES BTFSS STATUS,Z CALL PASO_SIMPLE BTFSS STATUS,C CALL PASO_SIMPLE MOVWF PORTB GOTO LOOP COM NUMERO2 EQU B'00000001' MOVLW NUMERO2 ;W = NUMERO SUBWF PORTC,W; ;PORTB - W(NUMERO) = W BTFSC STATUS,Z MOVLW B'00000110' ;IGUALES

CALL PASO_SIMPLE ;IGUALES

BTFSS STATUS,C

CALL PASO_SIMPLE ;NEGATIVO

MOVWF PORTB

GOTO LOOP

COM

NUMERO5 EQU B'00000110'

MOVLW NUMERO5 ;W = NUMERO

SUBWF PORTC,W; ;PORTB - W(NUMERO) = W

BTFSC STATUS,Z

MOVLW B'001100110' ;IGUALES 7SEG

BTFSS STATUS,Z

CALL PASO_SIMPLE ;IGUALES

BTFSS STATUS,C

CALL PASO_SIMPLE ;NEGATIVO

MOVWF PORTB

GOTO LOOP

COM

NUMERO6 EQU B'00000111'

MOVLW NUMERO6 ;W = NUMERO

SUBWF PORTC,W; ;PORTB - W(NUMERO) = W

BTFSC STATUS,Z

MOVLW B'01101101' ;IGUALES 7SEG

BTFSS STATUS,Z

CALL PASO_SIMPLE ;IGUALES

BTFSS STATUS,C

CALL PASO_SIMPLE ;NEGATIVO

MOVWF PORTB

GOTO LOOP

COM

NUMERO7 EQU B'00000101'

MOVLW NUMERO7 ;W = NUMERO

SUBWF PORTC,W; ;PORTB - W(NUMERO) = W

BTFSC STATUS,Z

MOVLW B'01111100' ;IGUALES 7SEG

BTFSS STATUS,Z

CALL PASO_SIMPLE ;IGUALES

BTFSS STATUS,C

CALL PASO_SIMPLE ;NEGATIVO

MOVWF PORTB

GOTO LOOP

COM

NUMERO8 EQU B'00000100'

MOVLW NUMERO8 ;W = NUMERO

SUBWF PORTC,W; ;PORTB - W(NUMERO) = W

BTFSC STATUS,Z

MOVLW B'00000111' ;IGUALES 7SEG

BTFSS STATUS,Z

CALL PASO_SIMPLE ;IGUALES

BTFSS STATUS,C

MOVLW B'10000000'

MOVWF PORTB

CALL Demora_motor RETURN ;Paso simple invertido PASO_INVERTIDO MOVLW B'10000000' MOVWF PORTB CALL Demora_motor MOVLW B'01000000' MOVWF PORTB CALL Demora_motor MOVLW B'00100000' MOVWF PORTB CALL Demora_motor MOVLW B'00010000' MOVWF PORTB CALL Demora_motor RETURN Demora_motor ;1.298ms ;[(3N+1)M+3M+1 ]P+1+1+(1)(P-1)+2+(2)(P-1) MOVLW D'41';1 P MOVWF CONT3; CICLO3 MOVLW 0x08;1 M

MOVWF CONT2;

CICLO2 MOVLW 0x10;1, N MOVWF CONT; CICLO DECFSZ CONT,1;1(N-1)+ GOTO CICLO; 2(N-1) DECFSZ CONT2,1;1(M-1)+ GOTO CICLO2; 2(M-1) DECFSZ CONT3,1;1(P-1)+ GOTO CICLO3;2(P-1) RETURN END Resultados. Al momento de compilar en el software llamado MPLAB no registró ningún error en el código.

Al ver el funcionamiento del programa compilado se procede a implementar en físico y el resultado fue el siguiente.

Bibliografía. Microcontroladores PIC: sistema integrado para el autoaprendizaje. MARCOMBO, EDICIONES TECNICAS 2007, MARCOMBO S.A. Enrique Mandado Pérez, Luis Menéndez Fuertes. Microcontroladores: fundamentos y aplicaciones con PIC. Ramón Pallás Areny. 3Q editorial.