Referència del llenguatge Microbe

if

Claus condicionals. Sintaxi:

if [expressió] then [sentència]

o

if [expressió] then
{
        [bloc_de_sentències]
}

De manera similar per a la resta:

else [sentència]

o

else
{
        [bloc_de_sentències]
}

Exemple 5.2. if

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

alias

L'àlies d'una cadena a una altra. Sintaxi:

alias [des de] [a]

repeat

Executa el bloc de sentències repetidament fins que l'expressió s'avalua com a certa. L'avaluació de l'expressió es realitza després del bloc de sentències, de manera que el bloc de sentències sempre s'executarà almenys una vegada. Sintaxi:

repeat
{
        [bloc_de_sentències]
}
until [expressió]

while

Similar a «repeat», això executarà repetidament el bloc de sentències. No obstant això, l'expressió s'avaluarà abans de l'execució, no després. Llavors, si l'expressió s'avalua com a falsa en el primer pas, el bloc de sentències no s'executarà. Sintaxi:

while [expressió]
{
        [bloc_de_sentències]
}

goto

Això fa que l'execució del codi continuï en la següent sentència després de l'etiqueta especificada. Sintaxi de «goto»:

goto [nom_etiqueta]

Sintaxi de l'etiqueta:

nom_etiqueta:

Sovint es considera una bona pràctica de programació evitar l'ús de «goto». L'ús de sentències de control i subrutines donarà com a resultat un programa molt més llegible.

Exemple 5.3. goto

goto Etiqueta_meva

...

[Etiqueta_meva]:
// El codi continuarà en aquest punt

call

Crida a una subrutina. Sintaxi:

call [SubNom]

on SubNom és el nom de la subrutina a cridar.

delay

Fa que s'aturi l'execució del codi durant el període de temps especificat. L'interval serà en mil·lisegons. Sintaxi:

delay [interval]

Nota

En l'actualitat, el Microbe assumeix que el PIC està operant a una freqüència de 4 MHz, és a dir, cada instrucció triga 1 microsegon a executar-se. Si aquest no és el cas, l'interval s'haurà d'ajustar proporcionalment.

sevenseg

Això es fa servir per a definir l'assignació dels pins per a una pantalla de set segments (càtode habitual) connectada al PIC. Sintaxi:

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

on [a]...[g] són els pins del PIC als quals s'adjunten els segments respectius de la pantalla de set segments. Els pins es poden escriure com a PORTX.N o RXN.

Per a mostrar un número en els set segments, l'assignació dels pins es tracta com una variable de només escriptura.

Exemple 5.4. Definició i sortida a un set segments

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


keypad

Això es fa servir per a definir l'assignació dels pins per a un teclat numèric connectat al PIC. Sintaxi:

keypad [nom] [fila 1] ... [fila 4] [columna 1] ... [columna n]

on [fila 1] ... [fila 4] i [columna 1] ... [columna n] són els pins del PIC als quals s'adjunten les respectives files i columnes del teclat numèric (de moment, el nombre de files és no modificable). Per a obtenir més informació sobre les assignacions dels pins, vegeu la «sevenseg» (a dalt).

Les columnes del teclat numèric s'han de baixar a terra mitjançant resistències de 100 k. Els pins de la fila s'han de configurar com a sortides i els pins de la columna com a entrades. Una vegada s'ha definit el teclat numèric, es tractarà com una variable de només lectura.

Exemple 5.5. Definir i llegir des d'un teclat numèric

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


De manera predeterminada, els valors retornats per un teclat numèric són:

  • El valor del nombre si és una tecla numèrica (1 a 3 a la fila superior, hexadecimal des de l'A fins a la D a la quarta columna i continuant per a cada columna addicional).

  • 253 per a la tecla a la fila 4, columna 1.

  • 254 per a la tecla a la fila 4, columna 3.

Aquests valors es poden redefinir utilitzant l'ordre «alies», on el nom de la tecla a la fila «x», columna «y» (files i columnes que comencen amb 1), és «Keypad_x_y». Per exemple, per a donar-li el valor zero a la tecla d'asterisc en un teclat numèric de 4x3, s'utilitzarà el següent àlies:

Exemple 5.6. Assignar un valor a una tecla del teclat numèric

alias Keypad_4_1 0