Un dados de LED con un PIC 16F84 (o 16F88) (7 / 12 paso)

Paso 7: Generar números aleatorios

Ahora que podemos generar datos en una pantalla de LED dados individual, necesitamos alguna manera de generar un número aleatorio.

Matemáticamente, la generación de un número verdaderamente aleatorio es un ejercicio muy complejo. En nuestro sencillo circuito PIC, podemos generar un número aleatorio por un par de medios;

  • Un número aparentemente aleatorio puede obtenerse por la sincronización cuánto tiempo se mantiene el botón abajo, usando un temporizador que incrementa muy rápidamente. (Sería una persona muy rara que podría pulsado el botón exactamente 2243 mS cada vez).
  • Alternativamente, podríamos implementar un generador de números pseudo-random matemático. Esto requiere el uso de la multiplicación y división. Un generador pseudo-random genera una secuencia larga de números que eventualmente se repite, después de muchos ciclos.

En nuestro proyecto, el método más sencillo que podemos utilizar para generar un número aleatorio es el temporizador interno (TMR0), que constantemente es incrementar en 1/4 de la velocidad del reloj (aproximadamente 256KHz), la muestra y almacenar en una variable continua, mientras se mantiene pulsado el botón.

Nuestro microprocesador PIC 16F84 o 16F88 tiene 68 posiciones de memoria que pueden utilizarse como variables. Para definir una variable, simplemente declaramos una constante que se refiere a una ubicación particular de memoria y almacenar números en esa localización de memoria según sea necesario.

Una rutina de código corto para realizar esta función sería la siguiente;

; una ubicación de memoria para almacenar nuestro número aleatorio

RandomA EQU 30; define dirección de memoria a

; almacenar un número aleatorio

Button_Loop

MOVFW TMR0; obtener el valor actual del temporizador

MOVWF RandomA; almacenar en RandomA

BTFSS PortB, 0; ¿Es el botón de abajo todavía?

GOTO Roll_Down; no, saltan y lento

; abajo de la pantalla

CALL Display_Result; Sí, Mostrar la lista actual

CALL Short_Delay; esperar un tiempo

CLRF idea; claro ambos dados otra vez

CLRF DieB

GOTO Button_Loop; y otra vez.

Roll_Down:; Aquí va el resto del programa.

; RandomA contiene un número que se ha seleccionado al azar

; depende de cuánto se ha celebrado el botón de.

Artículos Relacionados

Pantalla de 7 segmentos LED con controlador PIC y Flowcode V5

Pantalla de 7 segmentos LED con controlador PIC y Flowcode V5

En primer lugar, si usted tiene cualesquiera preguntas, sienta libre de comentar! Estaría más que feliz de contestar tu pregunta lo mejor posible!!Materiales utilizados:-PIC 18F452 microcontrolador (hará cualquier microcontrolador PIC con suficientes
Parpadear un LED con lenguaje ensamblador y un PIC

Parpadear un LED con lenguaje ensamblador y un PIC

para decir lo tan obvio, hay muchos sabores de microcontroladores en el mundo.  Existen innumerables aplicaciones para ellos.  Este Instructable cubrirá los pasos necesarios a parpadear un LED usando un microcontrolador PIC y el lenguaje de ensamblad
Tarjetas de Navidad de LED con PIC 10F200

Tarjetas de Navidad de LED con PIC 10F200

este es un instructivo sobre cómo crear una tarjeta de Navidad del LED con el microcontrolador PIC 10F200.Este PIC tiene seis pernos y es del tamaño de un transistor SMD, es ideal para aplicaciones de bajo perfil y puede fácilmente introducirse cuand
Situado o apagar un led con un celular motorola c261 y el pic 16f84a mediantes comandos en

Situado o apagar un led con un celular motorola c261 y el pic 16f84a mediantes comandos en

En este proyecto vamos a situado y apagar un led a través de comandos en con el Motorola C261 y el famoso microcontrolador 16F84A.Paso 1: En este proyecto vamos a situado y apagar un led a través de comandos en con el Motorola C261 y el famoso microc
Batería DIY: Energía una linterna de LED con cambio de bolsillo!

Batería DIY: Energía una linterna de LED con cambio de bolsillo!

En este artículo, le mostraré cómo reemplazar la típica 3 AAA batería común baratos linternas de LED con cambio de bolsillo de accionar la linterna en una pizca. La batería creada incluso cabrá derecho interior donde debe ir la batería normal! Todos
Bola que destella LED con agua salina

Bola que destella LED con agua salina

La bola de LED es un proyecto basado en la propiedad eléctrica de agua salina. Primero poner el cátodo del LED en una taza con agua salada, conecta el ánodo al polo positivo de una batería y también conectar un cable al polo negativo de la batería. S
3 x 3 x 3 cubo de LED con control opcional de pc

3 x 3 x 3 cubo de LED con control opcional de pc

este es mi 3 x 3 x 3 cubo led. Original es que controlaba con un pic16f628a. Tiene 27 leds y cada uno de ellos puede ser controlado por el pic. Puedes ver un video de mi cubo con el pic.Tengo un archivo, voorbeeldprogramma.hex, también subido por lo
Multivibrador astable (intermitencia LED) con circuito escriba

Multivibrador astable (intermitencia LED) con circuito escriba

Un multivibrador astable es un circuito oscilante entre dos circuitos de resistencia-condensador en el que el estado de encendido de dos circuitos de RC no es estable.Es decir, dos circuitos de encender y apagar con el uso de transistores. En este ci
Activado por voz de LEDs con Arduino

Activado por voz de LEDs con Arduino

Este proyecto es una extensión para el reconocimiento de voz con Arduino (leandro4b). Sin embargo, en lugar de usar 3 LEDs de color separados, usé un multicolor RGBW LED emisor de 4 canales. Tuve la oportunidad de trabajar en LED Engin el verano pasa
Soldadura del árbol del LED con forma libre

Soldadura del árbol del LED con forma libre

Este es un divertido proyecto soldadura forma libre para las fiestas. Utiliza dos circuitos flip-flop a 16 LED, y usted puede organizar cualquier forma como. Este Instructable le mostrará un (especie de) forma del árbol.Forma libre de soldadura no ut
Iluminación LED con Arduino

Iluminación LED con Arduino

Este es el último tutorial de LED. Esto le dará los bloques de construcción básicos necesitados para hacer cualquier cosa con LED. En la foto son todas las cosas que necesitas para este tutorial entero, que consiste en un par de proyectos de mini. La
4 x 4 x 4 interactivo-cubo del LED con Arduino

4 x 4 x 4 interactivo-cubo del LED con Arduino

para explicar mi 4 x 4 x 4 cubo del LED interactivo publicado antes, un poco más claro, voy a intentar hacer mi primer paso por paso instructable.Este 4 x 4 x 4 cube es interactivo usando la esquina de cuatro LEDs LEDs y sensores que reaccionan a la
Control de tira de LED con atenuador y circuitos de pulsos Audio

Control de tira de LED con atenuador y circuitos de pulsos Audio

Este es un circuito realmente pongo juntos basado en otro Instructable para el pulso a la música: Este Instructable me puso a pensar que es un poco una basura para tener tira LED sentado en el ferrocarril de imagen que puede ser utilizado cuando está
Cómo limpiar un centavo con salsa picante

Cómo limpiar un centavo con salsa picante

me encanta salsa (algunas personas me llaman "Baws de sierras") pero por alguna razón mi boca no puede manejar el calor de la salsa caliente. Algo sucede cuando salsa caliente golpea mi paladar que envía mi boca en un frenesí, me da un sudor frí