Manual para el uso y programación del Microcontrolador PIC16F84Descripción completa
Manual para el uso y programación del Microcontrolador PIC16F84Full description
Početniku u svetu mikrokontrolera najteže je napraviti onaj prvi korak. Nadam se da će mu ovo uputstvo će pomoći u tom putu. A posle? Lako će se sa stečenim znanjem naučiti i mnogo komplikov…Full description
Descripción completa
Descripción completa
libro micro controladores pic 16f877aDescripción completa
Full description
INTRODUCCIÓN A LA PROGRAMACIÓN Microcontrolador PIC 16F84 mail : enric.serra
0 - INTRODUCCIÓN Este documento es una introducción a la programación del PIC 16f84. Este documento se puede copiar y utilizar siempre que se indique la procedencia Escola Professional !alesians "oan ##III$ y se indique su autor a utor Enric !erra. %odos los comentarios y &ugs ser'n &ien reci&idos.
1 ! MICROCONTROLADOR"# MICROCONTROLADOR"# (n microcontrolador) microcontrolador) es un circuito integrado programa&le que contiene los elementos necesarios para controlar un sistema. PIC significa Perip*eral Interface Controler es decir un controlador de perif+ricos. Cuando *a&lamos de un circuito integrado programa&le que controla perif+ricos) estamos *a&lando de un sistema que contiene entre otras cosas una unidad arim+tico,lógica) unas memorias de datos y programas) unos puertos de entrada y salida) es decir estamos *a&lando de un peque-o ordenador dise-ado para realizar unas funciones especficas. Podemos Podemos encontrar microcontroladores en la/adoras) teclados) tel+fonos mó/iles) ratones etc. 0ay multitud de microcontroladores con m's memoria) entradas y salidas) frecuencia de tra&ao) coste) su&sistemas integrados y un largo etc dependiendo de cada tipo de microcontrolador. microcontrolador. El presente p resente documento esta &asado en el popular microcontrolador PIC 16284 del fa&ricante 3icroc*ip %ec*nology Inc ya ya que es un sistema sencillo) &arato y potente para muc*as aplicaciones electrónicas. as caractersticas del controlador las podemos encontrar en la 5e& del fa&ricante microc*ip o en el siguiente enlace pic16f84.pdf
Pic 16f84 as patillas del PIC 16284) 18 en el e l modelo son las siguientes:
"nca$%&lado ' %i()olo*+a
7e& de microc*ip
,- CARACT"RI#TICA# La %tr&ct&ra dl (icrocontrolador (icrocontrolador
Ali(ntaci.n : El PIC se alimenta a 9 entre los puntos 9dd $ y 9ss ,$. El consumo del circuito depende de las cargas en los puertos y de la frecuencia de tra&ao. Pr'ctica 1.1: ;ise-ar y montar el siguiente regulador de 9
Frc&ncia d tra)a/o os PIC=s necesitan un relo oscilador que marcar' la frecuencia de tra&ao. Estos osciladores pueden ser del tipo : 3z$ #% Cristal o resonador *asta 4 3*z
P ?ao consumo *asta @>>A*z$ os osciladores se colocan entre las patillas B!C1 y B!C@
P&rto% d "NTRADA#ALIDA "NTRADA#ALIDA os puertos son entradas y salidas del microcontrolador al eterior) eterior) por ellas en/iarmos o introducimos se-ales digitales %% 9$ de forma que podemos comunicar el microcontrolador con el eterior. eterior. En este caso tenemos @ puertos de entrada y salida ED!. !us nom&res son < y . El puerto < tiene pins <>,<4) un caso particular es <4D%BCA1 que puede actuar como pin de entrada o como co mo entrada de impulsos para un contador denominado %3
Con esta información podemos montar un sencillo entrenador para PIC=s 16284 con el puerto < como entrada y el puerto como salida. (tilizaremos como entrada unos microinterruptores y como salida unos leds conectados al puerto >,. 1.@ Pr'ctica: ;ise-ar el PC? y montar el siguiente entrenador PIC
M(oria% %odo dispositi/o programa&le necesita de una memoria para poder almacenar el programa) poder manear /aria&les y almacenar datos.
3E3B
3E3B
a memoria de datos sir/e para almacenar /aria&les) leer puertos de entrada o escri&ir en los puertos de salida) podemos tam&ien acceder al temporizador o al registron EEP
Esta memoria est' formada por dos &ancos ?anG> y ?anG1 3apa de memoria <3 detallada
Otra% caractri%tica% ;entro del microcontrolador *ay unos registros especiales que determinan algunas de las caractersticas nota&les del microcontrolador: , %emporizadorDContador %3<> , Perro guardi'n 5atc* ;og 7;$ , Interrupciones. ,
2 - DI#"3O D" PRO"CTO# 2rente a un pro&lema t+cnico) *ay que &uscar una solución de forma &arata y sencilla) en este proceso de &Hsqueda de soluciones) los microcontroladores PIC pueden ayudarnos a realizar soluciones sencillas) r'pidas y &aratas.
Partiremos de un planteamiento teniendo presente todas las /aria&les que afectan al sistema)desarrollaremos la idea y la implementaremos con las *erramientas adecuadas. ;iagrama de fluo del desarrollo de proyectos con microcontrolador
0erramientas y fic*eros generados en cada paso del desarrollo de un proyecto mediante PIC=s
Pa%o% a %*&ir
0erramientas 7indo5s
0erramientas inu
Idear solución
Pensar la solución y dise-ar circuito con programas PC?
PC?
istar
istar programa con E;I%)3P? o con cualquier Editores !CII editor !CII
istado.asm
Compilar
3P!3
istado.*e
gpasm
2ic*eros
Emular
3P!I3 ) !imuPIC) 3isim
gputils)gpsim)pi G;E9)3isim
Fra&ar
7inPICme,%< circuito gra&ador) IC,Prog
piG;E9
Enlaces 3icroc*ip 3isim Fpasm
4 PROGRAMACIÓN "N "N#AM5LADOR PIC 16F84 Para programar un PIC 16284 necesitamos conocer las instrucciones para generar el código fuente para posteriormente compilarlo por eemplo con 3P!3) emular el programa y poder gra&arlo para implementarlo en el circuito correspondiente. El listado de instrucciones de microc*ip el fa&ricante del microcontrolador$ son las siguientes:
(n listado en código fuente es un fic*ero !CII con etensión !3 que est' formado por 4 columnas para identificar las diferentes funciones: , Etiquetas: ;an nom&re a determinadas partes del programa *asta @ caracteres$ , Instrucciones: !on las instrucciones que se pasan al microcontrolador o una ;I
""MPLO D" PROGRAMA L >@ K ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
LI#T P716F84 K 3odelo de PIC #UMA1 "U 090C : ;I
R"#UL "U 090" K ;I
ORG 0 K ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, K Brigen de las instrucciones en el P
(o;l< 090= K PBJE3B! > en *eadecimal EJ 7 (o;<> #UMA1 K P!3B! 7 3E3B@ 0e EJ 7 (o;<> #UMA, K P!3B! 7 3E3B< #UMA1 K PBJE3B! EJ 7 !(31 M > add<> #UMA, ? 0 K !(33B! 7!(3@ L E R"#UL K PBJE3B! 9B< C(3(;B< EJ
El compilador generar' los siguientes fic*eros E"1.0E#)E"1.CB;)E"1.E<<)E"1.!% Con el fic*ero E"1.0E# podremos gra&ar el microcontrolador con el programa 7IJ,PIC3E o cualquier otro y un gra&ador de pics.
""MPLO , #&(ar n )inario 0001 ' 0010 G&ardar l r%<ado n 0E0" : -------------------------------------------------: ",A#M PROGRAMA PARA #UMAR "N 5INARIO 0001 0010 : R"#ULTADO GUARDADO "N 090" : -------------------------------------------------LI#T P716F84 : Modlo d PIC #UMA1 "U 090C : DIR"CCION "9AD"CIMAL D"L OP"RANDO 1 R"#UL "U 090" : DIRR"CCION D"L R"#ULTADO K ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, K !e *an definido @ /aria&les !(3 y
ORG 0 K ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, K Brigen de las instrucciones en el P
(o;l< )H0001H : PON"MO# 0001 "N (o;<> #UMA1 : PA#AMO# A LA M"MORIA #UMA1 (o;l< )H0010H : PON"MO# 0010 "N add<> #UMA1 ? 0 : #UMA A LA M"MORIA #UMA1 R"#ULTADO "N
(o;<> R"#UL : MO"R A R"#UL "ND : FIN D" PROGRAMA ""MPLO 2 #&(ar n )inario , ' 2? *&ardar l r%<ado n 0E0C : -------------------------------------------------: "2A#M PROGRAMA PARA #UMAR "N 5INARIO , 2 : R"#ULTADO GUARDADO "N 090D : -------------------------------------------------LI#T P716F84 : Modlo d PIC #UMA1 "U 090C : DIR"CCION "9AD"CIMAL D"L OP"RANDO 1 R"#UL "U 090D : DIRR"CCION D"L R"#ULTADO K ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, K !e *an definido @ /aria&les !(31 y
ORG 0 K ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, K Brigen de las instrucciones en el P
(o;l< )H0010H : PON"MO# UN , "N (o;<> #UMA1 : PA#AMO# A LA M"MORIA #UMA1 (o;l< )H0011H : PON"MO# 2 "N add<> #UMA1 ? 0 : #UMA A LA M"MORIA #UMA1 R"#ULTADO "N (o;<> R"#UL : MO"R A R"#UL "ND : FIN D" PROGRAMA :-----------------------------------------------------""MPLO 2 #&(ar tr% n(ro% 1? , ' 2B
istado y funcionamiento en el entorno de simulación 3P? I;E de microc*ip. En la /entana 7atc* podemos /er el /alor de !(31 y
""MPLO 4 #&(a d lo% n(ro% 2 ' = n dci(al ' al(acna(o% l r%<ado n 0E1, El compilador acepta sistemas de numeración *eadecimal) decimal) octal) &inario y !CII.
TIPO ;ecimal
#INTA9I# d=cantidad=
.cantidad *=cantidad= 0eadecimal
>cantidad cantidad *
Bctal
o=cantidad=
?inario
&=cantidad=
!CII
a=caracter= =caracter
istado
: ------------------------------------------: #UMA "N D"CIMAL 2 = R"#ULTADO "N 091, : ------------------------------------------I!% PM16f84 !(3 EN( >1> K 3emoria intermedia 1@ K 3emoria de resultado B K,,,,,,,,,,,,OOOOOO IJICIB OOOOO,,,,,,,,,,,,,,,, mo/l5 d== K Cargamos en acumulador mo/5f !(3 K lmacenamos el en !(3 >1> mo/l5 d== K Cargamos en el acumulador add5f !(3)> K !umamos y guardamos en 5 mo/5f 1@ EJ; K,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"/rcicio% $ro$&%to% 4.1.1, !umar cuatro nHmeros en &inario >)1)@)$ 4.1.@, !umar tres nHmeros y almacenar los nHmeros y el resultado en las direcciones >>c >>d >>e >>f 4.1. , !umar @ nHmeros) almacenar el resultado en >>d) &orrar el registro !(3 y &orrar el acumulador 7