You are on page 1of 29

1 Semaforo.

#INCLUDE <16F84A.H>
#fuses xt,nowdt
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
int a;
void main()
{
do
{
output_high(pin_B2);
delay_ms(3000);
output_low(pin_B2);
for (a=1;a<=4;a++)
{
delay_ms(250);
output_high(pin_B2);
delay_ms(250);
output_low(pin_B2);
}
output_high(pin_B1);
delay_ms(2000);
output_low(pin_B1);
output_high(pin_B0);
delay_ms(3000);
output_low(pin_B0);
}
while(true);
}
Diagrama Proteus.


2 Semaforos.
#INCLUDE <16F84A.H>
#fuses xt,nowdt
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
int a;
void main()
{
do
{
output_high(pin_b2); //ENCENDIDO DE VERDE 1
output_high(pin_a0); //ENCENDIDO DE ROJO 2
delay_ms(3000);
output_low(pin_b2); //APAGADO DE VERDE 1
for (a=1;a<=4;a++) //PARPADEO DE VERDE 1
{
delay_ms(250);
output_high(pin_b2);
delay_ms(250);
output_low(pin_b2);
}
output_high(pin_b1); //ENCENDIDO DE AMBAR 1
delay_ms(2000);
output_low(pin_b1); //APAGADO DE AMBAR 1

output_high(pin_b0); //ENCENDIDO DE ROJO 1
output_high(pin_a2); //ENCENDIDO DE VERDE 2
output_low(pin_a0); //APAGADO DE ROJO 2
delay_ms(3000);
output_low(pin_a2); //APAGADO DE VERDE 2
{
for (a=1;a<=4;a++) //PARPADEO DE VERDE 2
{
delay_ms(250);
output_high(pin_a2);
delay_ms(250);
output_low(pin_a2);
}
}
output_high(pin_a1); //ENCENDIDO DE AMBAR 2
delay_ms(2000);
output_low(pin_a1); //APAGADO DE AMBAR 2
output_low(pin_b0); //APAGADO DE ROJO 1
}
while(true);
}
Diagrama Proteus.


2 Salidas al mismo tiempo.
#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE PORTB=0X06
VOID MAIN()
{
DO
{
OUTPUT_HIGH(PIN_B0);
OUTPUT_HIGH(PIN_B1);
DELAY_MS(250);
OUTPUT_LOW(PIN_B0);
OUTPUT_LOW(PIN_B1);
DELAY_MS(250);
}
WHILE (TRUE);
}
Diagrama Proteus.

2 en Secuencia.
#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE PORTB=0X06
VOID MAIN()
{
DO
{
OUTPUT_HIGH(PIN_B0);
DELAY_MS(250);
OUTPUT_LOW(PIN_B0);
DELAY_MS (250);
OUTPUT_HIGH(PIN_B1);
DELAY_MS(250);
OUTPUT_LOW(PIN_B1);
DELAY_MS(250);
}
WHILE (TRUE);
}
Diagrama Proteus.

3 salidas al mismo tiempo
#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE PORTB=0X06
VOID MAIN()
{
DO
{
OUTPUT_HIGH(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_HIGH(PIN_B2);
DELAY_MS(250);
OUTPUT_LOW(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
DELAY_MS(250);
}
WHILE (TRUE);
}





Diagrama Proteus.


3 en secuencia.
#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE PORTB=0X06
VOID MAIN()
{
DO
{
OUTPUT_HIGH(PIN_B0);
DELAY_MS(250);
OUTPUT_LOW(PIN_B0);
DELAY_MS (250);

OUTPUT_HIGH(PIN_B1);
DELAY_MS(250);
OUTPUT_LOW(PIN_B1);
DELAY_MS(250);

OUTPUT_HIGH(PIN_B2);
DELAY_MS(250);
OUTPUT_LOW(PIN_B2);
DELAY_MS(250);
}
WHILE (TRUE);
}
Diagrama Proteus.


4 Parpadeos.

#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE PORTB=0X06
INT A;
VOID MAIN()
{
FOR (A=1;A<=4;A++)
{
OUTPUT_HIGH (PIN_B0);
DELAY_MS(250);
OUTPUT_LOW(PIN_B0);
DELAY_MS(250);
}
}
Diagrama Proteus.





Encendido y apagado de un led.
#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE PORTB=0X06
VOID MAIN()
{
OUTPUT_HIGH(PIN_B1);
DELAY_MS(1000);
OUTPUT_LOW(PIN_B1);
DELAY_MS(1000);
}

Diagrama Proteus.




Parpadeo indefinido.
#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE PORTB=0X06
VOID MAIN()
{
DO
{
OUTPUT_HIGH(PIN_B0);
DELAY_MS(250);
OUTPUT_LOW(PIN_B0);
DELAY_MS(250);
}
WHILE (TRUE);
}
Diagrama Proteus.


Parpadeo indefinido con la instruccin For.
#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE PORTB=0X06
VOID MAIN()
{
FOR ( ; ; )
{
OUTPUT_HIGH(PIN_B0);
DELAY_MS(500);
OUTPUT_LOW(PIN_B0);
DELAY_MS(500);
}
}
Diagrama Proteus.

Parpadeo indefinido con la instruccin While
#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE PORTB=0X06
VOID MAIN()
{
WHILE (1,1)
{
OUTPUT_HIGH(PIN_B0);
DELAY_MS(150);
OUTPUT_LOW(PIN_B0);
DELAY_MS(150);
}
}

Diagrama Proteus.

Pic como entrada.
#INCLUDE <16F84A.H>
#fuses xt,nowdt
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
#byte trisa=0x85
#byte porta=0x05
int a;
void main()
{
do
{
if(input(pin_a0)==1)
{
output_high(pin_b0);
delay_ms(3000);
output_low(pin_b0);

for(a=1;a<=4;a++)
{
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
}
output_high(pin_b1);
delay_ms(2000);
output_low(pin_b1);
output_high(pin_b2);
delay_ms(3000);
output_low(pin_b2);
}
else
{
output_high(pin_b1);
delay_ms(250);
output_low(pin_b1);
delay_ms(250);
}
}
while(true);
}
Diagrama proteus.

Motor trifsico.
#INCLUDE <16F84A.H>
#fuses xt,nowdt
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
int a;
void main()
{
do
{
if(input(pin_a0)==1)
{
output_high(pin_b0);
delay_ms(3000);
output_low(pin_b0);

for(a=1;a<=4;a++)
{
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
}
output_high(pin_b1);
delay_ms(2000);
output_low(pin_b1);
output_high(pin_b2);
delay_ms(3000);
output_low(pin_b2);
}
else
{
output_high(pin_b1);
delay_ms(250);
output_low(pin_b1);
delay_ms(250);
}
}
while(true);
}
Diagrama proteus.

4 Semaforos.
#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY (CLOCK= 4000000)
#BYTE TRISB = 0X86
#BYTE PORTB = 0X06
#BYTE TRISA = 0X85
#BYTE PORTA = 0X05
Int a;
VOID MAIN ()
{
DO
{
OUTPUT_LOW(PIN_B6); //APAGA ROJO 1 Y 2
OUTPUT_HIGH(PIN_B3); //ENCIENDE VERDE 1 Y 2
OUTPUT_HIGH(PIN_B0); //ENCIENDE ROJO 3
OUTPUT_HIGH(PIN_A0); //ENCIENDE ROJO 4
DELAY_MS(3000);
OUTPUT_LOW(PIN_B3);
FOR (a=1;a<=4;a++) //PARPADEO VERDE 1 Y 2
{
DELAY_MS(250);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(250);
OUTPUT_LOW(PIN_B3);
}

OUTPUT_HIGH(PIN_B5); //ENCIENDE AMBAR 1 Y 2
DELAY_MS(2000);
OUTPUT_LOW(PIN_B5); //APAGA AMBAR 1 Y 2

OUTPUT_LOW(PIN_B0); //APAGA ROJO 3
OUTPUT_HIGH(PIN_B2); //ENCIENDE VERDE 3
OUTPUT_HIGH(PIN_B6); //ENCIENDE ROJO 1 Y 2
DELAY_MS(3000);
FOR (a=1;a<=5;a++) //PARPADEO VERDE 3
{
DELAY_MS(250);
OUTPUT_HIGH(PIN_B2);
DELAY_MS(250);
OUTPUT_LOW(PIN_B2);
}
OUTPUT_HIGH(PIN_B1); //ENCIENDE AMBAR 3
DELAY_MS(2000);
OUTPUT_LOW(PIN_B1); //APAGA AMBAR 3
OUTPUT_LOW(PIN_A0); //APAGA ROJO 4
OUTPUT_HIGH(PIN_A2); // ENCIENDE VERDE 4
OUTPUT_HIGH(PIN_B0); //ENCIENDE ROJO 3
DELAY_MS(3000);
OUTPUT_LOW(PIN_A2);
FOR (a=1;a<=4;a++) //PARPADEO VERDE 4
{
DELAY_MS(250);
OUTPUT_HIGH(PIN_A2);
DELAY_MS(250);
OUTPUT_LOW(PIN_A2);
}
OUTPUT_HIGH(PIN_A1); //ENCIENDE AMBAR 4
DELAY_MS(2000);
OUTPUT_LOW(PIN_A1); //APAGA AMBAR 4
OUTPUT_HIGH(PIN_A0); //ENCIENDE ROJO 4
DELAY_MS(2000); //PAUSA TODOS EN ROJO 2 SEGUNDOS
OUTPUT_HIGH(PIN_B4); //ENCIENDE FLECHA 1 Y 2
DELAY_MS(3000);
OUTPUT_LOW(PIN_B4);
FOR (a=1;a<=4;a++) //PARPADEO FLECHA 1 Y 2
{
DELAY_MS(250);
OUTPUT_HIGH(PIN_B4);
DELAY_MS(250);
OUTPUT_LOW(PIN_B4);
}
DELAY_MS(2000);
}

WHILE(TRUE);
}

Diagrama Proteus.
















CONTADOR
#include <16F628A.h>
#include <stdlib.h>
#use delay(clock=4000000)
signed int8 contador=1;
unsigned int8 contpulsos=0;
void desplegar();
int
MAIN ()
{
set_tris_a(0x01);
set_tris_b(0x00);
output_b(0x3F);
while(1)
{
if(!input(PIN_A0))
{
delay_ms(250);
contador=contador+1;
if(contpulsos==2)
{
contador=0;
delay_ms(100);
contador=contador+1;
desplegar();
}
}
}
}

void desplegar()
{
switch(contador)
{
case 0: output_b(0x3F);
break;
case 1: output_b(0x06);
break;
case 2: output_b(0x5B);
break;
case 3: output_b(0x4F);
break;
case 4: output_b(0x66);
break;
case 5: output_b(0x6D);
break;
case 6: output_b(0x7D);
break;
case 7: output_b(0x07);
break;
case 8: output_b(0x7F);
case 9: output_b(0x67);
{
output_b(0x67);
contador =-3;
}
}
}
INsTRUCCION DE SONIDO
# INCLUDE <16F84A.H>
# FUSES XT,NOWDT
# USE DELAY(CLOCK=4000000)
# FUSES HS
# FUSES NOPUT

#DEFINE SPEAKER PIN_B0
VOID MAIN(){
SET_TRIS_B(2);// RB7<7:2>
DO{
WHILE (INPUT(PIN_B1)){
OUTPUT_HIGH(SPEAKER);
DELAY_US(769);

OUTPUT_LOW (SPEAKER);
DELAY_US (769);
}
} WHILE (TRUE);
}



El Domingo, 6 de julio, 2014 19:57:32, Jesus ivan Banda lopez <bandalpz_01@yahoo.com.mx>
escribi:


El Domingo, 6 de julio, 2014 19:42:47, Jesus ivan Banda lopez <bandalpz_01@yahoo.com.mx>
escribi:

4 SEMAFOROS

#INCLUDE <16F84A.H>
#FUSES XT,NOWDT
#USE DELAY (CLOCK= 4000000)
#BYTE TRISB = 0X86
#BYTE PORTB = 0X06
#BYTE TRISA = 0X85
#BYTE PORTA = 0X05
Int a;
VOID MAIN ()
{
DO
{
OUTPUT_LOW(PIN_B6); //APAGA ROJO 1 Y 2
OUTPUT_HIGH(PIN_B3); //ENCIENDE VERDE 1 Y 2
OUTPUT_HIGH(PIN_B0); //ENCIENDE ROJO 3
OUTPUT_HIGH(PIN_A0); //ENCIENDE ROJO 4
DELAY_MS(3000);
OUTPUT_LOW(PIN_B3);
FOR (a=1;a<=4;a++) //PARPADEO VERDE 1 Y 2
{
DELAY_MS(250);
OUTPUT_HIGH(PIN_B3);
DELAY_MS(250);
OUTPUT_LOW(PIN_B3);
}

OUTPUT_HIGH(PIN_B5); //ENCIENDE AMBAR 1 Y 2
DELAY_MS(2000);
OUTPUT_LOW(PIN_B5); //APAGA AMBAR 1 Y 2

OUTPUT_LOW(PIN_B0); //APAGA ROJO 3
OUTPUT_HIGH(PIN_B2); //ENCIENDE VERDE 3
OUTPUT_HIGH(PIN_B6); //ENCIENDE ROJO 1 Y 2
DELAY_MS(3000);
FOR (a=1;a<=5;a++) //PARPADEO VERDE 3
{
DELAY_MS(250);
OUTPUT_HIGH(PIN_B2);
DELAY_MS(250);
OUTPUT_LOW(PIN_B2);
}
OUTPUT_HIGH(PIN_B1); //ENCIENDE AMBAR 3
DELAY_MS(2000);
OUTPUT_LOW(PIN_B1); //APAGA AMBAR 3
OUTPUT_LOW(PIN_A0); //APAGA ROJO 4
OUTPUT_HIGH(PIN_A2); // ENCIENDE VERDE 4
OUTPUT_HIGH(PIN_B0); //ENCIENDE ROJO 3
DELAY_MS(3000);
OUTPUT_LOW(PIN_A2);
FOR (a=1;a<=4;a++) //PARPADEO VERDE 4
{
DELAY_MS(250);
OUTPUT_HIGH(PIN_A2);
DELAY_MS(250);
OUTPUT_LOW(PIN_A2);
}
OUTPUT_HIGH(PIN_A1); //ENCIENDE AMBAR 4
DELAY_MS(2000);
OUTPUT_LOW(PIN_A1); //APAGA AMBAR 4
OUTPUT_HIGH(PIN_A0); //ENCIENDE ROJO 4
DELAY_MS(2000); //PAUSA TODOS EN ROJO 2 SEGUNDOS
OUTPUT_HIGH(PIN_B4); //ENCIENDE FLECHA 1 Y 2
DELAY_MS(3000);
OUTPUT_LOW(PIN_B4);
FOR (a=1;a<=4;a++) //PARPADEO FLECHA 1 Y 2
{
DELAY_MS(250);
OUTPUT_HIGH(PIN_B4);
DELAY_MS(250);
OUTPUT_LOW(PIN_B4);
}
DELAY_MS(2000);
}

WHILE(TRUE);
}


2 SEMAFOROS
#INCLUDE <16F84A.H>
#fuses xt,nowdt
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
int a;
void main()
{
do
{
output_high(pin_b2); //ENCENDIDO DE VERDE 1
output_high(pin_a0); //ENCENDIDO DE ROJO 2
delay_ms(3000);
output_low(pin_b2); //APAGADO DE VERDE 1
for (a=1;a<=4;a++) //PARPADEO DE VERDE 1
{
delay_ms(250);
output_high(pin_b2);
delay_ms(250);
output_low(pin_b2);
}
output_high(pin_b1); //ENCENDIDO DE AMBAR 1
delay_ms(2000);
output_low(pin_b1); //APAGADO DE AMBAR 1

output_high(pin_b0); //ENCENDIDO DE ROJO 1
output_high(pin_a2); //ENCENDIDO DE VERDE 2
output_low(pin_a0); //APAGADO DE ROJO 2
delay_ms(3000);
output_low(pin_a2); //APAGADO DE VERDE 2
{
for (a=1;a<=4;a++) //PARPADEO DE VERDE 2
{
delay_ms(250);
output_high(pin_a2);
delay_ms(250);
output_low(pin_a2);
}
}
output_high(pin_a1); //ENCENDIDO DE AMBAR 2
delay_ms(2000);
output_low(pin_a1); //APAGADO DE AMBAR 2
output_low(pin_b0); //APAGADO DE ROJO 1
}
while(true);
}

CONTROL DE MOTOR TRIFASICO
#INCLUDE <16F84A.H>
#fuses xt,nowdt
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
int a;
void main()
{
do
{
if(input(pin_a0)==1)
{
output_high(pin_b0);
delay_ms(3000);
output_low(pin_b0);

for(a=1;a<=4;a++)
{
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
}
output_high(pin_b1);
delay_ms(2000);
output_low(pin_b1);
output_high(pin_b2);
delay_ms(3000);
output_low(pin_b2);
}
else
{
output_high(pin_b1);
delay_ms(250);
output_low(pin_b1);
delay_ms(250);
}
}
while(true);
}

You might also like