rporte de practica sistemas programables.doc

32
INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO Manual de Practicas Departamento de Ingeniería en Sistemas Computacionales INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO, VER. INGENIERÍA EN SISTEMAS COMPUTACIONALES Materia: Dispositivos programables Semestre-Grupo: 7°A Producto Académico: REPORTE DE PRÁCTICA Tema: Programar un menú con un modulo LCD Presentan: José Ángel Rosas Escobedo Arcadio Patraca Nancy Sandoval Fiscal Fabiola Romero Chávez

Transcript of rporte de practica sistemas programables.doc

INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO

Manual de PracticasDepartamento de Ingeniera en

Sistemas Computacionales

INSTITUTO TECNOLOGICO SUPERIOR

DE ALVARADO, VER.

INGENIERA EN SISTEMAS COMPUTACIONALESMateria:Dispositivos programablesSemestre-Grupo:

7AProducto Acadmico: REPORTE DE PRCTICATema:

Programar un men con un modulo LCDPresentan:

Docente:ING: Roberto Pealoza H. Y G. ALVARADO, VER. 20 DIC de 2014INTRODUCCION

LosPICson una familia demicrocontroladorestipoRISCfabricados porMicrochip Technology Inc.y derivados del PIC1650, originalmente desarrollado por la divisin demicroelectrnicadeGeneral Instrument.

El nombre actual no es unacrnimo. En realidad, el nombre completo esPICmicro, aunque generalmente se utiliza comoPeripheralInterfaceController(controlador de interfaz perifrico).

El PIC original se dise para ser usado con la nuevaCPUde 16bitsCP16000. Siendo en general una buena CPU, sta tena malas prestaciones deentrada y salida, y el PIC de 8 bits se desarroll en 1975 para mejorar el rendimiento del sistema quitando peso de E/S a la CPU. El PIC utilizabamicrocdigosimple almacenado enROMpara realizar estas tareas; y aunque el trmino no se usaba por aquel entonces, se trata de un diseoRISCque ejecuta unainstruccincada 4ciclosdeloscilador.

OBJETIVOS (COMPETENCIAS)

Utilizar con precisin la terminologa y simbologa de microcontroladores e interfaces.

Acoplar dispositivos de visualizacin, sensores y actuadores a microcontroladores

Programar microcontroladores.Proponer aplicaciones de solucin mediante el diseo de interfaces de hardware y software.

FUNDAMENTO

Juego de instrucciones y entorno de programacin PIC usa unjuego de instrucciones, cuyo nmero puede variar desde 35 para PIC de gama baja a 70 para los de gama alta. Las instrucciones se clasifican entre las que realizan operaciones entre elacumuladory una constante, entre el acumulador y una posicin de memoria, instrucciones de condicionamiento y de salto/retorno, implementacin de interrupcionesy una para pasar a modo de bajo consumo llamadasleep.

Microchip proporciona unentorno de desarrollofreewarellamadoMPLABque incluye unsimuladorsoftware y un ensamblador. Otras empresas desarrollan compiladoresCyBASIC. Microchip tambin vende compiladores para los PIC de gama alta ("C18" para la serie F18 y "C30" para los dsPIC) y se puede descargar una edicin para estudiantes del C18 que inhabilita algunas opciones despus de un tiempo de evaluacin.

Para ellenguaje de programacin Pascalexiste un compilador decdigo abierto,JAL, lo mismo quePicForthpara el lenguajeForth.GPUTILSes una coleccin de herramientas distribuidas bajo licenciaGPLque incluye ensamblador y enlazador, y funciona enLinux,MacOSyMicrosoft Windows.GPSIMes otra herramienta libre que permite simular diversos dispositivos hardware conectados al PIC.

Uno de los ms modernos y completos compiladores para lenguaje C es [mikroC], que es un ambiente de desarrollo con editor de texto,bibliotecascon mltiples funciones para todos los mdulos y herramientas incorporadas para facilitar enormemente el proceso de programacin.Arquitectura central

La arquitectura del PIC es sumamente minimalista. Est caracterizada por las siguientes prestaciones:

rea de cdigo y de datos separadas (Arquitectura Harvard).

Un reducido nmero de instrucciones de longitud fija.

Implementasegmentacinde tal modo que la mayora de instrucciones duran 1 tiempo de instruccin (o 4 tiempos de reloj). Pueden haber instrucciones de dos tiempos de instruccin (saltos, llamadas y retornos de subrutinas y otras) o inclusive con ms tiempo de instruccin en PIC de gama alta. Esto implica que el rendimiento real de instrucciones por segundo del procesador es de al menos 1/4 de la frecuencia del oscilador.

Un solo acumulador (W), cuyo uso (como operador de origen) es implcito (no est especificado en la instruccin). Todas las posiciones de la RAM funcionan como registros de origen y/o de destino de operaciones matemticas y otras funciones.1 Una pila de hardware para almacenar instrucciones de regreso de funciones.

Una relativamente pequea cantidad de espacio de datos direccionable (tpicamente, 256 bytes), extensible a travs de manipulacin de bancos de memoria.

El espacio de datos est relacionado con el CPU, puertos, y los registros de los perifricos.

El contador de programa est tambin relacionado dentro del espacio de datos, y es posible escribir en l (permitiendo saltos indirectos).

A diferencia de la mayora de otros CPU, no hay distincin entre los espacios de memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y esta es normalmente referida como "archivo de registros" o simplemente, registros.Espacio de datos (RAM)Los microcontroladores PIC tienen una serie de registros que funcionan como unaRAMde propsito general. Los registros de propsito especfico para los recursos de hardware disponibles dentro del propio chip tambin estn direccionados en la RAM. La direccionabilidad de la memoria vara dependiendo de la lnea de dispositivos, y todos los dispositivos PIC tienen algn tipo de mecanismo de manipulacin de bancos de memoria que pueden ser usados para acceder memoria externa o adicional. Las series ms recientes de dispositivos disponen de funciones que pueden cubrir todo el espacio direccionable, independientemente del banco de memoria seleccionado. En los dispositivos anteriores, esto deba lograrse mediante el uso del acumulador.

Para implementar direccionamiento indirecto, se usa un registro de "seleccin de registro de archivo" (FSR) y uno de "registro indirecto" (INDF): Un nmero de registro es escrito en el FSR, haciendo que las lecturas o escrituras al INDF sern realmente hacia o desde el registro apuntado por el FSR. Los dispositivos ms recientes extienden este concepto con post y preincrementos/decrementos para mayor eficiencia al acceder secuencialmente a la informacin almacenada. Esto permite que se pueda tratar al FSR como un puntero de pila.

La memoria de datos externa no es directamente direccionable excepto en algunos microcontroladores PIC 18 de gran cantidad de pines.Tamao de palabraEl tamao de palabra de losmicrocontroladoresPIC es fuente de muchas confusiones. Todos los PIC (excepto los dsPIC) manejan datos en trozos de 8 bits, con lo que se deberan llamar microcontroladores de 8 bits. Pero a diferencia de la mayora de lasCPU, el PIC usaarquitectura Harvard, por lo que el tamao de las instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes familias de PIC usan tamaos de instruccin distintos, lo que hace difcil comparar el tamao del cdigo del PIC con el de otros microcontroladores. Por ejemplo, un microcontrolador tiene 6144 bytes de memoria de programa: para un PIC de 12 bits esto significa 4096 palabras y para uno de 16 bits, 3072 palabras.

Programacin del PIC

Para transferir el cdigo de unordenadoral PIC normalmente se usa un dispositivo llamadoprogramador. La mayora de PIC que Microchip distribuye hoy en da incorporan ICSP (In Circuit Serial Programming, programacin serie incorporada) o LVP (Low Voltage Programming, programacin a bajo voltaje), lo que permite programar el PIC directamente en el circuito destino. Para la ICSP se usan los pines RB6 y RB7 (En algunos modelos pueden usarse otros pines como el GP0 y GP1 o el RA0 y RA1) como reloj y datos y el MCLR para activar el modo programacin aplicando un voltaje de 13 voltios. Existen muchos programadores de PIC, desde los ms simples que dejan al software los detalles de comunicaciones, a los ms complejos, que pueden verificar el dispositivo a diversas tensiones de alimentacin e implementan en hardware casi todas las funcionalidades. Muchos de estos programadores complejos incluyen ellos mismos PIC preprogramados como interfaz para enviar las rdenes al PIC que se desea programar. Uno de los programadores ms simples es elTE20, que utiliza la lnea TX del puertoRS232como alimentacin y las lneas DTR y CTS para mandar o recibir datos cuando el microcontrolador est en modo programacin. El software de programacin puede ser el ICprog, muy comn entre la gente que utiliza este tipo de microcontroladores. Entornos de programacin basados en intrpretes BASIC ponen al alcance de cualquiera proyectos que parecieran ser ambiciosos.

Se pueden obtener directamente de Microchip muchos programadores /depuradores (octubre de 2005):

Un buena recopilacin de herramientas de desarrollo para PIC puede encontrarseAqu.(Mayo de 2009).

Programadores

PICStart Plus (puerto serie y USB)

Promate II (puerto serie)

MPLAB PM3 (puerto serie y USB)

ICD2 (puerto serie y USB)

ICD3 (USB)

PICKit 1 (USB)

IC-Prog 1.06B

PICAT 1.25 (puerto USB2.0 para PIC y Atmel)

WinPic 800 (puerto paralelo, serie y USB)

PICKit 2 (USB)

PICKit 3 (USB)

Terusb1.0

Eclipse (PIC y AVR. USB)

MasterProg (USB)

Depuradores integrados

ICD (Serie)

ICD2 (Serie ofull speedUSB - 2 Mbits/s)

ICD3 (High speedUSB - 480 Mbits/s)

Emuladores

Proteus - ISIS

ICE2000 (puerto paralelo, convertidor a USB disponible)

ICE4000 (USB)

PIC EMU

ISEC

PIC CDlite

PIC Simulator

Crocodrile Clips

Caractersticas

Los PIC actuales vienen con una amplia gama de mejoras hardware incorporadas:

Ncleos deCPUde 8/16 bits con Arquitectura Harvard modificada

Memoria FlashyROMdisponible desde 256 bytes a 256 kilobytes

Puertos deE/S(tpicamente 0 a 5.5voltios)

Temporizadoresde 8/16/32 bits

TecnologaNanowattpara modos de control de energa

Perifricosserie sncronos y asncronos:USART,AUSART,EUSART Conversores analgico/digitalde 8-10-12 bits

Comparadores de tensin

Mdulos de captura y comparacinPWM ControladoresLCD Perifrico MSSP para comunicacionesIC,SPI, yIS MemoriaEEPROMinterna con duracin de hasta un milln de ciclos de lectura/escritura

Perifricos de control demotores Soporte de interfazUSB Soporte decontroladorEthernet Soporte de controlador CAN

Soporte de controladorLIN Soporte de controladorIrdaVariaciones del PIC

PIC modernos

Los viejos PIC con memoriaPROMoEPROMse estn renovando gradualmente por chips conmemoria Flash. As mismo, el juego de instrucciones original de 12 bits del PIC1650 y sus descendientes directos ha sido suplantado por juegos de instrucciones de 14 y 16 bits. Microchip todava vende versiones PROM y EPROM de la mayora de los PIC para soporte de aplicaciones antiguas o grandes pedidos.

Se pueden considerar tres grandes gamas de MCU PIC en la actualidad: Los bsicos (Linebase), los de medio rango (Mid Range) y los de alto desempeo (high performance). Los PIC18 son considerandos de alto desempeo y tienen entre sus miembros a PIC con mdulos de comunicacin y protocolos avanzados (USB, Ethernet, Zigbee por ejemplo).Clones del PICPor todos lados surgen compaas que ofrecen versiones del PIC ms baratas o mejoradas. La mayora suelen desaparecer rpidamente. Una de ellas que va perdurando esUbicom(antiguamente Scenix) que vendeclonesdel PIC que funcionan mucho ms rpido que el original.OpenCorestiene un ncleo del PIC16F84 escrito enVerilog.PIC inalmbricosEl microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip con la capacidad de comunicacininalmbricaUHF para aplicacionesRFde baja potencia. Estos dispositivos ofrecen un diseo muy comprimido para ajustarse a los cada vez ms demandados requerimientos de miniaturizacin en aparatos electrnicos. Aun as, no parecen tener mucha salida en el mercado.PIC para procesado de seal (dsPIC)LosdsPICson el penltimo lanzamiento de Microchip, comenzando a producirlos a gran escala a finales de 2004. Son los primeros PIC con bus de datos inherente de 16 bits. Incorporan todas las posibilidades de los anteriores PIC y aaden varias operaciones deDSPimplementadas en hardware, como multiplicacin con suma de acumulador (multiply-accumulate, oMAC),barrel shifting,bit reversiono multiplicacin 16x16 bits.

PIC de 32 bits (PIC32)Microchip Technology lanz en noviembre de 2007 los nuevos microcontroladores de 32 bits con una velocidad de procesamiento de hasta 1.6 DMIPS/MHz con capacidad HOST USB. Sus frecuencias de reloj pueden alcanzar los 80MHz a partir de cuarzos estndares de 4 a 5MHz gracias a un PLL interno. Funcionan a 3.3V en sus puertos de entrada y salida, aunque el fabricante indica que salvo en los pines con funcin analgica, en la mayora se toleran tensiones de hasta 5V. Disponen de una arquitectura optimizada con alto grado de paralelismo y ncleo de tipo M4K y una elevada capacidad de memoria RAM y FLASH ROM. Todo ello hace que estos MCUs permiten un elevado procesamiento de informacin.PIC ms comnmente usados

PIC12C508/509 (Encapsulamiento reducido de 8 pines, oscilador interno, popular en pequeos diseos como el iPod remote).

PIC12F629/675

PIC16F84(Considerado obsoleto, pero imposible de descartar y muy popular)

PIC16F84A (Actualizacin del anterior, la A indica que cuenta con mdulos de comparacin A/D, algunas versiones funcionan a 20 MHz, compatible 1:1)

PIC16F628A/648A (Opciones tpicas para migrar o actualizar desde diseos antiguos hechos con el PIC16F84A. Poseen mdulos de comparacin A/D, Capture & Compare CCP (PWM), comunicacin en serieUSARTy oscilador interno, entre otras mejoras)

PIC16F88(Nuevo sustituto del PIC16F84A y superior al PIC16F648A con ms memoria, oscilador interno, USART, SSP, comparador y convertidor A/D. Muy popular).

PIC16F87X/87XA("Hermanos mayores" del PIC16F84/84A, con cantidad de mejoras incluidas en hardware. Bastante comn en proyectos de aficionados).

PIC16F886/887 (Nuevo sustituto del 16F876A y 16F877A con la diferencia que ahora ya incluye oscilador interno, considerados los ms cercanos a la familia 18F).

PIC16F193x (Nueva gama media de PIC optimizado y con mucha RAM, ahora con 49 instrucciones frente al conjunto de 35 ms comn).

PIC18F452

PIC18F2455 Con manejo de puerto USB 2.0

PIC18F2520/4520 Mltiples comparadores y convertidores A/D.

PIC18F2550/4550 Manejo de puertos USB 2.0 y muy verstil.

dsPIC30F2010

dsPIC30F3014

dsPIC30F3011 (Ideales para control electrnico de motores elctricos de induccin, control sobre audio, etc).

PIC32 (Nueva gama de PIC de 32 bits, los ms modernos son compatibles con USB 2.0).PIC en InternetSe puede encontrar extensa informacin y documentacin sobre PIC enInternet, principalmente por dos motivos:[citarequerida]el primero, porque han sido muy usados para romper los sistemas de seguridad de varios productos de consumo masivo (televisin paga,PlayStation, etc), lo que atrae la atencin de loscracker; y segundo, porque el PIC16C84 fue uno de los primeros microcontroladores fcilmente reprogramables para aficionados. Hay muchosforosylistas de correodedicados al PIC, en los que un usuario puede proponer sus dudas y recibir respuestas.Monitorizacin y control va Internet

Con estos se pueden desarrollar sistemassistemas SCADA, para adquirir y enviar datos al puerto serial de un computador utilizando, por ejemplo, transmisinUARTy el protocoloRS232, o implementando el protocoloTCP/IPdirectamente para construir un sistema completamente embebido. EQUIPAMIENTO Y MATERIAL DE APOYO

Software

HardwareResistencias de varios valores Cristal de cuarzo de 4MHZ Led blue Diodo 22 p switch pulsador Ponteciometro de 22k Fuente de carga de 5 volts Protoboart Modulo LCD de 16 pin Pic 600 dispocitivo para gravar pic pic 16F877A DESARROLLO DE LA PRACTICA

EJEMPLO 5

MENU-LCD Realizado en Isis, un programa diseado para realizar circuitos electrnicos y simularlos en funcionamiento real. En este caso se realizo un men, utilizando una pantalla LCD y un micro controlador que ser programado en el lenguaje de programacin C con un programa llamado (ccs c).

A continuacin trataremos de explicar el cdigo que ocupamos para programar el pic que utilizamos en el circuito anterior.#include // se est incluyendo la librera del micro controlador.#fuses XT, NOWDT // #fuses configura los fusibles // XT es la configuracin del oscilador para 4 Mhz. // NOWDT deshabilita el Watch Dog Timer#use delay (clock=4MHZ) // declara la frecuencia del cristal a 4MHZ#include // se est incluyendo la librera de la pantalla LCD.#include // se est incluyendo la librera de tonos para la bocina.void main (){ // abrimos el mtodo void o programa principal signed INT CUENTA=0; // declaramos signed int la variable cuenta y la iniciamos con 0. El signed se le pone por si a la variable se le asigna un valor negativo, lo siga reconociendo como entero.int subcuenta1=0; // Declaramos entero la variablesubcuenta1 y la iniciamos con 0. int subcuenta2=0; // Declaramos entero la variablesubcuenta2 y la iniciamos con 0.Int subcuenta3=0; // Declaramos entero la variablesubcuenta3 y la iniciamos con 0.lcd_init(); // iniciamos nuestro LCDwhile (true) { If ((input (PIN_B0)) ==1) { Cuenta++;

delay_ms (1000);

generate_tone (A_note [2], 100);} IF ((INPUT (PIN_B1)) ==1) { CUENTA--;

delay_ms (1000);

Generate tone (A_note [2], 100);

} If (cuenta>3) { Cuenta=0; } // Cerramos el if IF (CUENTA1) { subcuenta1=0;

}

switch (subcuenta1){ // Abrimos un switch anidado( subcuenta1) dentro del caso 1 de switch principal case 0: // Empezamos el caso 0 del switch anidado dentro del caso1 del switch principal output_low(pin_a1); // asignamos la salida del pin a2 como baja(0v) para apagar el led que esta conectado en ese pin lcd_gotoxy(1,2); // Damos las coordenadas columna 1 fila 2 printf(lcd_putc,"led 1 off"); // En las coordenadas anteriores imprima en el LCD led 1 Apagado break; // Salimos el caso 0 del switch anidado(subcuenta1) dentro del caso1 del switch principal case 1: // CASO 1: DEL SWITCH ANIDADO(subcuenta1), DENTRO DEL CASO 1, DEL SWITCH

PRINCIPAL output_high(pin_a1); // asignamos la salida del pin a1 como alta(5v) para encender el led que esta conectado en ese pin lcd_gotoxy(1,2); // Damos las coordenadas columna 1 fila 2 printf(lcd_putc,"led 1 on "); // En las coordenadas anteriores imprima en el LCD led 1 Encendido break; // SALIDA del caso 1 DEL switch anidado(subcuenta1), dentro del caso 1, del switch Principal } // cerramos switch subcuenta1 break; // SALIDA del caso 1, del switch principal case 2: // Empezamos el caso 2, del switch principal lcd_gotoxy(1,1); // Damos las coordenadas del LCD, columna 1 de la fila 2 printf(lcd_putc,"opcion 2"); // Imprima en display lcd del puerto C las coordenadas anteriores una cadena con la palabra opcin 2 if((input(pin_b2))==1){ // Abrimos un if y le decimos que cuando el pin b2 est en 1 subcuenta2++; // incremente subcuenta2 en 1 delay_ms(1000); // damos un retardo de 1 segundo } // Cerramos el if if(subcuenta2>1){ // Abrimos un if y preguntamos si subcuenta2 es mayor que 1 subcuenta2=0; // si subcuenta es mayor que 1 subcuenta tomara el valor de 0 } // Cerramos el if switch(subcuenta2){ // Abrimos un switch anidado( subcuenta2) dentro del caso 2 del primer switch case 0: // Empezamos el caso 0 del switch anidado(subcuenta2) dentro del caso1 del switch principal output_low(pin_a2); // asignamos la salida del pin a2 como baja(0v) para apagar el led que esta conectado en ese pin lcd_gotoxy(1,2); // Damos las coordenadas del LCD, columna 1 de la fila 2 printf(lcd_putc,"led 2 off"); // Imprima en display lcd del puerto C las coordenadas anteriores una cadena con la palabra led 2 off break; //salimos el caso 0 del switch anidado(subcuenta2) dentro del caso2 del switch principal case 1: //Empezamos el caso 1 del switch anidado(subcuenta2) dentro del caso2 del switch principal output_high(pin_a2); // Asignamos la salida del pin a2 como alta(5v) para encender el led que est conectado en ese pin lcd_gotoxy(1,2); // Damos las coordenadas del LCD, columna 1 de la fila 2 printf(lcd_putc,"led 2 on "); // Imprima en display lcd del puerto C las coordenadas anteriores una cadena con la palabra led 2 on break; // Salimos el caso 1 del switch anidado(subcuenta2) dentro del caso2 del switch principal } // terminamos el switch subcuenta2 break; // Salimos el caso 2, del switch principal case 3: // Empezamos el caso , del switch principal lcd_gotoxy(1,1); //Damos las coordenadas del LCD, columna 1 de la fila 1 printf(lcd_putc,"opcion 3"); // Imprima en display lcd del puerto C las coordenadas anteriores una cadena con la palabra opcin 3 if((input(pin_b2))==1){ // Abrimos un if le decimos que si la entrada del pin b2 es 1 (5v) pase a la siguiente linea subcuenta3++; // subcuenta3 incrementamos en 1 delay_ms(1000); // Damos un retardo de 1 segundo } // Terminamos el if if(subcuenta3>1){ // Abrimos un if y preguntamos si subcuenta3 es mayor que 1 subcuenta3=0; //si se cumple la condicin anterior subcuenta tomara el valor de 0. } // Terminamos el if switch(subcuenta3){ // Abrimos un switch anidado( subcuenta3) dentro del caso 3 del primer switch case 0: // Empezamos el caso 0 del switch anidado(subcuenta3) dentro del caso3 del switch principal output_low(pin_a3); // asignamos la salida del pin a3 como baja(0v) para apagar el led que esta conectado en ese pin lcd_gotoxy(1,2); // Damos las coordenadas del LCD, columna 1 de la fila 2 printf(lcd_putc,"led 3 off"); // Imprima en display lcd del puerto C las coordenadas anteriores una cadena con la palabr led 3 off break; //salimos el caso 0 del switch anidado(subcuenta3) dentro del caso3 del switch principal case 1: // Empezamos el caso 1 del switch anidado(subcuenta3) dentro del caso3 del switch principal output_high(pin_a3); // Asignamos la salida del pin a3 como alta(5v) para encender el led que est conectado en ese pin lcd_gotoxy(1,2); // Damos las coordenadas del LCD, columna 1 de la fila 2 printf(lcd_putc,"led 3 on "); // Imprima en display lcd del puerto C las coordenadas anteriores una cadena con la palabra led 3 on break; //salimos el caso 1 del switch anidado(subcuenta3) dentro del caso3 del switch principal } //cerramos switch subcuenta3 break; // Salimos el caso 3, del switch principal} // cerramos switch principal} // cerramos bucle while } // cerramos programa principal RESULTADOS Y CONCLUSIONES

Como resultado de esta prctica obtuvimos un men desplegado en un display LCD, siendo controlado con nuestro pic 16f877a, donde pudimos observar que se puede manipular diferentes dispositivos electrnicos y mecnicos desde este pequeo chip, el cual tiene una gran variedad de funciones y opciones de resolver diferentes problemas que se nos puedan presentar en una empresa donde se use procesos automatizados y tambin en otros tipos de empresa ya que su usos son ilimitados todo depende de la creatividad e ingenio del tcnico o ingeniero que los use.A continuacin presentamos el resultado fsico de nuestro proyecto realizado en un protoboard

REFERENCIAS

http://es.wikipedia.org/wiki/Microcontrolador_PIChttp://electronicadesarrollo.blogspot.mx/2007/12/programacin-de-pics.html

// Usamos un bucle de repeticin y lo declaramos verdadero para que sea infinito mientras se requiera

// Usamos un if condicional le decimos que cuando la entrada del pin b0 sea == 1

// Increment cuenta en uno

// Le damos un retardo de 1 segundo

// Que genere un tono de tipo A y le damos las coordenadas 2-100

// Cerramos el if

// Usamos un if condicional le decimos que cuando la entrada del pin b1 sea == 1

// Decremento cuenta en uno

// Le damos un retardo de 1 segundo

// Que genere un tono de tipo A y le damos las coordenadas 2-100

// Cerramos el if

// Usamos un if condicional le preguntamos si cuenta es mayor que 3

// Si se cumple Cuenta vale 0

// Usamos un if condicional le preguntamos si cuenta es menor que 3

// Si se cumple Cuenta vale 3

// Empezamos el caso 0 del switch principal

// Damos las coordenadas del LCD, la columna 1 de la fila 1

// Imprima en las coordenadas anteriores una cadena vaca para borrar antecedentes

// Damos las coordenadas del LCD, la columna 1 de la fila 2

// Imprima en las coordenadas anteriores una cadena vaca para borrar antecedentes

// Salimos del caso 0 del switch principal

// Empezamos el caso 1 del switch principal

// Le damos las coordenadas del LCD, la columna 1 de la fila 1

// Imprima en las coordenadas anteriores una cadena con la palabra opcin 1

// Abrimos un if y le decimos que cuando el pin b2 est en 1

// Subcuenta se incremente en 1

// Le damos un retardo de 1 segundo

// Cerramos el if

// Abrimos un if le preguntamos si subcuenta1 es mayor que 1

// Subcuenta tomara el valor de cero

// Cerramos el if

Jos ngel Rosas Escobedo

Arcadio Patraca

Nancy Sandoval Fiscal

Fabiola Romero Chvez

Programa pic c compiler genera el cdigo en c para programar el pic 16f877a

Programa isis de proteus donde simularemos el circuito elctrico

Programa US-burn de steren el cual utilizaremos para grabar el pic 16f877A