Cómo crear un archivo nuevo:
1)Para crear un nuevo proyecto debemos abrir el programa, ir a PROJECT , luego hacer click en PROJECT WIZZARD.
2)Una vez hecho esto , ponemos SIGUIENTE , y seleccionamos el tipo de PIC que vamos a utilizar de la larga lista que hay. Presionamos siguiente.
3)Elegimos el modo MPASM assembler , y presionamos siguiente. Abajo dirá en que carpeta se localiza.
4) Luego colocamos el lugar donde queremos que genere el archivo , y la carpeta donde se guardara, para eso debemos seleccionar la opción Browse. En nuestro caso lo guardamos en C: , donde haremos una nueva carpeta (Click derecho – Nuevo- Carpeta) , y dentro de esa carpeta pondremos el nombre del archivo que vamos a generar.
Rojo: En ese lugar haremos un comentario , como por ejemplo describir el funcionamiento de las instrucciones que va a realizar el pic.
Celeste: En este caso esta descripto el hardware( estructura física) del pic.
En el reset (MCLR) , ira una resistencia de 10K , para “forzar” un 1 , y hacer que el pic no se resetee. En Vss se conectara la tierra. En RA0 , ira el pulsador a tierra, para resetear al pic , en conjunto con una resistencia. Entre OSC1 y OSC2 se conecta el Oscilador , en este caso de tipo XT(4Mhz aproximadamente.) En la pata correspondiente a VDD se le suministrara 5V.Y en RB7 , se conectara el led , con una resistencia y la alimentación.
También aclaramos que tipo y a que frecuencia trabaja el oscilador que utilizamos.
Vale aclarar que el punto y coma (;) , muestra que a continuación vendrá un comentario.
Verde: Datos utiles como fecha , nombre , y Versión. En la versión pondremos un 0.X(cualquier numero) , esto se hace porque todavía no sabemos si va a funcionar correctamente . una vez que lo sabemos , podremos poner 1.0 , que significa que lo que hicimos anda bien. Si queremos mejorarlo pero no sabemos si la mejora va a funcionar , también pondremos 1.X(cualquier numero). Una vez hecha la mejora , y funcionando correctamente podremos poner versión 2.0
d)Celeste: __CONFIG es donde activaremos el WD, PWRT, CP y seleccionaremos el tipo de oscilador que vamos a usar.
Debe quedar de la siguiente manera: WD_OFF , _PWRTE_ON , _CP_OFF, _XT_OSC.
Donde dice ERRORLEVEL , debe ir un menos (-) seguido del numero de error que queremos que NO nos marque , a la hora de verificar si esta bien hecho el programa.
Rosa: Es donde se designaran a las variables y a las “alias”
Las variables se definen #DEFINE , y define un “alias” por una instrucción completa. Por ejemplo pusimos que BANK1 , sea el cambio de banco 1 al 0.
El alias es el nombre que le designamos a algo para que luego el programa lo reconozca con ese nombre , que NO es el original, y se escribe primero lo que queremos denominar , luego ponemos EQU , y después el nombre que le otorgamos.
Gris: Es donde se declaran las variables que vamos a colocar. CBLOCK indica donde se va a ubicar la primer variable . Por ejemplo la primer variable nuestra se ubica en 0x0C , la segunda se ubicara en 0x0D , la tercera en 0x0E , y asi sucesivamente. Terminado esto debemos colocar la instrucción ENDC , que significa que no vamos a designar mas variables
NEGRO: Se observa que la combinación de las instrucciones hace que el micro controlador saltee todo el rectángulo rojo. También realiza anteriormente la acción de borrar el registro W. La instrucción org significa que empiece a guardar desde la posición x , en este caso la 0x00.clrw hace la acción de borrar el registro W y la instrucción goto significa que valla a ,en este caso a main .
ROJO: Esta rutina se activa cuando hay algún tipo de interrupción y actúa de la siguiente manera: guarda la ultima acción que hizo luego de que se interrumpió el programa. Es por esto que la rutina anterior saltea esta.
AZUL: BANK1 y BANK0 son definiciones. La combinación de estas instrucciones se encarga de poner como entrada a todos los pines del PORT A y como salida única al pin RB7. Movlw B’11111’ y movwf TRIS A es lo que hace que el PORT A sean todos entradas y bcf TRIS B,LED se encarda de que sea salida el pin RB7
ROSA:comienza con un bcf PORTB,LED es decir prende el del poniendo un 0 en ese puerto luego loop btfsc PORTA,SW y goto loop mantienen prendido el led hasta que se presione el pulsador y comience el parpadeo Blink bcf call bsf call y goto son las que ponen uno y ceros en el RB7 ejecutando el parpadeo . Los 2 call se encargan de ir hasta las subrutinas del próximo recuadro.Y el goto hacia Blink es lo que repite el proceso ilimitadamente.
MARRON: subrutinas: una subrutina es una forma de achicar tamaño del programa de la siguiente manera, cuando uno sabe que va a utilizar varias veces una rutina realiza una subrutina con un nombre que luego va a reemplazar a dicha rutina .decfsz es una instrucción que dice lo siguiente : a la variable que yo le voy a decir a continuación réstele 1 y fijese si esta en 0 si esta en 0 saltee la siguiente instrucción , de esta manera un puede poner delay teniendo en cuenta cuanto se demora cada instrucción a través de la siguientes ecuaciones:
F interna del clock es igual a la frecuencia externa dividido 4 , y el Tcyc=1/fint este es el tiempo que tarda cada instrucción , las instrucciones de salto duran el doble.
NEGRO: es la instrucción AL ENSAMBLADOR NO AL PROGRAMA que le dice que aca termino el programa.
Algunos iconos útiles:
.lst : Informacion
.err : Errores en la programacion del pic
.asm : es el archivo fuente
.HEX: Archiv ejecutable que se usa para grabar el microcontrolador (Se puede ver con el Blog de notas)
.mcw: Guarda el espacio de trabajo que usaste( Work Space) , es decir como estan distribuidas las ventanas que usamos.
.mcp: Es el poyecto generado.
.O: Es el objeto previo al ejecutable. Se toman con el Linker y genera un .exe(ejecutable)
Algunos iconos útiles:
.lst : Informacion
.err : Errores en la programacion del pic
.asm : es el archivo fuente
.HEX: Archiv ejecutable que se usa para grabar el microcontrolador (Se puede ver con el Blog de notas)
.mcw: Guarda el espacio de trabajo que usaste( Work Space) , es decir como estan distribuidas las ventanas que usamos.
.mcp: Es el poyecto generado.
.O: Es el objeto previo al ejecutable. Se toman con el Linker y genera un .exe(ejecutable)
No hay comentarios:
Publicar un comentario