¡Descarga Entornos de Desarrollo y más Resúmenes en PDF de Programación C solo en Docsity! IDEs 1. ¿Qué es un IDEs? Los Entornos de Desarrollos Integrados (Integrated Development Environment), son programa que te ayuda a programar las órdenes a dar a una maquia. Para realizar la traducción del lenguaje de programación entendibles para los programadores a un lenguaje que entienda la máquina, que es el sistema binario (unos y ceros), los IDE consta de las siguientes herramientas: . Editor: Generalmente, se utilizan editores que colorean la sintaxis para ayudar al programador a comprender mejor el programa y detectar los errores más fácilmente. Compilador o intérprete: Dependiendo del tipo de lenguaje utilizado, se necesitará para ejecución el intérprete o el compilador para generar código ejecutable. Depurador (intérprete): Un buen depurador siempre tiene un intérprete detrás para ir ejecutando órdenes paso a paso, inspeccionar el valor de variables, etc. Constructor de interfaces gráficos: Con él, el desarrollador podrá crear ventanas, botones, campos de texto, literales, pestañas, tablas, etc. Tiene todos los componentes que pueden encontrarse en una interfaz. 2. IDEs PARA PROGRAMACION DEL PIC18F4550 La programación de microcontroladores PIC18F4550 de Microchip tiene dentro de los lenguajes, en los que programamos rutinas para PIC, existen tres posibilidades lenguajes: Lenguaje BASIC Es un lenguaje de programación creado por John George Kemeny y Thomas Eugene Kurtz en el año 1964 con fines pedagógicos, era el lenguaje que utilizan las microcomputadoras de los años 80. Tiene Ventajas: Es el lenguaje de bajo nivel natural de la línea PIC tanto para gama baja, media o alta. Con él se tiene un aprovechamiento eficiente de los recursos del PIC. Se pueden crear macros con este lenguaje, para después simplificar el código en diferentes desarrollos. Excelente para manejar interrupciones simultáneas. Con él se pueden controlar los tiempos y los registros bit a bit. Cuando se genera el archivo. hex éste es completamente optimizado. Desventaja: En realidad, desde mi punto de vista no existe ninguna, excepto cuando no se tiene experiencia en programación puede tardarse el desarrollo de alguna rutina en comparación con los otros lenguajes. IDEs PARA PIC18F4550 EN LENGUAJE C MPLAB IDE PIKLAB EJERCICIOS RESUELTOS EJERCICIOS DE LENGUAJE BASIC 1) Rutina que hace parpadear un led en el pin cero del puerto B cada 200 milisegundos en lenguaje Basic empleando el software PICBASIC PRO: EJERCICIOS DE LENGUAJE C 2) Generar una onda cuadrada de 1 KHz por el puerto RD0. Por el puerto RD0 se requiere sacar una señal cuadrada de 1 KHz o 1 ms (0.5ms en alto y 0.5ms en bajo). Utilizando la ecuación de tiempo, determinamos el valor para cargar el temporizador TMR0. 65536 - TMR0 = Tiempo / 4 * TOSC * Rango Divisor de Frecuencia Tiempo 0.5 ms = 500 us Rango Divisor de frecuencia (pre-escalar) = 2 (para que el resultado sea entero) TOSC= 1/4MHZ = 0.25us 65536 - TMR0 = 500 us/(4*0.25us*2) = 250 TMR0 = 65536 - 255 = 6528 Indica el circuito utilizado y la señal obtenida. Nótese los tiempos en alto 500 ms y el periodo de 1.03 ms marcado en la onda. 3) Calcular el valor que debemos cargar al Timer1. La frecuencia de salida es 50 Hz, por tanto, el periodo de la señal es: Tsalida= 1/50Hz = 20 ms. Con un DC del 5% el tiempo de alto es 1 ms. Aplicando la ecuación de tiempo del TMR1 65536 – TMR1 = Tiempo / 4 * TOSC * Rango Divisor de Frecuencia Tiempo 1 ms = 1000 us Rango Divisor de frecuencia (pre-escalar) = 2 (para que el resultado sea entero) TOSC= 1/4MHZ = 0.25us (Reloj del sistema del micro). 65536 – TMR1 = 1000 us/(4*0.25us*2) = 500 TMR1 = 65536 - 500= 65036. La lógica del programa es: • Al arrancar el microcontrolador una variable de control comienza en 1 y en éste valor el puerto RD0 se pone en alto. • Se produce la primera interrupción del TMR1 al 1ms y desactiva a RD0. Muestra los componentes y las conexiones requeridas para el ejercicio. 5) Rutina que hace parpadear un led en el pin cero del puerto B cada 200 milisegundos en lenguaje C empleando el software de CCS PCW IDE: EJERCCIOS DE LENGUAJE ENSAMBLADOR 6) Rutina que hace parpadear un led en el pin cero del puerto B cada 200 milisegundos en lenguaje Ensamblador empleando el software de Microchip MPLAB IDE: PROA ddddaddRdadiddiadidiadaddadddaddadadidadadadaadaoadidoiolloldiicia
¿* Nombre del archivo: bTink.asm
;* Ejemplo de programa que hace parpadear un LED
;* conectado al PORTB
y* El pic utilizado es el 16F628A de la gama media.
Dada daa nbddadddddddadenadddodndbdacdaadbaanidnoa adonde
Tist p=16f628A y list directive to define processor
ttinclude <p16F628A.inc>; processor specific variable definitions
errorlevel 2 suppress message 302 from list file
¡**aqui va la configuración de fusibles:***;
CONFIG _CP_OFF €: _DATA_CP_OFF € _LVP_OFF € _BOREN_OFF él
MELRE_OFF $ _WDT_OFF € _PWRTE_ON € _INTOSC_OSC_NOCLKOUT
É fin de la configuración de fusibles.
¡Y**DEFINICIÓN DE LOS REGISTROS DE USUARIO EN RAM***;
cblock 0x20 ;¡Comienzo_de los registros de usuario
¿RAM en el Bank0 desde la posición 20H
countl ¡registro usado por la rutina Delay
counta ¿registro usado por la rutina Delay
countb ¡registro usado por la rutina Delay
ende
ON
org _0x0000 ¡org coloca el programa en el origen.
movlw 0x07
movwf CMCON ;Deshabilito los comparadores
bsf STATUS, RPO ¡entra a Bank 1 para poder acceder a TRISB
clrf TRISB ¡configuro PortB como salida
bcf STATUS, RPO ¡retorna a de nuevo el Bank 0
Loop
movlw b'00000001* ¡enciendo LED
movwf PORTB
nob ¿nop no hace nada
Dela: ¡Llamo a la rutina de retardo de 200ms
movlw "00000000" apago LED
moywf PORTB
call Delay ¡Llamo la rutina de retardo de 200ms
goto Loop ¡Inicia de nuevo el ciclo.
¡****SUBRUTINA DE RETARDO****;
; Esta rutina retarda 200ms. ;
RARO daa]
Delay
movlw d'200' ¡Espero 200 ms (Para un reloj de 4 MHz)
movwf countl
di movlw 0xc7
movwf counta
movlw 0x01
mowwf countb
Delay_0
decfsz counta, f
joto $+2
lecfsz countb, f
goto Delay_0
decfsz countl ,f
goto dl
retlw 0x00
end