Vous êtes sur la page 1sur 9

Laboratorio de Microprocesadores I

Docente: Ing. Roger Guachalla Narvez


xoroger@yahoo.es

PRACTICA 05: Programacin en MikroBasic Entrada y Salida de datos digitales


1. Objetivos:
Introducir la sintaxis bsica del lenguaje MikroBasic
Realizar ejemplos de Entrada y Salida de datos digitales
Ejemplo A: Secuencias con leds
Ejemplo B: Unidad Aritmtica Lgica de 4-bit
Ejemplo C: Control de display de leds de 7 segmentos

2. Sintaxis bsica del lenguaje MikroBasic


MikroBasic no distingue entre maysculas o minsculas. Es decir: SUBIR, Subir, subir, sUbIr todas se refieren a una misma variable.
Debido que el microcontrolador PIC16F877A es de 8-bits, procure siempre utilizar variables de este tipo (byte, char, short)

Tipos de Datos:

El

Comentario:

comentario en MikroBasic es el apstrofe simple

Base numrica:
Decimal (Por defecto): 156
Hexadecimal: $3A o 0x3A
Declaracin de Variables en memoria RAM:
dim nombre_de_variable as tipo_de_variable
Ejemplos:
dim
dim
dim
dim

bandera as bit
valorX, valorY, valorZ as byte
contador, temp as word
valores as integer[5]

Declaracin de Constantes en memoria ROM:


const nombre_de_constante = valor

Ejemplos:
const limite = 100
const meses as byte[12]=(31,28,31,30,31,30,31,31,30,31,30,31)

Smbolos:
symbol nombre_de_smbolo = cdigo

Ejemplos:
symbol Saldida = PORTA
symbol Retardo = Delay_ms(200)
main:
trisA=$00
Salida=$00
lazo:
inc(Salida)
Retardo
goto lazo
end.

Binaria: %01101010

Sentencias Condicionales:

o Sentencias if

if-else

if expresion then
sentencia
[else
Otras sentencias]
end if
Ejemplo:

if DatoA>5 then
PORTC=$3F
end if

Sentencia

select case

select case selector


case valor_1
sentencias_1
...
case valor_n

'Falso = 0,
'Verdad <> 0
'Ejemplo para la figura Caso A
if (PORTB.0) then 'Si boton NO se presiona
PORTB.1=0
'Apagar Led
else
PORTB.1=1
'Prender Led
end if

'Ejemplo la figura Caso B


if (PORTB.0) then 'Si boton se presiona
PORTB.1=0
'Prender Led
else
PORTB.1=1
'Apagar Led
end if

sentenicas_n
[case else
Sentencias_por_omision]
end select
Ejemplo:

select case valor


case 1
res=n1*n2
case 2
res=n1/n2
case 3
res=n1+n2
case 4
res=n1-n2
case else
res=0
end select

Sentencia for

o Sentencia

for contador = valor_inicial to valor_final [step valor_de_paso]


lista_de_sentencias
next contador

do

Ejemplo:

Ejemplo:

sentencias
loop until expresin

s=10
i=0
do

s=0
for i=0 to 10
s=s+i
next i

Sentencia while
while expresion
nsentencias
wend
Ejemplo:

s=10
i=0
while i<s
i=i+1
wend

do

i=i+1
loop until i>s

o Sentencia

goto

nombre_de_etiqueta :

goto nombre_de_etiqueta
Ejemplo:

lazo:
inc(PORTC)
delay_ms(300)
goto lazo

3. Salida de datos digitales con leds


Existen 2 tcnicas para encender un led con el microcontrolador: Por lgica directa y por lgica inversa

Si usamos lgica directa el led se enciende con un 1 lgico (VCC) y se apaga con un 0 lgico (Gnd). Es la forma ms
intuitiva de conexin y es ampliamente usado en enseanza. La desventaja es que el brillo del led depende de la
corriente que pueda suministrar el microcontrolador a travs del pin de Salida (En este ejemplo RC.7) siendo un valor
mximo de 20 miliamperes por pin y no pudiendo superar los 100 miliamperes para todo el puerto.
Si usamos lgica inversa el led se enciende con un 0 lgico (Gnd) y se apaga con un 1 lgico (VCC). Esta forma causa
mayor confusin porque nuestro cerebro est acostumbrado a la lgica directa. Sin embargo se puede lograr un mayor
brillo del led debido a que la corriente proviene de la fuente de alimentacin externa. Por esta razn se utiliza
mayormente en la prctica.

4. Entrada de datos digitales con Switch y Botn


De manera similar existen 2 mtodos para conectar un switch (interruptor) o un botn (pulsador). En la figura, el switch SW1
genera un valor lgico alto (1) cuando se presiona, mientras que el switch SW2 genera un valor bajo (0) al presionarlo. Por otro
lado los 4 microswitch conectados al puerto RD en sus bits ms bajos (RD0 al RD3) generan 1s o 0s pero los bits superiores (RD3
al RD7), al encontrarse al aire (desconectados) tienen un valor incierto como entrada por que es imprescindible realizar una
mscara con la funcin lgica AND para asegurar un valor 0 en estos bits.

Ejemplo A: Control de Leds


A. Diagrama Esquemtico

Componentes Proteus

A. Cdigo fuente MikroBasicPro for PIC

Ejemplo B: Unidad Aritmtico Lgica (ALU) de 3-bit y 4 operaciones


Codificar un programa para simular una Unidad Aritmtico Lgica (ALU) con 2 entradas Dato A y Dato B de 3 bits cada una y un
selector de Operacion de 2 bits con la posibilidad de realizar las siguientes operaciones:
Operacin
00
01
10
11

Dato
Dato
Dato
Dato

Salida
A + Dato
A - Dato
A * Dato
A / Dato

B
B
B
B

B. Diagrama en Bloques

PORTC

Operacin

B. Diagrama Esquemtico

Componentes Proteus:

4
Dato B

1
Dato A

B. Cdigo fuente MikroBasic

5. Display de leds de 7 segmentos


Un display de 7 segmentos est conformado por un arreglo de 7 leds que comparten un terminal en comn. En funcin a
esto, se dividen en displays de nodo Comn (7-Seg AC) y Ctodo Comn (7-Seg CC). Cada segmento posee una notacin
estandarizada (de A hasta G) adicionalmente se suele incluir un led adicional para representar el punto (dot).

Si usamos un display 7-Seg CC manejaremos lgica directa, es decir, el terminal comn debe tener un 0 lgico (conectado a
tierra) y para prender cada segmento se requiere un 1 lgico.
Si usamos un display 7-Seg AC manejaremos lgica inversa, es decir, el terminal comn debe tener un 1 lgico (conectado a
VCC) y para prender cada segmento se requiere un 0 lgico.
El display visualizar los dgitos del 0 al 9 de acuerdo a la siguiente figura:

Cada dgito se codifica asignando un segmento del display a cada bit de un puerto del microcontrolador. El punto (dot) no
ser visualizado. Para facilitar la codificacin, se usar la herramienta en MikroBasic Seven Segment Editor

La siguiente tabla muestra la codificacin para un display 7-Seg CC usando el puerto RB del PIC16F877A:

Con algo de imaginacin, tambin se pueden visualizar las letras del alfabeto:

Ejemplo C: Control de Display 7-Seg Ctodo Comn


C. Diagrama Esquemtico

Componentes Proteus

C. Cdigo fuente MikroBasic

6. Procedimiento Experimental en Laboratorio


I.

Primera Firma:
Usando como base el Ejemplo B, realizar un ALU de 4-bit y 8 operaciones de acuerdo a los siguientes parmetros:
Dato A:
Dato B:
Operacin:
Salida:

RC.0
RC.4
RB.0
RD.0

a
a
a
a

RC.3
RC.7
RB.2
RD.3

(4 switch)
(4 switch)
(3 switch)
(4 led)

Tabla de operaciones:
Operacin
000
001
010
011
100
101
110
111

II.
a)

Salida
000
Dato A AND Dato B
Dato A OR Dato B
Dato A XOR Dato B
NOT Dato A
NOT Dato B
1010
1111

Segunda Firma: Modificando el circuito esquemtico de acuerdo a los enunciados, realizar uno de los
siguientes EJERCICIOS: (El inciso a realizar ser asignado por el Docente o Auxiliar)
Usando como base el Ejemplo C y conectando 1 switch al bit inferior del puerto RC (RC.0) y un Led al bit RC.7, realizar
un Temporizador hexadecimal que inicie desde el valor mostrado en la siguiente tabla hasta llegar de manera
descendiente cada segundo al valor 0. Al cumplirse el tiempo, el Led indicador se enciende y el programa se detiene.
RC.0
0
1

Tiempo (segundos)
9
F

b) Usando como base el Ejemplo C, aadiendo un segundo display de 7-Seg al puerto RD y conectando 8 switches al
puerto RC y 1 switch al bit RE.0, mostrar en los displays el equivalente en hexadecimal del valor de los 8 switches.
c)

Modificando el cdigo del Ejemplo C, y aadiendo un switch al bit RC.0 realizar un programa que:
Si RC.0 est a nivel bajo (0), muestre el nombre completo de uno de los integrantes de grupo con un retardo de
segundo entre cada letra.
Si RC.0 est a nivel alto (1), se muestre el siguiente mensaje: BASE COLECTOR EMISOR ELECTRONICA LO MEJOR

7. Informe de Laboratorio
I.

Cartula con Firmas del Docente

II.

Para el INCISIO realizado en la Segunda Firma, imprimir los siguientes puntos:

III.

Enunciado del Ejercicio


Diagrama de Flujo
Esquemtico en ISIS-Proteus
Cdigo Fuente MikroBasic

RESUMEN DE INVESTIGACION: Leds

RGB y control de color mediante PWM

Historia
Fundamento Terico
Ejemplo de circuito de aplicacin
Usos y aplicaciones comerciales
(Los RESUMENES de investigacin deben estar escrito a mano, de por lo menos 3 pginas de extensin,
incluyendo las fuentes de Direcciones WEB. Adicionalmente se debe incluir las dos primeras pginas del
Material Impreso usado para el resumen)
IV.

Conclusiones

Vous aimerez peut-être aussi