✅RUTINAS de TIEMPO en el PIC | MUY DIDÁCTICO 💯| PROGRAMACIÓN ENSAMBLADOR #06

  Рет қаралды 14,031

Les Ingenieurs

Les Ingenieurs

Күн бұрын

Пікірлер: 15
@froylancruzalmerayacarreon7825
@froylancruzalmerayacarreon7825 Жыл бұрын
Muy bien explicado, toma tu merecido like
@adonaygutierrez7679
@adonaygutierrez7679 4 жыл бұрын
Dios bendiga a este hombre Al fin comprendo Muchismas gracias! Nuevo sub.
@jose6491
@jose6491 2 жыл бұрын
Excelente video
@oscarmonroysantos7128
@oscarmonroysantos7128 6 жыл бұрын
Wow, ¡excelente video!
@LesIngenieurs
@LesIngenieurs 6 жыл бұрын
Saludos y muchas gracias por tu comentario
@bravoestradarafaelmilton9386
@bravoestradarafaelmilton9386 4 жыл бұрын
Buen video, me ayudo mucho y muy bien explicado, gracias.
@irvinriverabadillo9060
@irvinriverabadillo9060 5 жыл бұрын
Que buen vídeo, muchas gracias por ser preciso y didacta
@luisni3735
@luisni3735 4 жыл бұрын
este procedimiento (el de rutina de decremento) es el único para hacer retardos en assembler?
@erikmendoza1535
@erikmendoza1535 4 жыл бұрын
DISCULPE SABE CUAL ES TIEMPO QUE TARDA UN MICROCONTROLADOR EN REDUCIR LA VARIABLE A 255 A 0
@CrisDFF30917
@CrisDFF30917 Жыл бұрын
Y que tal si deseo un retardo de 1us?
@jaironavarro8303
@jaironavarro8303 3 жыл бұрын
Disculpa, a que te refieres que a partir de la dirección 20 tienes direcciones libres?
@beney_11
@beney_11 3 жыл бұрын
En los microcontroladores hay diferentes direcciones. Algunas de ellas vienen con funciones de de fábrica (por ejemplo el TRISB, PORTB, el registro ADCON1...) Son funciones que vienen programas para una tarea en concreto (como sería cambiar entre analógico o digital en el caso de ADCON1 o cambiar entre entradas y salidas mediante TRISB). En el microcontrolador del vídeo, que se trata del PIC16F877A a partir de la dirección 20 del primer banco de la memoria RAM de datos, hay unos registro que se llaman registros de propósito general. Es decir registros para uso a gusto del usuario. Son registros a los cuales tú les vas a indicar la función que quieres que cumplan (como un contador por ejemplo). Si buscas en internet memoria ram de datos pic16f877a, en imágenes tendrás todas las direcciones y la función que cumple cada una. Espero haberme explicado bien. Ya han pasado dos meses desde que preguntaste así que imagino que ya resolviste tu duda antes. Aún así ahí tienes la explicación.
@albertomurillo3231
@albertomurillo3231 2 жыл бұрын
HOLA: Este programa trata de temporizar, 5 segundos un led cuando el interruptor I1 está en 1 y cuando esta en 0 salta a BUCLE. I1 LED 0 BUCLE 1 5 SEGUNDOS POR FAVOR ME PUEDEN AYUDAR EN LA PARTE DE LAS RUTINAS DE : DELAY 5S, ¿COMO CALCULA EL PROGRAMA EL TIEMPO PARA ENCENDER EL LED POR 5S Y APAGARLO POR 2S LED? POR EJEMPLO: EN EL TRAT _1 , se llama a la rutina DELAY5S, 5 SEGUNDOS (SE QUE LAS INSTRUCCIONES DE SALTO TARDAN 2 MICROSEGUNDOS Y LAS NORMALES 1 MICROSEGUNDO CON UN XL=4MHZ) COMO SEVE EN EL PROGRAMA HAY UNA RUTINA AUXILIAR LA CUAL HACE QUE SE DESBORDE EL TMR0 = 0XD9= 217 O SEA CUENTA 39 Y ESTE A SU VEZ DECREMENTA UN REGISTRO AUXILIAR LLAMADO TEMPO1 Y ES CARGADO CON 100. GRACIAS.. EL PROGRAMA FUNCIONA PERFECTO CUANDO LO MONTE EN LA PLACA DE ENTRENAMIENTO PERO QUIERO SABER LOS PASOS QUE REALIZA EL PROGRAMA PARA TRATAR POR EJEMPLO EL DELAY DE SEGUNDOS (COMO HACE PARA CALCULAR DICHO TIEMPO DE 5SEGUNDOS) GRACIAS. LIST P=16F84A RADIX HEX INCLUDE "P16F84A.INC" W EQU 0X00 ;Registro de destino W:d=0 F EQU 0X01 ;Registro de destino F:d=1 Z EQU 0X02 ;Bit2 del registro ESTADO TMR0_OPT EQU 0X01 ;El registro tmr0 ocupa la dirccion 1 ;de banco 1 ESTADO EQU 0X03 ;El registro ESTADO ocupa la direccion ;3 de los dos bancos INTCON EQU 0X0B ;El registro INTCON ocupa la direccion ;0x0B de los dos bancos PUERTAA EQU 0X05 ;La PUERTAA ocupa la dirrecion 5 del ;banco 0 y su reguistro de configuracion ;la direcicion 5 del banco 1 PUERTAB EQU 0x06 ;La PUERTAB ocupa la dirección 6 del ;banco 0 y su registro de configuración ;la dirección 6 del banco 1 AUX EQU 0x0c ;Registro auxiliar en el que se carga el ;estado del interruptor TEMPO1 EQU 0x0E ;Registro auxiliar para las rutinas de ;DELAY ORG 0 ;El programa comienza en la dirección 0 y goto INICIO ;salta a la dirección 5 para sobrepasar el ORG 5 ;vector de interrupción INICIO bsf ESTADO,5 ;Selección del banco 1 movlw b'00000001' ;Se configuran RAO como movwf PUERTAA ;entradas clrf PUERTAB ;Se configura la PUERTAB como salida movlw b'00000111' movwf TMR0_OPT ;Se asigna el preescaler al TMR0 bcf ESTADO,5 ;Selección del banco 0 clrf PUERTAA ;Se inicializan las puertas a clrf PUERTAB ;ceros BUCLE call DELAY2S ;Se deja tiempo para que el usuario cambie el ;el estado 1/0 movf PUERTAA,W ;Se pasa el contenido de la PUERTAA a un registro movwf AUX ;auxiliar. Dicho registro habrá que pasarlo a W antes ;de cada operación XORLW, ya que la anterior habrá ;cambiado su valor xorlw b'000000001' ;Se hacen sucesivas máscaras para saber qué ;combinación se ha introducido ;Explora el bit2 de ETADO btfsc ESTADO,Z ;Z1:Hasido 0? Z0:No ha sido 0? goto TRAT_1 ;salta a trat_1 si reultado es w=0 goto BUCLE ;RUTINA PARA LA COMBINACIÓN I1=1 TRAT_1 bsf PUERTAB,1 ;Se enciende el LED de RB1 (verde) call DELAY5S ;Se espera los segundos adecuados según I1 bcf PUERTAB,1 ;Se apaga el LED verde FIN goto BUCLE ;Bucle para repetir el tratamiento completo ;RUTINA AUXILIAR DE DELAY DELAY10 bcf INTCON,2 ;Borra el flag de estado del TMRO movlw 0xD9 movwf TMR0_OPT ;Carga del TMRO para que cuente 39 DELAY10_1 btfss INTCON,2 ;Espera el desbordamiento del TMR0 goto DELAY10_1 decfsz TEMPO1,F goto DELAY10 return ;RUTINA DE DELAY DE UN SEGUNDO DELAY1S movlw 0x64 movwf TEMPO1 ;Carga la variable TEMPO1,que será ;decrementada call DELAY10 ;en la rutina a la que se llama return ;RUTINA DE DELAY DE DOS SEGUNDOS DELAY2S call DELAY1S call DELAY1S return ;RUTINA DE DELAY DE CINCO SEGUNDOS DELAY5S call DELAY2S call DELAY2S call DELAY1S return END
@keilamenbla3797
@keilamenbla3797 4 жыл бұрын
te amo
@albertomurillo3231
@albertomurillo3231 2 жыл бұрын
----------------------------------------------------------------------------------------------------------------------------- HOLA: Esta parte de programa se trata de un semáforo programado, que según los interruptores I2 e I1 provocan una secuencia de encendido de los LEDS: Rojo, Ambar y Verde. con un retardo según la tabla 10, 8, 5, 2 segundos. I2 I1 VERDE AMBAR ROJO = LEDS TRAT 0 0 5 s 2 10 = TIEMPOS TRAT 0 1 5 s 2 10 = TIEMPOS TRAT 1 0 8 s 2 8 = TIEMPOS TRAT 1 1 10 s 2 5 = TIEMPOS Tiene 4 rutinas de TraTamiento de acuerdo a la combinación; TRAT_0_0, TRAT_1_0, TRAT_0_1, TRAT_1_1. POR FAVOR ME PUEDEN AYUDAR EN LA PARTE DE LAS RUTINAS DE ; DELAY 10S, DELAY 8S, DELAY 5S, DELAY 2S, QUE CONTROLAN EL TIEMPO PARA CADA LED ROJO, AMBAR, VERDE ¿COMO CALCULA EL PROGRAMA EL TIEMPO PARA CADA LED? POR EJEMPO: EN EL TRAT 01 , EL LED VERDE TARDA 5 SEGUNDOS (SE QUE LAS INSTRUCCIONES DE SALTO TARDAN 2 MICROSEGUNDOS Y LAS NORMALES 1 MICROSEGUNDO CON UN XL=4MHZ) COMO SEVE EN EL PROGAMA HAY UNA RUTINA AUXILIAR LA CUAL HACE QUE SE DESBORDE EL TMR0 = 0XD9= 217 O SEA CUENTA39 Y ESTE A SUVEZ DECREMENTA UN REGISTRO AUXILIAR LLAMADO TEMPO1 Y ES CARGADO CON 100. GRACIAS.. EL PROGRAMA FUNCIONA PERFECTO CUANDO LO MONTE EN LA PLACA DE ENTRENAMIENTO PERO QUIERO SABER LOS PASOS QUE REALIZA EL PROGRAMA PARA TRATAR POR EJEMPLO EL DELAY DE 5 SEGUNDOS (call DELAY5S) ;RUTINA PARA LA COMBINACIÓN I2=0 I1=0 TRAT_0_0 bsf PUERTAB,1 ;Se enciende el LED de RB1 (verde) call DELAY5S ;Se espera los segundos adecuados según I1 e I2 bcf PUERTAB,1 ;Se apaga el LED verde bsf PUERTAB,3 ;Se enciende el LED de RB3 (ámbar) call DELAY2S ;Se apaga el LED ámbar; bcf PUERTAB,3 ;Se espera los segundos adecuados bsf PUERTAB,5 ;Se enciende el LED de RB5 (rojo) call DELAY5S ;Se espera los segundos adecuados bcf PUERTAB,5 ;Se apaga el LED rojo goto FIN ;RUTINA AUXILIAR DE DELAY --------------------------------------------------------- DELAY10 bcf INTCON,2 ;Borra el flag de estado del TMR0 movlw 0xD9 movwf TMR0_OPT ;Carga del TMRO para que cuente 39 DELAY10_1 btfss INTCON,2 ;Espera el desbordamiento del TMR0 goto DELAY10_1 decfsz TEMPO1,F goto DELAY10 return ------------------------------------------------------------ ;RUTINA DE DELAY DE UN SEGUNDO DELAY1S movlw 0x64 movwf TEMPO1 ;Carga la variable TEMPO1, que será ;decrementada call DELAY10 ;en la rutina a la que se llama return ;RUTINA DE DELAY DE DOS SEGUNDOS DELAY2S call DELAY1S call DELAY1S return ;RUTINA DE DELAY DE CINCO SEGUNDOS DELAY5S call DELAY2S call DELAY2S call DELAY1S return ;RUTINA DE DELAY DE OCHO SEGUNDOS DELAY8S call DELAY5S call DELAY2S call DELAY1S return ;RUTINA DE DELAY DE DIEZ SEGUNDOS DELAY10S call DELAY5S call DELAY5S return END No pude subir el programa completo youtube me lanza este error Returned error
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
Мясо вегана? 🧐 @Whatthefshow
01:01
История одного вокалиста
Рет қаралды 7 МЛН
Сестра обхитрила!
00:17
Victoria Portfolio
Рет қаралды 958 М.
How Strong Is Tape?
00:24
Stokes Twins
Рет қаралды 96 МЛН
Why Does Diffusion Work Better than Auto-Regression?
20:18
Algorithmic Simplicity
Рет қаралды 439 М.
Introducción a MPLAB microcontrolador pic16f84A
16:56
Guillermo Ventura
Рет қаралды 14 М.
PIC16F877A - El TMR0 (Contador o Temporizador) 🆓
40:51
RodrigoCarita
Рет қаралды 20 М.
Microcontroladores || parte 3 || Leds parpadeando
19:26
Les Ingenieurs
Рет қаралды 10 М.
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19