Sie sind auf Seite 1von 18

ESCUELA SUPERIOR POLITCNICA DE CHIMBORAZO

MICROCONTROLADORES PIC
CARRERA: INGENIERIA EN ELECTRONICA ,
TELECOMUNICACIONES Y REDES
CARRERA: INGENIERIA EN ELECTRONICA,
CONTROL Y REDES INDUSTRIALES

Facilitador: Ing. Pal Romero

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 (Random Access

Memory)

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:
Pal
Romero
Fecha:
Autor: Pal Romero
Fecha:
;************************************************************************
;************************************************************************
#INCLUDE
#INCLUDE <P16F628A.INC>
<P16F628A.INC> ;ARCHIVO
;ARCHIVO PADRON
PADRON MICROCHIP
MICROCHIP PARA
PARA16F628A
16F628A
__CONFIG
_BODEN_ON
&
_CP_OFF
&
_PWRTE_ON
&
_WDT_OFF
__CONFIG _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF &
& _LVP_OFF
_LVP_OFF &
&
_MCLRE_ON
&
_INTRC_OSC_NOCLKOUT
_MCLRE_ON & _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
0x20
;direccion
inicial
de
la
memoria
del
usuario
CBLOCK 0x20 ;direccion inicial de la memoria del 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
INICIO
GOTO INICIO
;************************************************************************
;************************************************************************
;; INICIO
INICIO DEL
DEL PROGRAMA
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
;analgico
MOVLW
MOVLW D'9'
D'9' ;9
;9 =>
=> W
W
MOVWF
MOVWF OPERADOR_1
OPERADOR_1 ;W
;W =>
=> OPERADOR_1
OPERADOR_1
MOVLW
MOVLW D'6'
D'6' ;6
;6 =>
=> W
W
MOVWF
MOVWF OPERADOR_2
OPERADOR_2 ;W
;W =>
=> OPERADOR_2
OPERADOR_2
MOVFW
MOVFW OPERADOR_1
OPERADOR_1 ;OPERADOR_1
;OPERADOR_1 =>
=> W
W
ADDWF
ADDWF OPERADOR_2,W
OPERADOR_2,W ;; W
W ++ OPERADOR
OPERADOR =>
=> W
W
MOVWF
MOVWF RESULTADO
RESULTADO ;W
;W =>
=> RESULTADO
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:

GRACIAS....
Es ms importante, la imaginacin que el conocimiento
A. Einstein

Das könnte Ihnen auch gefallen