Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ill'N B0 I (t\,ilCROCONTROt.¡\DOl{trS r
F UCI IA ITIIALIZ¡\CITf N :
Para cllo en las siguietrtes hoi¡s. sc proporciona úr'l tutorial de nlancjo tlc cste programa.
I:l prograrnndcnro quc vicnc cn cl ¡lriuroconl.roladr': PICI(rliS77 r¡ttc l'iene con cl [il1'
DEMO PICDEM2 PLUS es'¿r conlbrnraio ¡xrr 3 progranias. que tambien se proporr:iona
en el CD, al inicio de las practicas de Laboratorio. de la presente materia ETN 801.
Esta infbrmación es una guia util, para el resto del curso )'pretende incentil'ar al alumrro
a progrrrmar sin dificultad cualquier microcontrolador de Ia serie PIC.
\
=ROYECTO
l-ea:ién de Provecto_
Se abrirá una ventana en la que se introdt¡cirá el nombre del proyecto en el campo Project
Nane, y se elegirá la carpeta en el campo Project Directory en Conde se guardará el proyecto.
Una vez elegidos estos, se acepta en ei botón OK. Los prcyectos en la versión tvtPLAB 6.3
tierren la extens¡ón
*.rrcp.
Cre+er-ótLdsirqhry
)
)
)
Cuancjo uno ve la pantalla en blanco nc sabe por donde ei'npezar. esio puede ser superado
)
usando una plantilla. Existen plantillas para cada t¡po de microcontroladares ae l.¿ í.-¡ntia de
Mícrochip.
Comc en est€ caso se va a trabajar con el F;C16FUA, se utílizará una plantíiia pura este
intogrado. Esta plantilla está identificada como i84atemp.asm, y está ubicado junto con las
d enrás en : C :tA rc h ivo s de p rog ra nt alh'l P LA B I D EIM C H I P-Tool slTE M PLA TA C o d e
r
3¡ s=.ecciona todo el contenido de la plantilla y se copia el ccnte¡,Co de a plantilla al nuevo
3-:.,o abierto (el que aparece como Untitled), este proceso se pueie hacer ccn la ayuda de
:s conendos dei menú Edit.
, c de texto utiirzando
? '' "ot'L"
?
]
),
)t
,
,I
?
ta
?
¡D
I ,}
?
a
In
\
n
e
4
4
1
4
4
a) del ProYacto, aunque no
63 nQCS56no'
=a)
l¿ Los orchivos de texto
en donde se Programa
a tienen
uiu*Pt" *.asm'
extensión
la
l¿
rl¡
l¿
ar
+
aa
-,_aa
,l¡
ila ¡c16F84
Cai/ír¡ Pérez ut¡ua
rf +
laa
liln
j¿¡=ejea3regar(enlazar)estenuevoarchivocomopartedelpro,ecto,Earae|lcsehace
á"'t, ,ántuná a. x;a mc|i¡ eti3 er30
i:" F 'es'
i: e )3:3n 0",..ho Ío'i/" §;;;H.;
= =.-
l.
\'
l,
ll
i.
:
Abrir, Y queda agreEado' I
l
i
t
t:
i
+
I
i
I
t
t
a
a,u
--
lerz '!'r¿ izar con la etapa
:a lirnaf el proyecto de
-I,J9SO programa, es
-B:esario indicar con qué
rs) de dÉpositivo se va a
:-aoajar. El Kid.rcp'
t:
?zra esto, se elige la I i Kllxm
spcrón Select Device del i He.dn FilÉs
rr.enú Ccnfigure- ' L]tisl Fir,es ! I6r6{l
I Lü¡slrF*es f,lr,'lq4A r!rr
I Lirka Scrirrr
EI'KU.mcp'
Fl
¡. He¡der Files
j- 0biect Files Ir:.¡_. ¡_ -l6F84A
i' ltu.rr, Files üi-¡cl rr,l¡ -¡: IrFÉ.1^¿.- rtr:
i. iirf<¿r Scripts
./
^>€ cile de asegurar que la frecuencia
* cnstal con la que se va a trabajar en el
-scu'-to de prueba sea la misma del
s¡r¡¿¡lador; para ello, se dobe ir a la opción
oe Sefühgs de Debugger y elegir la
f.recr¡en ci a adecuada.
1G
C'
e:i
saltará automáticamente a la
llnoa que debe ser conegida.
Corregir los enores y volver a
presionar F10 para veriflcor
que no haya errores.
Cuando no se generen
erores, aparecerá al final de
todas la llneas BUILD
SUCCEEOEO, esto indica que 100
no se encontraron errores de L0l
compilación y uno puede r02
r03 .l r !,' r r.. '. I
=r,
empezar a simular r.0{
q# ...-..i-
)
:. -fr: :É-- -?::a-'3- e'
) l= eLT :i:E - es'iaDa
Bü]lry{-Jl :É:€ if á la
) ,Qe+eni
:Er3rtr,r -1€
) rr!-J¡aJtá--8s 33 rnenu File Y
s6!¡r a ;r-:.,e;3.
)
)
)
)
)
t
I
I
I
,
f
I
t
t
I
I
u
t
,
,
,
,
,
a
t
,
,
,
{
,
,
{
{
{
4 Cartln Pérez Cut¡a
-4
{
=a
PIEACE E{ilrt #D
L[ - -xre lCimocontruladures P[[ v LAE. SIGLA:ET¡¡-801 I
-:-< LEDs conectados al nibble bajo del Puerto B se apagan y los conectados al nibble
a:r se encienden.
^ 03.asm
**Í*r*ir**iik***********
Pcr eJ Puerto B se obtiene eldatc¡ de las cinco lírreas del Puerto A alque está conect¡rjo
un áfr3t de ínternrptores. Por e.jentplo, si por el Puerto A se r¡ifrc,luce "---110Ü1", por el
Pueito B aparecerá "xxx11001" (ei valor de las tres líneas superiores no intporta).
04. asm
*****t**ti***ti*ttÉr ñt**
J Pl;eilo B, que actua como salida es contrr:lado por el bit 0 del Puerto A, que actúe
::-: entrada. De manera talque:
- S¡ el bit 0 del PORTA es "1", se encienden todos los LEDs de salida.
- Si el bit 0 del PORTA es "0", se encienden los LEDs del nihble alto y se apag¡an los
-:a
,
05.asnl *,ri{'{.r*rir*s*ñ ¡r*.irr*
----- -e Cato del puerto de entrada I-'ORTA y un "tlumero" (por ejemplo el l3):
- : ='¿
=3RTA) = Nun'lero, se encicncien todos los LEDs de salida.
- :. =: =TA.) y l'.1úmero no sorr iguales, se activan los l-EDs pares de saliela y apagan
:-:¿-=
l-r-:e-= e :=lc i:rtroducido por el F'r;erlo A que actr.¡a como en{rada, con un "f'lu,nero":
- S >3iT,A I es rnayor o igual qur' "l'.lurnero" se errcianden todos las LFDs de salirla.
: -SGfA)es rnerlor que "Numeroo se activan los LEDs p.ües de salida.
:fnd dato del puerto de entrada PORTA col un "Numero" (por eiemplo el 13):
; -gffifA) es mayor que "Nurncro" se encienden todos los LEDs de salida.
;n-Etarr¡i}r
-§@FfA) es menor *tt*.t*t*.**it***rf
o igual que "Numero" se actlvan los LEDs peres de salida.
*rtrt
08. aSm
frrCdeto del puerto de entrada PORTA con un "Numero". Tres posibilidades:
-A@f[[A) = Numero se encienden todos los LEDg de salida.
--$(FORTA) > Numero se activan los LEDs pares de salida.
-§(FORTA) < Numero se encienden los LEDs del nibble alto y se apagan los delbajo.
mlq:destacar que al no haber instrucciones de comparación, estas se realizan
Éerestas.
09,asm Í******t**t****r*****r**
Eerentar una tabla de la verdad mediante elmanejo de tablas grabadas en ROM.
keimplo, la tabla será de 3 entradas y 6 salidas talcorno la siguiente:
cBAlsss4sss2sfs0
.--t-
000 0010 l0 ; (Configuración 0).
001 0010 01 ;(Corfiguración 1).
010 1000 11 ; (Confrguración 2).
011 0011 11 ; (Configurackin 3).
100 1000 00 ; (Configuración 4).
101 0001 11 ; (Configuración 5).
110 0101 11 ; (Configuración 6).
111 1111 11 ; (Configuracíón 7).
16 ertrradas C, B, A se cor¡ectarán a las lÍneas del puerto A: RA2 (C), RAi (B) y RAC
(^}
l¡s sCdas se obtienen en el puerto B:
Ei(S5), RB4 (S4), RB3 (S3), RB2 (S2), RBl (S1) y RBO (S0).
ECilA PNESENTACON:
I'lLACl-tC¡'- i
[1'N 801 ( iv'llCROCONrI(OLADORI.S r
: 3--ctr de Registros esta confomrado por Los registros espccíficos y l-os de propósito
---:--: : E,<[os se encuentran implcmcutados en las pr:siciones de la Memoria de Datos.
: ?:. . óX81 admite interrupciones, ulra de ellas al activarse la patita RB0/INT. Cuando se
:i':.: --.r :¡: intemrpión se guurrJu en la I'ila cl cottcnitlo actual dt:l l'C y el I'C se ca.rga
-- - .. '':¡cción4, que es la destinada al vector de interrupción. En nluchos programas no
- i:-. :-:e-r:pciones y por lo tanto la tlirc.cci(rn
4 .lc la nrcmoria dc progTmta se ¡rodría
,.:=::-l;irte, siu enrbargo por nonna es mcjor que el prograrna dc aplicación n«¡
----.-
- . r,- -= ;;;s.,-ción 4 por lo que es conveniente que se inicie en la clirección 5; para ello se
j---;:: =¡ciñcer acorde a lo siguiente:
- ;. - - : r-l programa cornicnz¿ cn la dircccitin 0 (vector de resct)
i-:.- -',-- f : se salta a la etiqueta inicio
- i- - -' : se asigna la direoción 5 a la siguiente instrucción «¡ue contiene
: Ia etiqueta inicio
1-- l-- 'ientes hojas el alumno, podrá encontrar la teoría nocesariapara entender la
.=".
L-r------:l- interna del PIC l6C84. la nremoria de prograrna. la memoria ile datos 1' sus 2
-!:ú¡r-{ -:e direccionamiento, junto a una tlcscripción y cxplicacirin del registro de estado.
IJERCICIO PRACTICO.-
'-
-.;¿=.io las siguiente instrucciones .'' las de movinriento (descritas en clase) confeccionar
-- r'i¡lrama cuya descripción se halla en el punto b).
:¡-r. ESTADO, x; explora el bit x del rcgistro ESTADO, si vale 1 salta a la subsiguiente
::---,mcción, si vale 0 salta a la siguientc instrucción (x csta entre 0 a 7)
E: büis ESTADO,4 ; Explora el bit 4 del registro ESTADO
goto VALORO ; ejecuta esta instrucción si el bit 4 vale 0
toto VALORI : c.iccuta esta instn¡ccitin si el bit 4 valc I
: >: -ex-¿ ,.-laborar un progranra para sl PlCl6L-.84 (I'ractica utilizanclo el l'lC 16F-877)
r--É-::,:--i-', a'l VIHz con oscilador externo tipo XT, que tiene I intemrptor actuando
-;r,-n. tdailnco de entrada quc esta conectado a las lfnea I(40 de la puerta A- Conlo
:r. --:. ¡":= j¡ sLlida se tienen 4 dir.rdos led unidos a las líneas RB0-RII3 de la puerta B.
---:-=- - JisF',ne de un pulsador nlanual para provocar el reset.
- - -'-§¡ a, esluema electrt'inico dc conexionado del PIC.
I :--:--.:¡:s ei Ciasrama tle flujo para el programa que utiliza un contador CONTEO el cual
-
*c¡=a¡i¡ en 0. luego se va incrementando CONTEO en uno hasta alcanzar el valor
=
--r;.ln: - I i t. ras lo cual se detiene de contar para entrar en un bucle infinito no operativo.
a -.2.::.= conteo se ira visualizando en los 4 leds de salida conectados a la Puerta B. Dada
¿¿ fu"-,*'uia de operación del PIC se raquiere además que el programa proporcione un
"-#¡ .l¡¡r sofhvare para pocler visualiz;rr claramente el conteo en los 4 leds; este retardo
¡*e ser mÍrs o nlenos dc 200nrscg. paru cllo co¡rsidcrar quc cl gldo dc instrucción del PIC
es ,l ,;seg c¡¡,rndo funciona a 4 MÍlZ (no olvidar que cada instrucción dcl PIC 16X84 tarda
- ,--klo de instrucción, mientras que las instrucciones de salto ta¡dan 2 ciclos.
-:-- P¿¡a el diagrama de flujo elaborado en el punto 2 presentar el programa en lenguaje
en¡amblador MPASM.
j.- El prograrna ensamblado correrlo en el MPLAB utilizando el hardware del PICDEI\{
:]LL S.
SEGL\DO PROGRAMA:
i.- Elaborar el diagrama de flujo para el progftima que de manera secuencial desplaza el
enceadido de lcds de izq a derecha (RB3 a RBO) cuanclo el pulsador RAO esta abierto y
u:ambia el sentido de desplazamient«r. es decir de derccha a izq (RBO a RB3) cuando RAO
rTts ccrrado. Sc tlcbc considcrar cl corrospondictrtc rrtartlo dc I scg para cada situaoión dc
encendido de led, de rnanera que pueda visualiza¡se f;icilmente por el ojo humano. El PIC
I6F877 utiliza un cristal de 4MHZ.
l.- El programa ensamblado correrlo en el MPLAB utilizando el hardware del PICDEM
]PLUS.
PREINFORME:
PRE\1O A LA RtrALIZACION DE LA PRACTICA DEBEN SBR ELABORADOS
LOS PROGRAMAS CORRESI'ONDIENTES. §Ii DEBE ENTREGAR UN
PREI\FORME POR GRUPO.
I
PRACTICA 4
, ETN 801 (MTCROCONTROLAT)ORES)
FECI.IA ENTREGA O REALIZACION:
TEMPORIZACION E INTERRUPCIONES
MICROCONTRÓLADOR PIC I6X84, PIC I6F877
: Controlando el tiempo.
Esquema de Montaje
I l¡F
2 IPF
frr¡paón: Programa que ilu-stra crimo realiz¡u una tem¡rorización sin emplear
Lrr4ciones.
f,hF- cn Assemblen
ilSTF¡trll.
HEX
PUERTAA EQU 0x06
Hlu 0x0l
ror 0x03
tml
t;Ebd prograrna Én
0
Otn
; La Puerta B salida
EEITADO,S
-IfPIJERTAB ; Banco 0
rtr"t ERTAB; Las líneas de salida
;t?B a 0
lrybdPLIERTAB,T ; Enciende el led RB7: 1
E{D
IIEÜCICIO:
tEúr¿rrm programa en lenguaje ensamblador MPASM, para el PIC 16F877, que
FÉohenerretardos de I segundo.
)Lqorrili*¡do
"¡tio)jrmto el ICD2 (El depurador en línea con el PICDEM2 PLUS de
al software MPLAB, hacer correr el programa, efectuando la
f-fAcorrespondiente y mostrar su funcionamiento real iluminando el le,'d RBO por
dQlD&¡ttardo indicado.
IIDr,ftIAPRESENTE PRACTICA SE LA DEBE EFECTUAR POR GRUPOS.
Manejando Intemrpciones.
Esquema de Montaje
[BT-1 [:ir--t¡,
l-3501 - [>¡__1¡
| 3301 [,;^!,;"i,
Ihcarema en Assembler:
BADD( IIEX
UEQU O
FEI' I
il._(PT EQU 0x0l ; TMRO en banco 0 OPTION en banco I
Ef,AIX) EQU 0x03
IEITAA EQU 0x05 ; PA en banco 0 TRISA en bancol
f,Ef,AB EQU Ox06 ; PB en banco 0 TRISB en bancol
f,IOfNEQIJ 0x0B ;
Gllff,AQU 0xl0 ; Contador auxiliar
()RG 0; Ydor de Reset
!É¡iiD
(rc4; Yccor de Intemrpción
3lbAr;
(x¡5
Salta a comienzo de rutina de intemrpción
mvhr Oxl0
mwf CONTA; Se carga CONTA con 16 decimal
mvlw0x0c
DvwfTMR_OPT ; Se carga TMRO con 12 decimal
)
)