1. Led Intermitente
Diagrama de Circuito
Código para el Pic
<code>
///////////////////////////////////////////////////////////////////////////////////
//Título:Led Intermitente
//Versión:PIC C Compiler 4.023
//Correo: habacuc.electronics@gmail.com
///////////////////////////////////////////////////////////////////////////////////
//Descripción:Encendido de un led de forma automatica...
///////////////////////////////////////////////////////////////////////////////////
/*************************Directivas de
Preprocesado*****************************/
#include <16f84A.h> //Pic a utilizar
#fuses XT,NOWDT,NOPROTECT //Ordenes para el programador
#use delay (clock=4M) //Frecuencia del oscilador
#use standard_io(b) //Manejo del
puerto B
/*******************************Definiciones***********************************/
#define LB0 PIN_B0
/********************************Programa************************************/
void main(){
//////Configuración de Puertos///////
set_tris_b(0b00000000); // Todos los
pines como salidas.
////Inicialización de Periféricos////
output_b(0b00000000); // Apaga todos los leds
/////////////////////////////////////
while(TRUE)
{
output_high(LB0);
delay_ms(200);
output_low(LB0);
delay_ms(200);
}
}
2. Led encendido por pulsador
Diagrama de Circuito
Código para el Pic
///////////////////////////////////////////////////////////////////////////////////
//Título:Encendido
de un Led por pulsador
//Versión:PIC
C Compiler 4.023
//Autor:
Samuel Ramsbott
//Correo:
sedjrp3@gmail.com
///////////////////////////////////////////////////////////////////////////////////
//Descripción:
Encendido de un Led por pulsador
///////////////////////////////////////////////////////////////////////////////////
/*************************Directivas
de Preprocesado********************************/
#include <16f84A.h> //Pic a utilizar
#fuses XT,NOWDT,NOPROTECT //Ordenes para el programador
#use delay (clock=4M) //Frecuencia del oscilador
#use standard_io(a) //Manejo del puerto A
#use standard_io(b) //Manejo del puerto B
/*******************************Definiciones**************************************/
#define LB0
PIN_B0
#define PA0
PIN_A0
/********************************Programa**************************************/
void main(){
//////Configuración
de Puertos///////
set_tris_a(0b00000001); // PIN_A0 como entrada, el resto
como salidas.
set_tris_b(0b00000000); // Todos los pines como salidas.
////Inicialización
de Periféricos////
output_b(0b00000000); // Apaga todos los leds
/////////////////////////////////////
while(true){ // Ciclo infinito
/////////////////////////Enciende
y Apaga LB0///////////////////////////////////
if(!input(PA0)){ // si el pulsador conectado a PIN_A0 fue
presionado...
output_high(LB0);} // entonces se
enciende LB0, conectado a PIN_B0
else{ // sino...
output_low(LB0);} // se apaga LB0
}
}
Diagrama del circuito
Código para el Pic
///////////////////////////////////////////////////////////////////////////////////
//Título:Led
Intermitente
//Versión:PIC
C Compiler 4.023
//Autor:
Samuel Ramsbott
//Correo:
sedjrp3@gmail.com
///////////////////////////////////////////////////////////////////////////////////
//Descripción:
Leds encendidos por pulsadores
///////////////////////////////////////////////////////////////////////////////////
/*************************Directivas
de Preprocesado*****************************/
#include <16f84A.h> //Librería del PIC a
utilizar
#fuses XT,NOWDT,NOPROTECT //Ordenes para el uC
#use delay (clock=4M) //Frecuencia del oscilador
#use standard_io(a) //Manejo del puerto A
#use standard_io(b) //Manejo del puerto B
/********************************Programa***************************************/
void main(){
set_tris_a(0b00011111); //
PIN_A0 como entrada, el resto como salidas.
set_tris_b(0b00000000); //
Todos los pines como salidas.
output_b(0b00000000);
// Apaga todos los leds
while(true){ // Ciclo infinito
/////////////////////////Enciende
y Apaga LB0///////////////////////////////////
if(!input(PIN_A0)){ //
si el pulsador conectado a PIN_A0 fue presionado...
output_high(PIN_B0);} // entonces se enciende LB0, conectado a
PIN_B0
else{ // sino...
output_low(PIN_B0);} //
se apaga LB0
/////////////////////////Enciende
y Apaga LB1///////////////////////////////////
if(!input(PIN_A1)){ //
si el pulsador conectado a PIN_A1 fue presionado...
output_high(PIN_B1);} //
entonces se enciende LB1, conectado a PIN_B1
else{ // sino...
output_low(PIN_B1);} //
se apaga LB1
/////////////////////////Enciende
y Apaga LB2///////////////////////////////////
if(!input(PIN_A2)){ // si el pulsador conectado a PIN_A2 fue
presionado...
output_high(PIN_B2);} //
entonces se enciende LB2, conectado a PIN_B2
else{ // sino...
output_low(PIN_B2);} //
se apaga LB2
/////////////////////////Enciende
y Apaga LB3///////////////////////////////////
if(!input(PIN_A3)){ // si el pulsador conectado a
PIN_A3 fue presionado...
output_high(PIN_B3);} // entonces se enciende LB3, conectado a
PIN_B3
else{ //
sino...
output_low(PIN_B3);} // se apaga LB3
/////////////////////////Enciende
y Apaga LB4///////////////////////////////////
if(!input(PIN_A4)){ //
si el pulsador conectado a PIN_A4 fue presionado...
output_high(PIN_B4);} //
entonces se enciende LB4, conectado a PIN_B4
else{ // sino...
output_low(PIN_B4);} //
se apaga LB4
}
}
4. Contador de 0 a 9
4. Contador de 0 a 9
Diagrama del circuito
Código para el Pic
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Título: Manejo
de Display
//Versión:PIC
C Compiler 4.023
//Autor:
Samuel Ramsbott
//Correo:
sedjrp3@gmail.com
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Descripción:
Conteo automatico con un display 7 Segmentos de catodo comun
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*************************Directivas
de Preprocesado*****************************/
#include <16f84A.h> //Pic a utilizar
#fuses XT,NOWDT,NOPROTECT //Ordenes para el programador
#use delay (clock=4M) //Frecuencia del oscilador
#use standard_io(b) //Manejo del puerto B
/****************************Variables
Globales***********************************/
int conteo[10]= {0b00111111, 0b00000110, 0b01011011, 0b01001111,0b01100110
0b01101101,
0b01111101, 0b00000111,
0b01111111, 0b01100111};
int i= 0;
/********************************Programa**************************************/
void
main(){
set_tris_b(0b00000000); //todos los pines como salida
output_b(0b00000000); //apaga todos lod segmentos del
display
while(true){
for(i= 0;
i<= 9; i++){ //Ciclo for establece el incremento del
indice
//del
arreglo
output_b(conteo[i]); //Presenta la salida del elemento i
delay_ms(100);
}
}
5. Contador de 0 a 99
5. Contador de 0 a 99
Diagrama del circuito
Código para el Pic
///////////////////////////////////////////////////////////////////////////////////
//Título:Conteo
automatico de 0 a 99
//Versión:PIC
C Compiler 4.023
//Autor:
Samuel Ramsbott
//Correo:
sedjrp3@gmail.com
///////////////////////////////////////////////////////////////////////////////////
//Descripción:Conteo
automatico con un display 7 Segmentos de 0 a 99
///////////////////////////////////////////////////////////////////////////////////
/*************************Directivas
de Preprocesado*****************************/
#include <16f84A.h> //Pic a utilizar
#fuses XT,NOWDT,NOPROTECT //Ordenes
para el programador
#use delay (clock=4M) //Frecuencia
del oscilador
#use standard_io(b) //Manejo del puerto B
/****************************Variables
Globales***********************************/
int conteo[10]= {0b00111111, 0b00000110, 0b01011011, 0b01001111,0b01100110
0b01101101, 0b01111101,
0b00000111, 0b01111111, 0b01100111};
int16 i;
int16 Unid;
int16 Dece;
/********************************Programa***************************************/
void main(){
set_tris_b(0b00000000); //todos los pines como salida
output_b(0b00000000); //apaga todos lod segmentos del
display
do{
for(i= 0; i<= 99; i++){ //Ciclo
for establece el incremento del indice
//del arreglo
Dece = i * 0.1;
Unid = i - Dece * 10;
output_a(0b00000001);
output_b(conteo[Unid]);
delay_ms(100);
output_a(0b00000010);
output_b(conteo[Dece]);
delay_ms(100);
}
}while(TRUE);
}
0 comentarios:
Publicar un comentario