Microcontroladores I 2013a

76
DIAGRAMA ESQUEMATICO DE PROBADOR DE PICS 16F84 Tiempo: 01 hr. Microcontroladores I. Página 1

description

ejercicios practicos de programacion de pics

Transcript of Microcontroladores I 2013a

Page 1: Microcontroladores I 2013a

DIAGRAMA ESQUEMATICO DE PROBADOR DE PICS 16F84

Tiempo: 01 hr.

Microcontroladores I.Página 1

Page 2: Microcontroladores I 2013a

PRACTICA DE MICROCONTROLADORES I – SECUENCIAS CON LEDSPRACTICA Nº 01

Tiempo: 06 hrs.

Considere un tiempo de 100 ms en todos los casos.

TABLA Nº 01RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA2

1 11 1

1 11 1

1 11 1

1 11 1

TABLA Nº 02RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA2

1 1 11 1 1

Microcontroladores I.Página 2

Page 3: Microcontroladores I 2013a

1 1 11

1 1 11 1 1

TABLA Nº 03RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA2

11

11

11

11

11

TABLA Nº 04RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA2

11

11

11

11

11

TABLA Nº 05RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA2

11

11

11

11

11

11

11

11

11

TABLA Nº 06

Microcontroladores I.Página 3

Page 4: Microcontroladores I 2013a

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA21

1 11 1 1

1 1 1 11 1 1 1 1

1 1 1 1 1 11 1 1 1 1 1 1

1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 11 1 1 1 1 1 1

1 1 1 1 1 11 1 1 1 1

1 1 1 11 1 1

1 1

TABLA Nº 07RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA2

1 11 1

1 11 1

1 11 1

1 11 1

TABLA Nº 08RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA2

1 11 1

1 11 1

1 11 1

1 11 1

TABLA Nº 09RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA2

1 1 1 1 1 11 1 1 1

1 11 1

1 11 1

1 11 1

1 11 1 1 1 1 1 1 1 1 1

Microcontroladores I.Página 4

Page 5: Microcontroladores I 2013a

TABLA Nº 10Elabore un programa que posea como mínimo 10 secuencias. Para ello llene la tabla inferior que se encuentra vacía. Luego compruebe la operatividad del mismo en el hardware de Prueba. Considere un tiempo de 200 ms.

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA2

Microcontroladores I.Página 5

Page 6: Microcontroladores I 2013a

PRACTICA DE MICROCONTROLADORES I – SECUENCIAS CON LEDSPRACTICA Nº 02

Tiempo: 07 hrs.

Ejemplo:

Considere un tiempo de 100 ms para todos los casos.

TABLA Nº 01128 64 32 16 8 4 2 1 8 427 26 25 24 23 22 21 20 23 22

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RA3 RA21 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0

TRISB=0TRISA.2=0TRISA.3=0

inicio:

PORTB=%11111111PORTA=%01100GoSub tiempo

PORTB=%00000000PORTA=%00000GoSub tiempo

GoTo inicio

tiempo:Pause 100Return

TRISB=0TRISA.2=0TRISA.3=0

inicio:

PORTB=255PORTA=12GoSub tiempo

PORTB=0PORTA=0GoSub tiempo

GoTo inicio

tiempo:Pause 100Return

Elabore los programas de las tablas Nº 01 hasta la 10 anteriores, empleando la

programación de la actual practica y transfiéralos a su microcontrolador Pic

16F84A. Posteriormente verifique la operatividad de los mismos en su hardware de

prueba.

Microcontroladores I.Página 6

Page 7: Microcontroladores I 2013a

ESTRUCTURA DE PROGRAMACIONTiempo: 01hr.

1. FOR - NEXT Repite un segmento del programa.

Sintaxis: FOR Index = Start TO End {Step {-} Inc }{ instructions,instructions }NEXT {Index}

Descripción:Esta instrucción repite una o más instrucciones. La expresión determinara cuantas veces ha de llevarse a cabo la repetición. "Index" es la variable empleada para el control de cuantas veces la estructura o lazo for...next a de ser repetida. Si el parámetro "Step" no es especificado, se entiende que la variable "Index" se incrementa en uno. (Index = Index + 1).

OPERADORES MATEMÁTICOSPBP efectúa todas las operaciones matemáticas en urden jerárquico. Esto significa que existe precedencia para los operadores. Multiplicación y división son efectuadas antes que suma y resta, por ejemplo. Para asegurarse que las operaciones son efectuadas en el orden que se desea, use paréntesis para agrupar las operaciones.A = ( B + C ) * ( D - E )Todas las operaciones matemáticas se realizan sin signo y con una precisión de 16 bit.Los operadores soportados son:

Microcontroladores I.Página 7

Page 8: Microcontroladores I 2013a

MultiplicaciónPBP efectúa multiplicaciones 16 x 16 bits .El operador ´* ´ devuelve los 16 bit inferiores del resultado de 32 bit. Esta es la multiplicación típica encontrada en los lenguajes de programación.

El operador ´** ´devuelve los 16 bit superiores del resultado de 32 bit. Estos dos

operadores pueden ser utilizados en conjunto para realizar multiplicaciones de 16 x 16

bit que produzcan resultados de 32 bit.

W1 = W0 * 1000 ´ multiplica el valor de W0 por 1000 y coloca el resultado en W1

W2 = W0 ** 1000 ´ W0 por 1000 y coloca los 16 bit superiores (que deben ser 0 ) en

W2

El operador */ ´ los 16 bit medios del resultado de 32 bit.

W3 = W1 */ W0 ´ multiplica W1 por W0 y coloca los 16 bits medios en W3

DivisiónPBP efectúa divisiones de 16 x 16 bit . El operador ´/ ´devuelve el resultado de 16 bit.

El operador ´// ´ devuelve el resto (módulo del número).

W1 = W0 / 1000 ´ Divide el valor de W0 por 1000 y coloca el resultado en W1

W2 = W0 // 1000 ´ Divide el valor de W0 por 1000 y coloca el resto en W2

DesplazamientoLos operadores ´<<´ y ´>> ´ desplazan un valor hacia la izquierda ó derecha

respectivamente, 1 a 15 veces. Los bits desplazados se colocan en 0.

B0 = B0 << 3 ´ Desplaza B0 tres lugares a la izquierda (igual a multiplicar por 8)

W1 = W0 >> 1 ´ Desplaza W0 un lugar a la derecha y pone el resultado en W1 (igual a

dividir por 2)

OPERADORES DE COMPARACIÓNSe usan en declaraciones IF ... THEN

para comparar una expresión con otra.

Los operadores soportados son:

Microcontroladores I.Página 8

Page 9: Microcontroladores I 2013a

PRACTICA DE MICROCONTROLADORES I – SECUENCIAS CON LEDSPRACTICA Nº 03

Tiempo: 14 hrs.

INCREMENTO DE TIEMPOi VAR BYTEinicio:For i=0 TO 4

High portb.0Pause 60000

Next iFor i=0 TO 4

low portb.0Pause 60000

Next iGoTo inicio

CONTADOR DE 8 BITS (0 A 255)

I VAR BYTETRISB=0a VAR BYTEinicio:For I=0 TO 255

PORTB=IPause 500

Next IGoTo inicio

DESPLAZAMIENTO DE UN LED (DERECHA E IZQUIERDA)

a VAR BYTEi VAR BYTETRISB=0inicio:a=1For i=0 TO 7

PORTB=aa=a>>1Pause 200

Next i

a=128For i=0 TO 6

PORTB=aa=a<<1Pause 200

Next i

GoTo inicio

SECUENCIAL ASCENDENTE DE 8 LEDS

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec1 1

1 21 4

1 81 16

1 321 64

1 128

a VAR BYTEi VAR BYTETRISB=0inicio:a=1For i=0 TO 7

PORTB=aa=a*2Pause 200

Next iGoTo inicio

Microcontroladores I.Página 9

Page 10: Microcontroladores I 2013a

SECUENCIAL DESCENDENTE DE 8 LEDS

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec1 128

1 641 32

1 161 8

1 41 2

1 1

a VAR BYTEi VAR BYTETRISB=0inicio:a=128For i=0 TO 7

PORTB=aa=a/2Pause 200

Next iGoTo inicio

SECUENCIAL ASCENDENTE Y DESCENDENTE DE 8 LEDS

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec1 1

1 21 4

1 81 16

1 321 64

1 1281 64

1 321 16

1 81 4

1 21 1

a VAR BYTEI VAR BYTETRISB=0inicio:a=1For I=0 TO 7

PORTB=aa=a*2Pause 200

Next I

a=64For I=0 TO 6

PORTB=aa=a/2Pause 200

Next IGoTo inicio

Microcontroladores I.Página 10

Page 11: Microcontroladores I 2013a

EMPLEO DEL COMANDO WRITE Y READWrite escribe en una determinada dirección de memoria del microcontrolador y Read lee el dato alojado en dicha dirección de memoria.

WRITE Address,Value

Graba valores Value en el EEPROM incorporado en la dirección (Address) especificada. Esta instrucción solo puede ser usada con un microPIC que tenga un EEPROM incorporado como el PIC16F84 ó PIC16C84.Es usado para colocar datos en el EEPROM durante el momento de la ejecución. Para grabar datos en el EEPROM durante la programación, se usan las declaraciones DATA y EEPROM.Cada WRITE se auto regula en tiempo y toma aproximadamente 10 milisegundos ejecutarlo en un microPIC.

WRITE 5,B0 ´ envía el valor de B0 al EEPROM pin 5

READ Address,Var

Lee el EEPROM incorporado en la dirección (Address), y guarda el resultado en Var. Esta instrucción solo puede ser usada con un microPIC que tenga un EEPROM incorporado como el PIC16F84 ó PIC16C84

READ 5,B2 ´ coloca en B2 el valor de la dirección 5 del EEPROM

Ejemplo:

SECUENCIAL DE 8 LEDS

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 129

1 1 661 1 36

1 1 241 1 36

1 1 66

I VAR BYTEB VAR BYTETRISB=0Write 1,129Write 2,66Write 3,36Write 4,24Write 5,36Write 6,66

inicio:For I=1 TO 6

Read I,B

PORTB=BPause 100

Next IGoTo inicio

Microcontroladores I.Página 11

Page 12: Microcontroladores I 2013a

Elabore 10 programas empleando Write y Read. Compílelos, transfiéralos a su microcontrolador y compruebe su funcionamiento en su hardware de prueba.

PRACTICA DE MICROCONTROLADORES I – MANEJO DE DISPLAYSPRACTICA Nº 04

Tiempo: 14 hrs.

EJEMPLO CON DISPLAY ANODO COMUN

h g f E d c b a DECPortb.7 Portb.6 Portb.5 Portb.4 Portb.3 Portb.2 Portb.1 Portb.0

1 0 0 0 0 0 0 0

0 1 0 0 1 0 0 2

0 0 1 0 0 1 0 5

1 1 1 1 0 0 0 7

Se desea representar los siguientes números en el Display: 0, 2, 5, 7

inicio:

Low PORTB.0

Low PORTB.1

Low PORTB.2

Low PORTB.3

Low PORTB.4

Low PORTB.5

High PORTB.6

Pause 1000

Low PORTB.0

Low PORTB.1

High PORTB.2

Low PORTB.3

Low PORTB.4

High PORTB.5

Low PORTB.6

Pause 1000

Low PORTB.0

High PORTB.1

Low PORTB.2

Low PORTB.3

High PORTB.4

Low PORTB.5

Low PORTB.6

Pause 1000

Low PORTB.0

Low PORTB.1

Low PORTB.2

High PORTB.3

Microcontroladores I.Página 12

Page 13: Microcontroladores I 2013a

High PORTB.4

High PORTB.5

High PORTB.6

Pause 1000

Goto inicio

Microcontroladores I.Página 13

Page 14: Microcontroladores I 2013a

DIGRAMA ESQUEMATICO PARA DISPLAY ANODO COMUN.

Microcontroladores I.Página 14

Page 15: Microcontroladores I 2013a

CONTADOR DECODIFICADOR DE 0 A 9 EN FORMA DECIMAL PARA DISPLAY ANODO COMUN.

128 64 32 16 8 4 2 1

h g f e d c b aDEC

ANODO COMUNRB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

1 0 0 0 0 0 0 0 641 1 1 1 0 0 1 1 1210 1 0 0 1 0 0 2 360 1 1 0 0 0 0 3 480 0 1 1 0 0 1 4 250 0 1 0 0 1 0 5 180 0 0 0 0 1 1 6 31 1 1 1 0 0 0 7 1200 0 0 0 0 0 0 8 00 0 1 1 0 0 0 9 24

I VAR BYTEB VAR BYTETRISB=0Write 1,64Write 2,121Write 3,36Write 4,48Write 5,25Write 6,18Write 7,3Write 8,120Write 9,0Write 10,24inicio:

For I=1 TO 10Read I,BPORTB=BPause 1000

Next IGoTo inicio

EMPLEO DEL COMANDO LOOKUP

i VAR BYTEdato VAR BYTETRISB=0inicio:For i=0 TO 9LookUp i, [64,121,36,48,25,18,3,120,0,24], dato PORTB=datoPause 1000Next iGoTo inicio

Microcontroladores I.Página 15

Page 16: Microcontroladores I 2013a

PRACTICAS CON DISPLAY ANODO COMUN - DIGITOS

Practica Nº 01

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec0123456789

Practica Nº 02

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec9876543210

Practica Nº 03

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec13579

Practica Nº 04

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec24680

Microcontroladores I.Página 16

Page 17: Microcontroladores I 2013a

Practica Nº 05

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec2-0-1-3

PRACTICAS CON DISPLAY ANODO COMUN - LETRAS

Practica Nº 06

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecLA-PALA

Practica Nº 07

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecEL-PAPA

Practica Nº 08

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecEL-CUY

Practica Nº 09

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecPACO

Microcontroladores I.Página 17

Page 18: Microcontroladores I 2013a

Practica Nº 10

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecESE-GALLO

Elabore 02 programas de letras o números. Para ello emplee las tablas de la practica 11 y 12 para rellenar los datos que desea que aparezcan en el display ánodo común.

Practica Nº 11

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec

Practica Nº 12

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec

Microcontroladores I.Página 18

Page 19: Microcontroladores I 2013a

PRACTICAS CON DISPLAY CATODO COMUN – DIGITOS

Tiempo: 07 hrs.

Practica Nº 01

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec0123456789

Practica Nº 02

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec13579

Practica Nº 03

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec24680

Practica Nº 04

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec2-0-1-1

PRACTICAS CON DISPLAY CATODO COMUN - LETRAS

Practica Nº 05

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecH0LA

Microcontroladores I.Página 19

Page 20: Microcontroladores I 2013a

Practica Nº 06

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecPAPA

Practica Nº 07

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecEL-CUY

Practica Nº 08

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecPIPO

Practica Nº 09

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 DecESE-GAY

Elabore 01 programa de letras o números. Para ello emplee la tabla de la practica 10 para rellenar los datos que desea que aparezcan en el display cátodo común.

Practica Nº 10

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dec

Microcontroladores I.Página 20

Page 21: Microcontroladores I 2013a

ESTRUCTURA DE PROGRAMACION

2. IF - THEN - ELSE. Salto condicional del programa.

Sintaxis:

IF Expression1 {AND / OR Expression2} THEN Label{instructions}ELSE{instructions}ENDIF

Descripción:

Esta instrucción selecciona una de dos posibles alternativas. La instrucción IF es fundamental en PIC BASIC y puede ser empleada de muchas maneras para lograr la flexibilidad necesaria para la toma de decisiones en forma lógica.

CIRCUITOS BASICOS CON PULSADORES

En ambos casos los pulsadores son

normalmente abiertos en serie con un

resistor de 10K para limitar la

corriente. Y alimentados con una

tensión de 5 voltios.

En el primer circuito en RBO existe

una tensión de 5 voltios a menos que

se presione T1 entonces habría 0V.

En el segundo circuito en RBO existe una tensión de 0 voltios a menos que se

presione T1 entonces habría 5 voltios.

Microcontroladores I.Página 21

Page 22: Microcontroladores I 2013a

En tercer circuito en RBO existe una tensión de 5

voltios a menos que se presione T1 entonces habría 0

voltios. A diferencia de los anteriores encontramos un

capacitor de 1 uF que sirve para eliminar los

transitorios.

ESTRUCTURA BASICA DE PROGRAMACION PARA LOS PULSADORES DE ENTRADA

If <condicion> then

Sentencia 1

ElseSentencia2

Endif

PRACTICA DE MICROCONTROLADORES I – MANEJO DE PULSADORES N.APRACTICA Nº 05

06 Hrs.

Practica Nº 01

TRIS A.0 = 1TRISB.0 = 0inicio:IF PORTA.0 = 1 Then

High PORTB.0ElseLow PORTB.0

EndIFGoTo inicio

Practica Nº 02

TRIS A.0 = 1TRIS A.1 = 1TRISB.0 = 0TRISB.1= 0

inicio:IF PORTA.0 = 1 Then

High PORTB.0ElseLow PORTB.0

EndIF

IF PORTA.1 = 1 ThenHigh PORTB.1ElseLow PORTB.1

EndIFGoTo inicio

Microcontroladores I.Página 22

Page 23: Microcontroladores I 2013a

CIRCUITO BASICO PARA SONIDO

El presente circuito consta de un

amplificador de corriente continua

alimentado por 5 voltios. Su entrada

es a través de la resistencia de 2.7 K,

la señal a amplificar proviene de

cualquier puerto del microcontrolador.

Su salida es a través del emisor de

transistor BC548. El cual posee una

resistencia de 1K para polarización.

Mientras que el pequeño parlante se

conecta en paralelo a esta resistencia

COMANDO PBP PARA SONIDO

SOUND Pin,[Note,Duration{,Note,Duration...}]

Genera un tono y/o ruido blanco en el Pin especificado. Este Pin es automáticamente

colocado como salida. El Pin puede ser una constante, 0 - 15, ó una variable que

contenga un número de 0-15 (p.ej. B0) ó un número de Pin (p.ej. PORTA.0). Note 0 es

silencio .Note 1-127 son tonos. Notes 128-255 son ruido blanco. Los tonos y el ruido

blanco están en una escala ascendente (p.ej. 1 y 128 son las frecuencias menores,

129 y 266 las mayores). Note 1 es aprox. 78,74 Hz y Note 127 es aprox. 10000 Hz.

Duration es 0 - 255 y determina el largo de la nota, en incrementos de 12 milisegundos

Note y Duration no necesitan ser constantes.

SOUND entrega como salida ondas cuadradas con

nivel TTL .Gracias a las características del

microcontrolador Pic, se puede manejar un parlante

a través de un capacitor. El valor del capacitor debe

ser determinado en función de las frecuencias a

usar y la carga del parlante. Los parlantes pueden

ser piezoeléctricos.

Microcontroladores I.Página 23

Page 24: Microcontroladores I 2013a

Practica Nº 03

inicio:Sound PORTB.0,[110,255]GoTo inicio

Practica Nº 04 (Sirena Policial)

inicio:Sound PORTB.0,[100,10,50,10]GoTo inicio

Practica Nº 05 (Timbre de Celular)

inicio:Sound PORTB.0, [125,4,123,5]GoTo inicio

Practica Nº 06

TRISA.0 =1TRISA.1.=1TRISB.0=0inicio:IF PORTA.0=1 Then cancion1IF PORTA.1=1 Then cancion2GoTo inicio

cancion1:Sound PORTB.0,[105,50,110,50,120,50]Pause 200GoTo inicio

cancion2:Sound PORTB.0,[120,50,110,50,105,50]Pause 200GoTo inicio

Elabore 10 programas empleando la estructura if – then – else y 10 programas con el comando sound con sonidos diferentes.

Microcontroladores I.Página 24

Page 25: Microcontroladores I 2013a

ARRAY (ARREGLOS) O MATRIZ DE LEDS

Tiempo: 01 hr.

Consiste en arreglar o colocar los diodos leds en

filas y columnas con la finalidad de poder tener

control sobre ellos. Utilizando pocos terminales de

entrada.

En el grafico superior se puede observar que

existen 2 filas y 5 columnas. Es decir 2x5= 10

leds. Pero se emplean 07 entradas para controlar

los 10 leds.

Ello implica que si tengo 7 filas y 5 columnas.

Podemos gobernar 35 leds. Es decir 7x5=35. Pero

utilizamos solo 12 entradas.

Microcontroladores I.Página 25

Page 26: Microcontroladores I 2013a

MATRIZ DE LEDS 7 X 5

PRACTICA DE MICROCONTROLADORES I – ARRAY O MATRIZ DE LEDSPRACTICA Nº 06

Tiempo: 06 hrs.

PRACTICAS CON ARRAY DE LEDS (7 filas X 5 columnas)

Emplee un pause de 300 ms.

MANEJO DE FILAS.

TABLA Nº 01: Activar todos los 35 Leds.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 1 1 1 1 1 1 1 1 1 1

TABLA Nº 02: Encendido y apagado de los 35 Leds.

.RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0

TABLA Nº 03: Encendido y apagado de un led.

.RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB00 0 0 0 1 0 0 0 0 0 0 10 0 0 0 1 0 0 0 0 0 0 0

Microcontroladores I.Página 26

Page 27: Microcontroladores I 2013a

TABLA Nº 04: Activar los 05 Leds de la primera fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 1 1 1 0 0 0 0 0 0 1

TABLA Nº 05: Activar y Desactivar los 05 Leds de la primera fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

TABLA Nº 06: Activar los 05 Leds de la segunda fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 1 1 1 0 0 0 0 0 1 0

TABLA Nº 07: Activar y Desactivar los 05 Leds de la segunda fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

TABLA Nº 08: Activar los 05 Leds de la tercera fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 1 1 1 0 0 0 0 1 0 0

TABLA Nº 09: Activar y Desactivar los 05 Leds de la tercera fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

TABLA Nº10: Activar los 05 Leds de la cuarta fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 1 1 1 0 0 0 1 0 0 0

TABLA Nº11: Activar y Desactivar los 05 Leds de la cuarta fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

TABLA Nº 12: Activar los 05 Leds de la quinta fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 1 1 1 0 0 1 0 0 0 0

TABLA Nº 13: Activar y Desactivar los 05 Leds de la quinta fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

Microcontroladores I.Página 27

Page 28: Microcontroladores I 2013a

TABLA Nº 14: Activar los 05 Leds de la sexta fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 1 1 1 0 1 0 0 0 0 0

TABLA Nº 15: Activar y Desactivar los 05 Leds de la sexta fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

TABLA Nº 16: Activar los 05 Leds de la séptima fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 1 1 1 1 1 0 0 0 0 0 0

TABLA Nº 17: Activar y Desactivar los 05 Leds de la séptima fila.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

MANEJO DE COLUMNAS.

TABLA Nº 18: Activar los 07 Leds de la primera columna.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB00 0 0 0 1 1 1 1 1 1 1 1

TABLA Nº 19: Activar y Desactivar los 07 Leds de la primera columna.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

TABLA Nº 20: Activar los 07 Leds de la segunda columna.RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

0 0 0 1 0 1 1 1 1 1 1 1

TABLA Nº 21: Activar y Desactivar los 07 Leds de la segunda columna.RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

TABLA Nº 22: Activar los 07 Leds de la tercera columna.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB00 0 1 0 0 1 1 1 1 1 1 1

TABLA Nº 23: Activar y Desactivar los 07 Leds de la tercera columna.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

Microcontroladores I.Página 28

Page 29: Microcontroladores I 2013a

TABLA Nº 24: Activar los 07 Leds de la cuarta columna.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB00 1 0 0 0 1 1 1 1 1 1 1

.

TABLA Nº 25: Activar y desactivar los 07 Leds de la cuarta columna.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

TABLA Nº 26: Activar los 07 Leds de la quinta columna.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB01 0 0 0 0 1 1 1 1 1 1 1

TABLA Nº 27: Activar y Desactivar los 07 Leds de la quinta columna.

RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

DESPLAZAMIENTO EN LA MATRIZ DE LEDS.

TABLA Nº 28: Desplazamiento de los 05 Leds de la primera fila.

.RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB00 0 0 0 1 0 0 0 0 0 0 10 0 0 1 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 0 0 10 1 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 1

TABLA Nº 29: Desplazamiento de los 07 Leds de la primera columna.

.RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB00 0 0 0 1 0 0 0 0 0 0 10 0 0 0 1 0 0 0 0 0 1 00 0 0 0 1 0 0 0 0 1 0 00 0 0 0 1 0 0 0 1 0 0 00 0 0 0 1 0 0 1 0 0 0 00 0 0 0 1 0 1 0 0 0 0 00 0 0 0 1 1 0 0 0 0 0 0

Elabore 05 desplazamientos en la matriz de leds.

Elabore un número en la matriz de leds.

Elabore una letra sobre la matriz de leds.

Elabore un grafico sobre la matriz de leds.

Microcontroladores I.Página 29

Page 30: Microcontroladores I 2013a

DIAGRAMAS DE TIEMPOTiempo: 01 hr.

El diagrama de tiempos es una representación pictórica de la manera como los niveles lógicos varían en función del tiempo. Es de bastante utilidad cuando se desea conocer de un solo vistazo las características operacionales de un circuito o de un proceso.

Veamos un ejemplo:

Un motor eléctrico solo gira en un determinado sentido si se le aplica tensión de red. Es decir si le llega energía eléctrica éste gira en un determinado sentido (nivel lógico “1”). Pero si se le retira la energía eléctrica este deja de funcionar (nivel lógico “0”). Tal como lo muestra el diagrama de tiempo en la parte inferior.

Luego si el motor eléctrico es activado con dos pulsadores. Uno de arranque y uno de parada, el diagrama de tiempo se amplia.

¿Cómo se lee un diagrama de tiempos? Siempre se lee en forma vertical, tomando como referencia los tiempos. Durante el tiempo T0 los pulsadores A y B están en sin presionar, por lo tanto el motor esta apagado. Pero en el instante que el pulsador A se cierra es decir se coloca el nivel lógico “1” se activa el motor desde T1 hasta T4. Luego vemos que si se presiona o pone en nivel lógico “1” el pulsador B, el motor se apagara en los tiempos T4 y T5. Luego el ciclo se repite.

Microcontroladores I.Página 30

Page 31: Microcontroladores I 2013a

PRACTICA DE MICROCONTROLADORES I – SEMAFOROSPRACTICA Nº 07

DIAGRAMAS DE TIEMPO PARA DOS SEMAFOROS

Dado el siguiente diagrama de tiempos. Analícelo e interprételo.

Elabore su tabla. Posteriormente elabore el código fuente y pruebe si es operativo en su hardware de prueba.

RB5 RB4 RB3 RB2 RB1 RB0 Tiempo

Microcontroladores I.Página 31

Page 32: Microcontroladores I 2013a

SEMAFORO CON DIODOS LEDS

Microcontroladores I.Página 32

Page 33: Microcontroladores I 2013a

DIAGRAMA ESQUEMATICO PARA UN SEMAFORO

Microcontroladores I.Página 33

Page 34: Microcontroladores I 2013a

ETAPAS DE POTENCIA PARA EL MICROCONTROLADOR PIC 16F84

ETAPA DE POTENCIA CON RELE

Microcontroladores I.Página 34

Page 35: Microcontroladores I 2013a

ETAPA DE POTENCIA CON TRIAC BT136 PARA TENSION MONOFASICA

ARRANQUE DIRECTO DE MOTORinicio:IF PORTA.3=1 Then activarGoTo inicioactivar:High PORTB.0Goto inicio

Microcontroladores I.Página 35

Page 36: Microcontroladores I 2013a

COMANDO POTLee un potenciómetro (ú otro dispositivo resistivo). El Pin

puede ser una constante, 0 - 15, ó una variable que

contenga un número de 0 - 15 (p.ej. B0) ó un número de

Pin (p.ej. PORTA.0). La resistencia se mide tomando el

tiempo de descarga de un capacitor a través de un resistor.

(5 K a 50 K). Scale se usa para ajustar distintas constantes

RC. Para constantes RC grandes, Scale debe ser baja (valor mínimo 1). Para constantes RC pequeñas, Scale debe ser máxima (255). Si el valor de Scale es correcto,

Var debe ser cero para mínima resistencia y 255 para máxima resistencia.

Desgraciadamente, Scale debe ser determinada en forma experimental. Para esto,

coloque el dispositivo a medir en máxima resistencia y mídalo con Scale=255. En

estas condiciones, Var tendrá un valor apropiado de Scale. (Este es el mismo tipo de

proceso que efectúa la opción ALT-P en BS1).

POT Pin,Scale,Var

POT Portb.0,255,B0 ´ lee el valor del potenciómetro desde RB0, con escala

máxima y coloca el valor en la variable B0.

POT,3,255,B0 ´ lee el potenciómetro en pin 3 para determinar Scale

Serout 0,N2400,[#B0] ´ envía el valor del potenciómetro en forma serial al pin 0

Microcontroladores I.Página 36

Page 37: Microcontroladores I 2013a

PRACTICA DE MICROCONTROLADORES I – VUOMETRO CON LEDSPRACTICA Nº 08

Microcontroladores I.Página 37

Page 38: Microcontroladores I 2013a

b0 VAR BYTE inicio:Pot PORTA.0,255,b0IF b0>0 ThenLow PORTB.0Low PORTB.1Low PORTB.2Low PORTB.3Low PORTB.4Low PORTB.5Low PORTB.6Low PORTB.7EndIFIF b0>28 ThenHigh PORTB.0Low PORTB.1Low PORTB.2Low PORTB.3Low PORTB.4Low PORTB.5Low PORTB.6Low PORTB.7EndIFIF b0>56 ThenHigh PORTB.0High PORTB.1Low PORTB.2Low PORTB.3Low PORTB.4Low PORTB.5Low PORTB.6Low PORTB.7EndIFIF b0>84 ThenHigh PORTB.0High PORTB.1High PORTB.2Low PORTB.3Low PORTB.4Low PORTB.5Low PORTB.6Low PORTB.7EndIFIF b0>112 ThenHigh PORTB.0High PORTB.1High PORTB.2

High PORTB.3Low PORTB.4Low PORTB.5Low PORTB.6Low PORTB.7EndIFIF b0>140 ThenHigh PORTB.0High PORTB.1High PORTB.2High PORTB.3High PORTB.4Low PORTB.5Low PORTB.6Low PORTB.7EndIFIF b0>168 ThenHigh PORTB.0High PORTB.1High PORTB.2High PORTB.3High PORTB.4High PORTB.5Low PORTB.6Low PORTB.7EndIFIF b0>196 ThenHigh PORTB.0High PORTB.1High PORTB.2High PORTB.3High PORTB.4High PORTB.5High PORTB.6Low PORTB.7EndIFIF b0>224 ThenHigh PORTB.0High PORTB.1High PORTB.2High PORTB.3High PORTB.4High PORTB.5High PORTB.6High PORTB.7EndIFGoTo inicio

Microcontroladores I.Página 38

Page 39: Microcontroladores I 2013a

COMANDO: LCDOUTMuestra Items en un visor de cristal líquido inteligente (LCD). PBP soporta módulos LCD con un controlador Hitachi 44780 o equivalente. Estos LCD, usualmente, tienen un cabezal de 14 o 16 pins Simples o duales en un extremo.

Si el signo (#) está colocado antes de un Item, la representación ASCII para cada dígito es enviada al LCD. LCDOUT también puede usar cualquiera de los modificadores usados con SEROUT2. Vea la sección de SEROUT2 para más información.

Un programa debe esperar, por lo menos, medio segundo antes de enviar el primer comando a un LCD. Puede tomar bastante tiempo a un LCD arrancar. Los comandos son enviados al LCD, enviando un $FE seguido por el comando. Algunos comandos útiles se muestran en la siguiente tabla:

Note que hay un comando para mover el cursor al comienzo de la segunda línea en un visor de dos líneas. Para muchos LCD, los caracteres y líneas mostrados no son consecutivos en la memoria del visor – puede haber un salto entre las localizaciones. Para muchos visores 16x2, la primera línea comienza en $0 y la segunda, en $40. El comando:

LCDOUT $FE, $C0Hace que el visor comience a escribir caracteres en el principio de la segunda línea. Los visores 16x1 usualmente están formateados como visores de 8x2, con un salto entre las locaciones de memoria para los primeros y segundos caracteres de 8. Los visores de 4 líneas, también tienen un mapa de memoria no ordenado.

Vea la hoja de datos para el dispositivo LCD, en particular el que usted esté usando, para las locaciones de memoria de carácter y comandos adicionales.

LCDOUT $FE, 1, “Hello” ‘limpia el visor y muestra “Hello”LCDOUT B0, #B1

Microcontroladores I.Página 39

Page 40: Microcontroladores I 2013a

El LCD puede estar conectado al micro Pic, usando un bus de 4 bit o uno de 8 bit. Si se usa un bus de 8 bits, todos los 8 bits deben estar en un Port. Si se usa un bus de 4 bits, debe estar conectado o a los 4 bit inferiores o a los 4 bit superiores de un Port. Enable y Register Select deben estar conectados a algún pin del port. R/W debe estar colocado a tierra, ya que el comando de LCDOUT solamente es de grabación. PBP supone que el LCD está conectado a pines específicos, a menos que se le diga de otra manera. Asume que el LCD va a ser usado con un bus de 4 bits, con las líneas de data DB4 - DB7 conectadas en el micro Pic a PORTA.0 - PORTA.3, Register Select a PORTA.4 y Enable a PORTB.3. Además, inicializa el LCD como un visor de dos líneas.

PROBADOR DE LCD (Dispositivo de Cristal Liquido).

Microcontroladores I.Página 40

Page 41: Microcontroladores I 2013a

PRACTICA DE MICROCONTROLADORES I – LCD.PRACTICA Nº 09

Tiempo: 07 hrs.

inicio:

LCDOut $fe,1,"ELECTRONICA"

Pause 500

GoTo inicio

DIAGRAMA ESQUEMATICO DE CONEXIÓN DEL HARDWARE

Microcontroladores I.Página 41

Page 42: Microcontroladores I 2013a

SIMULACION DE MEDICION DE TEMPERATURAvalor VAR BYTE

inicio:

Pot PORTB.4,255,valor

LCDOut $fe,1,"Temp=",DEC valor

Pause 1000

GoTo inicio

DIAGRAMA ESQUEMATICO DE CONEXIÓN DEL HARDWARE

LCD (DISPLAY DE CRISTAL LÍQUIDO)Microcontroladores I.

Página 42

Page 43: Microcontroladores I 2013a

valor VAR BYTE

inicio:

Pot PORTB.4,255,valor

LCDOut $fe,1,"ISTP AMG"

LCDOut $fe,$c0,"Temp=",DEC valor

Pause 500

GoTo inicio

DIAGRAMA ESQUEMATICO DE CONEXIÓN DEL HARDWARE

Microcontroladores I.Página 43

Page 44: Microcontroladores I 2013a

COMUNICACIÓN SERIAL POR HIPERTERMINAL

Tiempo: 07 hrs.

COMUNICACION SERIAL:Existen 2 formas de comunicación binaria, la paralela y el serial. La comunicación paralela se da cuando se conecta un Pic con el circuito integrado 7447, en donde los datos se distribuyen en forma paralela y rápida. Pero el inconveniente es que los datos se envían a través de 04 hilos (cables), es decir un bit por cada cable. La distancia es un problema ya que genera capacitancia y la transmisión se vuelve defectuosa a partir de unos pocos metros.

La comunicación serial en cambio es más lenta debido a que se transmite bit a bit. Pero la ventaja es que se emplean menos hilos y su distancia de transmisión se extiende, según sea la norma. Para la norma RS232 es 15 mts. En la norma RS422 y RS485 es 1200 mts. Y si se emplea MODEM puede llegar a cualquier parte del mundo.

Existen dos formas de comunicación serial la sincrónica y la asincrónica. La sincrónica además de la línea de transmisión de datos emplea una línea con pulsos de reloj, estos a su vez indican cuando un pulso es válido. Por otro lado la comunicación asincrónica no emplea pulsos de reloj, en su lugar emplea como referencia la tierra (RS232) o voltajes diferenciales (RS422/485), en donde la duración de cada bit es determinado por la velocidad de transmisión que se define previamente en ambos equipos.

MODOS DE TRANSMISION DE DATOSExisten 04 modos de transmisión:

SIMPLEXTransmisión en un solo sentido. Sea solo para transmitir o solo recibir. Ejemplo la radiodifusión donde la estación es el transmisor y los radios son los receptores.

HALF DUPLEXTransmisión en ambos sentidos, pero no al mismo tiempo, en donde una ubicación puede ser un transmisor y un receptor, pero no los dos al mismo tiempo. Ejemplo el walking talking, en donde si se presiona un pulsador transmitimos y si lo soltamos recibimos.

FULL DUPLEXTransmisión en ambos sentidos y al mismo tiempo, también se le conoce con el nombre de líneas simultáneas de doble sentido. Una ubicación puede transmitir y recibir simultáneamente, siempre y cuando la estación a la que está transmitiendo también sea la estación de la cual está recibiendo. Ejemplo la telefonía móvil.

FULL/FULL DUPLEXCon este modo de transmisión es posible transmitir y recibir simultáneamente, pero necesariamente entre dos ubicaciones, es decir una estación puede transmitir a una segunda estación y recibir de una tercera estación al mismo tiempo. Esta transmisión se emplea en circuitos de comunicación de datos.

Microcontroladores I.Página 44

Page 45: Microcontroladores I 2013a

COMUNICACION SERIAL RS232:Las Pcs actuales incluyen el conocido puerto serial asincrónico y sirve para comunicarse con otras Pcs, además del Mouse, impresoras, programadores.

Figura Nº 01: Estructura de un dato enviado serialmente y asincrónicamente a 2400, 8T1. (2400 bits/seg., sin bit de paridad, 8 bits de datos y 1 bit de parada). Correspondiente al número 68 carácter ASCII de “D” (% 00100010), el tiempo de un bit es de 416 us, Por lo que el receptor revisa el bit de arranque después de 208 us y luego cada 416 us.

Figura Nº 02: Comunicación serial con la norma RS 232, el dato enviado es el mismo que en la gráfica Nº 01 con la diferencia que la lógica es inversa. Donde “1” equivale a –10V. y “0” a +10V.

Microcontroladores I.Página 45

Page 46: Microcontroladores I 2013a

COMUNICACION SERIAL DE PIC A PC:La comunicación es asincrónica en modo simplex, que consiste en enviar datos, mas específicamente en caracteres ASCII de la palabra “HOLA A TODOS”, a través de un cable y directamente desde el PIC 16F84 a la PC, a 2400 bits/seg, a 8 bits de datos, sin paridad y un bit de parada. La Pc tiene al menos un puerto serial, con la norma RS232, por lo tanto debemos simular esos voltajes desde el Pic, esto lo conseguimos enviando “0” para representar el “1” lógico y 5 V, para representar el “0” lógico. Para esto se emplea la declaración PBP SEROUT.

DECLARACION SEROUT: Se emplea para enviar datos seriales en un formato

standard asincrónico usando 8 bits de datos, sin paridad y 1 bit de parada (8N1).

Ejemplo:SEROUT Portb.1, N2400, [“D” ] ; Envía el carácter ASCII “D” por l puerto B1 a

2400N1, en dato invertido

Figura Nº 03: Esquema del dato enviado por el PIC16F84 simulando la norma RS232, el cual es muy similar al de la gráfica Nº 02, pero con diferente nivel de voltaje.

Microcontroladores I.Página 46

Page 47: Microcontroladores I 2013a

CONECTOR DB9Identificación de Terminales:

Conector DB9.

DIAGRAMA ESQUEMATICO

PRACTICA DE MICROCONTROLADORES I – SEMAFOROSPRACTICA Nº 10

INCLUDE "modedefs.bas"inicio:High PORTB.0Pause 1000Low PORTB.0Pause 500SerOut PORTB.1, N2400,["BIENVENIDOS A LA UNIDAD DIDACTICA MICROCONTROLADORES I"]GoTo inicio

Microcontroladores I.Página 47

Page 48: Microcontroladores I 2013a

VISUAL BASIC 6.0Es un software de programación de alto nivel orientado a objetos. Los objetos a los que hace referencia son los formularios y los controles. Donde el formulario es una interfaz entre el usuario y la Pc, además de ser un contenedor de objetos. Y los controles son gráficos tales como: la caja de texto, el botón de comando, el combo, etc. Además tanto el formulario como los controles poseen propiedades y características como nombre, color, etc. Las cuales son modificadas ya sea en el tiempo de diseño o ejecución.Los controles se encuentran dentro de la caja de herramientas. Tales como: Puntero, Picture Box, Label, Text Box, Frame, Command Button, Check Box, Option Button, Combo Box, List Box, HScroll Bar, VScroll Bar, Timer, Drive List Box, Dir List Box, File List Box, Shape, Line, Image, Data OLE.

SUGERENCIA DE PREFIJOS A EMPLEAR.

Tipo de Control Prefijo EjemploLabel lbl lblingresarACommand Button cmd cmdejecutarText Box txt txtamplitudCheck Box chk chkcolor

VARIABLES:En Visual Basic es preferible forzar la declaración de variables. Para ello Ingrese a HERRAMIENTAS – OPCIONES y seleccionar requerir declaración de variables.

A la hora de declarar se coloca OPTION EXPLICIT

TIPOS DE VARIABLES:

Microcontroladores I.Página 48

Page 49: Microcontroladores I 2013a

Tiempo: 07 hrs.

PRACTICAS CON PULSADORES NA (NORMALMENTE ABIERTOS).

ARRANQUE DE MOTOR

i VAR BYTEinicio:IF PORTA.0=1 Then activarGoTo inicio

activar:For i=0 TO 5High PORTB.0Low PORTB.1Pause 1000Next i

For i=0 TO 5Low PORTB.0High PORTB.1Pause 1000Next i

GoTo inicio

Microcontroladores I.Página 49

Page 50: Microcontroladores I 2013a

ARRANQUE ESTRELLA - TRIANGULOEn esta aplicación se hace uso de un temporizador con retardo a la conexión (ON

DELAY) para realizar el arranque en 02 etapas primero arranca en ESTRELLA y

después de haber llegado al 70% de su velocidad nominal (aprox. De 2 a 5 segundos)

pasa a la conexión triángulo llegando a su estado normal de trabajo. Ello se lleva a

cabo cuando presionamos S1Q se activa K1M, k2M y K4T pasados 5 segundos, se

desactiva K1M y K4T y queda solo activado K2M y K3M.

Microcontroladores I.Página 50

Page 51: Microcontroladores I 2013a

Microcontroladores I.Página 51

Page 52: Microcontroladores I 2013a

ARRANQUE DE MOTOR ESTRELLA TRIANGULO

i VAR BYTEinicio:IF PORTA.0=1 Then activarGoTo inicio

activar:For i=0 TO 5High PORTB.0High PORTB.1Low PORTB.2Pause 1000Next i

For i=0 TO 5High PORTB.0Low PORTB.1High PORTB.2Pause 1000Next iGoTo inicio

PUERTA LOGICA AND

TRISA.0=1TRISA.1=1b0 VAR PORTA.0b1 VAR PORTA.1inicio:IF b0=0 AND b1=0 Then

Low PORTB.0EndIFIF b0=0 AND b1=1 Then

Low PORTB.0EndIFIF b0=1 AND b1=0 Then

Low PORTB.0EndIFIF b0=1 AND b1=1 Then

High PORTB.0EndIFGoTo inicio

Microcontroladores I.Página 52

Page 53: Microcontroladores I 2013a

MEDIDOR DE CARGA DE BATERIAb0 VAR BYTEinicio:Pot PORTA.0,255,b0IF b0<120 Then

Low PORTB.0Low PORTB.1High PORTB.2

EndIFIF (b0>120) AND (b0<180) Then

Low PORTB.0High PORTB.1Low PORTB.2

EndIFIF b0>180 Then

High PORTB.0Low PORTB.1Low PORTB.2

EndIFGoTo inicio

Microcontroladores I.Página 53