Вы находитесь на странице: 1из 29

MICROCONTROLADORES I

QUE ES UN MICROCONTROLADOR? Un microcontrolador es un circuito integrado, en cuyo interior posee toda la arquitectura de un computador, esto es CPU, memorias RAM, EEPROM, y circuitos de entrada y salida. Un microcontrolador de fbrica, no reali a tarea alguna, este debe ser programado para que realice desde un simple parpadeo de un led !asta un sofisticado control de un robot. Un microcontrolador es capa de reali ar la tarea de muc!os circuitos l"gicos como compuertas A#$, OR, #O%, #A#$, con&ersores A'$, $'A, tempori adores, decodificadores, etc., simplificando todo el dise(o a una placa de reducido tama(o y pocos elementos. EL MICROCONTROLADOR PIC16F628A )os microcontroladores P*C +Perip!eral interface Controller,, son fabricados por la empresa M*CROC-*P %EC-#O)O./ *#C, cuya central se encuentra en C!andler, Ari ona, esta empresa ocupa el primer lugar en &enta de microcontroladores de 0 bits desde el a(o 1221. 3u gran 45ito se debe a la gran &ariedad +mas de 602 modelos,, gran &ersatilidad, gran &elocidad, ba7o costo, ba7o consumo de potencia, y gran disponibilidad de !erramientas para su programaci"n. Uno de los microcontroladores ms populares en la actualidad es el P*C689810A y sus &ariantes P*C68981:A y P*C6898;0A, estos uC soporta !asta 622,222 ciclos de escritura en su memoria 9)A3-, y 6<222,222 ciclos en su memoria EEPROM +tiempo de retenci"n de datos 622 a(os,, esta reempla ado rpidamente el popular P*C6890;A, pues presenta grandes &enta7as como son= P*C6890;A Memoria de 621; 5 6; programa 9las! Memoria de 8; 5 0 datos RAM Memoria de 8; 5 0 datos EEPROM Pines de 6@ entrada'salida Comparadores 2 de &olta7e *nterrupciones ; %imers 0'68 bits M"dulos PAM ' CCP Comunicaci"n serial U3AR% 6 #o #o P*C68981:A 621; 5 6; 11; 5 0 610 5 0 68 1 62 @ 3i 3i P*C689810A 12;0 5 6; 11; 5 0 610 5 0 68 1 62 @ 3i 3i P*C6898;0A ;2>8 5 6; 1?8 5 0 1?8 5 0 68 1 62 @ 3i 3i

%odas estas y otras &enta7as mas como el oscilador interno RC de ;M-B, MC)R programable, mayor capacidad de corriente, programaci"n en ba7o &olta7e, etc. )o !acen al P*C689810A, como el microcontrolador ideal para estudiantes y aficionados, ya que al tener

oscilador interno y el MC)R +master clear, sea programable, es muc!o mas sencillo ponerlo en funcionamiento, basta con conectar al pin 6; a ?C y el pin ? a tierra para que empiece a traba7ar +&er fig. 1.:.6,. ARQUITECTURA DEL PIC16F628A El P*C689810A utili a un procesador con arquitectura -ARCAR$, consiguiendo mayor rendimiento en el procesamiento de las instrucciones, esta arquitectura a diferencia de la CO# #EUMA##, utili a dos bloques de memorias independientes, una contiene instrucciones y la otra solo datos, cada una con su respecti&o sistema de buses de acceso, 0 lDneas para los datos y 6; lDneas para las instrucciones, con lo que es posible reali ar operaciones de acceso lectura o escritura simultneamente en las 1 memorias, a esto se conoce como paralelismo + fig. 1.1.1,. 9 bits Memoria nica de instrucciones y datos

$irecciones 8 bits $atos e instrucciones

CPU

9ig. 1.1.6 En la arquitectura Con #eumann se conecta el CPU con una memoria Enica en donde se almacenan datos e instrucciones en forma indistinta, compartiendo el mismo bus. Bus de direccin de instrucciones Bus de direccin de datos

11 bits

9 bits

MEMORIA DE INSTRUCCIONE S

14 bits

CPU

8 bits

MEMORIA DE DATOS

Bus de Instrucciones

Bus de atos

Fig. 2.2.2 )a arquitectura -ar&ard mane7a la memoria de datos y la memoria de instrucciones pro separado y con diferentes capacidades.

Celocidad de operaci"n !asta 12 M-B con oscilador e5terno. Oscilador interno RC +resistencia condensador, de ; M-B calibrado de fbrica al F6 G. Admite 0 configuraciones de oscilador. 0 ni&eles de P*)A. Procesador con arquitectura -ARCAR$. Con7unto reducido de instrucciones R*3C +@?, gama media. *nstrucciones de un ciclo e5cepto los saltos +122 n3 por instrucci"n a 12 M-B,. Resistencias PU))HUP programables en el puerto I. Pin RA? MC)R programable como reset e5terno o pin de entrada. Rango de operaci"n desde @C !asta ?.?C. 6? pines de *'O y 6 solo de entrada +RA?,. %empori ador Perro guardin A$% independiente del oscilador. Programable con ba7o &olta7e )CP +?C,. Programaci"n serial en circuito *C3P por 1 pines= RI8 relo7 y RI: datos. C"digo de protecci"n programable por sectores. Memoria de programa 9)A3- 12;0J de 622,222 ciclos escritura'borrado. Memoria de datos EEPROM de 6<222,222 ciclos escritura'borrado de 622 a(os retencion. 1 circuitos coparadores analogos con entradas multiple5adas. @ timers, timer 2 a 0 bits, timer 6 a 68 bits y timer 1 a 0 bits. M"dulos CCP, Captura compara 68 bits, y PAM, modulaci"n de anc!o de pulso 62 bits. 62 fuentes de interrupci"n. Modulo de comunicaci"n serial U3AR%'3C*. Capacidad de corriente para encender leds directamente + 1? mA *'O, por cada pin.

DIAGRAMAS DE PINES Y FUNCIONES

9ig. 1.8.1 tabla de pines con sus funciones especiales. NOTA.H sus 1 puertos el A y el I entregan un total de 122 mA cada uno, es decir 1? mA cada pin, en modo sumidero pueden soportar cada uno de sus puertos 122 mA, es decir 1? mA cada pin.

P*# 6: 60 6 1 @ ; 6? 68 8 : 0 > 62 66 61 6@

#OMIRE
RA0 / AN0 RA1 / AN1 RA2 / AN2 / +REF RA. / AN. / CMP1 RA0 / TOC1I / CMP2 RA2 / MCLR / +PP
RA6 / OSC2 / CL1OUT Pin bidire Pin bidire Pin bidire

$E3CR*PC*O#
i!n"# I/O$ en%r"d" !&'"r"d!r "n(#!)!* i!n"# I/O$ en%r"d" !&'"r"d!r "n(#!)!* i!n"# I/O$ en%r"d" !&'"r"d!r "n(#!)!$ +!#%",e de re-eren i"*

RA7 / OSC1 / CL1IN R80 / INT R81 / R: / DT

R82 / T: / C1 R8. / CCP1 R80 / P=M R82


R86 / T1OSO / T1C1I R87 / T1OSI

Pin I/O$ en%r"d" !&'"r"d!r "n(#!)!$ /"#id" !&'"r"d!r "n"#!)! 1* Pin I/O$ en%r"d" re#!, TIMER0 $ /"#id" !&'"r"d!r "n"#!)! 2* Pin de en%r"d"$ en &!d! MCLR " %i3" RESET e4%ern!* Pin I/O$ En%r"d" !/ i#"d!r e4%ern!$ /"#id" de 5 de #" -re 6en i" OSC1* Pin I/O$ En%r"d" !/ i#"d!r e4%ern!$ en%r"d" de# re#!, e4%ern!* Pin I/O$ re/i/%en i" P6##9U' 'r!)r"&"b#e$ en%r"d" de in%err6' i!n e4%* Pin I/O$ re/i/%en i" P6##9U'$ en%r"d" d"%! RS2.2$ I/O d"%! /eri"# "/in r!ni !* Pin I/O$ re/i/%en i" P6##9U'$ /"#id" d"%! RS2.2$ I/O /e;"# de re#!, "/in r!ni !* Pin I/O$ re/i/%en i" P6##9U'$ &!d6#! CCP / P<N en%r"d" ! /"#id"* Pin I/O$ re/i/%en i" P6##9U'$ en%r"d" de# 3!#%",e b",! de 'r!)r"&" i!n* Pin I/O$ re/i/%en i" P6##9U' 'r!)r"&"b#e* Pin I/O$ re/i/%en i" P6##9U'$ /"#id" !/ i#"d!r TIMER1$ en%r"d" re#!, de ICSP* Pin I/O$ re/i/%en i" P6##9U'$ en%r"d" !/ i#"d!r TIMER1$ I/O d"%!/ de ICSP*

CO#3*$ERAC*O#E3 IA3*CA3 PERO MU/ U%*)E3 A )A -ORA $E MO#%AR U# PRO/EC%O. Es muy importante tomar en cuenta estas recomendaciones ya que si no se las sigue podria correr el riesgo de da(ar el P*C= 6. recuerde que el P*C tiene tecnologDa CMO3, esto quiere decir que consume muy poca corriente pero que a la &e es susceptible a da(os por esttica, se recomienda utili ar pin as para manipular y asD poder transportar desde el grabador al protoboard o &ice&ersa, o a su &e utili ar una manilla antiesttica. 1. procure utili ar un regulador de &olta7e como el )M:02? que nos entrega e5actamente ?C y no un adaptador de pared, ya que el &olta7e de salida no siempre es el mismo del que indica su fabricante, por ultimo puede utili ar un circuito con un diodo Bener de ?.6C. @. no sobrepase los ni&eles de corriente, tanto de entrada como de salida, recuerde que el P*C puede entregar por cada uno de sus pines una corriente m5ima de 1? mA. Asimismo soporta una corriente m5ima de entrada de 1? mA., esto quiere decir que puede encender un led con una resistencia de @@2 o!mios re&isemos= Colta7e que sale de un pin del P*C, si es alimentado con ?C K ?C Corriente que requiere el led para un encendido normal K 6? mA. LMu4 resistencia es necesaria para encender el led correctamenteN CKR 5 * RK C ' * RK ? C ' 2,26? A RK @@@,@@ o!mios K @@2 o!mios

A!ora un e7emplo de corriente de entrada al P*C, si queremos poner un pulsador Lque resistencia seria la mDnima a colocarseN Como sabemos la corriente de entrada que soporta por cada pin del P*C es de 1? mA entonces para un pulsador tenemos que= CK R 5 * RK C ' * RK ?C ' 2,21? A. RK 122 o!mios apro5. 112 o!mios

Esto quiere decir que la resistencia mDnima a colocarse seria de 112 o!mios para estar al limite de la capacidad que soporta el P*C, pero no es muy aconse7able traba7ar con los

limites, por lo que se recomienda utili ar una resistencia de 6J o!mios a 62J o!mios, asD el P*C estarDa traba7ando tranquilamente con una corriente de entrada de ? mA o 2,? mA respecti&amente. ;. En algunos proyectos es necesario conectar un capacitor de 6 u9 en paralelo al P*C, este e&ita el mal funcionamientos que podrDan ocurrirle, en especial cuando se utili a teclados matriciales y se tiene conectado adicionalmente un bu er acti&o +parlante acti&o o c!ic!arra, y reles. ?. cuando se necesite precisi"n en el traba7o del P*C +comunicaci"n serial, tonos $%M9, etc.,, se recomienda utili ar un cristal oscilador e5terno de ; M-B en adelante, ya que el oscilador interno RC que posee no tiene muy buena precisi"n. En un e5perimento reali ado se conecto dos P*C id4nticos con el mismo programa el cual consistDa en !acer parpadear un led con inter&alos de 6 segundo, ambos P*C compartDan la misma fuente y al momento de arrancar los dos parpadeos eran iguales, al transcurso de unos minutos los leds se !abDan desigualados , estos demuestran que la calibraci"n interna no es igual en todo los micros, si utili ramos cristales e5ternos de ; M-B en ambos P*C, no se desigualan nunca, esto debido a que los cristales son muy precisos en cuanto a la frecuencia que entregan. Con todas estas recomendaciones se tiene el siguiente diagrama para encender un led y conectar un pulsador sin que el P*C sufra ningEn da(o.

9ig. 1.:.6 $iagrama bsico para conectar un P*C con un )E$ y un pulsador, noten que el P*C no necesita oscilador e5terno ni tampoco resistencia pullHup conectado al MC)R o puerto RA? como lo necesitaba su antecesor el P*C6890;A.

LENGUAJE HUMANO
!engua"e de a#to ni$e#

-*.- led OOOO OOOO Isf porta,2 @90@ @;?9 62662666266

!engua"e B%&IC

'tros #engua"es

!engua"e ensamb#ador Cdigo (e)adecima# Cdigo binario

!engua"e de ba"o ni$e#

LENGUAJE DE MAQUINA

MANEJO DE PUERTOS
- Puertos como entrada y salida - La instruccin IF... THEN - La instruccin FOR NEXT - Ejercicios con instrucciones IF THEN FOR NEXT !ara el manejo de !uertos LO" P#ERTO" $EL PI%&'F() *# microcontro#ador PIC1+F84, contiene 2 -uertos de entrada.sa#ida. *# -uerto % de / bits y e# -uerto B de 8 bits.
U1
68 6? ; O3C6'C)J*# O3C1'C)JOU% MC)R RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI: P*C6890;A 6: 60 6 1 @ 8 : 0 > 62 66 61 6@

Cada -uerto tiene 2 registros asociados, e# TRI" 01ri2&tate3 y e# registro de direccionamiento de -uerto. LO" P#ERTO" $EL PI%&'F(** *# microcontro#ador PIC1+F844, contiene / -uertos de entrada.sa#ida. Puerto %5 + bits Puerto B5 8 bits Puerto C5 8 bits Puerto 5 8 bits
U6
6@ 6; 6 1 @ ; ? 8 : 0 > 62 O3C6'C)J*# O3C1'C)JOU% MC)R'Cpp'%-C RI2'*#% RI6 RI1 RI@'P.M RI; RI? RI8'P.C RI:'P.$ @@ @; @? @8 @: @0 @> ;2 6? 68 6: 60 1@ 1; 1? 18 6> 12 16 11 1: 10 1> @2

Puerto *5 6 bits

RA2'A#2 RA6'A#6 RA1'A#1'CRE9H RA@'A#@'CRE9F RA;'%2CJ* RA?'A#;'33 RC2'%6O3O'%6CJ* RC6'%6O3*'CCP1 RE2'A#?'R$ RC1'CCP6 RE6'A#8'AR RC@'3CJ'3C) RE1'A#:'C3 RC;'3$*'3$A RC?'3$O RC8'%P'CJ RC:'RP'$% R$2'P3P2 R$6'P3P6 R$1'P3P1 R$@'P3P@ R$;'P3P; R$?'P3P? R$8'P3P8 R$:'P3P: P*C6890::

Cada -uerto tiene 2 registros asociados, e# TRI" 01ri2&tate3 y e# registro de direccionamiento de -uerto.

E"%RIT#R+ EN LO" P#ERTO" $EL ,I%RO%ONTROL+$OR


Para -oder escribir en #os -uertos, con7iguramos -rimeramente e# -uerto como sa#ida usando e# registro 18I&. Una $e9 con7igurado e# -uerto como sa#ida, escribiremos e# dato, :ue :uerramos en decima#, binario o (e)adecima#. Ejem!lo18I&% ; < P'81% ; 14+ =Co#oca todos #os -ins P'81% como sa#idas. =*scribe 14+ en e# -uerto %

Para -oder #eer un bit o bits -resentes en un -uerto, con7iguramos -rimeramente e# -uerto como entrada usando e# registro 18I&. Una $e9 con7igurado e# -uerto como entrada, -odemos usar cua#:uier instruccin -ara #eer e# -uerto. Ejem!lo18I&% ; 1 =Co#oca todos #os -ins P'81% como entradas.

IF P'81% ; 14+ 1>*? >I@> P'81B.< *? IF

LA INSTRUCCIN IF THEN
IF... 1>*? e$a#a #a com-aracin en tArminos de CI*81' o F%!&' .&i #o considera cierto, se e"ecuta #a o-eracin -osterior a# 1>*?. &i #o considera 7a#so, no se e"ecuta #a o-eracin -osterior a# 1>*?. !as com-araciones :ue dan < se consideran 7a#so .Cua#:uier otro $a#or es cierto. 1odas #as com-araciones son sin signo, ya :ue PBP so#o so-orta o-eraciones sin signo. &inta)is5 IF Com-aracin 1>*? B instrucciones B *? IF

LA INSTRUCCIN IF ELSE THEN


*s #a segunda 7orma, IF..1>*? :ue -uede e"ecutar condiciona#mente un gru-o de instrucciones :ue sigan a# 1>*? cuando sea $erdadera y otro gru-o de instrucciones :ue deben estar seguidas -or un *!&*. &inta)is5 IF Com-aracin 1>*? B instrucciones % B *!&* B instrucciones B B *? IF

$I+.R+,+ $E FL#/O

7a#so C'? ICIE ?

$erdadero

Instruccin B

Instruccin %

LA INSTRUCCIN FOR NEXT


*# buc#e F'8 .. ?*C1 -ermite a #os -rogramas e"ecutar un nmero de instrucciones un nmero de $eces, usando una $ariab#e como contador. &inta)is5 F'8 contador ; inicio 1' 7in &1*P -asos B instruccionesB ?*C1 contador 2 !as instrucciones se e"ecutarDn con cada incremento o decremento de #a $ariab#e contador :ue se inicia#i9arD en un $a#or dado. 2 !as instrucciones 7ina#i9aran cuando #a $ariab#e contador (a##a ##egado a# mD)imo asignado 07in3 2 *# modi7icador &1*P es o-ciona# y sir$e -ara estab#ecer #os -asos :ue incrementarD o decrementarD e# contador. &ino se es-eci7ica e# $a#or -redeterminado de &1*P es 1 -ositi$o 0incremento3.

Condici n

Instruccin 1

Instruccin 2

Instruccin 6

Instruccin 4

E/E,PLO & $E L+ IN"TR#%%I0N FOR NEXT *"em-#o 15 F'8 I ; 1 1' 1< >I@> P'81%.< P%U&* /<< !'F P'81%.< P%U&* /<< ?*C1 I *"em-#o 25 F'8 I ; 1< 1' < &1*P 22 >I@> P'81%.< P%U&* /<< !'F P'81%.< P%U&* /<< ?*C1 I

Encender un led con un !ulsador


%ntes de em-e9ar con e# mane"o de -u#sadores debemos tener muy en cuenta5

*# e7ecto rebote -roducido en e# -u#sador. @aranti9ar e# estado #gico de# -in de entrada

E1ecto Re2ote Uno de #os e7ectos :ue -resenta cua#:uier dis-ositi$o de ti-o e#ectromecDnico es e# conocido como Ge7ecto reboteG &e debe a :ue cada $e9 :ue se acciona, #as #Dminas :ue abren o cierran e# circuito, necesitan de un -eriodo de estabi#i9acin urante ese tiem-o #as #Dminas -resentan una cierta inestabi#idad durante #a cua# estDn rebotando entre sH, -ro$ocando m#ti-#es a-erturas y cierres. ebido a este e7ecto, un sim-#e accionamiento de# ti-o 'FF 2 '? 2 'FF sobre e# mecanismo. se traduce en una secuencia de $arios -u#sos como se -uede $er en #a 7igura.

Eliminando el E1ecto Re2ote R#TIN+ $E E"PER+ $E 34m" 8utina :ue e#imina e# e7ecto 8ebote5 IF P'81%.< ; 1 1>*? P%U&* /< B Instrucciones B *? IF L+ IN"TR#%%I0N 5#TTON BU11'? -ermite e#iminar e# rebote y tambiAn -uede e"ecutar autorre-eticin. 08e-eticin de# accin a# tener -resionado e# -u#sador3. &i no se dec#ara BU11'?, #a duracin de# antirrebote es de 1< m& &inta)is5 BU11'? , Pin , oIn , e#ay , 8ate , B$ar , %ction , *ti:ueta Pin oIn e#ay Pin corres-ondiente a #a entrada #eHda *stado de# -in cuando se o-rime e# -u#sador 0 <...13 Contador de cic#os antes de :ue comience #a auto2 re-eticin 0<...2//3. &i es <, no se e7ectu anti2rebote ni autorre-eticin .&i es 2// se e#iminan rebotes, -ero no autorre-eticin. Ja#or de auto2re-eticin 0<..2//3 Jariab#e con tamaKo de byte usada internamente -ara conteo de demoras y re-eticiones. ebe ser inicia#i9ada a < antes de ser usada y no ser usada en cua#:uier #ugar de# -rograma. *stado de# -u#sador a ser actuado. !a e"ecucin comien9a en esta eti:ueta si es cierto %ction. =Modi7icamos #a duracin de# antirrebote = ec#aramos I como $ariab#e -ara BU11'?

8ate B$ar

%ction *ti:ueta

*"em-#o5 *FI?* BU11'?LP%U&* /< I J%8 BM1*

BU11'? P'81B.<, <, 1<<, 1<, I, <, encendido *ncendido5 ... Instrucciones...

+6+$IEN$O #N %+P+%ITOR EN P+R+LELO %ON L+ ENTR+$+ *s a#tamente recomendab#e si e# -u#sador estarD ubicado #e"os de# microcontro#ador.

Estado L7ico en el !in de entrada *)isten dos estados #gicos -osib#es en cua#:uier sistema digita#. *stos estados son e# N< #gicoO 0< $o#tios3 y e# N1 #gicoO 0/ $o#tiosO3. *)iste ademDs un estado :ue no es #gico sino mDs bien -ro-io de #a ar:uitectura de# circuito integrado, y a este estado se #e ##ama co#ector abierto o tambiAn de a#ta im-edancia y se obtiene en #a mayorHa de #os casos cuando e# -in ya sea de entrada o de sa#ida :ueda sin cone)in a#guna 0Na# aireO3. &i bien es cierto :ue #a #gica 11! considera una entrada sin cone)in como un N1 #gicoO, dic(a entrada a# no tener cone)in -uede ser muy -ro-ensa a# ruido e)terno y 7Dci#mente cambiar de estado 1 a <. .aranti8ando el Estado L7ico en el !in de entrada !a 7orma de garanti9ar e# estado #gico de cua#:uier -in de entrada es (aciendo uso de #as cone)iones PU!!2UP PU!!2 'F? con resistencias. !os $a#ores recomendados de #a resistencia son de 4.4P -ara Pu##2U- y de 44< '(m -ara Pu##2 oIn

Encender un led con un !ulsador

U1
68 6? ; O3C6'C)J*# O3C1'C)JOU% MC)R RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI: P*C6890;A 6: 60 6 1 @ 8 : 0 > 62 66 61 6@

R6
@@2R

R1
@@2R

$6
)E$H.REE#

PROGRAMA CION PICBASIC QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 18I&% ; 1 R ec#ara Puerto % como entrada !''P5 IF P'81%.< ; 1 1>*? R &i -resionamos e# -u#sador, #uego... P%U&* /< R %ntirrebote >I@> P'81B.< R *ncendemos e# #ed conectado a este -in *? IF @'1' !''P *? QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ

Encender un led 9ue destelle con un !ulsador y a!a7arlo con otro !ulsador

U1
68 6?

R@
;Q:

O3C6'C)J*# O3C1'C)JOU% MC)R

RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI:

6: 60 6 1 @ 8 : 0 > 62 66 61 6@

R6
@@2R

R1
@@2R P*C6890;A

$6
)E$H.REE#

PROGRAMA EN PICBASIC QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 18I&% ; 1 R ec#ara Puerto % como entrada !''P5 IF P'81%.< ; 1 1>*? R &i -resionamos e# -u#sador, #uego... P%U&* /< R %ntirrebote @'1' I?1*8MI1*?1* =Jamos a #a eti:ueta I?1*8MI1*?1* *? IF @'1' !''P I?1*8MI1*?1*5 >I@> P'81B.<5 P%U&* 2<< !'F P'81B.<5 P%U&* 2<< @'1' I?1*8MI1*?1* *? QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ E/ER%I%IO" PROP#E"TO" $ise:ar el sistema de arran9ue directo de un motor. "ecuencia l7ica- 4 ; & $ise:ar el sistema de arran9ue de un motor con in<ersin de 7iro. "ecuencia l7ica- 44 ; &4 ; 4& $ise:ar el sistema de arran9ue de un motor en cone=in Estrella ; Tri>n7ulo. "ecuencia l7ica- 444 ; &4& ; &&4

Disear un contador de 0-9 en binario

U1
68 6?

R@
;Q:

O3C6'C)J*# O3C1'C)JOU% MC)R

RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI:

6: 60 6 1 @ 8 : 0 > 62 66 61 6@

R6
@@2R

R; R? R8

@@2R @@2R

R1
@@2R P*C6890;A

@@2R 62 > 0 : 8 ? ; @ 1 6

U6
)E$HIAR.RAP-H.R#

PRO.R+,+ EN PI%5+"I% QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ I J%8 BM1* 18I&% ; 1 R ec#ara Puerto % como entrada 18I&B ; < R ec#ara Puerto B como sa#ida P'81B ; < R Inicia#i9amos e# Puerto B en < !''P5 IF P'81%.< ; 1 1>*? R &i -resionamos e# -u#sador, #uego... P%U&* /< R %ntirrebote F'8 I;< 1' 9 R !a $ariab#e I cuenta de < a 9 ascendente P'81B ; I R y se escribe en e# -uerto B en cada incremento P%U&* /<< R *sto se (ace cada <./ seg. ?*C1 I *? IF @'1' !''P *? QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ

,+NE/O $E $I"PL+? @IA

66 61 6@ 6; 6? 68 6: 60 6> 12

T+5L+ P+R+ EL ,+NE/O $E $I"PL+? $E %+TO$O %O,#N

< 1 2 6 4 / + 4 8 9

222 222 222 222 222 222 222 222 222 222

+6 <+ 91 49 1<2 1<9 12/ <4 124 111

LA INS R!CCI"N LOO#!P


!''PUP 'btiene o e)trae $a#ores a#macenados en una tab#a y #o ##e$a a una $ariab#e. "INT+XI" !''PUP Indice, S$a#or1, $a#or2, $a#or6B $a#or ?T, Jariab#eLsa#ida E/E,PLO!''PUP 2, S12, 14, 6/, 2, 1<T, ato En este ejemplo estamos extrayendo el tercer valor (se cuenta desde 0) de la tabla a la variable Dato. Es decir despus del proceso la variable Dato tendr el valor de 35. EJERCICIOS PRACTICOS

1* C!n%"d!r de 0 > ? 6/"nd! di/'#"@ de 7 /e)&en%!/

U1
68 6?

R@
;Q:

O3C6'C)J*# O3C1'C)JOU% MC)R

RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI:

6: 60 6 1 @ 8 : 0 > 62 66 61 6@

R6
@@2R

R; R? R8 R: R0 R>

@@2R @@2R @@2R @@2R @@2R

R1
@@2R P*C6890;A

@@2R

PROGRAMA EN PCBASIC AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA I +AR 8BTE NUM +AR 8BTE TRISA C 1 D De #"r" P6er%! A !&! en%r"d" TRIS8 C 0 D De #"r" P6er%! 8 !&! /"#id" PORT8 C 0 E Ini i"#iF"&!/ e# P6er%! 8 en 0 LOOPG IF PORTA*0 C 1 THEN D Si 're/i!n"&!/ e# '6#/"d!r$ #6e)!*** PAUSE 20 D An%irreb!%e FOR IC0 TO ? LOO1UP I$I6.$6$?1$7?$102$10?$122$7$127$111J$ NUM DE4%r"e d"%! PORT8 C NUM D E/ ribe e# d"%! e4%r"id! en e# '6er%! 8 '"6/e 200 D E/'er" 0*2 /e) NE:T I ENDIF =OTO LOOP END AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

2* C!n%"d!r de 0 > ? 6/"nd! di/'#"@ de 7 /e)&en%!/ !n d!/ '6#/"d!re/ "/ enden%e @ de/ enden%e

U1
68 6?

R@
;Q:

O3C6'C)J*# O3C1'C)JOU% MC)R

RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI:

6: 60 6 1 @ 8 : 0 > 62 66 61 6@

R6
@@2R

R; R? R8 R: R0 R>

@@2R @@2R @@2R @@2R @@2R

R1
@@2R P*C6890;A

@@2R

R62
@@2R

PRO=RAMA EN PIC8ASIC AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA I +AR 8BTE NUM +AR 8BTE TRISA C 1 TRIS8 C 0 PORT8 C 6. IC0 LOOPG IF PORTA*0 C 1 THEN D Si 're/i!n"&!/ e# '6#/"d!r$ #6e)!*** PAUSE 200 D An%irreb!%e ICIM1 D A 6&6#"d!r #!!N6' I$I6.$6$?1$7?$102$10?$122$7$127$111J$n6& DE4%r"e d"%! PORT8Cn6& D E/ ribe e# d"%! e4%r"id! en e# '6er%! 8 ENDIF IF I OC10 THEN IC? ENDIF D N! de," P6e '"/e de ? D De #"r" P6er%! A !&! en%r"d" D De #"r" P6er%! 8 !&! /"#id" D Ini i"#iF"&!/ e# P6er%! 8 en 6. K0L

IF PORTA*1 C 1 THEN D Si 're/i!n"&!/ e# '6#/"d!r$ #6e)!*** PAUSE 200 D An%irreb!%e ICI91 #!!N6' I$I6.$6$?1$7?$102$10?$122$7$127$111J$n6& DE4%r"e d"%! PORT8Cn6& D E/ ribe e# d"%! e4%r"id! en e# '6er%! 8 ENDIF IF IQC0 THEN IC1 ENDIF D N! de," P6e b",e de 0

=OTO LOOP END AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Operadores Matem t!"os


1*M6#%i'#i " iRn P8P e-e %S" &6#%i'#i " i!ne/ 16 4 16 bi%/ *E# !'er"d!r A de36e#3e #!/ 16 bi%/ in-eri!re/ de# re/6#%"d! de .2 bi%/** E# !'er"d!r AA de36e#3e #!/ 16 bi%/ /6'eri!re/ de# re/6#%"d! de .2 bi%/* E/%!/ d!/ !'er"d!re/ '6eden /er 6%i#iF"d!/ en !n,6n%! '"r" re"#iF"r &6#%i'#i " i!ne/ de 16 4 16 bi% P6e 'r!d6F "n re/6#%"d!/ de .2 bi%/* E# !'er"d!r A/ de36e#3e #!/ 16bi%/ &edi!/ de #!/ .2* E,G I C 22 A 0 I C 22 AA 0 IC 122 A/ 20 2* Di3i/iRn P8P e-e %6" di3i/i!ne/ de 16 4 16 bi% * E# !'er"d!r / de36e#3e e# re/6#%"d! de 16 bi% * E# !'er"d!r // de36e#3e e# re/%! K&Rd6#! de# nS&er!L* E,G I C 200 / 10 EE# re/6#%"d! /er( 20 I C .0 // 7 EE# re/6#%"d! /er( 2 .* De/'#"F"&ien%! L!/ !'er"d!re/ QQ @ OO de/'#"F"n 6n 3"#!r T" i" #" iFP6ierd" R dere T" re/'e %i3"&en%e $ 1 " 12 3e e/ *L!/ bi%/ de/'#"F"d!/ /e !#! "n en 0 * E,G I C 10 QQ . U De/'#"F" 10 %re/ #6)"re/ " #" iFP6ierd" K i)6"# " &6#%i'#i "r '!r 8L I C 10 OO 1 U De/'#"F" 10 6n" '!/i iRn " #" dere T" Ki)6"# " di3idir '!r 2 L S!n &"@!r&en%e 6/"d!/ en #"/ in/%r6 i!ne/ IF *** THEN EE# re/6#%"d! /er( 100 en bin"ri!$ 6n nS&er! de 8 bi%/ K8 in-eri!re/L EE# re/6#%"d! /er( 0 en bin"ri! K#!/ 8 bi%/ /6'eri!re/L EE# re/6#%"d! /er( #!/ 8 bi%/ &edi!/ de# %!%"# de .2

O'er"d!r C ! CC QO ! VC Q O QC OC

De/ ri' iRn I)6"# N! i)6"# $ di-eren%e Men!r M"@!r Men!r ! i)6"# M"@!r ! i)6"#

O'er"d!r AND R WW OR R I I :OR R X X NOT AND NOT OR NOT :OR

De/ ri' iRn AND #R)i ! OR #R)i ! OR e4 #6/i3! #R)i ! NAND #R)i ! NOR #R)i ! N:OR #R)i !

USO DEL MODIFICADOR XYFF E# &!di-i "d!r XYFF 'er&i%e !b%ener "6%!&(%i "&en%e e# !&'#e&en%! de 6n nS&er!* Sin%"4i/G NS&er! XFF E,e&'#!G P!de&!/ !&'#e&en%"r -( i#&en%e en e# e,er i i! "n%eri!r #" /"#id" de bi%/ '"r" (%!d! !&Sn @ 6%i#iF"r#" '"r" (n!d! !&Sn* P!r%8 C 7? XFF De e/%" -!r&" e/%"&!/ 6%i#iF"nd! 7? P6e en 6n di/'#"@ de (%!d! !&Sn -!r&"rZ" e# nS&er! .* E# &!di-i "d!r XFF T" e P6e @" n! /"#)" e# 7? /in! e# !&'#e&en%!$ e/ de ir$ 08 P6e -!r&" e# &i/&! nS&er! . en 6n di/'#"@ de (n!d! !&Sn*

MANEJO DE DISPLAY #II$


DISPLAB MULTIPLE:ADO
L" &6#%i'#e4" iRn de di/'#"@/ !n/i/%e en 6%i#iF"r d!/ ! &(/ di/'#"@/ !ne %"nd! /6/ %er&in"#e/ de #!/ /e)&en%!/ en '"r"#e#! 'er! /e'"r"nd! e# %er&in"# de (n!d! ! (%!d! !&Sn$ /e)Sn /e" e# %i'! de di/'#"@* E# -6n i!n"&ien%! de #!/ di/'#"@ &6#%i'#e4"d!/ !n/i/%e en en3i"r e# d"%! " &!/%r"r/e en e# di/'#"@ @ #6e)! /e#e i!n"r en P6e di/'#"@ debe &!/%r"r/e T"bi#i%"nd! ! de/T"bi#i%"nd! e# (%!d! ! (n!d! !&Sn*

Seleccin del Display

Entrada de datos

&e en$Ha e# / como dato y se (abi#ita e# 1er dis-#ay des(abi#itando #os otros dos

&e en$Ha e# 6 como dato y se (abi#ita e# 2do dis-#ay des(abi#itando #os otros dos

&e en$Ha e# 4 como dato y se (abi#ita e# 6er dis-#ay des(abi#itando #os otros dos

&i aumentamos #a $e#ocidad de en$Ho de datos y se#eccin de# dis-#ay ##egarD un momento en :ue #a $ista (umana $erD encendido #os 6 dis-#ay a# mismo tiem-o. *sto se -roduce a-ro)imadamente a -artir de 24>9 -or segundo.

H+5ILIT+%I0N B $E"H+5ILIT+%I0N $EL $I"PL+? ,E$I+NTE %ONT+$ORE" +NILLO !a me"or 7orma de contro#ar #a (abi#itacin.des(abi#itacin de #os dis-#ays en #a mu#ti-#e)acin es (aciendo uso de contadores ani##o, ya :ue estos des-#a9an #a in7ormacin desde e# 1er bit (asta e# #timo -ara $o#$er a em-e9ar. %4 < < < < < < < 1 %+ < < < < < < 1 < %/ < < < < < 1 < < %4 < < < < 1 < < < %6 < < < 1 < < < < %2 < < 1 < < < < < %1 < 1 < < < < < < %< 1 < < < < < < <

*U*8CICI'& P8%C1IC'&

$I"E6+R #N %ONT+$OR +NILLO $E ( 5IT"


R:
@@2R

R8 U6
68 6? ; O3C6'C)J*# O3C1'C)JOU% MC)R RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI: P*C6890;A 6: 60 6 1 @ 8 : 0 > 62 66 61 6@

@@2R

R@

R6 @@2R
@@2R

R1 R; R? R0

@@2R @@2R @@2R @@2R

62 > 0 : 8 ? ; @ 1 6

U1
)E$HIAR.RAP-H.R#

PROGRAMA EN PICBASIC QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 18I&B;< = ec#ara e# -uerto B como sa#ida I J%8 F'8 = ec#ara $ariab#e I como ti-o F'8 I;1 =Inicia#i9a $ariab#e I ; 1 8*P*1I85 P'81B;I =*scribe I en e# -uerto B P%U&* 2<< =*s-era 2<< m& I ; IQ2 =Mu#ti-#ica -or 2 a I y guarda en I IF IV2/+ 1>*? =&i I es mayo a 2/+, #uego... I;1 =I es igua# a 1 *? IF @'1' 8*P*1I8 =Ja a re-etir *? QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ

,O"TR+R EL NC,ERO DE EN $O" $I"PL+?" $E FNO$O %O,CN ,#LTIPLEX+$O"

66 61 6@ 6; 6? 68 6: 60 6> 12

R62
;Q:

M6
IC?;0

M1
IC?;0

U1
68 6?

R66
RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI: 6: 60 6 1 @ 8 : 0 > 62 66 61 6@

R@
;Q:

O3C6'C)J*# O3C1'C)JOU% MC)R

R6
@@2R

;Q:

R; R? R8 R: R0 R>

@@2R @@2R @@2R

P*C6890;A

@@2R @@2R

@@2R

T+5L+ P+R+ EL ,+NE/O $E $I"PL+? $E +NO$O %O,#N

?mero < 1 2 6 4 / + 4 8 9

)g7edcba <1<<<<<< <1111<<1 <<1<<1<< <<11<<<< <<<11<<1 <<<1<<1< <<<<<<1< <1111<<< <<<<<<<< <<<1<<<<

*n decima# +4 121 6+ 48 2/ 18 <2 12< << 1+

PROGRAMA EN PICBASIC

QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 18I&B ; < R ec#ara Puerto B como sa#ida P'81B ; < R Inicia#i9amos e# Puerto B en < !''P5 >I@> P'81%.2 R >abi#ita 8%2 !'F P'81%.6 R es(abi#ita 8%6 P'81B;48 R *scribe 6 en e# dis-#ay -ause 2<< R *s-era 2<< ms >I@> P'81%.6 R >abi#ita 8%6 !'F P'81%.2 R es(abi#ita 8%2 P'81B;18 R *scribe / en e# dis-#ay P%U&* 2<< R *s-era 2<< ms @'1' !''P *? QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ

,O"TR+R L+ P+L+5R+ GHOL+H EN ) $I"PL+?" $E * "E.,ENTO" ,#LTIPLEX+$O"

U1
68 6?

R@
;Q:

O3C6'C)J*# O3C1'C)JOU% MC)R

RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI:

6: 60 6 1 @ 8 : 0 > 62 66 61 6@

P*C6890;A

R62
@@2

R66
@@2 @@2

R1 R:
@@2

T+5L+ P+R+ EL ,+NE/O $E $I"PL+? %FTO$O %O,CN @LETR+"A

!etra % C d * F > ! ' P U

)g7edcba <111<111 <<111<<1 <1<1111< <1111<<1 <111<<<1 <111<11< <<111<<< <<111111 <111<<11 <<11111<

*n decima# 119 /4 94 121 116 118 /+ +6 11/ +2

PROGRAMA EN PICBASIC QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 18I&% ; < R ec#ara Puerto % como sa#ida 18I&B ; < R ec#ara Puerto B como sa#ida P'81% ;< R Inicia#i9amos e# Puerto % en < P'81B ; < R Inicia#i9amos e# Puerto B en < !''P5 P'81%;4 P'81B;119 P%U&* 1< P'81%;11 P'81B;/+ P%U&* 1< P'81%;16 P'81B;+6 P%U&* 1< P'81%;14 P'81B;118 P%U&* 1< @'1' !''P R >abi#ita so#o dis-#ay 4 R *scribe % R *s-era 1< ms R >abi#ita so#o dis-#ay 6 R *scribe ! R *s-era 1< ms R >abi#ita so#o dis-#ay 2 R *scribe ' R *s-era 1< ms R >abi#ita so#o dis-#ay 1 R *scribe > R *s-era 1< ms

*? QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ

%ONTROL $E POTEN%I+ %ON RELI

)6

220+
112C

R)6 $6
6#;226 OM*-H3-H661)

U6
68 6? ; O3C6'C)J*# O3C1'C)JOU% MC)R RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI: P*C6890;A 6: 60 6 1 @ 8 : 0 > 62 66 61 6@

R:
6Q

M6
IC?;0

%ONTROL $E POTEN%I+ %ON OPTO+%OPL+$OR *# contro# de -otencia mediante o-toaco-#ador es e# mas adecuado -ara mane"ar tensiones a#ternas de 22<J con muc(a seguridad -ara e# microcontro#ador.

)6 U6
68 6? ; O3C6'C)J*# O3C1'C)JOU% MC)R RA2 RA6 RA1 RA@ RA;'%2CJ* RI2'*#% RI6 RI1 RI@ RI; RI? RI8 RI: P*C6890;A 6: 60 6 1 @ 8 : 0 > 62 66 61 6@

R:
@@2

U1
6 8

R6
@@2R

112C

220+

1
Bero Crossing

U@
M;26?)?

MOC@2@6M

Вам также может понравиться