Sie sind auf Seite 1von 36

Facilitador: Ing. Paúl Romero. Ph.D.

CARACTERÍSTICAS GENERALES
◼ NOMENCLATURA
◼ ARQUITECTURA INTERNA
◼ PROCESADOR
◼ ORGANIZACIÓN DE LA MEMORIA
◼ MEMORIA DE PROGRAMA
◼ MEMORIA DE DATOS
◼ REGISTRO STATUS
◼ DISPOSITIVOS DE MEMORIA
◼ DESCRIPCIÓN DE PINES
◼ LENGUAJES DE PROGRAMACIÓN
PIC16F628 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: máxima frecuencia que soporta el microcontrolador usando reloj
externo (en MHz).
Ejemplo, modelo de microcontrolador:

PIC16F628A
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 además el sucesor del
anterior modelo más importante (y todavía vigente) 16F84.

◼ Siendo un micro de la gama media tiene varias funcionalidades


incorporadas que describiremos más 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 versátil familia de chips de alta performance, bajo costo
PIC16CXX que tienen entre sus características relevantes utilizar
tecnología CMOS, ser microcontroladores de 8 bits, soportar
interrupciones externas e internas y ser reprogramables.

◼ Estos microcontroladores tienen características especiales que permiten la


reducción de componentes externos, y por lo tanto la reducción de costos,
reforzando la confiabilidad y reduciendo el consumo eléctrico.
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 ejecución. Todo lo que se
almacena en la RAM se pierde al cortar la
energía.
EEPROM
(Electrically-Erasable Programmable Read-Only Memory)

Es en esta memoria donde se almacenan los datos


permanentes que se deseen guardar. Aunque una
EEPROM puede ser leída un número ilimitado de
veces, sólo puede ser borrada y reprogramada entre
100.000 y 1.000.000 de veces.

A diferencia de la RAM, la EEPROM mantiene la


información aún 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 volátil.
Tienen la ventaja de que sus posiciones de
memoria pueden ser programadas y borradas
mediante impulsos eléctricos muchas veces,
permiten un acceso más rápido
LENGUAJES DE PROGRAMACION DE
MICROCONTROLADORES

Un lenguaje de programación es una


herramienta que permite realizar el
programa de control que un
microcontrolador debe ejecutar.
Lenguaje de máquina
Es una secuencia de bytes que el microcontrolador
interpreta como un programa y los ejecuta paso a
paso.

0x0000 : 0x3000 movlw 0x00


0x0001 : 0x008A movwf 0x0A
0x0002 : 0x2978 goto 0x178
0x0003 : 0x0000 nop
0x0004 : 0x00FF movwf 0x7F
0x0005 : 0x0E03 swapf 0x03 , W
0x0006 : 0x0183 clrf 0x03
0x0007 : 0x00A1 movwf 0x21
0x0008 : 0x087F movf 0x7F , W
0x0009 : 0x00A0 movwf 0x20
0x000A : 0x080A movf 0x0A , W
0x000B : 0x00A8 movwf 0x28
Sin embargo, esta secuencia de bytes
es difícilmente entendible por el
humano, por lo que cada código de
comando tiene una traducción directa
a un lenguaje de texto.

Debido a estos motivos, aparecen


diferentes lenguajes de
Programación, de bajo nivel y de alto
nivel.
Lenguaje de Bajo Nivel ASSEMBLER

Es un lenguaje de bajo nivel, con mucha cercanía al


microcontrolador y poca al humano, consiste en un
set de instrucciones equivalentes a la codificación
HEX, es decir, una numeración corresponde a una
instrucción de texto.

Por ejemplo;
HEX ASM
0x3000 movlw 0x00

El lenguaje Assembler, genera archivos con


extensión ASM.
A continuación un ejemplo de programa en Assembler para un
microcontrolador de la familia PIC:

;SUMA.ASM Suma dos números almacenados en la memoria de datos *


Autor: Paúl Romero Fecha: El lenguaje ASM, esta
;************************************************************************
#INCLUDE <P16F628A.INC> ;ARCHIVO PADRON MICROCHIP PARA 16F628A mas cercano hacia el
__CONFIG _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF &
_MCLRE_ON & _INTRC_OSC_NOCLKOUT microcontrolador que
;************************************************************************
; VARIABLES *
hacia el ser humano, es
;************************************************************************ por ello por lo que
;definición de nombres y direcciones de las variables usadas por el sistema
CBLOCK 0x20 ;direccion inicial de la memoria del usuario aparecen los lenguajes de
OPERADOR_1
OPERADOR_2 alto nivel y los
RESULTADO
ENDC ;fin del bloque de memoria compiladores, que
;************************************************************************
ORG 0x00 ;dirección inicial de la memoria de programa
permiten escribir los
GOTO INICIO programas en un
;************************************************************************
; INICIO DEL PROGRAMA * lenguaje mucho más
;************************************************************************
INICIO descifrable, siendo el
MOVLW B'00000111'
MOVWF CMCON ;define el modo de operación del comparador ;analógico compilador el encargado
MOVLW D'9' ;9 => W
MOVWF OPERADOR_1 ;W => OPERADOR_1
de traducir dicho
MOVLW D'6' ;6 => W programa a Assembler.
MOVWF OPERADOR_2 ;W => OPERADOR_2
MOVFW OPERADOR_1 ;OPERADOR_1 => W
ADDWF OPERADOR_2,W ; W + OPERADOR => W
MOVWF RESULTADO ;W => RESULTADO
END ;indica fin del programa
Lenguaje de alto nivel

Es un lenguaje de programación en el que no existe una


traslación directa de cada instrucción con comandos de
lenguaje máquina.
Las instrucciones en un lenguaje de alto nivel pueden llegar
a traducirse por macros complejas en lenguaje máquina.

El objetivo de un Lenguaje de alto nivel es facilitar la


comprensión al humano, disminuyendo el tiempo de
desarrollo de las aplicaciones y facilitando su depuración.

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
máquina, o Assembler.

Familia Tipo Lenguaje Compiladores

CCS PCW
Hitech PCC
C
MikroC
P
I IAR Workbench
C Pic Basic PRO PBP
BASIC Proton Plus
MikroBasic
PASCAL MikroPascal
A continuación, se hace referencia al proceso de programación de
un microcontrolador en un lenguaje de alto nivel.
Arquitectura
◼ La distribución de las patas de un chip
de este modelo es la que sigue:
“Es más importante, la imaginación que el conocimiento”

A. Einstein

Das könnte Ihnen auch gefallen