1 Programar PIC`s en lenguaje C18 En 64 horas.El siguiente material está desarrollado como complemento didáctico para la materia de microcontroladores, puede ser utilizados por docentes y estudiantes con disciplina de autoaprendizaje. Programar PIC`s en lenguaje C18 En 64 horas. Autor: Ramdhar Hadit Yusseff Vanegas Esp. En control e instrumentación industrial Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 2.5 Colombia.
2 Clase 4 Ejercicios
3 Estructura de programación en C18Clase 4 Estructura de programación en C18 #include
4 Configuración de los pragmaClase 4 Configuración de los pragma https://www.youtube.com/watch?v=viYT7VxQdcI
5 Configuración de puertos de entrada/salida.Clase 4 Configuración de puertos de entrada/salida.
6 Clase 4 Ejercicio 1 Encender 4 leds del puerto “A mientras se mantenga accionado el pulsador.
7 Clase 4 Ejercicio 1 Encender 4 leds del puerto “A mientras se mantenga accionado el pulsador. /**************Espacio para librerías*******************/ #include
8 Clase 4 Ejercicio 1 Encender 4 leds del puerto “A mientras se mantenga accionado el pulsador. /*****Escacio para Declaracion de Variables ******/ /***********Espacio Para Funciones*************/ /************Aquí se escribe el Código***********/ void main(void){ TRISA=0x00; //Todos como salida TRISD=0xFF; //Todos como entrada LATB=0x00; //Leds Apagados while(1){ // ciclo en infinito if(PORTDbits.RD0==1){ // testeamos RD0. LATA=0x00; // todos los pines del PORTA a nivel bajo } else{ LATA=0xFF; // todos los pines del PORTA a nivel alto
9 Entradas y salidas con TimerTema 8 Entradas y salidas con Timer
10 Instrucciones Con C18 – Delay__TCYx(i)(4)Clase 4 Instrucciones Con C18 – Delay__TCYx(i)(4) La Instrucción Delay___TCYx(i) permite configurar un retardo o una demora. Es decir un tiempo donde el microcontrolador no va a hacer nada. Para utilizar esta instrucción se debe incluir la librería delays.h Delay10TCYx(i) -> 10*Tcy*i Delay100TCYx(i) -> 100*Tcy*i Delay1KTCYx(i) -> 1000*Tcy*i Delay10KTCYx(i) -> 10000*Tcy*i TCYx = 4/fosc fosc = Frecuencia del oscilador i = Numero entero real entre 0 y 255
11 Instrucciones Con C18 – Delay__TCYx(i)(4)Clase 4 Instrucciones Con C18 – Delay__TCYx(i)(4) Delay10KTCYx(100) K * TCYx * 100 10,000∗ 4 𝑓𝑜𝑐𝑠 ∗100 4,000,000 20,000,000 10,000∗ 4 20,000,000 ∗100 4,000,000 20,000,000 = 0,2 = 200ms for (i=1 ; i<=10 ; i++){ LATA = 0x0F; Delay10KTCYx(100); LATA = 0x00; }
12 Ejercicio 2 Leds TitilandoClase 4 Ejercicio 2 Leds Titilando
13 Clase 4 Ejercicio 1 Encender 4 leds del puerto “A mientras se mantenga accionado el pulsador. /**************Espacio para librerías*******************/ #include
14 Clase 4 Ejercicio 1 Encender 4 leds del puerto “A mientras se mantenga accionado el pulsador. /*****Escacio para Declaracion de Variables ******/ char i=0; /************Aquí se escribe el Código***********/ void main(void){ TRISA=0x00; //Todos como salida TRISD=0xFF; //Todos como entrada LATA=0x00; //Leds Apagados while(1){ // ciclo en infinito if(PORTDbits.RD0==1){ // testeamos RD0. LATA = 0x00; // todos los pines del PORTA a nivel bajo } else{ for (i=1 ; i<=10 ; i++){ //Titila 10 veces LATA = 0x0F; Delay10KTCYx(100); //Demora 200ms LATA = 0x00;
15 Clase 4 Ejercicio Propuesto 1. la empresa Acuamatic lo buscó para desarrollar un sistema que le permita visualizar el nivel de agua en un tanque de reserva, los requerimientos del sistema son: Debe indicar en un arreglo de 10 leds el nivel de agua asumiendo que cada led es 10% del nivel. Cuando el nivel esté lleno se debe cerrar la entrada de agua, y cuando el nivel esté por debajo del 30% de la señal deben titilar en los dos últimos leds.
16 Bibliografía Tema 8 www.programiz.com www.microchip.com Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
17 Tema 8 Palabras clave Microcontrolador, PIC, 18f4550, Código fuente, Librerías, pragma, fuses, condicionales, funciones, variables. Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas