Vous êtes sur la page 1sur 35

Facilitador: Ing.

Pal Romero

Riobamba, Marzo

2009

PIC de Microchip
Nomenclatura

Un microcontrolador se identifica por su nombre, y este tiene varias partes.


Marca Gama Memoria-Programable Modelo Frecuencia
Marca: Fabricante o tipo de microcontrolador.

Gama: escala de microcontroladores(14 baja, 16 media, 18 alta).

Memoria Programable: Tipo de memoria para el rea de programa (F


Flash, el micro se puede reprogramar, C el micro se puede programar una
sola vez).

Modelo: modelo del microcontrolador.

Frecuencia: mxima frecuencia que soporta el microcontrolador usando


reloj externo (en MHz).
Ejemplo, modelo de microcontrolador: PIC16F628/04

Marca
Gama
Memoria-Programable
Modelo Frecuencia
PIC 16
F
628
/04
Marca: PIC es el tipo de microcontrolador, fabricado por MicroChip.
Gama: 16 indica la gama, este chip es de gama media.
Memoria Programable: F memoria Flash.
Modelo: 628.
Frecuencia: 04 MHz.

PIC16F628
Comentarios del Modelo

Es uno de los modelos estrella de MicroChip, siendo adems el sucesor


del anterior modelo ms importante (y todava vigente) 16F84.

Siendo un micro de la gama media tiene varias funcionalidades


incorporadas que describiremos ms adelante.

Es comercializado en 3 versiones que soportan velocidades de reloj


diferentes, 4 MHz, 10 MHz y 20 MHz.

Los PIC16F62X son chips de 18 pines, basados en memoria FLASH,


miembros de la verstil familia de chips de alta performance, bajo
costo PIC16CXX que tienen entre sus caractersticas relevantes utilizar
tecnologa CMOS, ser microcontroladores de 8 bits, soportar
interrupciones externas e internas y ser reprogramables.

Estos microcontroladores tienen caractersticas especiales que


permiten la reduccin de componentes externos, y por lo tanto la
reduccin de costos, reforzando la confiabilidad y reduciendo el
consumo elctrico.

DISPOSITIVOS DE MEMORIA
MEMORIA
La memoria es el sitio donde se
almacenan los datos e instrucciones
a ser procesadas en la unidad
central del un microcontrolador. En
la actualidad un microcontrolador
est creado con 3 tipos de memoria:

RAM
EEPROM
FLASH

MEMORIA RAM

Memory)

(Random Access

La memoria RAM es la parte de la


memoria que un microcontrolador
utiliza para almacenar variables
temporales en tiempo de ejecucin.
Todo lo que se almacena en la RAM
se pierde al cortar la energa.

EEPROM
(Electrically-Erasable Programmable ReadOnly Memory)
Es en esta memoria donde se almacenan
los datos permanentes que se deseen
guardar. Aunque una EEPROM puede ser
leda un nmero ilimitado de veces, slo
puede ser borrada y reprogramada entre
100.000 y 1.000.000 de veces.
A diferencia de la RAM, la EEPROM
mantiene la informacin an cuando el
PIC no est alimentado.

FLASH
Es en esta memoria es donde, se
almacena el programa.
La Memoria flash es una forma
evolucionada de las memorias EPROM Y
EEPROM no voltil. Tienen la ventaja de
que sus posiciones de memoria pueden
ser programadas y borradas mediante
impulsos elctricos muchas veces,
permiten un acceso ms rpido

LENGUAJES DE PROGRAMACION DE
MICROCONTROLADORES

Un lenguaje de programacin
es
una
herramienta
que
permite realizar el programa de
control
que
un
microcontrolador debe ejecutar.

Lenguaje de mquina
Es una secuencia de bytes que el
microcontrolador
interpreta
como
un
programa y los ejecuta paso a paso.
0x0000: 0x3000
0x0001: 0x008A
0x0002: 0x2978
0x0003: 0x0000
0x0004: 0x00FF
0x0005: 0x0E03
0x0006: 0x0183
0x0007: 0x00A1
0x0008: 0x087F
0x0009: 0x00A0
0x000A: 0x080A
0x000B: 0x00A8

movlw 0x00
movwf 0x0A
goto 0x178
nop
movwf 0x7F
swapf 0x03 , W
clrf 0x03
movwf 0x21
movf 0x7F , W
movwf 0x20
movf 0x0A , W
movwf 0x28

Sin embargo, esta secuencia de


bytes es difcilmente entendible
por el humano, por lo que cada
cdigo de comando tiene una
traduccin
directa
a
un
lenguaje de texto.
Debido
a
estos
motivos,
aparecen diferentes lenguajes
de Programacin, de bajo nivel
y de alto nivel.

Lenguaje de Bajo Nivel


ASSEMBLER
Es un lenguaje de bajo nivel, con mucha
cercana al microcontrolador y poca al
humano,
consiste
en
un
set
de
instrucciones
equivalentes
a
la
codificacin HEX, es decir, una numeracin
corresponde a una instruccin de texto.
Por ejemplo;

HEX
0x3000

ASM
movlw 0x00

El lenguaje Assembler, genera archivos


con extensin ASM.

A continuacin un ejemplo de programa en Assembler para


un microcontrolador de la familia PIC:
;SUMA.ASM
;SUMA.ASM Suma
Suma dos
dos nmeros
nmeros almacenados
almacenados en
en la
la memoria
memoria de
de datos
datos **
Autor:
Fecha:
Autor: Pal
Pal Romero
Romero
Fecha:
;************************************************************************
;************************************************************************
#INCLUDE
#INCLUDE <P16F628A.INC>
<P16F628A.INC> ;ARCHIVO
;ARCHIVO PADRON
PADRON MICROCHIP
MICROCHIP PARA
PARA 16F628A
16F628A
__CONFIG
__CONFIG _BODEN_ON
_BODEN_ON &
& _CP_OFF
_CP_OFF &
& _PWRTE_ON
_PWRTE_ON &
& _WDT_OFF
_WDT_OFF &
& _LVP_OFF
_LVP_OFF &
&
_MCLRE_ON
_MCLRE_ON &
& _INTRC_OSC_NOCLKOUT
_INTRC_OSC_NOCLKOUT
;************************************************************************
;************************************************************************
;; VARIABLES
VARIABLES **
;************************************************************************
;************************************************************************
;definicin
;definicin de
de nombres
nombres yy direcciones
direcciones de
de las
las variables
variables usadas
usadas por
por el
el sistema
sistema
CBLOCK
CBLOCK 0x20
0x20 ;direccion
;direccion inicial
inicial de
de la
la memoria
memoria del
del usuario
usuario
OPERADOR_1
OPERADOR_1
OPERADOR_2
OPERADOR_2
RESULTADO
RESULTADO
ENDC
ENDC ;fin
;fin del
del bloque
bloque de
de memoria
memoria
;************************************************************************
;************************************************************************
ORG
ORG 0x00
0x00 ;direccin
;direccin inicial
inicial de
de la
la memoria
memoria de
de programa
programa
GOTO
GOTO INICIO
INICIO
;************************************************************************
;************************************************************************
;; INICIO
INICIO DEL PROGRAMA *
;************************************************************************
;************************************************************************
INICIO
INICIO
MOVLW
MOVLW B'00000111'
B'00000111'
MOVWF
MOVWF CMCON
CMCON ;define
;define el
el modo
modo de
de operacin
operacin del
del comparador
comparador ;analgico
MOVLW
MOVLW D'9'
D'9' ;9
;9 =>
=> W
W
MOVWF
MOVWF OPERADOR_1
OPERADOR_1 ;W
;W =>
=> OPERADOR_1
MOVLW
MOVLW D'6'
D'6' ;6
;6 =>
=> W
W
MOVWF
MOVWF OPERADOR_2
OPERADOR_2 ;W
;W =>
=> OPERADOR_2
MOVFW
MOVFW OPERADOR_1
OPERADOR_1 ;OPERADOR_1
;OPERADOR_1 =>
=> W
W
ADDWF
ADDWF OPERADOR_2,W ; W + OPERADOR => W
MOVWF
MOVWF RESULTADO
RESULTADO ;W => RESULTADO
END
END ;indica
;indica fin
fin del
del programa
programa

El lenguaje ASM, esta


mas cercano hacia el
microcontrolador que
hacia el ser humano,
es por ello por lo que
aparecen
los
lenguajes
de
alto
nivel
y
los
compiladores, que
permiten escribir los
programas
en
un
lenguaje mucho ms
descifrable, siendo el
compilador
el
encargado de traducir
dicho programa a
Assembler.

Lenguaje de alto nivel


Es un lenguaje de programacin en el que no
existe una traslacin directa de cada instruccin
con comandos de lenguaje mquina.
Las instrucciones en un lenguaje de alto nivel
pueden llegar a traducirse por macros complejas
en lenguaje mquina.
El objetivo de un Lenguaje de alto nivel es
facilitar
la
comprensin
al
humano,
disminuyendo el tiempo de desarrollo de las
aplicaciones y facilitando su depuracin.
Ejemplos de lenguajes de alto nivel son:

C
Basic
Pascal

Un compilador acepta programas escritos en un


Lenguaje de alto nivel y los traduce a Lenguaje de
mquina, o Assembler.

Familia

Tipo Lenguaje

Compiladores
CCS PCW

P
I
C

Hitech PCC
MikroC
IAR Workbench
Pic Basic PRO PBP

BASIC

Proton Plus
MikroBasic

PASCAL

MikroPascal

A continuacin, se hace referencia al proceso de programacin


de un microcontrolador en un lenguaje de alto nivel.

Arquitectura

La distribucin de las patas de un


chip de este modelo es la que
sigue:

Es ms importante, la imaginacin que el conocimiento


A. Einstein

Vous aimerez peut-être aussi