Vous êtes sur la page 1sur 9

www.monografias.

com
Laboratorio de microcontroladores
Codificador decimal binario
1. Justificacin
2. Descripcin del problema
3. Organizacin de la memoria del pic16c(f!"
". #emoria de programa
$. #emoria de datos del pic16c(f!"
6. Descripcin de la solucin
%. Diagrama de flu&o del algoritmo
!. Conclusiones
J'()*+*C,C*-.
Los microcontroladores son circuitos integrados que poseen todas las caractersticas de un computador
completo. Puede ser programado para que cumpla una tarea determinada a muy bajo costo. Un ejemplo
de ellos es el famoso PIC16!" de la familia PIC16!#.
$l PIC16!# es un grupo en la familia PIC16C## de bajo costo% alto rendimiento% C&'( de ! bit entre
otras cosas. $ste grupo de PIC consta de los siguientes dispositi)os* PIC16!+% PIC16!"% PIC16C,!+
y el PIC16C,!". -odos los microcontroladores emplean una a)an.ada arquitectura ,I(C.
Las e/tensas 0reas de aplicaci1n de estos microcontroladores e/igen un gigantesco trabajo de dise2o y
fabricaci1n. 3prender a manejar y aplicar microcontroladores s1lo se consigue desarrollando
t0cticamente dise2os reales% tal como es nuestro caso un codificador decimal binario.
$ste laboratorio nos permite desarrollar la programaci1n del pic 16f!" bajo lenguaje assembler con sus
respecti)as instrucciones% lo cual es de gran importancia en el mundo de la programaci1n debido a su
aplicabilidad en distintos campos y sobre todo en el industrial.
O/J0)*1O(
3plicar los conceptos fundamentales aprendidos en la asignatura microprocesadores.
4ise2ar el algoritmo que permita con)ertir un n5mero decimal a binario utili.ando el pic 16f!".
Comprender el funcionamiento de los simuladores (*#'2*C y #2L,/.
D0(C3*2C*-. D0L 23O/L0#,
Con el desarrollo de la tecnologa% se introduce en la programaci1n la aplicaci1n de los pic% los cuales
funcionan como un computador% que se programa para que cumpla una funci1n especfica.
$l microcontrolador PIC16C67!"% $s un microcontrolador de 1! pines% de ! bits con tecnologa C&'(.
La ra.1n porque se 8a elegido este tipo de microcontrolador se debe al tipo de memoria de programa
que posee. $n el caso del PIC 16!" se trata de una memoria $$P,'& de 19 palabras de 1" bits cada
una. $l PIC 16!" tiene la misma capacidad de memoria de instrucciones% pero de tipo flas8. 3mbos
disponen de 6" bytes de $$P,'& como memoria de datos au/iliar y opcional.
La memoria $$P,'& y la las8 son el:ctricamente gra)ables% lo que permite escribir y borrar el
programa bajo prueba manteniendo el microcontrolador en el mismo .1calo y usando el mismo
dispositi)o para grabar y borrar. $sta caracterstica supone una gran )entaja con la mayora de los
microcontroladores% que tienen como memoria de programa reescribible una tipo $P,'&. $stas se
graban el:ctricamente% pero para borrarlas 8ay que someterlas durante cierto tiempo a rayos ultra)ioleta%
lo que implica sacar del .1calo el circuito integrado y colocarlo en un borrador de $P,'&. $l 8ec8o de
utili.ar una memoria flas8 es porque tiene mayores posibilidades de aumentar su capacidad con relaci1n
a la $$P,'&. -ambi:n por su mayor )elocidad y menor consumo. La memoria $$P,'& es capa. de
soportar 1.;;;.;;; de ciclos de escritura < borrado% frente a los 1.;;; de la las8.
='>3 C3,3C-$,?(-IC3 4$ L'( PIC16C67!"*
&$&',I3 4$ P,'@,3&3* 19 / 1"% $$P,'& 616C!"7 A las8 616!"7
&$&',I3 4$ 43-'( ,3&* +6 Byte 616C!"7 y 6! Byte 616!"7
&$&',I3 4$ 43-'( $$P,'&* 6" Byte para ambos modelos
PIL3 6(-3C97* 4e ! ni)eles
IC-$,,UPCI'C$(* " tipos diferentes
($- 4$ IC(-,UCCI'C$(* +D
$CC3P(UL34'* 1! PIC$(
,$CU$CCI3 4$ -,3B3>'* 1; &8. m0/ima
-$&P',IE34',$(* -&,; y F4-
LIC$3( 4$ $<( 4I@I-3L$(* 1+ 6D Puerto 3 y ! Puerto B7
C',,I$C-$ &G#I&3 3B(',BI43* !; m3 Puerto 3 y 1D; m3 Puerto B
C',,I$C-$ &G#I&3 (U&ICI(-,343* D; m3 Puerto 3 y 1;; m3 Puerto B
C',,I$C-$ &G#I&3 3B(',BI43 P', LIC$3* HD m3
C',,I$C-$ &G#I&3 (U&ICI(-,343 P', LIC$3* H; m3
I'L-3>$ 4$ 3LI&$C-3CIJC 6Idd7* 4e H a 6I 4C
I'L-3>$ 4$ @,3B3CIJC 6Ipp7* 4e 1H a 1"I 4C
4I3@,3&3 4$ PIC$( 4$L PIC16C67!"*
Idd* Pin por el cual se aplica la tensi1n positi)a de 3limentaci1n
Iss* Pin utili.ado para la cone/i1n de tierra
'(C1 < CL9IC* Pin por el cual se aplica la entrada del circuito oscilador e/terno que proporciona la
frecuencia de trabajo al &icrocontrolador
'(CH < CL9'U-* Pin au/iliar o de salida del circuito oscilador.
&CL,K < Ipp* $ste pin se acti)a con un cero 6;7 l1gico% cada )e. que se necesite reiniciali.ar o ,esetear
al &icrocontrolador.
$ste Pin tambi:n se usa durante la grabaci1n de la memoria de programa para introducir por ella la
tensi1n% Ipp 6)oltaje pico a pico de grabaci1n7% que esta comprendida entre 1H y 1"I 4C.
,3; L ,3"* (on los D Pines de $<( digitales correspondientes al Puerto 3.
$l Pin ,3" es de colector abierto lo que significa que cuando es utili.ado como salida 8ay que colocarle
una resistencia a Icc 6DI 4C7.
$l pin + adem0s de ser el bit mas significati)o del Puerto 3% &ultiple/a otra funci1n e/presada por -'C9I.
$n este caso sir)e para recibir una frecuencia e/terna para alimentar al tempori.ador interno -&,;.
,B; L ,BM* $stos ! pines corresponden a los ! bits de $<( digitales del Puerto B.
$l Bit ,B; &ultiple/a otra funci1n% que es la de ser)ir como entrada a una petici1n e/terna de
interrupci1n% por eso se le denomina ,B;<IC-.
O34,.*5,C*-. D0 L, #0#O3*, D0L 2*C16C(+!"
$n este &icrocontrolador 8ay dos bloques de &emorias% estos son la memoria de Programa y la &emoria
de 4atos. Cada bloque tiene su propio bus% por lo cual el acceso para cada bloque puede ocurrir durante
el mismo ciclo del oscilador. La &emoria de datos 6,3&7 se di)ide en registros de prop1sito general
6@P,7 y registros de unciones especiales 6(,7. Los registros (, tienen como operaci1n principal
controlar el n5cleo del microcontrolador y m1dulos perif:ricos y los de Prop1sito @eneral 6@P,7 son
registros que el programador declara a su con)eniencia para utili.arlos en alguna parte de un programa.
La &emoria de Programa es de 19 / 1" bits de tipo $$P,'& para el PIC16C!" y de tipo las8 para el
PIC16!". 3dem0s el PIC16C!" tiene +6 Bytes disponibles en la memoria de datos ,3& en la .ona de
los registros de prop1sito general y el PIC16!" tiene 6! Bytes.
#0#O3*, D0 23O43,#,
Los microcontroladores PIC16C!" y PIC16!"% admiten un mapa de memoria de programa capa. de
contener !.1NH instrucciones de 1" bits cada una. $ste mapa se di)ide en p0ginas de H.;"! posiciones.
Para direccionar ! 9 posiciones se necesitan 1+ bits% que es la longitud del Contador de Programa de
estos dos microcontroladores 6PC7. (in embargo% el PIC16C!" s1lo tiene implementadas 19 posiciones%
por lo que ignora los + bits de m0s peso del PC. $sto es debido a* 19O1;H" ByteO H . Por lo tanto solo se
tienen 1; lneas de direcci1n para accesar a una palabra de memoria.
La direcci1n ;;;;= esta reser)ada para el )ector de ,eset y la ;;;"= para el )ector de interrupci1n.
3dem0s posee una pila de ! ni)eles que permiten el anidamiento de subrutinas.
$s importante destacar que cada &icrocontrolador posee una memoria de Programa especifica.
#0#O3*, D0 D,)O( D0L 2*C16C(+!"
$sta memoria dispone de dos .onas diferentes las cuales son*
3rea de ,3& est0tica o (,3&* $s aquella donde residen los registros de funciones especificas 6(,7 y
los registros de prop1sito general 6@P,7. $l primero tiene H" posiciones de 1 byte cada una% aunque dos
de ellas no son operati)as% y el segundo +6 en el caso del PIC16C!" y 6! en el PIC16!".
3rea $$P,'& de 6" bytes* $sta se utili.a opcionalmente cuando se necesitan almacenar datos que
deben mantenerse cuando la alimentaci1n se desconecte.
La &emoria (,3& se di)ide en dos bancos 6banco ; y banco 17 en el caso de los microcontroladores
PIC16C67!" de 1H! bytes cada uno. $n el PIC16C!" s1lo se 8allan implementadas fsicamente las "!
primeras posiciones de cada banco% de las cuales las 1H primeras est0n reser)adas para los registros
(,% que son los encargados del control del procesador y sus recursos. 3lgunos de dic8os registros se
8allan repetidos en la misma direcci1n de los dos bancos% para simplificar su acceso 6IC4%
$(-34'6(-3-U(7% (,% PCL3-= $ IC-C'C7. Los +6 registros restantes en el caso del PIC16C!" y los
6! en el PIC16!" de cada banco est0n destinados a los registros @P, y en general solo son operati)os
los +6 o 6! del banco ; porque los del banco 1 se mapean sobre el banco ;% es decir% cuando se apunta
a un registro general del banco 1% se accede al mismo del banco ;.
Conociendo ya un poco el pic 16f!" se plantea el siguiente interrogante.
P C1mo con)ertir un n5mero decimal a binario utili.ando el pic 16f!"Q
D0(C3*2C*-. D0 L, (OL'C*-.
Para con)ertir un n5mero de decimal a binario empleando el pic 16f!" se siguieron los siguientes pasos*
(e reali.1 el diagrama de flujo que )isuali.ara la soluci1n del problema.
(e reali.1 el algoritmo y se codific1 en lenguaje assembler utili.ando las instrucciones para el pic 16f!"*
#o6f f7d* mue)e el registro f al registro de trabajo
#o68f f7d* mue)e el contenido del registro de trabajo al registro destino.
Call 9: llamar subrutina.
/tfsc f7b: probar bit b del registro f% saltar si es cero.
/sf f7b: acti)ar bit b de f
/cf f7b: limpiar bit b de f.
#o6l8 9: carga el registro de trabajo w con el literal R.
3eturn: retorna al programa principal despu:s de ejecutarse una rutina.
4oto 9: salta a la direcci1n R.
(e simul1 el programa el simulador (I&UPIC% para )erificar posibles errores.
(e 8i.o el quemado del pic 16f!" a tra):s del simulador &PL3B.
(e comprob1 el funcionamiento del pic 16f!" en el protoboart.
(e dise21 el circuito y se monto en la plaqueta% utili.ando los siguientes elementos*
pic 16f!".
cristal de ";;; 8..
,esistencias.
bateria de N )oltios.
con)ertidor de corriente.
Leds.
Cables.
(witc8es.
D*,43,#, D0 +L'JO D0L ,L4O3*)#O

(* (*
.O
C-D*4O +'0.)0
LI(- pO16!" Sdesignaci1n del PIC
,34I# =$# Sse selecciona el sistema 8e/adecimal
Sse declaran las etiquetas
P',-3 $TU ;#;D Sporta queda identificada con la direcci1n ;D
P',-B $TU ;#;6 Sportb queda identificada con la direcci1n ;6
(-3-U( $TU ;#;+ Sstatus queda identificado con la direcci1n ;+
F $TU ; SF se identifica con el )alor ;
;23O43,#, 23*.C*2,L
',@ ; Sel programa inicia en la direcci1n ;
goto ICICI' Ssalta a la direcci1n D para sobrepasar el )ector de interrupci1n
',@ D S)ector de interrupci1n
ICICI' bsf (-3-U(%D Sselecci1n del banco 1
mo)lw bU11111111U Sse carga w
mo)wf ;/;6 Sse configura portb como entrada
mo)lw bU;;;;;U Sse carga w
mo)wf ;/;D Sse configura porta como salida
bcf (-3-U(%D Sselecci1n del banco ;
clrf P',-3 Sse iniciali.a con ; porta
clrf P',-B Sse iniciali.a con ; portb
.<#03O(
mo)f P',-B%; Sse lee portb y se guarda en w
btfsc P',-B%; Ssalta una instrucci1n si rb; contiene un ;
call UC' Sllamado de la rutina UC'
btfsc P',-B%1 Ssalta una instrucci1n si rb1 contiene un ;
call 4'( Sllamado de la rutina 4'(
INICI
O
PUERTO B
ES CERO ?
VISUALIZA
NUMERO BINARIO
FIN
btfsc P',-B%H Ssalta una instrucci1n si rbH contiene un ;
call -,$( Sllamado de la rutina -,$(
btfsc P',-B%+ Ssalta una instrucci1n si rb+ contiene un ;
call CU3-,' Sllamado de la rutina CU3-,'
btfsc P',-B%" Ssalta una instrucci1n si rb" contiene un ;
call CICC' Sllamado de la rutina CICC'
btfsc P',-B%D Ssalta una instrucci1n si rbD contiene un ;
call ($I( Sllamado de la rutina ($I(
btfsc P',-B%6 Ssalta una instrucci1n si rb6 contiene un ;
call (I$-$ Sllamado de la rutina (I$-$
goto CV&$,'( Ssalto incondicional
;3')*.,( 2,3, 1*(',L*5,3
UC' mo)lw bU;;;;1U Sse carga w con el binario
mo)wf P',-3 Sse )isuali.a en porta el )alor binario
return Sse retorna a donde se 8i.o el llamado
4'( mo)lw bU;;;1;U Sse carga w con binario
mo)wf P',-3 Sse )isuali.a en porta el )alor binario
return Sse retorna a donde se 8i.o el llamado
-,$( mo)lw bU;;;11U Sse carga w con binario
mo)wf P',-3 Sse )isuali.a en porta el )alor binario
return Sse retorna a donde se 8i.o el llamado
CU3-,' mo)lw bU;;1;;U Sse carga w con binario
mo)wf P',-3 Sse )isuali.a en porta el )alor binario
return Sse retorna a donde se 8i.o el llamado
CICC' mo)lw bU;;1;1U Sse carga w con binario
mo)wf P',-3 Sse )isuali.a en porta el )alor binario
return Sse retorna a donde se 8i.o el llamado
($I( mo)lw bU;;11;U Sse carga w con binario
mo)wf P',-3 Sse )isuali.a en porta el )alor binario
return Sse retorna a donde se 8i.o el llamado
(I$-$ mo)lw bU;;111U Sse carga w con binario
mo)wf P',-3 Sse )isuali.a en porta el )alor binario
return Sse retorna a donde se 8i.o el llamado

$C4 Sfin del programa
RA2
RA3
RA4/TOCKI
MCLR/Vpp
Vss
RB0/INT
RB1
RB2
RB3
RA1
RA0
OSC1
OSC2
VDD
RB7
RB6
RB
RB4
VDD
10K
27pF
27pF
PIC 16F!4
CO.CL'(*O.0(
La educaci1n es un proceso interminable% puesto que cada da se aprende cosas nue)as o se actuali.an
las ya conocidas o aprendidas% es decir% que la educaci1n es un proceso permanente% por eso debemos
estar in con las tecnologas del momento y preparado para recibir las nue)as.
Por lo e/presado anteriormente la elaboraci1n de este proyecto nos sir)e para comprender un poco m0s
la teora de los microcontroladores y su aplicaci1n S de a8 la importancia del mismo% pues a tra):s de :l
se puede apreciar lo interesante que es la programaci1n en nuestra )ida cotidiana.
V
DD
" V

100
DIODOS LED
CRISTAL 4
M#$
CONDENSADOR
CERAMICO
" V
DIA%RAMA CODIFICADOR DECIMAL&BINARIO
C,3LO( 4,3C=, (0>,
cagaseW8otmail.com
JO(? C,.C@*L, #0D*.,
JO340 #O30.O #03C,DO

Vous aimerez peut-être aussi