Вы находитесь на странице: 1из 29

Microprocesadores

Proton IDE
Prof. Juanmanuel Barroyeta

Proton IDE

Variables
TIPOS DE VARIABLES
TIPO

BITS

RANGO

Bit

0-1

Byte

0-255

Word

16

0-65535

Dword

32

-2147483647 a +2147483647

Float

32

-1e37 a +1e38

Proton IDE

Variables
DECLARACIN DE VARIABLES
DIM Identificador AS Tipo
DIM Dog AS BYTE
DIM Cat AS BIT
DIM Rat AS WORD
DIM Large_Rat as DWORD
DIM Pointy_Rat as FLOAT

' (0 a 255)
' (0 a 1)
'(0 a 65535)
'(-2147483647 a +2147483647)
' Variable de punto flotante

Proton IDE

Arreglos
Grupo de variables del mismo tipo (Byte o Word) que
comparten un mismo identificador pero organizados en
celdas; cada variable es un elemento del arreglo.

DEFINICIN DE ARREGLOS
DIM IDENTIFICADOR [NRO_DE_ELEMENTOS ] AS TIPO

Ejemplos
DIM BYTE_VECTOR[10] AS BYTE
' Crea un arreglo de 10 elementos Byte
DIM WORD_VECTOR [10] AS WORD ' Crea un arreglo de 10 elementos Word

Proton IDE

Arreglos
Ejemplos
DIM BYTE_VECTOR[10] AS BYTE
' Crea un arreglo de 10 elementos Byte
DIM WORD_VECTOR [128] AS WORD ' Crea un arreglo de 128 elementos Word
BYTE_VECTOR[0]
BYTE_VECTOR[9]

MENOR NDICE
MAYOR NDICE

WORD_VECTOR [0]
WORD_VECTOR [127]

MENOR NDICE
MAYOR NDICE

* UN ARREGLO DE ELEMENTOS BYTE PODR CONTENER HASTA 256 CELDAS.


* UN ARREGLO DE ELEMENTOS WORD PODR CONTENER HASTA 128 CELDAS.

Proton IDE

Etiquetas
SON UTILIZADAS CON EL PROPSITO DE MARCAR DIRECCIONES DE
MEMORIA DEL PROGRAMA A LAS CUALES SE HAR REFERENCIA CON
LAS INSTRUCCIONES goto, call o gosub .

EJEMPLO
ETIQUETA_1:
PRINT Hola Mundo"
GOTO ETIQUETA_1

Proton IDE

Operadores Relacionales
Se utilizan para comparar dos valores.
Operador
=
<>
<
>
<=
>=

Relacin
Igualdad
Desigualdad
Menor que
Mayor que
Menor o igual que
Mayor o igual que

Expresin
X=Y
X <> Y
X<Y
X>Y
X <= Y
X >= Y

Proton IDE

Alias
DIM Puerto_b as PORTB
DIM LED1 as Puerto_b.0
DIM DATOL as DATO.LOWBYTE
DIM DATOH as DATO.HIGHBYTE

Proton IDE

Alias
DIM Puerto_b as PORTB
DIM LED1 as Puerto_b.0
DIM DATOL as DATO.LOWBYTE
DIM DATOH as DATO.HIGHBYTE

Proton IDE

CONSTANTES
DIM Identificador as expresin contante

Ejemplos
DIM m as 1
DIM km as m * 1000
DIM PI as 3.14

Proton IDE

SYMBOL
OTRO MTODO DE DEFINIR CONSTANTES Y ALIAS

Ejemplos
SYMBOL CAT = 123
SYMBOL TIGER = CAT
SYMBOL TIGOUSE = TIGER + MOUSE
SYMBOL PI = 3.14
SYMBOL QUANTA = 5.0 / 1024
SYMBOL CONST = (PORTA + 1)
SYMBOL LED = PORTA.1

Proton IDE

REPRESENTACIONES NUMRICAS
Binario

Prefijo %.

Por ejemplo.

%0101010101

Hexadecimal

Prefijos $,0x

Ejemplos

$0A , 0x0A

Carcter

Encerrado entre comillas


Por ejemplo "a" representa el valor de 97 (ASCII)

Decimal

No requiere prefijo

Punto flotante

Punto decimal

por ejemplo

3.14

Proton IDE

OPERADORES MATEMTICOS
A = (( B - C ) * ( D + E )) / F

'+'
'-'
'*'
'/'
'//'
'&'
'|'
'^'
'<<'
'>>'
'~'

Adicin
Substraccin
Multiplicacin
Divisin
Modulo
Retorna un AND bit a bit de dos valores
Retorna un OR bit a bit de dos valores
Retorna un XOR bit a bit de dos valores
Rota a la izquierda los bits un numero determinado de veces
Rota a la derecha los bits un numero determinado de veces

complementa una variable.

Proton IDE

OPERADORES MATEMTICOS

'&
(AND)

(OR)

(XOR)

Value1 = %00001111
Value2 = %10101101
Result = Value1 & Value2
Value1 = %00001111
Value2 = %10101101
Result <= %00001101

Proton IDE

OPERADORES MATEMTICOS

'~'
(COMPLEMENTO)

Value1 = %10101101
Result = ~Value1

Value1 = %10101101
Result <= %01010010

Proton IDE

OPERADORES MATEMTICOS

'<<

'>>'

(ROTAR IZQ)

ROTAR DER.

Value1 = %10101101
Result = Value1 << 4

Value1 = %10101101
Result <= %11011010

Proton IDE
PRIMER PROGRAMA
Device 16F84
XTAL 4
ALL_DIGITAL TRUE
PORTB_PULLUPS NO
TRISB = %00000001
Main:
If PORTB.0 = 0 Then
PORTB.1 = 1
Else
PORTB.1 = 0
End If
GoTo Main

Proton IDE
PRIMER PROGRAMA
Device 16F84
XTAL 4
ALL_DIGITAL TRUE
PORTB_PULLUPS NO
TRISB = %00000001

Main:
If PORTB.0 = 0 Then
PORTB.1 = 1
Else
PORTB.1 = 0
End If
GoTo Main

Proton IDE
PRIMER PROGRAMA

Proton IDE
PRIMER PROGRAMA
Device 16F84
XTAL 4
ALL_DIGITAL TRUE
PORTB_PULLUPS NO
TRISB = %00000001

Main:
If PORTB.0 = 0 Then
PORTB.1 = 1
Else
PORTB.1 = 0
End If
GoTo Main

Proton IDE
COMENTARIOS
Device 16F877
XTAL 4
ALL_DIGITAL TRUE
PORTB_PULLUPS NO
TRISB = %00000001
SALIDAS
Main:
If PORTB.0 = 0 Then
PORTB.1 = 1
Else
PORTB.1 = 0
End If
GoTo Main

;Osc 4Mhz
;TODOS LOS PUERTOS DIGITALES

'PIN RB0 ENTRADA / RB1-RB7

Proton IDE
DESBORDE
EN PROTN NO SE DETECTAN DESBORDAMIENTOS. SI EL
RESULTADO DE UNA EXPRESIN ESTA FUERA DEL RANGO, EL
VALOR RESULTANTE ES ERRNEO, PERO NO SE INTERRUMPE EL
PROGRAMA NI SE SEALIZA DE NINGUNA FORMA.

Ejemplo
Dim x As Byte
Dim y As Byte

;0-255
;0-255

x = 200
y = x + 60

;y valdra 04

Proton IDE
ESTRUCTURAS DE DECISIN

SENTENCIA IF

If Condicin Then
Sentencia1..
Sentencia1..
..
..
End If

Proton IDE
ESTRUCTURAS DE DECISIN

SENTENCIA ELSE

If Condicin Then
Sentencia1..
Sentencia1..
..
Else
Sentencia3..
Sentencia4..
..
End If

Proton IDE
ESTRUCTURAS DE DECISIN

SENTENCIA ELSEIF
IF Condicin THEN
Sentencia1..
..
ELSEIF Condicin THEN
Sentencia2..
..
ELSEIF Condicin THEN
Sentencia3..
..
ELSE
Sentencia4..
..
ENDIF

Proton IDE

ESTRUCTURAS DE DECISIN

SENTENCIA SELECT CASE


Select Expresin
Case valor1
Sentencias...
...
Case valor2
Sentencias...
...
Case valor3
Sentencias...
`
...
Case valor4
Sentencias...
...
Case else
Sentencias...
...
End Select

Ejemplo
Select PORTB
Case 0X01
PORTC=0X01
...
Case 0X02
PORTC=0X0A
...
Case 0X03
PORTC=0X0D
...
Case 0X04
PORTC=0XFF
...
End Select

Proton IDE
ESTRUCTURAS DE REPETICIN

SENTENCIA WHILE

Ejemplo
WHILE Condicin
Sentencia1..
Sentencia1..
...
...
WEND

WHILE PORTB + 1 = 2
PORTD = PORTD + 1
WEND

* LAS CONDICIN SE EVALA ANTES DE EJECUTAR LAS SENTENCIAS

Proton IDE
ESTRUCTURAS DE REPETICIN

SENTENCIA REPEAT
LA SENTENCIA REPEAT (REPETIR HASTA QUE ) ES UNA ESTRUCTURA DE
REPETICIN , PARA EJECUTAR LAS SENTENCIAS VARIAS VECES Y HASTA QUE
LA CONDICIN SEA CIERTA

Ejemplo
REPEAT
Sentencia1..
Sentencia1..
...
...
UNTIL Condicin

REPEAT
PORTD = PORTD + 1
UNTIL PORTB + 1 = 2

* LAS CONDICIN SE EVALA LUEGO DE EJECUTAR LAS SENTENCIAS

Proton IDE
ESTRUCTURAS DE REPETICIN

Sentencia FOR

[ Opcional ]

FOR Variable = valor_inicial TO valor_final [STEP incremento]


Sentencia1..
Sentencia1..
...
...
NEXT

Ejemplos
FOR Variable = 1 TO 10 STEP 1
PORTB = Variable
DelayMs 1000
NEXT

FOR Variable = 10 TO 1 STEP -1


PORTB = Variable
DelayMs 1000
NEXT