P03 ALU de 3 Bits y 4 Operaciones

4
Diseño con microcontroladores PIC en lenguaje MikroBasic Docente: Ing. Roger Guachalla Narváez [email protected] 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 2 bits con la posibilidad de realizar las siguientes operaciones: Operación Descripción 00 Dato A + Dato B 01 Dato A - Dato B 10 Dato A AND Dato B 11 Dato A OR Dato B El circuito se simulará en Proteus-ISIS y se armará en Protoboard 2. Sintaxis básica del lenguaje MikroBasic: *** Cap.2 Pgs.13 a 23, Programming in BASIC: Variables, Operadores, Sentencias condicionales Sentencias Condicionales: o Sentencia if , if-else o Sentencia select case if expresion then sentencia [else Otras sentencias] end if Ejemplo: if DatoA>5 then PORTC=$3F end if select case selector case 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 else res = 0 cnt = cnt + 1 end select Diagrama de flujo if Diagrama de flujo if-else

Transcript of P03 ALU de 3 Bits y 4 Operaciones

Page 1: P03 ALU de 3 Bits y 4 Operaciones

Diseño con microcontroladores PIC en lenguaje MikroBasic Docente: Ing. Roger Guachalla Narvá[email protected]

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

Page 2: P03 ALU de 3 Bits y 4 Operaciones

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

Page 3: P03 ALU de 3 Bits y 4 Operaciones

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:

Page 4: P03 ALU de 3 Bits y 4 Operaciones

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