SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Empezando con el programa



Primero debemos tomar algunas clases generales acerca del
código.

¿Que es el código? El código será la lista de ordenes que seguirá
el micro. En el pondremos todos los pasos que efectuará el
mismo. El PIC es microcontrolador, capaz de seguir nuestras
indicaciones. Otros componentes, son fijos, tales como
compuertas, memorias, etc. Los microcontroladores son
integrados capaces de seguir una secuencia programada. Esto
quiere decir que se programa. ¿Como lo programamos? Nuestra
Pc será la interfase Hombre-Microcontrolador. Todos los
microcontroladores poseen una memoria de programa, en la cual
contendrá todos los pasos a seguir. El código como en cualquier
lista se empezará a leer la primera línea, luego la segunda y así
sucesivamente, salvo que se especifique lo contrario.

El código se escribirá en la ventana en blanco que aparece para
en el MPlab.

Ahora pasaremos a conocer las partes del programa.

En la siguiente sección pondremos en vista un código fuente de
parte de un programa, no vale la pena copiarlo y ejecutarlo ya que
su fin es solo de mostrar las partes de los programas.
Echemos un vistazo al siguiente código:

                                                 Listado del PIC
LIST p=16F84
                                                 que se utilizará
status equ 03h
portb equ 06h
trisb equ 86h
rp0 equ 5
rbie equ 3
                    Encabezado o
rbif equ 0
                    header, son las
intcon equ 0bh
                    equivalencias
loop equ 0dh
loop2 equ 0eh
loop3 equ 0fh
loop4 equ 10h
w equ 00h
goto inicio         Código

dormir
  bcf intcon,rbif
  bsf intcon,rbie
 SLEEP
 bcf intcon,rbie
  bcf intcon,rbif
 return

retardo100mS
 movlw d'100'       Funciones (Ya
 movwf loop2        es parte del
 finretardo1        código)
 nop
 nop
 nop
 nop
 nop
 call retardo1mS
 movlw d'100'
 decfsz loop2
 goto finretardo1
return




                                            Rems: No es
                                            parte del
;****************************************** código son
;* Principal *                              anotaciones
;****************************************** nuestras. El
                                            compilador las
                                            pasará de largo


inicio
 bsf status,rp0
 bsf trisb,2
 bcf status,rp0                              Programa
                                             principal
                                             (Código)
reinicia

call dormir
bsf portb,2
call retardo100mS
bcf portb,2
goto reinicia

                                                 Sentencia de
end                                              Fin del
                                                 programa

No explicaremos instantáneamente todas las partes del programa
pero me parece un buen momento para explicar las header, ya
que estas las tendremos que tener en claro desde el principio.

En el código cuando aparecía:

status equ 03h
portb equ 06h
trisb equ 86h
rp0 equ 5

Lo que queríamos decirle al programa es que cada vez que
escribamos la palabra status, cuando compile el programa lo
cambie por lo que le sigue a equ. Es decir que Status equivaldrá a
03h. Es decir que cada vez que queremos escribir 03
hexadecimal en el código, sera lo mismo poner status. Depende
de donde pondramos la palabra status, esta correspondera a un
numero o correspondera a la direccion 03 de memoria Veamos los
siguientes ejemplos para redondear el tema.

bsf 03h,3
bsf 03h,status
bsf status, 3

(sintaxis: Bsf xxx,b)

Para los que no conocen las instrucciones del asembler, BSF pone
un 1 en el bit b del registro de direccion xxx (si deseas ver mas
acerca de esta instruccion, visita la lista de instrucciones )
Volviendo, en los tres ejemplos se realiza lo mismo. En la primera,
el código es confuso, en el segundo tambien pues ese status no
significa mucho que lleve el valor 3 pero aqui se ve que se usa
como constate. en la tercera linea el codigo toma color pues se
pone un 1 en el bit 3 del registro ubicado en la direccion status
(03h).
Por otro lado debemos tener en cuenta que pueden existir varias
header con el mismo valor pero no pueden existir una header con
dos valores.
Volveremos a las partes del programa luego.

¿Como se programa?.

Debemos ser prolijos al programar. En un primer momento solo
nos debe preocupar que es lo que queremos hacer. Organizarnos
en papel y lapiz marcando las partes importantes del codigo
ayudara mucho. Es conveniente el uso de rems pues estos nos
ayudarán en todo momento. Estos no ocupan memoria en el pic
pues no se escriben en él. El uso adecuado de los nombres de
funciones como así también el de las equivalencias nos ayudarán
muchísimo, pues tendremos bien etiquetados todas las partes del
código según el uso que les demos . Escribir un código fuente es
muy fácil, escribir el primer código fuente es muy difícil.

Planeemos un proyecto simple con el 16F84

Que tal si queremos simplemente encender un led ubicado en la
pata uno del integrado (Ra2).
Bien siempre en todo programa de PIC hecho en el MPlab deberá
llevar las siguientes dos líneas:

LIST p=16F84
End

Ok. La primera línea le esta indicando al Mplab que listado de
Microcontrolador se utilizará. Como utilizaremos el Pic 16F84 el
listado deberá ser el mismo.
La segunda línea le dirá donde termina el programa.
En el medio de estas dos irá todo el código.
Para encender el led nos basta solo con cuatro líneas más de
código:

LIST p=16F84

bsf 3,5
bcf 85,2
bcf 3,5
bsf 5,2
end

Ja los pesque sin entender nada.

Es fácil. La primera y ultima línea ya la hemos analizado. La
segunda y la quinta son muy parecidas y la tercera y cuarta
también.

Veamos que significa las sentencias bcf y bsf

Bcf: Bit Clear Flag

Bsf: Bit Set Flag.

Esto quiere decir que pondrá una bandera (Flag) o no en algún Bit.
Vemos que cada línea de bxf contiene además dos números. Estos
serán el primero para el registro y el segundo para el numero de
bit.

Es decir que la segunda línea pondrá un uno (una bandera) en el
bit cinco del registro tres.

De la misma manera en la tercera línea de código tendremos que
pondrá en cero el bit dos del registro ochenta y cinco.

Bueno pero que significado tienen los registros 3 y 85 antes
nombrados. Son los registros de "estado" y "Tris A"
Es decir que este programa lo que hace es acceder primero al
registro de estado y modificar la paginación de este (Rp0 es el
bit 5 del registro status), de este modo podremos acceder a la
segunda columna de registros. Recordemos que el registro Tris a
esta en el banco uno de los bancos de registro. Luego de eso,
modificamos la entrada-salida Ra2 (Bit 2 del registro tris),
colocando a esta como salida de datos. Ahora debemos volver al
banco cero para poder acceder al registro PortA. Entonces
modificamos la paginación del registro status volviendo el bit 5
(Rp0) a cero. Ahora si estamos preparados para escribir
directamente en el puerto.

Recuerden que por defecto el PIC tendrá a todas la entradas-
salidas (tanto los puertos Ra y Rb), colocadas como entrada de
datos, por eso es que las debemos setear antes de usar (Si uno
intenta escribir una entrada el MPlab no genera ningún error,
simplemente no hace nada).

Esto si lo compilamos y lo simulamos, funciona, pero que pasa si
venimos dentro de unos días y vemos el código nuevamente. Nos
resultará difícil recordar que 03 equivale a status y que 85
equivale a Tris A.

Para ello ordenemos un poco el código y llamemos a las cosas por
su nombre:

LIST p=16F84

Status equ 03h
Rp0 equ 5
TrisA equ 85h
PortA equ 05h

bsf Status,Rp0
bcf TrisA,2
bcf Status,Rp0
bsf PortA ,2
end

No es verdad que esta mejor. Y que tal si les ponemos algunas
anotaciones nuestras. Estas llevarán al principio el punto y coma,
entonces de esta manera, el compilador no tomará en cuenta el
resto de la línea:

LIST p=16F84

*      Header       *

Status equ 03h
Rp0 equ 5
TrisA equ 85h
PortA equ 05h

*      Programa Principal       *

bsf Status,Rp0
bcf TrisA,2
bcf Status,Rp0
bsf PortA ,2

end                         ;Este es el fin

Fíjense como se estiro nuestro programa.

En esta parte hemos explicado las sentencias "bsf", "bcf", y
parte de algunos registros como el "TrisA", "PortA" y "Status".

Si queres, Aqui tenes todas las instrucciones del ascembler de
pic bien explicadas.

Que les parece si lo simulamos para ver que es lo que pasaría en
el PIC.
Para ello pasaremos a la siguiente parte.

Más contenido relacionado

La actualidad más candente

Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assemblerANDREA
 
Laborqatoio 1 telematica
Laborqatoio 1 telematicaLaborqatoio 1 telematica
Laborqatoio 1 telematicamaleja2012
 
Openmp
OpenmpOpenmp
OpenmpUnex
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CCristian Maza
 
Funciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenierosFunciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenierosMaria jose Ramirez perez
 
Turbo pascal 7 guia principal
Turbo pascal 7 guia principalTurbo pascal 7 guia principal
Turbo pascal 7 guia principalhanithaw1
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en cdemata
 
Que es una directiva de preprocesador
Que es una directiva de preprocesadorQue es una directiva de preprocesador
Que es una directiva de preprocesadorAndrew King
 

La actualidad más candente (16)

Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assembler
 
Laborqatoio 1 telematica
Laborqatoio 1 telematicaLaborqatoio 1 telematica
Laborqatoio 1 telematica
 
I S A
I S AI S A
I S A
 
Codificacion
CodificacionCodificacion
Codificacion
 
Openmp
OpenmpOpenmp
Openmp
 
Teclado Matricial
Teclado MatricialTeclado Matricial
Teclado Matricial
 
Memoria I I
Memoria  I IMemoria  I I
Memoria I I
 
Libreria c++
Libreria c++Libreria c++
Libreria c++
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
 
Puerto paralelo
Puerto paraleloPuerto paralelo
Puerto paralelo
 
Funciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenierosFunciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenieros
 
Turbo pascal 7 guia principal
Turbo pascal 7 guia principalTurbo pascal 7 guia principal
Turbo pascal 7 guia principal
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en c
 
P proyecto 3
P proyecto 3P proyecto 3
P proyecto 3
 
Que es una directiva de preprocesador
Que es una directiva de preprocesadorQue es una directiva de preprocesador
Que es una directiva de preprocesador
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 

Similar a Curso MPLAB pic 3 empezando con el programa 9p

Similar a Curso MPLAB pic 3 empezando con el programa 9p (20)

Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Pikit3 parte i-
Pikit3 parte i-Pikit3 parte i-
Pikit3 parte i-
 
PROGRAMACIÓN EN C
PROGRAMACIÓN EN CPROGRAMACIÓN EN C
PROGRAMACIÓN EN C
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 
Introducpic2
Introducpic2Introducpic2
Introducpic2
 
Introducpic
IntroducpicIntroducpic
Introducpic
 
Estructura .COM
Estructura .COMEstructura .COM
Estructura .COM
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Ejercicio pic assembler
Ejercicio pic assemblerEjercicio pic assembler
Ejercicio pic assembler
 
Guia 5 3 2015 c2
Guia 5 3 2015 c2Guia 5 3 2015 c2
Guia 5 3 2015 c2
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
Proy iker4
Proy iker4Proy iker4
Proy iker4
 
Equipo 6 comparaciones
Equipo 6 comparacionesEquipo 6 comparaciones
Equipo 6 comparaciones
 
Programación del microcontrolador
Programación del microcontroladorProgramación del microcontrolador
Programación del microcontrolador
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2
 
asdas
asdasasdas
asdas
 

Más de Ruderocker Billy

Introduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led'sIntroduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led'sRuderocker Billy
 
Microcontroladores tabla de referencia
Microcontroladores tabla de referenciaMicrocontroladores tabla de referencia
Microcontroladores tabla de referenciaRuderocker Billy
 
Cirugia model instalacion hidraulica y sanitaria
Cirugia model instalacion hidraulica y sanitaria Cirugia model instalacion hidraulica y sanitaria
Cirugia model instalacion hidraulica y sanitaria Ruderocker Billy
 
Siemens 300 a_service_manual
Siemens 300 a_service_manualSiemens 300 a_service_manual
Siemens 300 a_service_manualRuderocker Billy
 
Siemens product & accessory price list
Siemens product & accessory price listSiemens product & accessory price list
Siemens product & accessory price listRuderocker Billy
 
Servo 300 function check (each use)
Servo 300 function check (each use)Servo 300 function check (each use)
Servo 300 function check (each use)Ruderocker Billy
 
Servo 300 exchange 0 2 cell
Servo 300 exchange 0 2 cellServo 300 exchange 0 2 cell
Servo 300 exchange 0 2 cellRuderocker Billy
 

Más de Ruderocker Billy (20)

Introduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led'sIntroduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led's
 
Microcontroladores tabla de referencia
Microcontroladores tabla de referenciaMicrocontroladores tabla de referencia
Microcontroladores tabla de referencia
 
como programar un pic
como  programar un piccomo  programar un pic
como programar un pic
 
Diseño sala de cirugia
Diseño sala de cirugiaDiseño sala de cirugia
Diseño sala de cirugia
 
Cirugia model instalacion hidraulica y sanitaria
Cirugia model instalacion hidraulica y sanitaria Cirugia model instalacion hidraulica y sanitaria
Cirugia model instalacion hidraulica y sanitaria
 
Plano
PlanoPlano
Plano
 
Sala de cirugia
Sala de cirugiaSala de cirugia
Sala de cirugia
 
Cirugia model
Cirugia modelCirugia model
Cirugia model
 
Litiasis renal1
Litiasis renal1Litiasis renal1
Litiasis renal1
 
Sv 300 spare parts list
Sv 300 spare parts listSv 300 spare parts list
Sv 300 spare parts list
 
Sv300service manual
Sv300service manualSv300service manual
Sv300service manual
 
Ventilacion mecanica
Ventilacion mecanicaVentilacion mecanica
Ventilacion mecanica
 
Siemens 300 a_service_manual
Siemens 300 a_service_manualSiemens 300 a_service_manual
Siemens 300 a_service_manual
 
Siemens product & accessory price list
Siemens product & accessory price listSiemens product & accessory price list
Siemens product & accessory price list
 
Siemens300 300 apart2
Siemens300 300 apart2Siemens300 300 apart2
Siemens300 300 apart2
 
Siemens300 300 apart1
Siemens300 300 apart1Siemens300 300 apart1
Siemens300 300 apart1
 
Servo 300 function check (each use)
Servo 300 function check (each use)Servo 300 function check (each use)
Servo 300 function check (each use)
 
Servo 300 exchange 0 2 cell
Servo 300 exchange 0 2 cellServo 300 exchange 0 2 cell
Servo 300 exchange 0 2 cell
 
Servo 300 calibaration(2)
Servo 300 calibaration(2)Servo 300 calibaration(2)
Servo 300 calibaration(2)
 
Servo 300 3000 hour pm
Servo 300 3000 hour pmServo 300 3000 hour pm
Servo 300 3000 hour pm
 

Último

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPANEP - DETP
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 

Último (20)

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETP
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 

Curso MPLAB pic 3 empezando con el programa 9p

  • 1. Empezando con el programa Primero debemos tomar algunas clases generales acerca del código. ¿Que es el código? El código será la lista de ordenes que seguirá el micro. En el pondremos todos los pasos que efectuará el mismo. El PIC es microcontrolador, capaz de seguir nuestras indicaciones. Otros componentes, son fijos, tales como compuertas, memorias, etc. Los microcontroladores son integrados capaces de seguir una secuencia programada. Esto quiere decir que se programa. ¿Como lo programamos? Nuestra Pc será la interfase Hombre-Microcontrolador. Todos los microcontroladores poseen una memoria de programa, en la cual contendrá todos los pasos a seguir. El código como en cualquier lista se empezará a leer la primera línea, luego la segunda y así sucesivamente, salvo que se especifique lo contrario. El código se escribirá en la ventana en blanco que aparece para en el MPlab. Ahora pasaremos a conocer las partes del programa. En la siguiente sección pondremos en vista un código fuente de parte de un programa, no vale la pena copiarlo y ejecutarlo ya que su fin es solo de mostrar las partes de los programas. Echemos un vistazo al siguiente código: Listado del PIC LIST p=16F84 que se utilizará
  • 2. status equ 03h portb equ 06h trisb equ 86h rp0 equ 5 rbie equ 3 Encabezado o rbif equ 0 header, son las intcon equ 0bh equivalencias loop equ 0dh loop2 equ 0eh loop3 equ 0fh loop4 equ 10h w equ 00h goto inicio Código dormir bcf intcon,rbif bsf intcon,rbie SLEEP bcf intcon,rbie bcf intcon,rbif return retardo100mS movlw d'100' Funciones (Ya movwf loop2 es parte del finretardo1 código) nop nop nop nop nop call retardo1mS movlw d'100' decfsz loop2 goto finretardo1
  • 3. return Rems: No es parte del ;****************************************** código son ;* Principal * anotaciones ;****************************************** nuestras. El compilador las pasará de largo inicio bsf status,rp0 bsf trisb,2 bcf status,rp0 Programa principal (Código) reinicia call dormir bsf portb,2
  • 4. call retardo100mS bcf portb,2 goto reinicia Sentencia de end Fin del programa No explicaremos instantáneamente todas las partes del programa pero me parece un buen momento para explicar las header, ya que estas las tendremos que tener en claro desde el principio. En el código cuando aparecía: status equ 03h portb equ 06h trisb equ 86h rp0 equ 5 Lo que queríamos decirle al programa es que cada vez que escribamos la palabra status, cuando compile el programa lo cambie por lo que le sigue a equ. Es decir que Status equivaldrá a 03h. Es decir que cada vez que queremos escribir 03 hexadecimal en el código, sera lo mismo poner status. Depende de donde pondramos la palabra status, esta correspondera a un numero o correspondera a la direccion 03 de memoria Veamos los siguientes ejemplos para redondear el tema. bsf 03h,3 bsf 03h,status bsf status, 3 (sintaxis: Bsf xxx,b) Para los que no conocen las instrucciones del asembler, BSF pone un 1 en el bit b del registro de direccion xxx (si deseas ver mas acerca de esta instruccion, visita la lista de instrucciones )
  • 5. Volviendo, en los tres ejemplos se realiza lo mismo. En la primera, el código es confuso, en el segundo tambien pues ese status no significa mucho que lleve el valor 3 pero aqui se ve que se usa como constate. en la tercera linea el codigo toma color pues se pone un 1 en el bit 3 del registro ubicado en la direccion status (03h). Por otro lado debemos tener en cuenta que pueden existir varias header con el mismo valor pero no pueden existir una header con dos valores. Volveremos a las partes del programa luego. ¿Como se programa?. Debemos ser prolijos al programar. En un primer momento solo nos debe preocupar que es lo que queremos hacer. Organizarnos en papel y lapiz marcando las partes importantes del codigo ayudara mucho. Es conveniente el uso de rems pues estos nos ayudarán en todo momento. Estos no ocupan memoria en el pic pues no se escriben en él. El uso adecuado de los nombres de funciones como así también el de las equivalencias nos ayudarán muchísimo, pues tendremos bien etiquetados todas las partes del código según el uso que les demos . Escribir un código fuente es muy fácil, escribir el primer código fuente es muy difícil. Planeemos un proyecto simple con el 16F84 Que tal si queremos simplemente encender un led ubicado en la pata uno del integrado (Ra2). Bien siempre en todo programa de PIC hecho en el MPlab deberá llevar las siguientes dos líneas: LIST p=16F84 End Ok. La primera línea le esta indicando al Mplab que listado de Microcontrolador se utilizará. Como utilizaremos el Pic 16F84 el listado deberá ser el mismo.
  • 6. La segunda línea le dirá donde termina el programa. En el medio de estas dos irá todo el código. Para encender el led nos basta solo con cuatro líneas más de código: LIST p=16F84 bsf 3,5 bcf 85,2 bcf 3,5 bsf 5,2 end Ja los pesque sin entender nada. Es fácil. La primera y ultima línea ya la hemos analizado. La segunda y la quinta son muy parecidas y la tercera y cuarta también. Veamos que significa las sentencias bcf y bsf Bcf: Bit Clear Flag Bsf: Bit Set Flag. Esto quiere decir que pondrá una bandera (Flag) o no en algún Bit. Vemos que cada línea de bxf contiene además dos números. Estos serán el primero para el registro y el segundo para el numero de bit. Es decir que la segunda línea pondrá un uno (una bandera) en el bit cinco del registro tres. De la misma manera en la tercera línea de código tendremos que pondrá en cero el bit dos del registro ochenta y cinco. Bueno pero que significado tienen los registros 3 y 85 antes nombrados. Son los registros de "estado" y "Tris A"
  • 7. Es decir que este programa lo que hace es acceder primero al registro de estado y modificar la paginación de este (Rp0 es el bit 5 del registro status), de este modo podremos acceder a la segunda columna de registros. Recordemos que el registro Tris a esta en el banco uno de los bancos de registro. Luego de eso, modificamos la entrada-salida Ra2 (Bit 2 del registro tris), colocando a esta como salida de datos. Ahora debemos volver al banco cero para poder acceder al registro PortA. Entonces modificamos la paginación del registro status volviendo el bit 5 (Rp0) a cero. Ahora si estamos preparados para escribir directamente en el puerto. Recuerden que por defecto el PIC tendrá a todas la entradas- salidas (tanto los puertos Ra y Rb), colocadas como entrada de datos, por eso es que las debemos setear antes de usar (Si uno intenta escribir una entrada el MPlab no genera ningún error, simplemente no hace nada). Esto si lo compilamos y lo simulamos, funciona, pero que pasa si venimos dentro de unos días y vemos el código nuevamente. Nos resultará difícil recordar que 03 equivale a status y que 85 equivale a Tris A. Para ello ordenemos un poco el código y llamemos a las cosas por su nombre: LIST p=16F84 Status equ 03h Rp0 equ 5 TrisA equ 85h PortA equ 05h bsf Status,Rp0 bcf TrisA,2 bcf Status,Rp0
  • 8. bsf PortA ,2 end No es verdad que esta mejor. Y que tal si les ponemos algunas anotaciones nuestras. Estas llevarán al principio el punto y coma, entonces de esta manera, el compilador no tomará en cuenta el resto de la línea: LIST p=16F84 * Header * Status equ 03h Rp0 equ 5 TrisA equ 85h PortA equ 05h * Programa Principal * bsf Status,Rp0 bcf TrisA,2 bcf Status,Rp0 bsf PortA ,2 end ;Este es el fin Fíjense como se estiro nuestro programa. En esta parte hemos explicado las sentencias "bsf", "bcf", y parte de algunos registros como el "TrisA", "PortA" y "Status". Si queres, Aqui tenes todas las instrucciones del ascembler de pic bien explicadas. Que les parece si lo simulamos para ver que es lo que pasaría en el PIC.
  • 9. Para ello pasaremos a la siguiente parte.