Microcontroladores I 2013a
-
Upload
fernandovia -
Category
Documents
-
view
239 -
download
0
description
Transcript of Microcontroladores I 2013a
DIAGRAMA ESQUEMATICO DE PROBADOR DE PICS 16F84
Tiempo: 01 hr.
Microcontroladores I.Página 1
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
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
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
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
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
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
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
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
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
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
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
High PORTB.4
High PORTB.5
High PORTB.6
Pause 1000
Goto inicio
Microcontroladores I.Página 13
DIGRAMA ESQUEMATICO PARA DISPLAY ANODO COMUN.
Microcontroladores I.Página 14
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SEMAFORO CON DIODOS LEDS
Microcontroladores I.Página 32
DIAGRAMA ESQUEMATICO PARA UN SEMAFORO
Microcontroladores I.Página 33
ETAPAS DE POTENCIA PARA EL MICROCONTROLADOR PIC 16F84
ETAPA DE POTENCIA CON RELE
Microcontroladores I.Página 34
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
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
PRACTICA DE MICROCONTROLADORES I – VUOMETRO CON LEDSPRACTICA Nº 08
Microcontroladores I.Página 37
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
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
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
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
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
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
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
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
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
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
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
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
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
Microcontroladores I.Página 51
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
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