Vous êtes sur la page 1sur 4

ITCR. Marín. Preparación de reportes escritos informativos.

/* SERVICIO NACIONAL DE APRENDIZAJE /* ESPACIO PARA EL APRENDIZ

SENA

CENTRO METALMECANICO NOMBRES: Leonardo Joya

2019 Deimer Gil

Javier Malaver

ACTIVIDAD 1: INTRODUCCION A LOS


MICROCONTROLADORES
FICHA: 1617874 AUTOMATIZACION INDUSTRIAL
TALLER: PROCESO DE GRABACION DE
MICROCONTROLADORES
FECHA: 08/04/2019

El objetivo del presente ejercicio es conocer


diferentes herramientas que están Describa brevemente el funcionamiento de este
código.
involucrados en el proceso de grabación de un
microcontrolador. En este caso se secuencia 1:
hace la simulación de unas luces navideñas cuyas En esta secuencia se observa que enciende el
secuencias se ejecutan de primer led deja un espacio de tiempo y luego
enciendes los leds 5, 6 ,7 y 8 los leds 2,3 y 4
forma automática y cambian al accionar un
siempre permaneces apagados
pulsador.
secuencia 2:

en esta secuencia se ve un cambio descendente


Como es un primer acercamiento con los
entre los leds empezando esta por el led 8 y
microcontroladores no es indispensable
esperando un corto lapso para que se encienda el
que conozca o entienda cada línea de código. Pero led 7 y así hasta llegar al led 1 y generando un
sí es importante que el bucle de secuencia

aprendiz realice el ejercicio de manera individual secuencia 3:

al hacer el cambio de secuencia se ve un retardo


de maso menos 5 segundos para para que los leds
*/
5,6 ,7 y 8 enciendan por lapsos de tiempo tipo
/**************************************** titileo y los leds 1,2, 3 y 4 permanezcan apagados
*************************************/
secuencia 4:

se encienden los leds intercaladamente dando


inicio por el led numero 8 donde junto con él se
encienden al tiempo los leds pares, por un tiempo
limitado para dar paso a los leds impares

1
ITCR. Marín. Preparación de reportes escritos informativos.

secuencia 5:

en esta secuencia se ve un cambio ascendente //MANEJO DE SUBRUTINAS


entre los leds empezando esta por el led 1 y
esperando un corto lapso de tiempo para que se
encienda el led 2 y así hasta llegar al led 8 y #int_TIMER0
generando un bucle de secuencia
void TIMER0_isr(void)

{
secuencia 6:
if (input(entrada) == 0){
en esta secuencia todos los leds encienden se
inicia encendiendo rápidamente de izquierda a contador++;
derecha es decir del led 1 al led 8 y después flag = true;
realiza la misma secuencia en viceversa
while(input(entrada) == 0){}

set_TIMER0(0x83);}
*/
else

set_TIMER0(0x83);
//DIRECTIVAS DE PORCESAMIENTO

}
#include <16f84A.h>

#fuses XT, NOWDT, PUT, NOPROTECT


// PROGRAMA PRINCIPAL
#use DELAY (CLOCK= 4M)

void main(){

//DEFINICION DE VARIABLES Y CONSTANTES


//Definición de Entrada y Salidas

setup_ADC(ADC_Off);

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);

set_tris_a(0x3F);
#DEFINE entrada PIN_A0
set_tris_b(0);
int contador;
enable_interrupts(int_TIMER0);
int auxiliar;
enable_interrupts(int_TIMER1);
int flag;
enable_interrupts(GLOBAL);
signed long i;

2
ITCR. Marín. Preparación de reportes escritos informativos.

set_TIMER0(0x83); if (flag == true){break;}

OUTPUT_B(0); output_B(0x0F);

auxiliar = 0x11; delay_ms(i);

contador = 0; output_B(0);

delay_ms(100-i);}

while(true){ if (flag == true){break;}}

for(i=100; i>=0; --i){

switch (contador){ for(int j=0; j<=10; j++){

case 0: if (flag == true){break;}

output_B(0x0F); output_B(0x0F);

delay_ms(500); delay_ms(i);

output_B(0x80); output_B(0);

delay_ms(500); delay_ms(100-i);}

break; if (flag == true){break;}}

case 1: break;

if (auxiliar == 0x88){ case 3:

output_B(auxiliar); output_B(0xAA);

delay_ms(100); delay_mS(500);

auxiliar = 0x11;} output_B(0x55);

else { delay_ms(500);

output_B(auxiliar); break;

delay_ms(100);

auxiliar = auxiliar << 1;} case 4:

break; if (auxiliar == 0x11){

case 2: output_B(auxiliar);

flag = false; delay_ms(100);

for(i=0; i<=100; ++i){ auxiliar= 0x88;}

for(int j=0; j<=10; j++){ else {

3
ITCR. Marín. Preparación de reportes escritos informativos.

output_B(auxiliar); case 6:

delay_ms(100); output_b(0);

auxiliar = auxiliar >> 1;} while (input(entrada)){}

break; break;

case 5: default: contador = 0; auxiliar = 0x11;

for(i=1; i<=20; ++i){

if (flag == true){flag = false; break;} }}

if (auxiliar== 0x88){ }

output_B(auxiliar);

delay_ms(100);

auxiliar = 0x11;}

else{

output_B(auxiliar);

delay_ms(100);

auxiliar = auxiliar << 1;}}

for(i=1; i<=20; ++i){

if (flag == true){flag = false; break;}

if (auxiliar == 0x11){

output_B(auxiliar);

delay_ms(100);

auxiliar = 0x88;}

else{

output_B(auxiliar);

delay_ms(100);

auxiliar = auxiliar >> 1;}}

break;

Vous aimerez peut-être aussi