Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Edison Riofrío
Francisco Reyes
OBJETIVO: Utilizar los puertos del micro controlador PIC, como interface digital al
mundo exterior.
MIKROBASIC
MikroBasic es uno de los compiladores de lenguaje BASIC para PICs que ha estado en el
mercado por algún tiempo pero que se ha ido masificando a partir de la versión 5.00.
Este compilador es traído gracias a la empresa mikroElectronika, misma que distribuye una
serie de compiladores entre los que destacan el ya antes mencionado mikroBasic y mikroC.
Figura 1.1
Figura 2.2
1
Ima genca ptur
adademi kr
oBasi
c™V7.0Copyri
ght
© 2002
-2008 mikroElectronika. All rigths reserved
2
IDE de mikroBasic. I
mag
enc a
ptura
dademikr
oBasi
c™V7.0Copyright© 2002-2008 mikroElectronika. All rigths reserved
Ingenieria Electrónica UPS, Sistemas Microprocesados
Salidas: -Código binario del número 55h (01010101) en el PortB del micro controlador.
-Retardo de 1 segundo.
Diagrama de flujo:
Programación en MikroBasic:
program practica1_1
Simulación
Figura 3.3
3
Simulación del circuito de la práctica 1.1 en ISIS de Proteus. ISIS Professional v7.5 SP3. © Labcenter Electronics 1989-2009
Ingenieria Electrónica UPS, Sistemas Microprocesados
Salidas: -Código binario del número AAh (10101010) en el PortB del micro controlador.
-Retardo de 1 segundo.
Diagrama de flujo:
Programación en MikroBasic:
program practica1_2
trisb=0
main:
delay_ms(1000)
end.
Simulación
Figura 4.4
4
Simulación del circuito de la práctica 1.2 en ISIS de Proteus. ISIS Professional v7.5 SP3. © Labcenter Electronics 1989-2009
Ingenieria Electrónica UPS, Sistemas Microprocesados
Salidas: -Código binario del número F0h (11110000) en el PortB del micro controlador.
-Retardo de 1 segundo.
Diagrama de flujo:
Programación en MikroBasic:
program practica1_3
trisc=0 ‘
habilita el puerto C como salida
main:
delay_ms(1000)
end.
Simulación
Figura 5.5
5
Simulación del circuito de la práctica 1.3 en ISIS de Proteus. ISIS Professional v7.5 SP3. © Labcenter Electronics 1989-2009
Ingenieria Electrónica UPS, Sistemas Microprocesados
Salidas: -Bits que ingresan por el PortC salen en las patitas del PortB.
Procesos: -Definir variable para almacenar los datos ingresados por el PortC.
Diagrama de flujo:
Programación en MikroBasic:
program practica1_4
main:
lazo:
valor=portc
portb=valor
goto lazo
end.
Ingenieria Electrónica UPS, Sistemas Microprocesados
Simulación
Figura 6.6
Entradas: - Valores de 0 a F
-Retardo 2 segundos.
Diagrama de flujo:
6
Simulación del circuito de la práctica 1.4 en ISIS de Proteus. ISIS Professional v7.5 SP3. © Labcenter Electronics 1989-2009
Ingenieria Electrónica UPS, Sistemas Microprocesados
Programación en MikroBasic:
program practica1_5
trisb=$0
main:
lazo:
delay_ms(2000)
portb=%00000110
delay_ms(2000)
portb=%01011011
delay_ms(2000)
portb=%01001111
delay_ms(2000)
portb=%01100110
delay_ms(2000)
portb=%01101101
delay_ms(2000)
portb=%01111101
delay_ms(2000)
portb=%00000111
delay_ms(2000)
portb=%01111111
delay_ms(2000)
portb=%01100111
delay_ms(2000)
portb=%01110111
delay_ms(2000)
portb=%01111100
Ingenieria Electrónica UPS, Sistemas Microprocesados
delay_ms(2000)
portb=%01011000
delay_ms(2000)
portb=%01011110
delay_ms(2000)
portb=%01111001
delay_ms(2000)
portb=%01110001
delay_ms(2000)
goto lazo
end.
Simulación
Figura 7.7
7
Simulación del circuito de la práctica 1.6 en ISIS de Proteus. ISIS Professional v7.5 SP3. © Labcenter Electronics 1989-2009
Ingenieria Electrónica UPS, Sistemas Microprocesados
-Escribir los 8 primeros bits (a-h) del código binario establecido para cada valor
en el PortB.
-Escribir los últimos bits (i-n) del código binario establecido para cada valor en
el PortC.
-Retardo 1 segundo
Diagrama de flujo:
Ingenieria Electrónica UPS, Sistemas Microprocesados
o o n m l k j i h g f e d c b a
Z 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1
Y 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0
X 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0
W 0 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0
V 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0
U 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0
T 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1
S 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 1
R 0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1
Q 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1
P 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1
O 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
N 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0
M 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 0
L 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
K 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0
J 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0
I 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1
H 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0
G 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1
F 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 1
E 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1
D 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0
C 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1
B 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0
A 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1
Tabla 1.
Los valores correspondientes a los leds desde la a hasta la h, serán controlados por los
pines del puerto B del PIC, así:
Nótese que el puerto C sólo debería controlar los últimos 6 leds del display y que los puertos
PortC.6 y PortC.7 estarían inutilizados, es por esta razón que estos 2 pines estarán
constantemente en 0. (Véase Tabla1)
Programación en MikroBasic:
program practica1_7
trisb=$0
trisc=$0
main:
lazo:
portb=%00001001
portc=%00010001
delay_ms(1000)
Ingenieria Electrónica UPS, Sistemas Microprocesados
portb=%01000000
portc=%00001001
delay_ms(1000)
portb=%01000000
portc=%00010101
delay_ms(1000)
portb=%00110110
portc=%00010100
delay_ms(1000)
portb=%00110000
portc=%00010001
delay_ms(1000)
portb=%00111110
portc=%00000000
delay_ms(1000)
portb=%10000001
portc=%00001000
delay_ms(1000)
portb=%00101101
portc=%00100010
delay_ms(1000)
portb=%00110011
portc=%00100110
delay_ms(1000)
portb=%00100111
portc=%00100010
delay_ms(1000)
portb=%00110011
portc=%00100010
delay_ms(1000)
Ingenieria Electrónica UPS, Sistemas Microprocesados
portb=%00111111
portc=%00000000
delay_ms(1000)
portb=%01110110
portc=%00000100
delay_ms(1000)
portb=%01110110
portc=%00000001
delay_ms(1000)
portb=%00111000
portc=%00000000
delay_ms(1000)
portb=%00110000
portc=%00100101
delay_ms(1000)
portb=%00011110
portc=%00000000
delay_ms(1000)
portb=%10001001
portc=%00001000
delay_ms(1000)
portb=%00110110
portc=%00100010
delay_ms(1000)
portb=%00111101
portc=%00000010
delay_ms(1000)
portb=%00110001
portc=%00100010
delay_ms(1000)
Ingenieria Electrónica UPS, Sistemas Microprocesados
portb=%00111001
portc=%00100010
delay_ms(1000)
portb=%00011110
portc=%00100010
delay_ms(1000)
portb=%00111001
portc=%00000000
delay_ms(1000)
portb=%00111100
portc=%00100010
delay_ms(1000)
portb=%00110111
portc=%00100010
delay_ms(1000)
goto lazo
end.
Simulación
Figura 8.8
8
Simulación del circuito de la práctica 1.7 en ISIS de Proteus. ISIS Professional v7.5 SP3. © Labcenter Electronics 1989-2009
Ingenieria Electrónica UPS, Sistemas Microprocesados
Diagrama de flujo:
Programación en MikroBasic:
program practica1_8
main:
portb.1=portc.2 or portc.3
goto main
end.
Ingenieria Electrónica UPS, Sistemas Microprocesados
Simulación
Figura 9.9
9
Simulación del circuito de la práctica 1.8 en ISIS de Proteus. ISIS Professional v7.5 SP3. © Labcenter Electronics 1989-2009
Ingenieria Electrónica UPS, Sistemas Microprocesados
CONCLUSIONES
El IDE de mikroBasic resulta amigable para programadores que han tenido experiencia
usando lenguaje de programación BASIC
El PICF877A nos permite controlar de una manera fácil diferentes tipos de displays y
arreglos de leds gracias a la considerable cantidad de pines bidireccionales que este
contiene.
Una correcta programación en conjunto con el correcto diseño del hardware garantiza
un buen resultado final.
RECOMENDACIONES
ANEXOS