Vous êtes sur la page 1sur 6

Laboratorio 1: Introduccin a CCS y Proteus. 1.1 Objetivo.

Familiarizarse con el compilador CCS y el simulador de circuitos Proteus mediante la implementacin prctica del ejemplo Parpadeo de un LED. 1.2 Introduccin. A continuacin se mostrarn los pasos necesarios para crear un nuevo proyecto en CCS y luego se mostrarn los pasos necesarios para simular nuestro proyecto en Proteus. 1.3 Procedimiento. 1.3.1 Crear el Proyecto en CCS 1. Abrir el Compilador PIC C de CCS 2. Presionar el botn close Project 3. Dar click en el botn inicio. 4. Crear un nuevo archivo dando click en New siguiente figura Source File a como se muestra en la para cerrar todos los archivos anteriormente abiertos.

5. Crear una Nueva carpeta llamada Lab1 en la ubicacin que consideres necesaria (Ejemplo: Carpeta Mis Documentos). 6. Abrir la carpeta Lab1 y guardar el proyecto con el nombre de Led_Blink1. 7. Copiar el Cdigo Led_Blink1.

8. Dar clic en el botn Build All de la pestaa Compile o presionar la tecla F9.

1.3.2 Crear el circuito en Proteus 1. Abrir el simulador ISIS 7 de Proteus. 2. Presionar la tecla P del teclado. 3. Escribir PIC16F877 en la caja de bsqueda y darle doble clic al dispositivo en la lista de resultados para que aparezca en la ventana de dispositivos seleccionados. 4. Escribir LOGICPROBE en la caja de bsqueda y darle doble clic al dispositivo en la lista de resultados para que aparezca en la ventana de dispositivos seleccionados. 5. Cerrar la ventana de Pick Devices. 6. En la ventana de dispositivos seleccionados darle un clic al dispositivo y luego dar un clic en la ventana de trabajo para que aparezca el dispositivo y finalmente ubicar los dispositivos como aparece en la siguiente figura. a. Si se desea rotar el dispositivo en sentido horario se debe presionar la tecla + del teclado numrico. b. Si se desea rotar el dispositivo en sentido anti-horario presionar la tecla - del teclado numrico. c. Si se desea rotar el dispositivo en espejo s e debe presionar la combinacin de teclas ctrl+m.

7. Conectar el Pin del LOGICPROBE con el pin RB0 del PIC16F877. 1.3.3 Cargar el Archivo fuente. 1. Darle doble clic al PIC16F877 ubicado en la ventana de trabajo 2. Darle clic al botn de la caja de texto Program File y seleccionar el archivo fuente Led_Blink1.cof 3. Cambiar la frecuencia de reloj a 8MHz.

4. Luego presionar el botn Ok. 1.3.4 Realizar la simulacin 1. Dar clic en el botn Play observar la simulacin. 2. Dar clic en el botn stop de la barra de simulacin de la barra de simulacin. y

3. Dar clic en el botn step de la barra de simulacin para iniciar la simulacin paso a paso o presionar la combinacin de teclas Ctrl+F12. 4. A continuacin se mostraran la ventana del cdigo fuente y la ventana de variables.

1.4 Cdigos. 1.4.1 Cdigo Led_Blink1. El cdigo siguiente sirve para hacer parpadear el LED conectado al PIN_B0 cada 0.5 segundos utilizando las funciones propias de CCS para manejar los Puertos.
#include <16f887.h>//pic a utilizar #FUSES #FUSES #FUSES #FUSES #FUSES #FUSES NOWDT //No Watch Dog Timer HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) NOPUT //No Power Up Timer NOBROWNOUT //No brownout reset NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O NOWRT //Program memory not write protected //Fosc=8Mhz

#use delay (clock=8M)

///PROGRAMA void main(void){ while(TRUE){ //bucle infinito output_low(PIN_B0); //led off delay_ms(500); //Retardo de 500ms = 0.5s output_high(PIN_B0); //led on delay_ms(500); //Retardo de 500ms = 0.5s } }

Ckto a Simular
C1
1 22pf 2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40

U1
RE3/MCLR/VPP

X1
CRYSTAL

C2

22pf

?
R1
10k

RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 RB0/AN12/INT RD2 RB1/AN10/C12IN3RD3 RB2/AN8 RD4 RB3/AN9/PGM/C12IN2RD5/P1B RB4/AN11 RD6/P1C RB5/AN13/T1G RD7/P1D RB6/ICSPCLK RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7 PIC16F887

15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10

Parte 2 Encendido de todo el puerto.


#include <16F877A.h> /// declara la frecuencia del cristal #use delay(clock=8000000) ///configura los fusibles /// HS es la configuraricion del oscilador la cual indica High speed es decir /// frecuencias altas esto es a partir de 8 Mhz. /// NOWDT deshabilita el Watch Dog Timer /// NOPUT deshabilita le reseteo de power up timer /// NOPROTECT deshabilita la proteccion del codigo del pic. #fuses HS,NOWDT,NOPUT,NOPROTECT /// asignamos a variable port_b el espacio memoria 0x06 que es la dir de port_b #byte port_b=0x06 //////////////////////////GLOBALES////////////////////////////////////////////// /// Estos parmetros son visibles desde todo el cdigo /// por eso se les llama globales /// Al ser constantes,lo ms prctico es declararlas aqu. //////////////////////////////////////////////////////////////////////////////////// int contador; ////////////////////////// Principal ////////////////////////////////////////// void main() { /// declaramos el puerto B como salidas set_tris_b(0); /// /// ///

/// lo igualamos con cero para que tengamos un valor inicial de lo contrario /// no sabriamos con que valor iniciaria al comienzo de nuestro programa port_b=0; /// bucle infinito para que las instrucciones que tiene siempre se ejecuten while (true) { /// activa todos los pins del puerto B /// otra instruccion que podemos poner es contador=255 las dos son lo mismo contador=0xff; port_b=contador; /// Retardo de 1000 milisegundos es decir 1 segundo delay_ms(1000); //// apaga todos los pins del puerto B} contador=0x00; port_b=contador; /// Retardo de 1000 milisegundos es decir 1 segundo delay_ms(1000); } /// fin de bucle while } /// fin de funcion principal main

Ckto a Simular
C1 U1 X1
CRYSTAL 13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RA0/AN0 RB3/PGM RA1/AN1 RB4 RA2/AN2/VREF-/CVREF RB5 RA3/AN3/VREF+ RB6/PGC RA4/T0CKI/C1OUT RB7/PGD RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30

? ? ? ? ? ? ? ?

22pf

C2

22pf

R1
10k