Está en la página 1de 54

DIAGRAMA ESQUEMATICO DE PROBADOR DE PICS 16F84

Tiempo: 01 hr.

Microcontroladores I.
Pgina 1

PRACTICA DE MICROCONTROLADORES I SECUENCIAS CON LEDS


PRACTICA N 01
Tiempo: 06 hrs.
Considere un tiempo de 100 ms en todos los casos.
TABLA N 01
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

RB0
1

RA3
1

RA2
1

RA3
1

RA2
1

TABLA N 02
RB7

RB6

RB5

RB4

RB3

RB2

RB1

Microcontroladores I.
Pgina 2

1
1

RB3

RB2

RB1

TABLA N 03
RB7

RB6

RB5

RB4

RB0

RA3

RA2
1

1
1
1
1
1
1
1
1
1

TABLA N 04
RB7
1

RB6

RB5

RB4

RB3

RB2

RB1

RB0

RA3

RA2

1
1
1
1
1
1
1
1
1

TABLA N 05
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

RA3

RA2
1

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

TABLA N 06
Microcontroladores I.
Pgina 3

RB7

RB6

1
1
1

RB5

RB4

1
1
1
1
1

1
1
1
1
1
1
1

RB5

RB4

RB3

RB2

1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1
1

RB3
1

RB2
1

RB1

RB0

RA3

1
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

RA2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

RB1

RB0

RA3

RA2

TABLA N 07
RB7

RB6

1
1

1
1

TABLA N 08
RB7
1

RB6

RB5

RB4

RB3

RB2

RB1

RB0

RA3

RA2
1

1
1

1
1

1
1

TABLA N 09
RB7
1

RB6
1

RB5
1

RB4

RB3

RB2

RB1

RB0
1

RA3
1

1
1

1
1

RA2
1

1
1
1

1
1

Microcontroladores I.
Pgina 4

TABLA N 10
Elabore un programa que posea como mnimo 10 secuencias. Para ello llene la tabla
inferior que se encuentra vaca. 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.
Pgina 5

PRACTICA DE MICROCONTROLADORES I SECUENCIAS CON LEDS


PRACTICA N 02
Tiempo: 07 hrs.
Ejemplo:
Considere un tiempo de 100 ms para todos los casos.
TABLA N 01
128

64

32

16

27

26

25

24

23

22

21

20

23

22

RB7
1
0

RB6
1
0

RB5
1
0

RB4
1
0

RB3
1
0

RB2
1
0

RB1
1
0

RB0
1
0

RA3
1
0

RA2
1
0

TRISB=0

TRISB=0

TRISA.2=0

TRISA.2=0

TRISA.3=0

TRISA.3=0

inicio:

inicio:

PORTB=%11111111

PORTB=255

PORTA=%01100

PORTA=12

GoSub tiempo

GoSub tiempo

PORTB=%00000000

PORTB=0

PORTA=%00000

PORTA=0

GoSub tiempo

GoSub tiempo

GoTo inicio

GoTo inicio

tiempo:

tiempo:

Pause 100

Pause 100

Return

Return

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


programacin de la actual practica y transfiralos a su microcontrolador Pic
16F84A. Posteriormente verifique la operatividad de los mismos en su hardware de
prueba.

Microcontroladores I.
Pgina 6

ESTRUCTURA DE PROGRAMACION
Tiempo: 01hr.
1. FOR - NEXT Repite un segmento del programa.
Sintaxis:
FOR Index = Start TO End {Step {-} Inc }
{ instructions,
instructions }
NEXT {Index}
Descripcin:
Esta instruccin repite una o ms instrucciones. La expresin determinara cuantas
veces ha de llevarse a cabo la repeticin. "Index" es la variable empleada para el
control de cuantas veces la estructura o lazo for...next a de ser repetida. Si el
parmetro "Step" no es especificado, se entiende que la variable "Index" se
incrementa en uno. (Index = Index + 1).
OPERADORES MATEMTICOS
PBP efecta todas las operaciones matemticas en urden jerrquico. Esto significa
que existe precedencia para los operadores. Multiplicacin y divisin son efectuadas
antes que suma y resta, por ejemplo. Para asegurarse que las operaciones son
efectuadas en el orden que se desea, use parntesis para agrupar las operaciones.
A=(B+C)*(D-E)
Todas las operaciones matemticas se realizan sin signo y con una precisin de 16 bit.
Los operadores soportados son:

Microcontroladores I.
Pgina 7

Multiplicacin
PBP efecta multiplicaciones 16 x 16 bits .El operador * devuelve los 16 bit inferiores
del resultado de 32 bit. Esta es la multiplicacin tpica encontrada en los lenguajes de
programacin.
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
Divisin
PBP efecta divisiones de 16 x 16 bit . El operador / devuelve el resultado de 16 bit.
El operador // devuelve el resto (mdulo del nmero).
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
Desplazamiento
Los 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 COMPARACIN

Se usan en declaraciones IF ...


THEN para comparar una expresin con otra. Los operadores soportados son:
Microcontroladores I.
Pgina 8

Microcontroladores I.
Pgina 9

PRACTICA DE MICROCONTROLADORES I SECUENCIAS CON LEDS


PRACTICA N 03
Tiempo: 14 hrs.
INCREMENTO DE TIEMPO
i VAR BYTE
inicio:
For i=0 TO 4
High portb.0
Pause 60000
Next i
For i=0 TO 4
low portb.0
Pause 60000
Next i
GoTo inicio

DESPLAZAMIENTO DE UN
(DERECHA E IZQUIERDA)

LED

a VAR BYTE
i VAR BYTE
TRISB=0
inicio:
a=1
For i=0 TO 7
PORTB=a
a=a>>1
Pause 200
Next i

CONTADOR DE 8 BITS (0 A 255)

a=128
For i=0 TO 6
PORTB=a
a=a<<1
Pause 200
Next i

I VAR BYTE
TRISB=0
a VAR BYTE
inicio:
For I=0 TO 255
PORTB=I
Pause 500
Next I
GoTo inicio

GoTo inicio

SECUENCIAL ASCENDENTE DE 8 LEDS


RB7

RB6

RB5

RB4

RB3

RB2

RB1
1

1
1
1
1
1
1

RB0
1

Dec
1
2
4
8
16
32
64
128

a VAR BYTE
i VAR BYTE
TRISB=0
inicio:
a=1
For i=0 TO 7
PORTB=a
a=a*2
Pause 200
Next i
GoTo inicio

Microcontroladores I.
Pgina 10

SECUENCIAL DESCENDENTE DE 8 LEDS


RB7
1

RB6

RB5

RB4

RB3

RB2

RB1

RB0

1
1
1
1
1
1
1

Dec
128
64
32
16
8
4
2
1

a VAR BYTE
i VAR BYTE
TRISB=0
inicio:
a=128
For i=0 TO 7
PORTB=a
a=a/2
Pause 200
Next i
GoTo inicio
SECUENCIAL ASCENDENTE Y DESCENDENTE DE 8 LEDS
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0
1

1
1
1
1
1
1
1
1
1
1
1
1
1
1

a VAR BYTE
I VAR BYTE
TRISB=0
inicio:
a=1
For I=0 TO 7
PORTB=a
a=a*2
Pause 200

Dec
1
2
4
8
16
32
64
128
64
32
16
8
4
2
1

Next I
a=64
For I=0 TO 6
PORTB=a
a=a/2
Pause 200
Next I
GoTo inicio

Microcontroladores I.
Pgina 11

EMPLEO DEL COMANDO WRITE Y READ


Write escribe en una determinada direccin de memoria del microcontrolador y Read
lee el dato alojado en dicha direccin de memoria.

WRITE Address,Value
Graba valores Value en el EEPROM incorporado en la direccin (Address)
especificada. Esta instruccin 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 ejecucin. Para
grabar datos en el EEPROM durante la programacin, 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

enva el valor de B0 al EEPROM pin 5

READ Address,Var
Lee el EEPROM incorporado en la direccin (Address), y guarda el resultado en Var.
Esta instruccin 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 direccin 5 del EEPROM

Ejemplo:
SECUENCIAL DE 8 LEDS

RB7
1

RB6

RB5

RB4

RB3

RB2

RB1

1
1

1
1

1
1

1
I VAR BYTE
B VAR BYTE
TRISB=0
Write 1,129
Write 2,66
Write 3,36
Write 4,24
Write 5,36
Write 6,66

RB0
1

129
66
36
24
36
66

PORTB=B
Pause 100
Next I
GoTo inicio

inicio:
For I=1 TO 6
Read I,B
Microcontroladores I.
Pgina 12

Elabore 10 programas empleando


Write
y
Read.
Complelos,
transfiralos a su microcontrolador
y compruebe su funcionamiento en
su hardware de prueba.
PRACTICA DE MICROCONTROLADORES I MANEJO DE DISPLAYS
PRACTICA N 04
Tiempo: 14 hrs.

EJEMPLO CON DISPLAY ANODO COMUN

h
g
f
E
d
c
b
a
DEC
Portb.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 nmeros en el Display: 0, 2, 5, 7
inicio:

Low PORTB.3

Low PORTB.0

Low PORTB.4

Low PORTB.1

High PORTB.5

Low PORTB.2

Low PORTB.6

Low PORTB.3

Pause 1000

Low PORTB.4
Low PORTB.5

Low PORTB.0

High PORTB.6

High PORTB.1

Pause 1000

Low PORTB.2
Low PORTB.3

Low PORTB.0

High PORTB.4

Low PORTB.1

Low PORTB.5

High PORTB.2

Low PORTB.6

Microcontroladores I.
Pgina 13

Pause 1000

High PORTB.4
High PORTB.5

Low PORTB.0

High PORTB.6

Low PORTB.1

Pause 1000

Low PORTB.2

Goto inicio

High PORTB.3

Microcontroladores I.
Pgina 14

DIGRAMA ESQUEMATICO PARA DISPLAY ANODO COMUN.

CONTADOR DECODIFICADOR DE 0 A 9 EN FORMA DECIMAL PARA DISPLAY


ANODO COMUN.
128

64

32

16

h
RB7

g
RB6
1
1
0
0
0
0
0
1
0
0

f
RB5
0
1
1
1
0
0
0
1
0
0

e
RB4
0
1
0
1
1
1
0
1
0
1

d
RB3
0
1
0
0
1
0
0
1
0
1

c
RB2
0
0
1
0
0
0
0
0
0
0

b
RB1
0
0
0
0
0
1
1
0
0
0

a
RB0
0
1
0
0
1
0
1
0
0
0

I VAR BYTE
B VAR BYTE
TRISB=0
Write 1,64
Write 2,121
Write 3,36
Write 4,48
Write 5,25
Write 6,18
Write 7,3
Write 8,120
Write 9,0
Write 10,24
inicio:
For I=1 TO 10
Read I,B
PORTB=B
Pause 1000
Next I
GoTo inicio
EMPLEO DEL COMANDO LOOKUP
i VAR BYTE
dato VAR BYTE
TRISB=0
inicio:
For i=0 TO 9
LookUp i, [64,121,36,48,25,18,3,120,0,24], dato
PORTB=dato
Pause 1000
Next i
GoTo inicio

DEC
0
1
2
3
4
5
6
7
8
9

ANODO
COMUN
64
121
36
48
25
18
3
120
0
24

PRACTICAS CON DISPLAY ANODO COMUN - DIGITOS

Practica N 01
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Dec
0
1
2
3
4
5
6
7
8
9

RB5

RB4

RB3

RB2

RB1

RB0

Dec
9
8
7
6
5
4
3
2
1
0

RB5

RB4

RB3

RB2

RB1

RB0

Dec
1
3
5
7
9

RB5

RB4

RB3

RB2

RB1

RB0

Dec
2
4
6
8
0

Practica N 02
RB7

RB6

Practica N 03
RB7

RB6

Practica N 04
RB7

RB6

Practica N 05
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Dec
2
0
1
3

PRACTICAS CON DISPLAY ANODO COMUN - LETRAS


Practica N 06
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Dec
L
A
P
A
L
A

RB5

RB4

RB3

RB2

RB1

RB0

Dec
E
L
P
A
P
A

RB5

RB4

RB3

RB2

RB1

RB0

Dec
E
L
C
U
Y

RB5

RB4

RB3

RB2

RB1

RB0

Dec
P
A
C
O

Practica N 07
RB7

RB6

Practica N 08
RB7

RB6

Practica N 09
RB7

RB6

Practica N 10
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Dec
E
S
E
G
A
L
L
O

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

Practica N 11
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Dec

RB5

RB4

RB3

RB2

RB1

RB0

Dec

Practica N 12
RB7

RB6

PRACTICAS CON DISPLAY CATODO COMUN DIGITOS


Tiempo: 07 hrs.
Practica N 01
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Dec
0
1
2
3
4
5
6
7
8
9

RB5

RB4

RB3

RB2

RB1

RB0

Dec
1
3
5
7
9

RB5

RB4

RB3

RB2

RB1

RB0

Dec
2
4
6
8
0

RB5

RB4

RB3

RB2

RB1

RB0

Dec
2
0
1
1

RB0

Dec
H
0
L
A

Practica N 02
RB7

RB6

Practica N 03
RB7

RB6

Practica N 04
RB7

RB6

PRACTICAS CON DISPLAY CATODO COMUN - LETRAS


Practica N 05
RB7

RB6

RB5

RB4

RB3

RB2

RB1

Practica N 06
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Dec
P
A
P
A

RB5

RB4

RB3

RB2

RB1

RB0

Dec
E
L
C
U
Y

RB5

RB4

RB3

RB2

RB1

RB0

Dec
P
I
P
O

RB5

RB4

RB3

RB2

RB1

RB0

Dec
E
S
E
G
A
Y

Practica N 07
RB7

RB6

Practica N 08
RB7

RB6

Practica N 09
RB7

RB6

Elabore 01 programa de letras o nmeros. Para ello emplee la tabla de la practica 10 para
rellenar los datos que desea que aparezcan en el display ctodo comn.

Practica N 10
RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Dec

ESTRUCTURA DE PROGRAMACION
2. IF - THEN - ELSE. Salto condicional del programa.
Sintaxis:
IF Expression1 {AND / OR Expression2} THEN Label
{instructions}
ELSE
{instructions}
ENDIF
Descripcin:
Esta instruccin selecciona
una
de
dos
posibles
alternativas. La instruccin 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
lgica.

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


tensin de 5 voltios.
En el primer circuito en RBO existe
una tensin de 5 voltios a menos que
se presione T1 entonces habra 0V.

En el segundo circuito en RBO existe una tensin de 0 voltios a menos que se


presione T1 entonces habra 5 voltios.

En tercer circuito en RBO existe una tensin de 5


voltios a menos que se presione T1 entonces habra 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
Else
Sentencia2
Endif

PRACTICA DE MICROCONTROLADORES I MANEJO DE PULSADORES N.A


PRACTICA N 05
06 Hrs.
Practica N 01
TRIS A.0 = 1
TRISB.0 = 0
inicio:
IF PORTA.0 = 1 Then
High PORTB.0
Else
Low PORTB.0
EndIF
GoTo inicio

Practica N 02
TRIS A.0 = 1

CIRCUITO BASICO PARA SONIDO

TRIS A.1 = 1
TRISB.0 = 0
TRISB.1= 0
inicio:
IF PORTA.0 = 1 Then
High PORTB.0
Else
Low PORTB.0
EndIF
IF PORTA.1 = 1 Then
High PORTB.1
Else
Low PORTB.1
EndIF
GoTo inicio

El presente circuito consta de un


amplificador de corriente continua
alimentado por 5 voltios. Su entrada
es a travs de la resistencia de 2.7 K,
la seal a amplificar proviene de
cualquier puerto del microcontrolador.
Su salida es a travs del emisor de
transistor BC548. El cual posee una
resistencia de 1K para polarizacin.
Mientras que el pequeo 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 automticamente
colocado como salida. El Pin puede ser una constante, 0 - 15, una variable que
contenga un nmero de 0-15 (p.ej. B0) un nmero 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 estn 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 caractersticas del
microcontrolador Pic, se puede manejar un parlante
a travs de un capacitor. El valor del capacitor debe
ser determinado en funcin de las frecuencias a
usar y la carga del parlante. Los parlantes pueden
ser piezoelctricos.

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 =1
TRISA.1.=1
TRISB.0=0

inicio:
IF PORTA.0=1 Then cancion1
IF PORTA.1=1 Then cancion2
GoTo inicio
cancion1:
Sound PORTB.0,[105,50,110,50,120,50]
Pause 200
GoTo inicio
cancion2:
Sound PORTB.0,[120,50,110,50,105,50]
Pause 200
GoTo inicio

Elabore 10 programas empleando la estructura if then else y 10 programas


con el comando sound con sonidos diferentes.

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.

MATRIZ DE LEDS 7 X 5

PRACTICA DE MICROCONTROLADORES I ARRAY O MATRIZ DE LEDS


PRACTICA 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
1

RA2
1

RA1
1

RA0
1

RB7
1

RB6
1

RB5
1

RB4
1

RB3
1

RB2
1

RB1
1

RB0
1

RB4
1
0

RB3
1
0

RB2
1
0

RB1
1
0

RB0
1
0

RB4
0
0

RB3
0
0

RB2
0
0

RB1
0
0

RB0
1
0

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


.RA3
1
0

RA2
1
0

RA1
1
0

RA0
1
0

RB7
1
0

RB6
1
0

RB5
1
0

TABLA N 03: Encendido y apagado de un led.


.RA3
0
0

RA2
0
0

RA1
0
0

RA0
0
0

RB7
1
1

RB6
0
0

RB5
0
0

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

RA3
1

RA2
1

RA1
1

RA0
1

RB7
1

RB6
0

RB5
0

RB4
0

RB3
0

RB2
0

RB1
0

RB0
1

RB2

RB1

RB0

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


RA3

RA2

RA1

RA0

RB7

RB6

RB5

RB4

RB3

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


RA3
1

RA2
1

RA1
1

RA0
1

RB7
1

RB6
0

RB5
0

RB4
0

RB3
0

RB2
0

RB1
1

RB0
0

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


RA3

RA2

RA1

RA0

RB7

RB6

RB5

RB4

RB3

RB4
0

RB3
0

RB2

RB1

RB0

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


RA3
1

RA2
1

RA1
1

RA0
1

RB7
1

RB6
0

RB5
0

RB2
1

RB1
0

RB0
0

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


RA3

RA2

RA1

RA0

RB7

RB6

RB5

RB4

RB3

RB4
0

RB3
1

RB2

RB1

RB0

TABLA N10: Activar los 05 Leds de la cuarta fila.


RA3
1

RA2
1

RA1
1

RA0
1

RB7
1

RB6
0

RB5
0

RB2
0

RB1
0

RB0
0

TABLA N11: Activar y Desactivar los 05 Leds de la cuarta fila.


RA3

RA2

RA1

RA0

RB7

RB6

RB5

RB4

RB3

RB4
1

RB3
0

RB2

RB1

RB0

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


RA3
1

RA2
1

RA1
1

RA0
1

RB7
1

RB6
0

RB5
0

RB2
0

RB1
0

RB0
0

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


RA3

RA2

RA1

RA0

RB7

RB6

RB5

RB4

RB3

RB4

RB3

RB2

RB1

RB0

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


RA3

RA2

RA1

RA0

RB7

RB6

RB5

RB2

RB1

RB0

RB1

RB0

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


RA3

RA2

RA1

RA0

RB7

RB6

RB5

RB4

RB3

RB4
0

RB3
0

RB2

TABLA N 16: Activar los 05 Leds de la sptima fila.


RA3
1

RA2
1

RA1
1

RA0
1

RB7
1

RB6
1

RB5
0

RB2
0

RB1
0

RB0
0

TABLA N 17: Activar y Desactivar los 05 Leds de la sptima 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
0

RA2
0

RA1
0

RA0
0

RB7
1

RB6
1

RB5
1

RB4
1

RB3
1

RB2
1

RB1
1

RB0
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

RB3
1

RB2
1

RB1
1

RB0
1

TABLA N 20: Activar los 07 Leds de la segunda columna.


RA3
0

RA2
0

RA1
0

RA0
1

RB7
0

RB6
1

RB5
1

RB4
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

RB3
1

RB2
1

RB1
1

RB0
1

RB1

RB0

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


RA3
0

RA2
0

RA1
1

RA0
0

RB7
0

RB6
1

RB5
1

RB4
1

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


RA3

RA2

RA1

RA0

RB7

RB6

RB5

RB4

RB3

RB2

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


RA3
0

RA2
1

RA1
0

RA0
0

RB7
0

RB6
1

RB5
1

RB4
1

RB3
1

RB2
1

RB1
1

RB0
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
1

RA2
0

RA1
0

RA0
0

RB7
0

RB6
1

RB5
1

RB4
1

RB3
1

RB2
1

RB1
1

RB0
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
0
0
0
0
1

RA2
0
0
0
1
0

RA1
0
0
1
0
0

RA0
0
1
0
0
0

RB7
1
0
0
0
0

RB6
0
0
0
0
0

RB5
0
0
0
0
0

RB4
0
0
0
0
0

RB3
0
0
0
0
0

RB2
0
0
0
0
0

RB1
0
0
0
0
0

RB0
1
1
1
1
1

RB1
0
1
0
0
0
0
0

RB0
1
0
0
0
0
0
0

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


.RA3
0
0
0
0
0
0
0

RA2
0
0
0
0
0
0
0

RA1
0
0
0
0
0
0
0

RA0
0
0
0
0
0
0
0

RB7
1
1
1
1
1
1
1

RB6
0
0
0
0
0
0
1

RB5
0
0
0
0
0
1
0

RB4
0
0
0
0
1
0
0

Elabore 05 desplazamientos en la matriz de leds.


Elabore un nmero en la matriz de leds.
Elabore una letra sobre la matriz de leds.
Elabore un grafico sobre la matriz de leds.

RB3
0
0
0
1
0
0
0

RB2
0
0
1
0
0
0
0

DIAGRAMAS DE TIEMPO
Tiempo: 01 hr.
El diagrama de tiempos es una representacin pictrica de la manera como los niveles
lgicos varan en funcin del tiempo. Es de bastante utilidad cuando se desea conocer
de un solo vistazo las caractersticas operacionales de un circuito o de un proceso.
Veamos un ejemplo:
Un motor elctrico solo gira en un determinado sentido si se le
aplica tensin de red. Es decir si le llega energa elctrica ste
gira en un determinado sentido (nivel lgico 1). Pero si se le
retira la energa elctrica este deja de funcionar (nivel lgico
0). Tal como lo muestra el diagrama de tiempo en la parte
inferior.

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

Cmo 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 estn 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
lgico 1 se activa el motor desde T1 hasta T4. Luego vemos que si se presiona o
pone en nivel lgico 1 el pulsador B, el motor se apagara en los tiempos T4 y T5.
Luego el ciclo se repite.

PRACTICA DE MICROCONTROLADORES I SEMAFOROS


PRACTICA N 07
DIAGRAMAS DE TIEMPO PARA DOS SEMAFOROS

Dado el siguiente diagrama de tiempos. Analcelo e interprtelo.

Elabore su tabla. Posteriormente elabore el cdigo fuente y pruebe si es operativo en su


hardware de prueba.

RB5

RB4

RB3

RB2

RB1

RB0

Tiempo

SEMAFORO CON DIODOS LEDS

DIAGRAMA ESQUEMATICO PARA UN SEMAFORO

ETAPAS DE POTENCIA PARA EL MICROCONTROLADOR PIC 16F84


ETAPA DE POTENCIA CON RELE

ETAPA DE POTENCIA CON TRIAC BT136 PARA TENSION MONOFASICA

ARRANQUE DIRECTO DE MOTOR


inicio:
IF PORTA.3=1 Then activar

GoTo inicio
activar:
High PORTB.0
Goto inicio

COMANDO POT

Lee un potencimetro ( otro dispositivo resistivo). El Pin


puede ser una constante, 0 - 15, una variable que contenga un nmero de 0 - 15
(p.ej. B0) un nmero de Pin (p.ej. PORTA.0). La resistencia se mide tomando el
tiempo de descarga de un capacitor a travs 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 mnimo 1). Para constantes RC pequeas, Scale debe ser mxima
(255). Si el valor de Scale es correcto, Var debe ser cero para mnima resistencia y
255 para mxima resistencia.
Desgraciadamente, Scale debe ser determinada en forma experimental. Para esto,
coloque el dispositivo a medir en mxima resistencia y mdalo con Scale=255. En
estas condiciones, Var tendr un valor apropiado de Scale. (Este es el mismo tipo de
proceso que efecta la opcin ALT-P en BS1).
POT Pin,Scale,Var
POT Portb.0,255,B0

lee el valor del potencimetro desde RB0, con escala

mxima y coloca el valor en la variable B0.


POT,3,255,B0

lee el potencimetro en pin 3 para determinar Scale

Serout 0,N2400,[#B0]

enva el valor del potencimetro en forma serial al pin 0

PRACTICA DE MICROCONTROLADORES I VUOMETRO CON LEDS


PRACTICA N 08
b0 VAR BYTE
inicio:
Pot PORTA.0,255,b0
IF b0>0 Then
Low PORTB.0
Low PORTB.1
Low PORTB.2
Low PORTB.3
Low PORTB.4
Low PORTB.5
Low PORTB.6
Low PORTB.7
EndIF
IF b0>28 Then
High PORTB.0
Low PORTB.1
Low PORTB.2
Low PORTB.3
Low PORTB.4
Low PORTB.5
Low PORTB.6
Low PORTB.7
EndIF
IF b0>56 Then
High PORTB.0
High PORTB.1
Low PORTB.2
Low PORTB.3
Low PORTB.4
Low PORTB.5
Low PORTB.6
Low PORTB.7
EndIF
IF b0>84 Then
High PORTB.0
High PORTB.1
High PORTB.2
Low PORTB.3
Low PORTB.4
Low PORTB.5
Low PORTB.6
Low PORTB.7
EndIF
IF b0>112 Then
High PORTB.0
High PORTB.1
High PORTB.2

High PORTB.3
Low PORTB.4
Low PORTB.5
Low PORTB.6
Low PORTB.7
EndIF
IF b0>140 Then
High PORTB.0
High PORTB.1
High PORTB.2
High PORTB.3
High PORTB.4
Low PORTB.5
Low PORTB.6
Low PORTB.7
EndIF
IF b0>168 Then
High PORTB.0
High PORTB.1
High PORTB.2
High PORTB.3
High PORTB.4
High PORTB.5
Low PORTB.6
Low PORTB.7
EndIF
IF b0>196 Then
High PORTB.0
High PORTB.1
High PORTB.2
High PORTB.3
High PORTB.4
High PORTB.5
High PORTB.6
Low PORTB.7
EndIF
IF b0>224 Then
High PORTB.0
High PORTB.1
High PORTB.2
High PORTB.3
High PORTB.4
High PORTB.5
High PORTB.6
High PORTB.7
EndIF
GoTo inicio

COMANDO: LCDOUT
Muestra Items en un visor de cristal lquido inteligente (LCD). PBP soporta mdulos 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 representacin ASCII para cada dgito
es enviada al LCD. LCDOUT tambin puede usar cualquiera de los modificadores usados
con SEROUT2. Vea la seccin de SEROUT2 para ms informacin.
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 lnea en un
visor de dos lneas. Para muchos LCD, los caracteres y lneas mostrados no son
consecutivos en la memoria del visor puede haber un salto entre las localizaciones.
Para muchos visores 16x2, la primera lnea comienza en $0 y la segunda, en $40. El
comando:
LCDOUT $FE, $C0
Hace que el visor comience a escribir caracteres en el principio de la segunda lnea. Los
visores 16x1 usualmente estn 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
lneas, tambin 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 carcter y comandos adicionales.
LCDOUT $FE, 1, Hello limpia el visor y muestra Hello
LCDOUT B0, #B1

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 algn pin del port. R/W debe estar colocado a
tierra, ya que el comando de LCDOUT solamente es de grabacin. PBP supone que el
LCD est conectado a pines especficos, 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 lneas de data DB4 - DB7
conectadas en el micro Pic a PORTA.0 - PORTA.3, Register Select a PORTA.4 y Enable
a PORTB.3. Adems, inicializa el LCD como un visor de dos lneas.
PROBADOR DE LCD (Dispositivo de Cristal Liquido).

PRACTICA DE MICROCONTROLADORES I LCD.


PRACTICA N 09
Tiempo: 07 hrs.
inicio:
LCDOut $fe,1,"ELECTRONICA"
Pause 500
GoTo inicio
DIAGRAMA ESQUEMATICO DE CONEXIN DEL HARDWARE

SIMULACION DE MEDICION DE TEMPERATURA


valor VAR BYTE
inicio:
Pot PORTB.4,255,valor
LCDOut $fe,1,"Temp=",DEC valor
Pause 1000
GoTo inicio
DIAGRAMA ESQUEMATICO DE CONEXIN DEL HARDWARE

LCD (DISPLAY DE CRISTAL LQUIDO)

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 CONEXIN DEL HARDWARE

COMUNICACIN SERIAL POR HIPERTERMINAL


Tiempo: 07 hrs.
COMUNICACION SERIAL:
Existen 2 formas de comunicacin binaria, la paralela y el serial. La comunicacin
paralela se da cuando se conecta un Pic con el circuito integrado 7447, en donde los
datos se distribuyen en forma paralela y rpida. Pero el inconveniente es que los datos se
envan a travs de 04 hilos (cables), es decir un bit por cada cable. La distancia es un
problema ya que genera capacitancia y la transmisin se vuelve defectuosa a partir de
unos pocos metros.
La comunicacin serial en cambio es ms lenta debido a que se transmite bit a bit. Pero
la ventaja es que se emplean menos hilos y su distancia de transmisin se extiende,
segn 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 comunicacin serial la sincrnica y la asincrnica. La sincrnica
adems de la lnea de transmisin de datos emplea una lnea con pulsos de reloj, estos a
su vez indican cuando un pulso es vlido. Por otro lado la comunicacin asincrnica no
emplea pulsos de reloj, en su lugar emplea como referencia la tierra (RS232) o voltajes
diferenciales (RS422/485), en donde la duracin de cada bit es determinado por la
velocidad de transmisin que se define previamente en ambos equipos.

MODOS DE TRANSMISION DE DATOS


Existen 04 modos de transmisin:

SIMPLEX
Transmisin en un solo sentido. Sea solo para transmitir o solo recibir. Ejemplo la
radiodifusin donde la estacin es el transmisor y los radios son los receptores.

HALF DUPLEX
Transmisin en ambos sentidos, pero no al mismo tiempo, en donde una ubicacin
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 DUPLEX
Transmisin en ambos sentidos y al mismo tiempo, tambin se le conoce con el
nombre de lneas simultneas de doble sentido. Una ubicacin puede transmitir y
recibir simultneamente, siempre y cuando la estacin a la que est transmitiendo
tambin sea la estacin de la cual est recibiendo. Ejemplo la telefona mvil.

FULL/FULL DUPLEX
Con este modo de transmisin es posible transmitir y recibir simultneamente, pero
necesariamente entre dos ubicaciones, es decir una estacin puede transmitir a una

segunda estacin y recibir de una tercera estacin al mismo tiempo. Esta transmisin
se emplea en circuitos de comunicacin de datos.

COMUNICACION SERIAL RS232:


Las Pcs actuales incluyen el conocido puerto serial asincrnico y sirve para comunicarse
con otras Pcs, adems del Mouse, impresoras, programadores.

Figura N 01: Estructura de un dato enviado serialmente y asincrnicamente a 2400,


8T1. (2400 bits/seg., sin bit de paridad, 8 bits de datos y 1 bit de parada).
Correspondiente al nmero 68 carcter ASCII de D (% 00100010), el tiempo de un
bit es de 416 us, Por lo que el receptor revisa el bit de arranque despus de 208 us y
luego cada 416 us.

Figura N 02: Comunicacin serial con la norma RS 232, el dato enviado es el mismo
que en la grfica N 01 con la diferencia que la lgica es inversa. Donde 1 equivale a
10V. y 0 a +10V.

COMUNICACION SERIAL DE PIC A PC:


La comunicacin es asincrnica en modo simplex, que consiste en enviar datos, mas
especficamente en caracteres ASCII de la palabra HOLA A TODOS, a travs 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 lgico y 5 V, para representar el 0 lgico. Para esto se
emplea la declaracin PBP SEROUT.
DECLARACION SEROUT: Se emplea para enviar datos seriales en un formato standard
asincrnico usando 8 bits de datos, sin paridad y 1 bit de parada (8N1).
Ejemplo:
SEROUT Portb.1, N2400, [D ] ;

Enva el carcter 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 grfica N 02, pero con diferente nivel de
voltaje.

CONECTOR DB9
Identificacin de Terminales:
Conector DB9.

DIAGRAMA ESQUEMATICO

PRACTICA DE MICROCONTROLADORES I SEMAFOROS


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

VISUAL BASIC 6.0


Es un software de programacin 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, adems de ser un contenedor de objetos. Y los controles son
grficos tales como: la caja de texto, el botn de comando, el combo, etc.
Adems tanto el formulario como los controles poseen propiedades y caractersticas
como nombre, color, etc. Las cuales son modificadas ya sea en el tiempo de diseo o
ejecucin.
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
Label
Command Button
Text Box
Check Box

Prefijo
lbl
cmd
txt
chk

VARIABLES:
En Visual Basic es preferible forzar la
declaracin de variables. Para ello Ingrese
a HERRAMIENTAS OPCIONES
y
seleccionar requerir declaracin de
variables.
A la hora de declarar se coloca OPTION
EXPLICIT
TIPOS DE VARIABLES:

Ejemplo
lblingresarA
cmdejecutar
txtamplitud
chkcolor

Tiempo: 07 hrs.
PRACTICAS CON PULSADORES NA (NORMALMENTE ABIERTOS).

ARRANQUE DE MOTOR
i VAR BYTE
inicio:
IF PORTA.0=1 Then activar
GoTo inicio
activar:
For i=0 TO 5
High PORTB.0
Low PORTB.1
Pause 1000
Next i
For i=0 TO 5
Low PORTB.0
High PORTB.1
Pause 1000
Next i
GoTo inicio

ARRANQUE ESTRELLA - TRIANGULO


En esta aplicacin se hace uso de un temporizador con retardo a la conexin (ON
DELAY) para realizar el arranque en 02 etapas primero arranca en ESTRELLA y despus
de haber llegado al 70% de su velocidad nominal (aprox. De 2 a 5 segundos) pasa a la
conexin tringulo 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.

ARRANQUE DE MOTOR ESTRELLA TRIANGULO

i VAR BYTE
inicio:
IF PORTA.0=1 Then activar
GoTo inicio
activar:
For i=0 TO 5
High PORTB.0
High PORTB.1
Low PORTB.2
Pause 1000
Next i
For i=0 TO 5
High PORTB.0
Low PORTB.1
High PORTB.2
Pause 1000
Next i
GoTo inicio
PUERTA LOGICA AND
TRISA.0=1
TRISA.1=1
b0 VAR PORTA.0
b1 VAR PORTA.1
inicio:
IF b0=0 AND b1=0 Then
Low PORTB.0
EndIF
IF b0=0 AND b1=1 Then
Low PORTB.0
EndIF

IF b0=1 AND b1=0 Then


Low PORTB.0
EndIF
IF b0=1 AND b1=1 Then
High PORTB.0
EndIF
GoTo inicio

MEDIDOR DE CARGA DE BATERIA


b0 VAR BYTE
inicio:
Pot PORTA.0,255,b0
IF b0<120 Then
Low PORTB.0
Low PORTB.1
High PORTB.2
EndIF
IF (b0>120) AND (b0<180) Then
Low PORTB.0
High PORTB.1
Low PORTB.2

EndIF
IF b0>180 Then
High PORTB.0
Low PORTB.1
Low PORTB.2
EndIF
GoTo inicio

También podría gustarte