# PIC 16F84A y LED intermitente



## Darrenz (May 2, 2008)

Hola buenas, tengo un pic 16f84A conectado a un oscilador de 4MHz y 2 condensadores de 27 picofaradios que estan conectados junto con VSS a tierra y en la salida RA2 salida un LED con su resistencia. MCLR\ tiene un R de 4,7Kohm y esta unida +5V junto con VDD.

El problema viene cuando lo enciendo, el LED se queda iluminado todo el tiempo. pongo el programa del pic por si es eso.


```
#Include <Pic16f84A.h>

#Fuses XT ,NOWDT ,NOTPROTECT
#Huse delay(clock= 4000000)

#Define LED pin_A2

Void main()

While (1)
{
outoput_high (LED); // Encender LED, estado ALTO de la salida A2.
delay_ms(1000); // Esperar 1 sec.
Outoput_low(LED); //  Apagar LED, estado BAJO de la salida A2.
delay_ms(1000); // Esperar 1 sec.
}

}
```



			
				Apollo dijo:
			
		

> Título editado - Reglas generales de uso del foro:
> 2. Utiliza siempre títulos descriptivos. Evita usar "Hola", "Ayuda por favor", "Urgente", etc.


----------



## monomanio (May 2, 2008)

Hola....yo tambien tengo duda con eso, el unico detale es que mi led lo tengo en RB7....Yo quiero q mientras haya un cero en RB4 el led empieze a oscilar cada medio segundo...les paso mi programa....Mi problema es que el Led no prende ni apaga para nada!


```
;PROGRAMA QUE ENCIENDE UN LED CADA MEDIO SEGUNDO

__CONFIG _CP_OFF& _WDT_OFF& _PWRTE_ON& _XT_OSC

LIST  	   P=16F84A
INCLUDE    P16F84A.INC


			
	UNO_LED		EQU		b'10000000'		
	CERO_LED	EQU		b'00000000' 	
				ORG 0
INICIO
			
			MOVLW	b'11111111'
			MOVF	TRISA; TODOS BITS PTOA DE ENTRADA
			CLRF	TRISB; TODOS BITS PTOB DE SALIDA	

OP_PUSH		BTFSC	PORTA,0
			GOTO	OP_PUSH
LED
			MOVLW	UNO_LED
			MOVWF   PORTB
			CALL 	Retardo_500micros
			MOVLW	CERO_LED
			MOVWF	PORTB
			CALL	Retardo_500micros
			GOTO 	LED

#INCLUDE <RETARDOS.INC>

END
```


----------



## leo_programer (May 2, 2008)

que mas monomanio y darrenz?

yo creo que el problema de ambos radica en no definir si son o no entradas y salidas los puertos, en el caso de monomanio, lo haces desde el banco 0, cosa que no se puede, tiene que switchear al banco 1 para que tenga efecto... asi:


```
ORG		0

INICIO			BCF		STATUS,RP1
					BSF		STATUS,RP0
					MOVLW	b'11111111'
					MOVF	TRISA			;TODOS BITS PTOA DE ENTRADA
					CLRF	TRISB			;TODOS BITS PTOB DE SALIDA
					BCF		STATUS,RP0
```

de resto esta bien, para darrenz... bueno, si el programa como lo tienes corre es un milagro... perdona que te lo diga y mi intensión no es regañarlo, pero tiene algunos errores, espero que sea transcribiendolo al foro que cambiaron, el caso es que, tienes que agregarle la funcion set_tris_a(0x00) para que el puerto a quede como salida, y asi asegurar de que funcione, por que de resto el programa esta bien, espero les sirva esta información... cuidensen...


----------



## monomanio (May 3, 2008)

Muchas gracias por contestar...ya lo´corregí, ahora el problema es que sigue asiendo lo mismo...es algo realmente raro por que cuando le acerco el dedo al pic el Led se prende asi como si nada.... la verdad no sé que onda con esto...el programa asi esta..

```
;PROGRAMA QUE ENCIENDE UN LED CADA MEDIO SEGUNDO

__CONFIG _CP_OFF& _WDT_OFF& _PWRTE_ON& _XT_OSC

LIST  	   P=16F84A
INCLUDE    P16F84A.INC


			
	UNO_LED		EQU		b'10000000'		
	CERO_LED	EQU		b'00000000' 	
				ORG 0
INICIO

			BCF		STATUS,RP1 ; ACCESO AL BANCO CERO
			BSF		STATUS,RP0 ; ACCESO AL BANCO UNO		
			MOVLW	b'11111111'
			MOVF	TRISA; TODOS BITS PTOA DE ENTRADA
			CLRF	TRISB; TODOS BITS PTOB DE SALIDA	
			BCF		STATUS,RP0 ; REGRESAR AL BANCO CERO

OP_PUSH		BTFSS	PORTA,0
			GOTO	OP_PUSH
LED
			MOVLW	UNO_LED
			MOVWF   PORTB
			CALL 	Retardo_500micros
			MOVLW	CERO_LED
			MOVWF	PORTB
			CALL	Retardo_500micros
			GOTO 	LED

#INCLUDE <RETARDOS.INC>

END
```


----------



## Darrenz (May 3, 2008)

¿el código quedaría a si o lo he puesto en mal sitio?

```
#Include <Pic16f84A.h>

#Fuses XT ,NOWDT ,NOTPROTECT
#Huse delay(clock= 4000000)

#Define LED pin_A2

Void main()

set_tris_a(0x00);

While (1)
{
outoput_high (LED); // Encender LED, estado ALTO de la salida A2.
delay_ms(1000); // Esperar 1 sec.
Outoput_low(LED); // Apagar LED, estado BAJO de la salida A2.
delay_ms(1000); // Esperar 1 sec.
}

}
```


----------



## leo_programer (May 3, 2008)

que mas monomanio y darrenz?

para el caso de monomanio, veo que el problema no esta en la cuestion del programa (por que a mi me sirve perfectamente) si no en el montaje del circuito, es lo que considero yo, sin embargo, le aconsejo que revise bien las conexiones, no se, un problema de tierra, un problema con el oscilador, o algo, no se, por que es muy raro que prenda al momento de acercar el dedo, luego, hmm no se, bastante raro...

para darrenz, fijate, 

```
#include <16f84A.h> 

#fuses XT ,NOWDT 
#use delay(clock=4000000) 

#define LED pin_A2 

void main() 
{		//esto hace falta, el corchete de inicio
	set_tris_a(0x00); 

	while (1) 
	{ 
		output_high (LED); // Encender LED, estado ALTO de la salida A2. 
		delay_ms(1000); // Esperar 1 sec. 
		output_low(LED); // Apagar LED, estado BAJO de la salida A2. 
		delay_ms(1000); // Esperar 1 sec. 
	} 
}
```
asi lo haria yo, de acuerdo? no se si su compilador lo permita pero el mio no me permite mayusculas al principio (de hecho, creo que ningunno), y la funcion es "output..." no "outoput...", de acuerdo, pruebalo, me comentan cualquier cosa...


----------



## caeg (May 3, 2008)

Deberias checar si todos los componentes dan continuidad  si lo has hecho en una proto, tambien en mi blog e puesto como hacer eso que pides (un led intermitente) pero esta programado en mikrobasic si te interesa lo puedes ver el blog esta en mi firma saludos


----------



## Ferny (May 4, 2008)

Hola

A mi ya me pasó y era por un FUSE, no pongas XT sino HS. Al parecer XT es para velocidades de reloj inferiores a 4 MHz (creo recordar), para 4 MHz o más tienes que usar HS (High Speed).

Suerte


----------



## Darrenz (May 5, 2008)

Al fina lo he conseguido, cambie de TX a HS y quité un condensador del circuito oscilador, entonces comenzó a funcionar .

Muchas gracias


----------



## caeg (May 5, 2008)

ferny XT es para osciladores de 4 mhz para abajo


----------



## calvete (May 7, 2008)

hola monomanio, inicialmente para un cristal de 4MHz se puede usar XT y funciona sin problemas. 
En cuanto a lo de acercarle el dedo al pic, supongo que tienes un pulsador o algo en el pin 0 del puerto A. recuerda que tienes que hacer un puente a tierra con una resistencia que puede ser de 10K, para que cuando no tengas el pulsador accionado el pic reciba una nivel bajo o 0 voltios. algo asi...


----------



## Darrenz (May 23, 2008)

Hola, ahora que ya lo he conseguido me gustaría dejaros un enlace a mi blog con todo el tutorial para hacerlo desde 0.

Un saludo y perdón si estoy violando las normas del foro .

http://ciextreme.blogspot.com/2008/05/tutorial-de-pics-led-intermitente.html


----------



## Meta (May 23, 2008)

Quizás te de ideas sobre led intermitentes...

YouTube - PIC 16F84A Barra de LED


----------



## martin valdes (Jun 5, 2009)

--- Editado por Chico3001 ---

Por favor sigue las normas de participacion de la comunidad:



> 2.10 Los usuarios deben usar un lenguaje cortés, respetuoso y gentil. Ningún usuario puede publicar material o contenido que sea conocidamente falso, difamatorio, insultante, acusatorio, vulgar, hostil, obsceno, profano, de orientación sexual, amenazante, racista o que fomente cualquier tipo de odio, ilegal en algún país o región, invasivo de la privacidad de alguna persona o que vulnere alguna ley o derechos de autor.


----------



## the_invader (Oct 4, 2009)

Fijate de llamar el retardo asi_
			CALL	Retardo_500ms

y eso del dedo pasa porque no quemaste bien el PIC

Quema este programa esta hecho en asm prende y apaga


```
LIST	P=P16F84A
 		INCLUDE	 "P16F84A.INC"
			
 		CBLOCK	0X20

		ENDC

		ORG		0X00
		goto 	INICIO
		ORG		0X04

INICIO	
                      ;MOVLW	            0x07
		;MOVWF	CMCON
		BCF		STATUS,6
		BSF		STATUS,5
		MOVLW	B'1111'
		MOVWF	TRISA
		CLRF	TRISB
		BCF		STATUS,5
		BCF		STATUS,6
		CLRF	PORTB



PRENDE
				MOVLW	B'11111111'
				MOVWF	PORTB
				CALL	Retardo_500ms
				CLRF	PORTB
				CALL	Retardo_500ms
				GOTO	PRENDE
				


	
				
					INCLUDE <RETARDOS.INC>
				
					end
```


----------



## leafar06 (Feb 19, 2010)

bunas!! soy nuevo en esto del uso de los pics, por lo que veo uds entienden muy bien de programacion!! les queria preguntar algo qe me esta sucediendo.
El problema es que ago un programa bien choto de prender y apagar un led con un pulsador y me sucede que apenas conecto el pic para probarlo el led se enciende y si toco el pulsador se me apaga; es decir al reves de lo que quiero hacer: les agradesco y me den una mano.
Me parece que mi equivocacion es en el momento de probarlo en el protoboard ya qe de electronica no encaro mucho me parece que me falt agregarle algo a lo pulsadores ouso el pic 16f628a gracias desde ya


----------



## chapin (Feb 19, 2010)

muestranos tu programa


----------



## iDan (Feb 19, 2010)

Mmm... yo tal vez creo que sea el circuito... te importaria poner una imagen o la simulacion de tu circuito para ver el problema... tambien seria de ver el programa por si el problema no radica en el circuito...


Saludos


----------



## leafar06 (Feb 19, 2010)

este es el programa qe hice para probar el quemador, esta echo asi no mas


                      list 	      p=16f628A
	          __config	      0x2150
	          include	      <p16f628A.inc>

;declaro variables y ctes

status	equ	0x03
porta	equ	0x05
trisa	equ	0x85
trisb	equ	0x86
cmcon	equ	0x1f
portb	equ	0x06

;comienzo programa

		org	0x000
reset
		goto	inicio

inicio

;seteo_perifericos_puertos

		movlw	0x07
		movwf	cmcon		;desabilito comparadores	
		bsf	status,5	             ;cambio de banco
		movlw	0xff		
		movwf	trisa
		clrf	trisb		
;termino_seteo

		bcf	status,5	;vuelvo a cambiar de banco
		movlw	0x00
		movwf	portb

programa	             btfsc	porta,0
		goto	prendo
apago		bcf	portb,0
		goto	programa
prendo		btfss	porta,0
		goto	apago
		bsf	portb,0
		goto	programa
		end

cuando puse el programa no quedo muy bien ordenado perdon
y al circuito para probarlo conecto directo el trafo al pic, uso los leds con sus resistenciasde + a - y conecto los interruptores a el puerto de entrada sin resistencias ni nada jejej perdon si es una burrada y gracias por contestar


----------



## el-rey-julien (Feb 22, 2010)

pero ese esta echo para el pic 16f628a

aora si para el pic 16f84

list p=16f84a

include <p16f84a.inc>
        __CONFIG	_CP_OFF &  _WDT_OFF & _PWRTE_ON & _RC_OSC
;declaro variables y ctes

status equ 0x03
porta equ 0x05
trisa equ 0x85
trisb equ 0x86
cmcon equ 0x1f
portb equ 0x06

;comienzo programa

org 0x000
reset
goto inicio

inicio

;seteo_perifericos_puertos

movlw 0x07
movwf cmcon ;desabilito comparadores 
bsf status,5 ;cambio de banco
movlw 0xff 
movwf trisa
clrf trisb 
;termino_seteo

bcf status,5 ;vuelvo a cambiar de banco
movlw 0x00
movwf portb

programa btfsc porta,0
goto prendo
apago bcf portb,0
goto programa
prendo btfss porta,0
goto apago
bsf portb,0
goto programa
end


----------



## leafar06 (Feb 23, 2010)

hola le queria decir que muchas gracias para la gente que demostro interes en ayudarme a soluciona mi problema!!! les paso a contar que ya lo he solucionado era una bobada el problema que tenia, despues de divagar un rato en internet me di cuenta que me faltaban unas resistencias pull-up nada mas y el programa es para el pic 16f628a


----------



## uCDiego (Jul 5, 2011)

Hola, tengo un problema me parece raro e ilogico. Hice un programa de prueba para encender y apagar un led (algo que hasta me da verguenza decirlo) pero en fin. El punto es que todos los voltajes y tierras estan en los pines correctos. El pin MCLR tiene una resistencia pull up de 10k (antes estaba con una de 4.7k), he estado usando un oscilador de 10 y 20 MHz (con condensadores de 22pf y tambien los probe sin ellos), para probar un led en serie con una resistencia de 330ohm. En la simulacion funciona perfectamente pero en el maldito protoboard se queda prendido el led y no oscila, solo una vez oscilo movi el cristal, pero luego lo apague y prendi y no de nuevo lo mismo...No se que puede ser no hay muchas conexiones las he revisado y ya no vuelve a oscilar......

PD. Estoy usando un pic16f877a con un JDM programmer. He seleccionado la opcion HS (High speed) de la misma manera esta configurado en los FUSES del programa.

#fuses HS,NOWDT,NOPROTECT,NOLVP

El programa que voy a hacer maneja otro perifericos y entradas analogas, pero si en el circuito real no funciona eso de hacer oscilar un led. Mucho menos voy a poder manejar señales analogicas y comunicacion serial.

Gracias


----------



## chapin (Jul 5, 2011)

podrias mostrar tu programa para que podamos ayudar


----------



## uCDiego (Jul 6, 2011)

```
#include <16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#device adc=10
#use delay (clock=20000000)
#use rs232 (BAUD = 9600 , XMIT = PIN_C6 , RCV = PIN_C7 , BITS = 8)
#include "LCD.c"
#include "KBD.c"
//declaracion de puertos
#byte PORTA=0x05
#byte TRISA=0x85
#byte PORTC=0x07
#byte TRISC=0x87
#byte PORTD=0x08
#byte TRISD=0x88
#byte PORTB=0x06
#byte TRISB=0x86

#define R_SHUNT   0.01

char valor;
//unsigned long  AD_read=0;

#int_rda
void serial_isr()
{
   valor = getc();
}

void PORT_init(void)
{
   TRISA=0xFF;
   TRISD=0x00;
   TRISC=0x00; 
   TRISB=0x00;
   PORTC=0x00;
   PORTD=0x00;
}

void MCU_Init(void)
{  
   Port_init();
   setup_adc(ADC_CLOCK_DIV_32);
   setup_adc_ports(ALL_ANALOG);
   lcd_init();
   kbd_init();
   port_b_pullups(true);
 }



void main()
{
  int16 q;
  float v1,v2,ISH;
  char k;
  int opt;
  
  MCU_Init();
  enable_interrupts(global);
  enable_interrupts(int_rda);

  printf(lcd_putc,"SENSOR CORRIENTE");
  delay_ms(1000);
  lcd_gotoxy(1,1);
  printf(lcd_putc,"\fElija una opcion");
  lcd_gotoxy(1,2);
  printf(lcd_putc,"Voltajes(1,2)");
   delay_ms(1000);

 
  while(TRUE)
   {
   delay_ms(500);
   output_high(pin_b0);
   delay_ms(500);
   output_low(pin_b0);
    /*k = kbd_getc();
    opt=k-48;
    
    set_adc_channel(0);
    delay_us(20);
    q = read_adc();
    v1 = 5.0*q/1024.0;
    
    set_adc_channel(1);
    delay_us(20);
    q = read_adc();
    v2 = 5.0*q/1024.0;
    
    //calculo de la corriente que pasa por la resistencia Shunt
    ISH = (v1 - v2)/R_SHUNT;
    switch(opt)
    {
      case 1:
      printf(lcd_putc,"\fVoltaje1: %01.2fV",v1);
      delay_ms(50);
      break;
      
      case 2:
      printf(lcd_putc,"\fVoltaje2: %01.2fV",v2);
      delay_ms(50);
      break;
      
      default:
      break;
    }
    printf(lcd_putc,"\fVoltaje1: %01.2fV",v1);
    printf(lcd_putc,"\nVoltaje2: %01.2fV",v2);
    printf("\fCorriente: %01.2fA",ISH);
    delay_ms(100);*/
   }
}
```
Comente lo que estaba probando con el simulador y descomente la parte que hace oscilar un led en el pin_b0


----------



## Chico3001 (Jul 7, 2011)

Vamonos por partes... si tu programa ya esta simulado y funciona entonces por alli no va la cosa... asi que debe ser por otro lado ...  mas probablemente el programador o el PIC

Primero intenta grabando el mismo programa en un PIC nuevo recien comprado... si funciona entonces el problema estaba en el PIC

Despues consige otro programador y graba el mismo programa, asi funciona el problema esta en el programador...


----------



## tormento (Jul 7, 2011)

yo te diria que primero compares las conexiones con las del simulador luego los voltajes si te programo bien el hex en el micro y no te dio error comproba cargando uno distinto y pone para leerlo a ver si te lo lee despues de eso si graba y lee bien los programas no es el pic son las conexiones fijate que no haya hecho un cortocircuito sin querer entre patas luego cambia en la programacion el port y proba pin 1 de cada uno de los port si te va mal cambia a otro nuevo pic. No se si te sirve la respuesta fijate que tu clock funcione tb sino, podes para prueba usar el clock interno pero tenes que configurar los fuses


----------



## uCDiego (Jul 10, 2011)

Gracias por tu aporte, creo que el grabador JDM que estaba usando no hacia bien su trabajo. Finalmente lo probé con un pickit 2 y funciono, ahora ya estoy agregando más cosas a mi programa.


----------



## pily5v (Dic 11, 2011)

Hola buenas noches!!


Un amigo me pidio que le ayudara con un programa:

tiene cuatro leds, estan en el puerto B del pic16f819, cuando inicia el programa se prende el primer led, se espera 20 segundos, se prende el segundo led, se espera 20 segundos, se prende el tercer led, se espera 20 segundos, se prende el cuarto led y ahi se tiene que esperar 3 horas.
Despues de ese tiempo se apaga el primer led, se espera 20 segundos, se apaga el segundo led, se espera 20 segundos, se apaga el tercer led, se espera 20 segundos, se apaga el cuarto led y ahi se tiene que esperar 12 horas y cuando pasa ese tiempo vuele a empezar.


A qui le dejo el codigo de mi programa (el programa en mplab y la simulacion para que vean), algo tiene mal porque en la simulacion en proteus prende bien los 4 leds pero cuando termina el tiempo de las 3 horas (es decir la rutina tiempo) no apaga los leds, los apaga todos y los vuelve a prender.

Ojala puedan decirme que tiene mal y ayudarme para corregirlo, por favor!!!!!

si alguien tiene una mejor opcion y asi evitarme tantos retardos seria muy chido

```
list               p=16f819
include        "p16F819.inc"

            
         CBLOCK    0X20

        ENDC

        ORG        0X00
        goto     INICIO
        ORG        0X04

INICIO    
                      ;MOVLW                0x07
        ;MOVWF    CMCON
        BCF        STATUS,6
        BSF        STATUS,5
        MOVLW    B'1111'
        MOVWF    TRISA
        CLRF    TRISB
        BCF        STATUS,5
        BCF        STATUS,6
        CLRF    PORTB



PRENDE
                MOVLW    B'00010000'
                MOVWF    PORTB
                CALL    Retardo_20s
                MOVLW    B'00110000'
                MOVWF    PORTB
                CALL    Retardo_20s
                MOVLW    B'01110000'
                MOVWF    PORTB
                CALL    Retardo_20s
                MOVLW    B'11110000'
                MOVWF    PORTB
                CALL    tiempo  ; se espera 3 horas
                MOVLW    B'11100000'
                MOVWF    PORTB
                CALL    Retardo_20s
                MOVLW    B'11000000'
                MOVWF    PORTB
                CALL    Retardo_20s
                MOVLW    B'10000000'
                MOVWF    PORTB
                CALL    Retardo_20s
                CLRF    PORTB
                CALL    tiempo2 ; se esper 12 horas
                GOTO    PRENDE
                
tiempo2  ;12 horas
                call tiempo
                call tiempo
                call tiempo
                call tiempo
                return

tiempo   ; 3 horas
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s
               call Retardo_20s

return


                    INCLUDE <RETARDOS.INC>
                
                    end
```


----------



## Aspha (Dic 20, 2011)

Hola a todos,

Tengo una pequeña pregunta que quisiera por favor me la puedan responder, realmente se lo agradecería. Si yo aprendo a programa un microncontrolador PIC16F84A en assembler, ¿puedo programar, con el mismo lenguaje que programé el 16F84A, un PIC16F877 por ejemplo o es un lenguaje completamente diferente? Gracias anticipadas por la respuesta.


----------



## ricbevi (Dic 20, 2011)

Aspha dijo:


> Hola a todos,
> 
> Tengo una pequeña pregunta que quisiera por favor me la puedan responder, realmente se lo agradecería. Si yo aprendo a programa un microncontrolador PIC16F84A en assembler, ¿puedo programar, con el mismo lenguaje que programé el 16F84A, un PIC16F877 por ejemplo o es un lenguaje completamente diferente? Gracias anticipadas por la respuesta.



Hola...el lenguaje y el juego de instrucciones es el mismo pero cada PIC  tiene distintas particularidades como módulo ADC el 16F877 que el 84 no tiene, etc por lo tanto un programa echo en asembler para el 84 correría perfecto en el 877 contemplando las particularidades de cada uno(registros, puertos, etc).

Saludos.

Ric.


----------

