View
92
Download
3
Category
Preview:
Citation preview
Diseño con microcontroladores PIC en lenguaje MikroBasic Docente: Ing. Roger Guachalla Narváezxoroger@yahoo.es
PRACTICA 03: ALU de 3 bits y 4 Operaciones Implementación en MikroBasic Pro
1. Descripción:Utilizando el lenguaje de alto nivel MikroBasic Pro, implementar una Unidad Aritmético Lógica(ALU) con 2 entradas Dato A y Dato B de 3 bits cada una y un selector de Operacion de 2bits con la posibilidad de realizar las siguientes operaciones:
Operación Descripción00 Dato A + Dato B01 Dato A - Dato B10 Dato A AND Dato B11 Dato A OR Dato B
El circuito se simulará en Proteus-ISIS y se armará en Protoboard2. Sintaxis básica del lenguaje MikroBasic:
***Cap.2 Pgs.13 a 23, Programming in BASIC: Variables, Operadores, Sentenciascondicionales Sentencias Condicionales:
o Sentencia if , if-else
o Sentencia select case
if expresion thensentencia
[elseOtras sentencias]
end ifEjemplo:
if DatoA>5 thenPORTC=$3F
end if
select case selectorcase valor_1
sentencias_1...case valor_n
sentenicas_n[case else
Sentencias_por_omisson]end select
Ejemplo:select case operador
case "*"res = n1 * n2
case "/"res = n1 / n2
case "+"res = n1 + n2
case "-"res = n1 - n2
case elseres = 0cnt = cnt + 1
end select
Diagrama de flujo if
Diagrama de flujo if-else
o Sentencia for
o Sentencia while
o Sentencia do
o Sentencia goto
Símbolos:
symbol nombre_de_símbolo = códigoEjemplo:
symbol Saldida = PORTAsymbol Retardo = Delay_ms(200)main:
trisA=$00Salida=$00lazo:
inc(Salida)Retardo
goto lazoend.
for contador = valor_inicial to valor_final [step valor_de_paso]lista_de_sentencias
next contadorEjemplo:
s = 0for i = 0 to 9
s = s + a[i] * b[i]next i
while expresionsentencias
wendEjemplo:
s = 0i = 0while i < n
s = s + a[i] * b[i]i = i + 1
wend
dosentencias
loop until expresionEjemplo:
s = 0i = 0do
s = s + a[i] * b[i]i = i + 1
loop until i = n
goto nombre_de_etiquetaEjemplo:
lazo:inc(PORTC)delay_ms(300)
goto lazo
Diagrama de flujo while
Diagrama de flujo do
Declaración de Variables:
dim nombre_de_variable as tipo_de_variableEjemplo:
dim i, j, k as bytedim counter, temp as word
Tipos de datos:
3. Diagrama Esquemático:
Componentes Proteus:
4. Código fuente MikroBasic Pro:
5. Informe de Práctica 03: ALU de 3 bits y 4 OperacionesI. TRABAJO EN LABORATORIO
En el diagrama esquemático anterior, completar a 8 leds el Puerto RC Realizar los incisos a),b) y c) usando el lenguaje de alto nivel MikroBasic Pro. Para ello recurrir a:
operadores y estructuras de Control y Decisión (if, for, while, select case, etc.) Para cada uno de los incisos realizar:
Proyecto MikroBasic Código Fuente (Impreso) Diagrama de Flujo (Impreso) Simulación en ISIS-Proteus (Confirmación con Firma) Grabado del microcontrolador usando el PICPROM Armado y funcionamiento en PROTOBOARD (Confirmación con Firma)
a) Realizar un contador binario infinito de paso variable (de 0 a 7) definido por los 3 interruptores (switches)correspondientes al Dato A. El conteo debe ejecutarse a una velocidad de 1/8 de segundo
b) Realizar un juego secuencial de luces con 1 led desplazándose continuamente de Izquierda a Derecha yviceversa. La secuencia se detiene cuando se ingresa un valor de 5 a través de los interruptores (switches)correspondientes al Dato B. La secuencia se ejecuta cada 200 mseg.
c) Realizar un juego secuencial de luces con 2 leds desplazándose continuamente de los extremos hacia elcentro y viceversa. La secuencia se La secuencia se ejecuta normalmente cada 300 mseg, pero si se activan(ponen a 1) los dos interruptores (switches) correspondientes a Operación, entonces la secuenciaincrementa su velocidad a 100 mseg
II. TRABAJO DE INVESTIGACIONRealizar una Tabla Detalla y Completa del funcionamiento de cada uno de los puertos del PIC16F887 (RA,RB, RC, RD y RE) explicando las particularidades y las funciones adicionales ó especiales de cada pinen dichos puertos. Adicionar diagramas o figuras que ayuden en la explicación.
6. Conclusiones
Recommended