Está en la página 1de 35

ENTORNO DE DESARROLLO Y PROGRAMACIN EN PIC BASIC PARA MICROCONTROLADORES

10

11

12

13

11101001

14

DIM DIM DIM DIM

A B X Y

AS AS AS AS

BIT BYTE WORD LONG

DIM A(10) AS BYTE

RESERVE 20

DIM A AS BYTE DIM B AS WORD A = B.HB A = B.LB B.HB = A B.LB = A B = A

'Esto es lo mismo que A = B

'Esto tambin borra el byte alto de la variable B

DIM DIM B = B = A.0

A AS BYTE B AS BIT A.1 A.7 = A.5

TRISA.1 = 0 TRISB = 0 PORTA.1 = 1 PORTB = 255 STATUS.RP0 = 1 INTCON.INTF = 0

RA = 0xFF RB0 = 1

15

DIM X AS WORD DIM Y AS BYTE X = 0x3F Y = POINTER(X) Y = Y + 0x55 X = X - 1 POINTER(X) = Y Y = 0xAA X = X - 1 POINTER(X) = Y

SYMBOL LED1 = PORTB.0

PORTB.0 = 1

LED1 = 1

DIM DIM A = B = B =

A AS BIT B AS BYTE TRUE 0x55 %01010101

DIM A AS WORD CONST PI = 314 A = PI

16

HIGH PORTB.0 LOW ADCON0.ADON TOGGLE OPTION_REG.INTEDG

DIM DIM DIM A = B = X = X =

A AS WORD B AS WORD X AS WORD 123 A * 234 2 (12345 - B * X) / (A + B)

DIM A AS WORD A = 3600 A = SQR(A)

DIM DIM DIM X = X = X = X = X = X = X =

A AS BIT B AS BIT X AS BIT NOT A A AND B A OR B A XOR B A NAND B A NOR B A NXOR B AS WORD AS WORD OR B = PORTC AND %11110000

DIM A DIM B A = A PORTB

17

18

AllDigital

TRISA = %11111111 TRISB = %00000000 TRISB = 0

TRISB = %11000111

19

loop: Goto

WaitMs

500

WaitMs

PORTB.0 = 0

Goto Loop Loop

20

WaitMS

SYMBOL

21

22

PORTB.0 = PORTA.0

23

IF condicin THEN instruccin IF THEN condicin condicin THEN IF - THEN

instruccin

ALLDIGITAL TRISA = %11111111 DIM A AS BYTE DIM TOTAL AS BYTE

'Voy a usar todos los pines como E/S. 'Todo el PORTA como entradas 'Declaro la variable "A" como BYTE 'Declaro la variable "TOTAL" como BYTE

24

TOTAL = 10 A = 2

'Le asigno el valor 10 a la variable "TOTAL" 'Le asigno el valor 2 a la variable "A"

IF PORTA.4 = 1 THEN A = 4 TOTAL = TOTAL + A 'Sumo a "TOTAL" el valor de "A"

BYTE TOTAL A

THEN PORTA TOTAL

PORTA.4 = 1 PORTA 4

PORTA.4 1 TOTAL

PORTA.4 = 0

TOTAL

IF IF IF IF IF

A = B THEN PORTA.0 = 1 B > A THEN A = B B = 5 THEN A = 0 (A = 0) OR (B = 5) THEN C = 2 PORTA.0 THEN PORTB.3 = 0 PORTA.0 PORTA.0 = 1.

IF-THEN IF condicin THEN instruccin 1 instruccin 2 ... instruccin n ENDIF

ENDIF

THEN

ENDIF

condicin

DIM DIM DIM DIM DIM

A AS BYTE B AS BYTE C AS BYTE D AS BYTE TOTAL AS BYTE

'Declaro 'Declaro 'Declaro 'Declaro 'Declaro

la la la la la

variable variable variable variable variable

"A" como BYTE "B" como BYTE "C" como BYTE "D" como BYTE "TOTAL" como BYTE

TOTAL = 0 A = 2

'Le asigno el valor 0 a la variable "TOTAL" 'Le asigno el valor 2 a la variable "A"

25

B = 5 C = 1 D = 0

'Le asigno el valor 5 a la variable "B" 'Le asigno el valor 1 a la variable "C" 'Le asigno el valor 0 a la variable "D"

IF A = 2 THEN A = B + (C * D) TOTAL = A * B ENDIF

A = 2 A TOTAL TOTAL A THEN-ENDIF

ELSE IF condicin THEN instruccinv 1 instruccinv 2 ... instruccinv n ELSE instruccinf 1 instruccinf 2 ... instruccinf n ENDIF THEN ELSE ENDIF ELSE ELSE

ALLDIGITAL

'Voy a usar todos los pines como E/S.

TRISA = %11111111 'Todo el PORTA como entradas DIM A AS BYTE 'Declaro la variable "A" como BYTE DIM TOTAL AS BYTE 'Declaro la variable "TOTAL" como BYTE TOTAL = 10 A = 2 'Le asigno el valor 10 a la variable "TOTAL" 'Le asigno el valor 2 a la variable "A"

IF PORTA.4 = 1 THEN A = 4 TOTAL = TOTAL + 5 ELSE A = 0 TOTAL = TOTAL + 15 ENDIF

A = 4

PORTA.4 = 1 TOTAL = TOTAL + 5

A = 0

26

TOTAL = TOTAL + 15 ENDIF IF-THEN-ELSE-ENDIF

IF PORTB.1 = 1 THEN IF A = 2 THEN A = B + (C * D) TOTAL = A * B ELSE A = 0 ENDIF ELSE A = 19 ENDIF IF-THEN-ELSE-ENDIF

FOR variable = valor_inicial TO valor_final STEP paso instruccion1 instruccion2 ... instruccionn NEXT variable

DIM A AS BYTE DIM TOTAL AS WORD TOTAL = 0

'Declaro la variable "A" como BYTE 'Declaro la variable "TOTAL" como WORD 'Asigno "0" a la variable "TOTAL".

FOR A = 1 TO 100 STEP 1 '"A" va de 1 a 100 de 1 en 1 TOTAL = TOTAL + A 'Sumo "A" al valor de "TOTAL". NEXT A 'fin del bucle. A TOTAL

27

STEP

STEP

TOTAL A TOTAL

valor_inicial

valor_final

paso

DIM DIM DIM DIM DIM

A AS BYTE INICIO AS BYTE FINAL AS BYTE PASO AS BYTE TOTAL AS WORD

'Declaro 'Declaro 'Declaro 'Declaro 'Declaro 'Asigno 'Asigno 'Asigno 'Asigno

la la la la la

variable variable variable variable variable

"A" como BYTE "INICIO" como BYTE "FINAL" como BYTE "PASO" como BYTE "TOTAL" como WORD

INICIO = 1 FINAL = 100 PASO = 1 TOTAL = 0 FOR A = INICIO TO FINAL STEP PASO TOTAL = TOTAL + A NEXT A STEP DIM A AS BYTE DIM TOTAL AS WORD TOTAL = 0 FOR A = 1 TO 100 TOTAL = TOTAL + A NEXT A

"1" a "100" "1" a "0" a

la variable "INICIO". a la variable "FINAL". la variable "PASO". la variable "TOTAL".

'"A" va de 1 a 100 de 1 en 1 'Sumo "A" al valor de "TOTAL". 'fin del bucle.

'Declaro la variable "A" como BYTE 'Declaro la variable "TOTAL" como WORD 'Asigno "0" a la variable "TOTAL". '"A" va de 1 a 100 de 1 en 1 'Sumo "A" al valor de "TOTAL". 'fin del bucle.

STEP.

DIM A AS BYTE FOR A = 50 TO 20 STEP -5 instruccion1 instruccion2 ... instruccionn NEXT A

'Declaro la variable "A" como BYTE '"A" va de 50 a 20 de 5 en 5

'fin del bucle. IF-THEN-ELSE-ENDIF

FOR-TO-STEP-NEXT FOR variable1 = valor_inicial1 TO valor_final1 STEP paso1 FOR variable2 = valor_inicial2 TO valor_final2 STEP paso2 instruccion1 instruccion2 ... instruccionn NEXT variable2 NEXT variable1

28

FOR variable1 = valor_inicial1 TO valor_final1 STEP paso1 FOR variable2 = valor_inicial2 TO valor_final2 STEP paso2 instruccion1 instruccion2 ... instruccionn NEXT variable1 NEXT variable2

AllDigital TRISB = 0 Dim a As Byte For a = 0 To 15 PORTB = a Next a

WHILE - WEND

WHILE condicin instruccion1 instruccion2 ... instruccionn WEND condicin WEND IF-THEN-ELSE-ENDIF. condicin condicin WHILE-

WHILE WEND WHILE-WEND

E
A,

WHILE-WEND WHILE

DIM A AS BYTE A = 0 ... WHILE A = 0 instruccion1

29

instruccion2 ... instruccionn WEND ...

E
DIM A AS BYTE A = 0 ... WHILE A > 0 instruccion1 instruccion2 ... instruccionn WEND ...

WHILE-WEND

E
B DIM DIM A = B = A AS BYTE A AS BYTE 0 0

WHILE-WEND

WHILE A < 10 A = A + 1 'Incremento la variable A B = B + A 'Sumo a B el valor de la variable A WEND A = 10 WHILE A A < 10 WEND WEND

LOOKUP

LOOKUP variable = LOOKUP(byte0, byte1, ..., byteN), ndice

DIM ndice AS BYTE DIM variable AS BYTE ndice = 3 variable = LOOKUP(25, 35, 55, 70, 85, 100), ndice ... variable ndice.

30

ndice

Dim digito As Byte Dim mascara As Byte 'Comienzo el bucle principal loop: TRISB = %00000000 For digito = 0 To 9 mascara = LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f), digito PORTB = mascara WaitUs 10 'esta demora debe ser mayor si no es una simulacin! Next digito Goto loop

31

32

33

34

35

También podría gustarte