LABORATORIO 1 – RULETA DIGITAL
1 5ediante 5ediante dos displa+s displa+s de 6 segmentos segmentos"" multiple7 multiple7ados" ados" se
LABORATORIO 1 – RULETA DIGITAL 5endo&a =a#ier" 8aname>o )'arles,
— Haciendo uso del Abstract
lenguaje C, implementando el microc microcont ontro rolad lador or PIC18F PIC18F455 4550, 0, desarr desarroll ollamo amoss una ruleta digital que da la opción de elegir un nmero ! dar inicio a un sorteo entre 1" nmeros entre los cuales se encuentra el elegido, al #inal del sorteo uno de dos $%&s se encender', indicando si se (a ganado o perdido)
#isuali&ar el numero !ugado,
I) I*+-&.CCI/* Un micro icroco con ntro trolado ador es un circ circu uito ito inte integ grad rado programable ue e!ecuta ordenes grabadas en su memoria" se compone de #arias etapas $uncionales ue cump cumple len n una una tare tareaa en espe espec% c%$i $ico co para para real reali& i&ar ar las las $unciones ue se le 'an ordenado( uno de los lengua!es usados para programar estos circuitos integrados es el lengua lengua!e !e )" para para esto esto se necesi necesita ta un compil compilado adorr ue tradu&ca el c*digo generado + lo grabe en la memoria del del disp dispos osit iti# i#o( o( con con esta estass 'err 'erram amie ient ntas as pode podemo moss impl implem emen enta tarr di#er i#ersa sass apli aplica caci cion ones es ue ue lle# lle#an an a solucionar problemas,
Fig.2, Displays multiplexados.
II) P-C%&II%*+ A. Diagrama esquemático esquemático La rule ruleta ta digi digita tall debe debe tene tenerr dos dos puls pulsad ador ores es-- uno uno para para incrementar el #alor del n.mero apostado + otro para e!ecutar la orden del sorteo de la ruleta" conectados a los pines A/ + A0 respecti#amente,
Todo Todo esto conecta conectado do a los puertos puertos respec respecti# ti#os os del 19:/003,
8I) 8I)
B. Código 8ara reali&ar el c*digo de la ruleta utili&aremos" como se 'a mencionado antes" el lengua!e ) + el compilador ));, 8rimero de$inimos las directi#as del programa-
Fig. 1, Pulsador
Dic'os Dic'os pulsadore pulsadoress tendrn tendrn resistenci resistencias as de pull2up pull2up como se muestra en la fig.1 la fig.1"" de esta manera" al presionarlo en#iar un 3 al pin de entrada, Una serie de LEDs de encendern se encendern desde el LED 1 'asta el 14 a una #elocidad constante pero #isible( + dos leds ms indicarn si se 'a ganado o se 'a perdido,
Fig. , directi!as del programa.
En las directi#as se de$inen- el microcontrolador a usar" se con$iguran los $uses" se de$ine la $recuencia con la ue se #a a traba!ar + los puertos ue se #an a usar" en este caso se usarn todos los puertos, ;eguido de esto se de$inen las #ariables" dentro de estas" se 'a de$ini de$inido do una tabla tabla ue ser ser la encarg encargada ada de conten contener er los los #alores correspondientes a los n.meros del 3 al < para mostrar el n.mero !ugado por medio de los displa+s,
LABORATORIO 1 – RULETA DIGITAL
4
Luego" se procede a de$inir la $unci*n principal donde incluiremos los #alores iniciales de las #ariables + las condiciones iniciales del programa" adems de de$inir las entradas + las salidas ue #amos a utili&ar de cada puerto,
Fig.", #u$ció$ pri$cipal.
Utili&aremos los puertos A"B") + D" las entradas se de$inen- 3 para salida" 1 para entrada" en el caso del puerto a como usaremos los pines A/ + A0 para los pulsadores" los con$iguramos como entrada + el resto de pines como salida" como medida recomendada" poniendo esta combinaci*n de bits en un ?ord obtendremos 33113333" lo ue es igual en 'e7adecimal a @3, A'ora entramos a un bloue in$inito" dando las indicaciones + condiciones ue debe seguir el programa para cumplir con su aplicaci*n, Dentro de las condiciones para reali&ar la ruleta" se especi$ica ue los pulsadores deben tener un antirrebote" de tal manera ue el #alor apostado solo cambia en el momento en el ue el pulsador se suelta,
Fig. ', ma$e(o de displays.
El c*digo anterior es una $unci*n a la ue salta el programa cuando es llamada + luego retorna al lugar donde estaba" esta en esta $unci*n le indicamos ue cree dos #ariables de tipo entero llamadas und + dec" luego se ponen en ni#el ba!o los comunes de cada displa+" posteriormente se en#%a el dato a cada displa+ por separado + se acti#a uno a la #e& dentro de un tiempo mu+ corto" lo cual 'ace ue este parpadeo no sea percibido por el o!o 'umano, 8osterior a esto" se procede a ordenar la secuencia de los LEDs ue se acti#a al presionar el pulsador correspondiente + se detiene en el LED ue corresponde al n.mero apostado" tambin se captura el n.mero en el ue se encuentra en ese momento el aleatorio,
Anteriormente se de$inieron las #ariables a4 + a5 para guardar en ellas el dato recibido de los pines A/ + A0"
E7iste una #ariable de tipo entero &C ue se de$ini* anteriormente + cada #e& ue el programa lega a su $in se incrementa 'asta llegar a 14 + #uel#e a iniciarse en 1" esta #ariable ser comparada con el n.mero apostado" a partir de esto se concluir si se 'a ganado o perdido,
)omo los pulsadores los conectamos con resistencias de pull2 up" signi$ica ue al ser pulsado en#iar un 3 l*gico al pin correspondiente + al ser soltado en#iar el ni#el l*gico 1 ue en#%a constantemente( para el c*digo antirrebote debemos decirle al programa ue mientras la entrada del pin sea 3" el programa debe uedarse en el estado actual,
Fig.)
Fig. %
Fig. &, código a$tirrebote
uedarse en el estado actual inclu+e en este casoC" seguir mostrando el n.mero apostado en los displa+s" por esto lo incluimos en el c*digo antirrebote,
LABORATORIO 1 – RULETA DIGITAL
@ Fig. *
el c*digo mostrado en la fig. 9 le da la orden a los LEDs ue enciendan de uno en uno 'asta el 14,
III) C-*C$.I-*% abiendo aprendido + e7perimentado con el lengua!e )" concluimos ue aun ue no se tiene tanto control sobre las se>ales" o ms bien conciencia de los #alores l*gicos ue toma cada registro de la memoria del microcontrolador" es muc'o ms c*modo traba!ar" a di$erencia de programar en ensamblador" el lengua!e usado en este laboratorio simpli$ica muc'o ms las ordenes" 'aciendo ms l*gico e intuiti#o el c*digo + por ende" muc'o ms $cil de interpretar,