Een LED dobbelsteen met behulp van een PIC 16F84 (of 16F88) (7 / 12 stap)

Stap 7: Het genereren van willekeurige getallen

Nu we kunt gegevens op een individuele LED dobbelstenen display uitvoeren, moeten we een manier van het genereren van een willekeurig getal.

Wiskundig, is het genereren van een echt willekeurig getal een zeer complexe oefening. In onze eenvoudige schakeling van de PIC, kunnen we een willekeurig getal genereren door een paar middelen;

  • Een schijnbaar willekeurig getal kan worden verkregen door timing hoelang de knop is ingedrukt, met behulp van een timer die zeer snel verhoogd. (Het zou een zeer zeldzame persoon die kan houd de knop ingedrukt gedurende precies 2243 mS elke keer).
  • Afwisselend, kunnen we een wiskundige pseudo-willekeurige nummer generator uitvoeren. Dit vereist het gebruik van vermenigvuldiging en deling. Een pseudo-willekeurige generator genereert een zeer lange reeks getallen die uiteindelijk wordt herhaald, na vele cycli.

In ons project is de eenvoudigste methode die we gebruiken kunnen om een willekeurig getal genereren om te proeven van de interne timer (TMR0), die voortdurend op ¼ van de kloksnelheid (ongeveer 256KHz) is verhoogd, en op te slaan in een variabele continu, zo lang als de knop ingedrukt wordt gehouden.

Onze PIC 16F84 of 16F88 microprocessor heeft 68 geheugenlocaties die kunnen worden gebruikt als variabelen. Als u wilt definiëren een variabele, we gewoon te verklaren een constante die naar een bepaalde geheugenlocatie verwijst en getallen worden opgeslagen op de geheugenlocatie van dat zoals vereist.

Een korte code routine voor het uitvoeren van deze functie zou als volgt;

; een locatie in het geheugen voor het opslaan van onze willekeurig getal

RandomA EQU 30; geheugenadres te definiëren

; een willekeurig getal opslaan

Button_Loop

MOVFW TMR0; krijg de dagwaarde van de timer

MOVWF RandomA; opslaan in RandomA

BTFSS PortB, 0; De knop is nog steeds beneden?

GOTO Roll_Down; Nee, springen en traag

; onderaan het scherm

OPROEP Display_Result; Ja, het weergeven van de huidige worp

OPROEP Short_Delay; wacht een tijdje

CLRF VentouxTT; beide dobbelstenen weer duidelijk

CLRF DieB

GOTO Button_Loop; en loop weer.

Roll_Down:; de rest van het programma gaat hier.

; RandomA bevat een nummer dat is willekeurig geselecteerd

; afhankelijk van hoe lang de knop is ingedrukt.

Gerelateerde Artikelen

LED kerstkaarten met behulp van PIC 10F200

LED kerstkaarten met behulp van PIC 10F200

dit is een instructable over het bouwen van een LED Kerstkaart met behulp van de PIC 10F200 microcontroller.Aangezien deze PIC zes pinnen heeft en de grootte van een SMD-transistor is, het is ideaal voor low-profile toepassingen en kan gemakkelijk wo
Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Vandaag, we zullen worden ter illustratie van hoe maak je een enkele LED knipperen met behulp van een Arduino Uno-board. Door elke stap te volgen, zal je dit doel bereiken.U zal het volgende nodig:Een Arduino BoardBrood bordUSB-connectorkabelEEN LED3
LED licht met behulp van een Arduino

LED licht met behulp van een Arduino

Een Arduino is een open-source van de computerhardware, open-source software en microcontroller-gebaseerde kits voor het bouwen van digitale apparaten en interactieve objecten die kunnen voelen en aansturen van fysieke apparaten. Er zijn verschillend
LED controle met behulp van de Arduino Bluetooth en Android. (Deel 1)

LED controle met behulp van de Arduino Bluetooth en Android. (Deel 1)

Dit instructable is een eenvoudige tutorial uitleggen hoe de controle van één LED met Android's Bluetooth.U moet:Arduino UNOWeerstanden 300Ω (3 x)Weerstand 150ΩLEDJumpers;Bluetooth-Module (HC-06/andere);Android telefoon;SPP Bluetooth Apk (unWired Lit
Motie gecontroleerde RGB Led pak met behulp van Xbox 360 Kinect, Max MSP en Arduino deel 1

Motie gecontroleerde RGB Led pak met behulp van Xbox 360 Kinect, Max MSP en Arduino deel 1

Ik wilde voor de afgelopen paar maanden die ik aan een project kinect gewerkt heb gemaakt van een led outfit dat gereageerd op de bewegingen van de drager. Ik heb tot nu toe alleen de armen gedaan, en er zijn enkele problemen die moeten worden uitgew
RGB LED Tutorial (met behulp van een Arduino) (RGBL)

RGB LED Tutorial (met behulp van een Arduino) (RGBL)

LED's zijn geweldig. Maar er een punt waar het opvlammen eenvoudigweg niet voldoende is bij elk project komt. Voor deze gevallen een RGB (rood, groen, blauw) is LED het antwoord.Elke kleur gloed met een RGB LED zult u kunnen tot uw hartje begeert.Bij
Bouwen van een Bluespec LED controller met behulp van Connectal Build

Bouwen van een Bluespec LED controller met behulp van Connectal Build

Deze tutorial wordt uitgelegd hoe u de dienst van het publiek Connectal te bouwen om te bouwen en simuleren van een toepassing met hardware en software componenten die zijn geschreven in BSV en C++ met behulp van het Connectal-kader.Wij gaan ervan ui
Een LED Menorah met behulp van Chibitronics Circuit Stickers

Een LED Menorah met behulp van Chibitronics Circuit Stickers

Gehost in December onze hackerspace, Crash ruimte in Culver City, een Instructables bouwen nacht met Chibitronics Circuit Stickers. Met Channukah om de hoek, ik dacht dat een LED menora zou een perfect project om te zien wat ik kon maken met de zelfk
Een high-power LED zaklamp met behulp van een enkele AA-batterij

Een high-power LED zaklamp met behulp van een enkele AA-batterij

dit ontwerp hoogrenderende kan power LEDs op 100mA stroom en is niet veel groter dan de batterij die bevoegdheden. Het unieke circuit gebruikt 2 algemeen beschikbare transistoren (BC327 en BC337) in een oscillator te stimuleren de 1,2 of 1,5 volt uit
Multi-Color LED Lamp met behulp van een 8-kanaals LED Controller v.3

Multi-Color LED Lamp met behulp van een 8-kanaals LED Controller v.3

ik wilde om te experimenteren met het gebruik van verschillende kleuren LEDs, dan de standaard RGB, Multi-Color om effecten te creëren in een functionele lamp.Deze lamp maakt gebruik van cyaan, Magenta, geel, roze, Aqua-groen, en blauw 5mm LED's same
3 x 3 x 3 led kubus met behulp van een 555 timer en een scala van 4020 shift IC - geen programmering (voor de complete beginner zoals ikzelf)

3 x 3 x 3 led kubus met behulp van een 555 timer en een scala van 4020 shift IC - geen programmering (voor de complete beginner zoals ikzelf)

zien van een video van een 8 x 8 x 8 led kubus op you-tube, leidde me naar de instructables website voor de eerste keer, nu ik ben verslaafd. Echter had ik of moet ik zeggen hebben een fundamenteel probleem absoluut geen ervaring of kennis van elektr
1.5V LED Flasher met behulp van een oude klok

1.5V LED Flasher met behulp van een oude klok

Hi... Dit is mijn eerste instructable! Ik had al knutselen met elektronica sinds mijn kindertijd... Ik ben nu een arts, maar ik nog steeds liefde gebouw en verkennen van schakelingen en leren hoe het spul werkt...LEDs oplichten niet in 1.5V meestal a
Apple-stijl LED pulserende met behulp van een MCU $1,30

Apple-stijl LED pulserende met behulp van een MCU $1,30

de Atmel ATTiny85 chip is een 8-pins MCU dat is helemaal geweldig.  Als je hebt geprogrammeerd met de grotere jongens (de ATMega serie), dit een leuk avontuur zijn - u bent beperkt in het aantal output pinnen, maar een creatief ontwerp geeft ons een
Multifunctionele LED spel met behulp van een ATmega32 Microcontroller

Multifunctionele LED spel met behulp van een ATmega32 Microcontroller

Ten eerste zijn mijn antwoorden op de Make-To-Learn wedstrijd:Wat heeft u te maken?Ik maakte een multifunctionele LED matrix-programma, zoals mijn vorige met Arduino UNO, maar dit keer maakte ik het met een ATmega32 microcontroller. Ik gebruikte rege