Referentie Microbe taal

if

Conditionele tweesprong. Syntax:

if [expression] then [statement]

of

if [expression] then
{
        [statement block]
}

Vergelijkbaar met else:

else [statement]

of

else
{
        [statement block]
}

Voorbeeld 5.2. if

if porta.0 is high then
{
        delay 200
}
else
{
        delay 300
}

alias

Vervangt een tekenreeks door een ander als alias. Syntax:

alias [from] [to]

repeat

Herhaalt het uitvoeren van het statement block uit totdat de expressie waar is. De controle of de expressie waar is, wordt na het statement block uitgevoerd, daarom zal de statement block altijd tenminste een keer worden uitgevoerd. Syntax:

repeat
{
        [statement block]
}
until [expression]

while

Vergelijkbaar met repeat, dit herhaalt het uitvoeren van het statement block uit. Maar de controle of de expressie waar is wordt voor de de uitvoer gedaan, niet daarna. daarom zal als uitkomst van de controle op de expressie negatief is, de statement nooit worden uitgevoerd. Syntax:

while [expression]
{
        [statement block]
}

goto

Dit zorgt dat het programma verdergaat met de volgende statement na het opgeven label. Goto syntax:

goto [labelname]

Label syntax:

labelname:

Het vermijden van het gebruik van goto wordt vaak als goed programmeren gezien. Het gebruik van control statements en subroutines zal resulteren in een beter leesbaar programma.

Voorbeeld 5.3. goto

goto MyLabel

...

[MyLabel]:
// Code gaat verder op dit punt

call

Roept een subroutine aan. Syntax:

call [SubName]

waarbij SubName de naam van de subroutine is die u aanroept.

delay

Dit veroorzaakt dat het uitvoeren van de code voor de opgeven periode stopt. De interval is in millisecondes. Syntax:

delay [interval]

Opmerking

Op dit moment, wordt door Microbe aangenomen dat de PIC werkt met een kloksnelheid van 4MHz - bijv. elke instructie heeft 1 microseconde nodig om verwerkt te worden. Als dat niet het geval is, dan moet u de interval proportioneel aanpassen.

sevenseg

Dit wordt gebruikt voor het definiëren van de pinbezetting van een (common cathode) zeven segment display verbonden met de PIC. Syntax:

sevenseg [name] [a] [b] [c] [d] [e] [f] [g]

waar [a]...[g] de pinnen van de PIC zijn waarmee de respectievelijke segmenten van de zeven segment display zijn verbonden. De pinnen kunnen zowel als PORTX.N of RXN worden geschreven.

Bij het tonen van een cijfer op de zeven segment, wordt de pin bezetting behandelt als een alleen lezen variabele.

Voorbeeld 5.4. Een uitvoer naar een zeven segment definiëren

sevenseg seg1 RB0 RB1 RB2 RB3 RB4 RB5 RB6
seg1 = x + 2


toetsenbordje

Dit gebruikt u om de pinnen van een PIC te definiëren waaraan een toetsenbordje is verbonden. Syntax:

keypad [name] [rij 1] ... [rij 4] [colum 1] ... [colum n]

waar [rij 1] ... [rij 4] en [colum 1] ... [colum n] de pinnen van de PIC zijn waaraan de respectievelijke rijen en kolommen van het toetsenbordje zijn verbonden (op dit moment kunt u het aantal rijen niet wijzigen). zie de paragraaf met de naam “sevenseg” (hierboven) voor meer informatie over pin bezetting.

U moet de kolommen van het toetsenbord met 100k weerstanden omlaag trekken naar aarde. U moet de pinnen van de rijen als uitgang configureren en de pinnen van de kolommen als ingangen. Nadat het toetsenbordje is gedefinieerd, wordt het behandelt als een read only variabel.

Voorbeeld 5.5. Een toetsenbord definiëren en uitlezen

keypad keypad1 RB0 RB1 RB2 RB3 RB4 RB5 RB6
x = keypad1


De waarden die u van een toetsenbord inleest zijn standaard:

  • De waarde van het getal als het numerieke toets is (1 tot 3 voor de bovenste rij; hexadecimal A tot D langs de vierde kolom omlaag en verder voor elke extra kolom).

  • 253 voor de toets in rij 4, kolom 1.

  • 254 voor de toets in rij 4, kolom 3.

U kunt deze waarden herdefiniëren door gebruik van het alias commando, waarbij de naam van de toets in rij x, kolom y (rijen en kolommen starten bij 1), is Keypad_x_y. Bijvoorbeeld, om de ster toets op een 4x3 toetsenbord de waarde nul te geven, moet u de volgende alias gebruiken:

Voorbeeld 5.6. De toets van een toetsenbord vervangen door een waarde

alias Keypad_4_1 0