Este es el diseño de un temporizador electrónico realizado con el microcontrolador PIC 12F683

publicado en: Proyectos | 2

Este es el diseño de un temporizador electrónico realizado con el microcontrolador PIC 12F683

Este es el diseño de un temporizador electrónico realizado con el microcontrolador PIC 12F683, este diseño permite hacer una temporización regulable mediante un potenciómetro incorporado en uno de los conversores del PIC 12F683, además posee tres entradas una para la marcha del temporizador otra para resetear el tiempo y otra para multiplicarlo por 10 o por 100, además el diseño esta realizado para trabajar con una tensión de 24 voltios tanto para la alimentación del PIC como para la activación de las entradas del mismo, el firmware del microcontroladores está escrito en PIC_CCS.

 

#include <12F683.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOMCLR //Master Clear pin enabled
#FUSES NOCPD //No EE protection
#device adc=10
#use delay(clock=4MHz)
#define TIEMPO PIN_A0
#define ENTRADA PIN_A1
#define POR100 PIN_A3
#define RESET PIN_A2
#define LED_SALIDA PIN_A4
#define SALIDA PIN_A5

/**************************INICIALIZACION DE VARIABLES *********************************/
int16 Adc_consigna;
int8 Multiplicador;
Void Conversores();

/************************** Interrupción por RA3 ************************************/

//enable_interrupts(INT_RA3);
#INT_RA
void RA2_isr(void)
{
clear_interrupt(INT_RA2);
disable_interrupts(INT_RA2);
if (input(RESET))reset_cpu();
enable_interrupts(INT_RA2);
}
void main(){
// port_A_pullups(0x30);
set_tris_a(0b001111); //GP0,1,4,5 output; 2,3 input
setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_INTERNAL);
enable_interrupts(GLOBAL);
enable_interrupts(INT_RA2);
output_LOW(SALIDA);
output_LOW(LED_SALIDA);
//setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); // initiating timer // initiating the LCD
//delay_ms(1000); // Boot-up delay, for troubleshooting

while(true) {
if (input(ENTRADA))Conversores();
if (input(POR100))Multiplicador=100;
if (!input(POR100))Multiplicador=10;
}
}

 

Para obtener más información y el firmware del microcontrolador entra en mi blog y  deja tu opinión del proyecto

Descarga la simulación en proteus Temporizador

2 Respuestas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *