Você está na página 1de 11

UNIVERSIDAD NACIONAL

DEL CALLAO
Facultad de Ingeniera Elctrica y
Electrnica

Escuela Profesional de Ingeniera


Electrnica

LABORATORIO N4

MANEJO DE INSTRUCCIONES II
CURSO:

ARQUITECTURA DE COMPUTADORAS

ALUMNO:
GARCIA VICENTE, ANDRE
1023220432
HARO SEGURA, PEDRO
1023220192
TORRES ANDRADE, ANTHONY WILSON
1023220646
CICLO:
2015 A
PROFESOR

ING. CONDOR DE LA CRUZ, FLAVIO

LIMA CALLAO

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

1
2015

MANEJO DE INSTRUCCIONES II
OBJETIVO
Conocer las instrucciones elementales en lenguaje ensamblador
Aprender a desarrollar programas con el microcontrolador
Atmega8, utilizando instrucciones bsicas.
Aprender a manejar el entorno de desarrollo VMLAB.
Aprender a grabar la memoria flash del microcontrolador
INTRODUCCIN
El microcontrolador es un circuito integrado de muy alta escala de
integracin que contiene las partes funcionales de un computador:
CPU (Central Processor Unit o Unidad de Procesamiento
Central)
Memorias voltiles (RAM), para datos
Memorias no voltiles( ROM, PROM, EPROM) para escribir el
programa
Lneas de entrada y salida para comunicarse con el mundo
exterior.
Algunos perifricos (comunicacin serial, temporizador,
convertidor A/D, etc)
Es decir el microcontrolador es un computador integrado en un solo
chip. Integrar todos estos elementos en un solo circuito integrado a
significado desarrollar aplicaciones importantes en la industria al
economizar materiales, tiempo y espacio.
QUE NO HACE EL MICROCONTROLADOR?
Las aplicaciones de un microcontrolador son tan inmensas que el
lmite es la propia imaginacin del usuario. Estos microcontroladores
estn en el auto, en el televisor, en el telfono, en una impresora, en
un horno de microondas, en un transbordador espacial, en un
juguete, etc. Algunas fuentes estiman que en una casa tpica de E.U
se tiene alrededor de 250 microcontroladores.
FUNDAMENTOS TERICOS
MANEJO DE PUERTOS ENTRADA Y SALIDA
Los puertos son un conjunto de lneas (pines) programables como
entrada salida que dispone el microcontrolador para comunicarse
con el mundo exterior.

Arquitectura de Computadoras
Ciclo 2015-A

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

El microcontrolador Atmega8(L), tiene


3 puertos de E/S (Puertos B, C
2
D). Todos los pines de cada puerto son programables como entrada o
salida de datos configurando el registro asociado respectivo.
Cuando se programa el funcionamiento de un puerto como entrada
tenemos que habilitar o deshabilitar las resistencias pull-up internas.
Cada pin del puerto tiene independiente su resistencia pull-up como
una resistencia invariante hacia la fuente de voltaje, adems tiene 2
diodos de proteccin uno conectado a Vcc y el otro conectado a GND.
(Ver figura 1)

Figura N1: Diagrama equivalente de un pin de E/S


En resumen, para cada puerto del microcontrolador (puertos B, C y D)
existen tres registros de E/S que permiten configurar cada pin del
puerto como entrada o salida, enviar datos a los pines configurados
como salidas, y recibir datos de los pines configurados como
entradas.
Estos registros son:
El Registro de Direcciones de Datos DDRx.
El Registro de Datos PORTx.
El registro PINx.
En el prrafo anterior, x puede ser B, C D. Es decir, si nos
referimos al puerto B, los registros son DDRB, PORTB y PINB.
Los registros PINx son de slo lectura, mientras que los registros
PORTx y DDRx son de lectura/escritura. Adicionalmente, el bit Pullup Disable PUD, en el registro SFIOR inhabilita la funcin Pull-up
para todos los pines de todos los puertos cuando es puesto a nivel
alto. (Ver Figura 2)
Cada pin del puerto de E/S, est asociado a 3 registros DDxn,
PORTxn, y PINxn, cuyas direcciones en el espacio de memoria estn
Arquitectura de Computadoras
Ciclo 2015-A

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

indicados por los Registros DDRx


3 E/S, PORTxE/S y PINxE/S.(ver
Register Descripcin for E/S ports, pgina 63 del manual Atmega8(L)).
El bit DDxn del Registro DDRx, establece la direccin de este pin. Si
DDxn es escrito con 1 lgico, Pxn es configurado como un pin de
salida. Si en DDxn es escrito un 0, Pxn es configurado como un pin
de entrada.
Si el pin PORTxn est configurado como un pin de entrada y es
escrito un 1 lgico, entonces la resistencia pull-up est activada. En
cambio s en PORTxn est configurado como un pin de salida es
escrito con un 0 lgico, la resistencia pull-up est desactivada.
Si el pin PORTxn est configurado como un pin de salida y es escrito
con un 1 lgico, el pin toma un valor alto, en cambio s es escrito
con 0 lgico el pin toma un valor bajo(cero).

Figura N2: Puertos de E/S


Adicionalmente, se puede observar en el anterior diagrama que si el
bit PUD(PULLUP DISABLE) del registro SFIOR, tiene un valor alto 1,
se deshabilitarn las resistencias pullup de todos los puertos. El
funcionamiento de la configuracin de los pines de un puerto se
resume en la siguiente tabla:
Arquitectura de Computadoras
Ciclo 2015-A

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

DDxn

PORTxn

E/S

Pull up

0
1
1
0

PUD (en
SFIOR
X
0
1
X

0
0
0
1

Entrada
Entrada
Entrada
Salida

No
Yes
No
No

Salida

No

Comentar
io
Tri slate
Tri slate
Salida
baja
Salida
Alta

Tabla N1: Configuracin de los pines del puerto

PROCEDIMIENTO
Simular los siguientes ejercicios:
EJERCICIO N1
Programa que cuenta los pulsos ingresados por uno de los pines y
visualiza la cuenta por el puerto c en un display de 7 segmentos a
traves de un decodificador 74LS47.
PROGRAMA:
//---------------------------------------------------------------------------------------------------------------.include "m8def.inc"
.cseg
.org 0x0000
rjmp INICIO
//--------------------------------------------------INICIO
---------------------------------------------------inicio:
//---------------------------------------------------------------------------------------------------------------CBI DDRB,PB0
LDI R16,0
LDI R17,255
OUT DDRC,R17
//-------------------------------------------------BUCLE
1--------------------------------------------------BUCLE1:
CLR R16
//--------------------------------------------------BUCLE
---------------------------------------------------BUCLE:
SBIS PINB,PB0
INC R16
OUT PORTC,R16
Arquitectura de Computadoras
Ciclo 2015-A

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

//-----------------------------------------------PULSADO
5
--------------------------------------------------pulsado:
//---------------------------------------------------------------------------------------------------------------SBIS PINB,PB0
RJMP pulsado
CPI R16,10
BREQ BUCLE1
RJMP BUCLE
//-----------------------------------------------------FIN
-----------------------------------------------------

PROTEUS:

Figura 3: Simulacin del Ejercicio N1


ATMEGA 8:

Arquitectura de Computadoras
Ciclo 2015-A

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

Figura 4: Simulacin del Ejercicio N1

EJERCICIO N2
Programa anterior para hacer un contador de pulsos externos de 2
dgitos.
(Sera hecho por el alumno en clase)
PROGRAMA:
//----------------------------------------------INICIO
-------------------------------------------------------INICIO:
//--------------------------------------------------------------------------------------------------------------CBI DDRB,PB0
//Configura PB0 Como entrada
LDI R16,0
//Carga R16 con 0 decimal
LDI R17,255
//Carga R17 con 255
LDI R19,255
OUT DDRC,R17
//Configura puerto C como salida
OUT DDRD,R19
BUCLE1:
CLR R16
//Borra registro R16
INC R19
OUT PORTD,R19
BUCLE:
SBIS PINB,PB0
//Si PB0=1 salta una linea(no ejecuta
INC R16)
INC R16
//Se incrementa en 1 el registro
R16
Arquitectura de Computadoras
Ciclo 2015-A

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

OUT PORTC,R16
7//Saca el valor de R16 por el
puerto C
PULSADO:
SBIS PINB,PB0
//Si PB0=1 salta (no ejecuta RJMP
pulsado)
RJMP pulsado
//Vuelve a pulsado
CPI R16,10
// Compara R16 con la constante
10
BREQ BUCLE1
//Si R16 es igual a 10 entoes va a
BUCLE1 RJMP BUCLE
//va a BUCLE
//---------------------------------------------------------------------------------------------------------------PROTEUS:

Figura 5: Simulacin del Ejercicio N2


ATMEGA 8:

Arquitectura de Computadoras
Ciclo 2015-A

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

Figura 6: Simulacin del Ejercicio N2

Arquitectura de Computadoras
Ciclo 2015-A

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

TRABAJO
Hacer programa para que haga la cuenta en forma ascendente y
descendente, dicha opcin debe ser seleccionado con un swicth.
PROGRAMA:
//----------------------------------------------INICIO
-------------------------------------------------------INICIO:
//---------------------------------------------------------------------------------------------------------------CBI DDRB,PB0
//Configura PB0 Como entrada
LDI R16,0
//Carga R16 con 0 decimal
LDI R17,255
//Carga R17 con 255
LDI R19,255
OUT DDRC,R17
//Configura puerto C como salida
OUT DDRD,R19
LDI R19,0
BUCLE:
SBIS PINB,PB0
R16)
RJMP incodec
PASO1:
OUT PORTC,R16
OUT PORTD,R19
PULSADO:
SBIS PINB,PB0
RJMP pulsado)
RJMP pulsado
CPI R16,10
BREQ BUCLE1
BUCLE1...

//Si PB0=1 salta una linea(no ejecuta INC

//Saca el valor de R16 por el puerto C

//Si PB0=1 salta una linea(no ejecuta


//Vuelve a pulsado
// Compara R16 con la constante 10
//Si R16 es igual a 10 entonces va a

//... de lo contrario no ejecuta


CPI R16,-1
BREQ BUCLE2
RJMP BUCLE //va a BUCLE
BUCLE1:
CLR R16
INC R19
OUT PORTD,R19
RJMP BUCLE
BUCLE3:
Arquitectura de Computadoras
Ciclo 2015-A

//Borra registro R16

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTADA DE INGENIERA ELCTRICA Y ELECTRNICA

SBIC PINB,PB1
LDI R19,9
OUT PORTD,R19
RJMP BUCLE
BUCLE2:
LDI R16,9
OUT PORTC,R16
CPI R19,0
BREQ BUCLE3
DEC R19
OUT PORTD,R19
RJMP BUCLE

10

INCODEC:
SBIS PINB,PB1
//Se gestiona el incremento o decremento
INC R16
SBIC PINB,PB1
DEC R16
RJMP PASO1
//---------------------------------------------------------------------------------------------------------------PROTEUS:
Figura 7: Simulacin del Trabajo

U1(PB0/ICP1)
+5V

U1

R15
220

14
15
16
17
18
19
9
10

21
20

PB0/ICP1
PB1/OC1A
PB2/SS/OC1B
PB3/MOSI/OC2
PB4/MISO
PB5/SCK
PB6/TOSC1/XTAL1
PB7/TOSC2/XTAL2

AREF
AVCC
ATMEGA8

U2
PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PC6/RESET
PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/T0/XCK
PD5/T1
PD6/AIN0
PD7/AIN1

23
24
25
26
27
28
1
2
3
4
5
6
11
12
13

7
1
2
6
4
5
3

A
B
C
D
BI/RBO
RBI
LT

13
12
11
10
9
15
14

74LS47

A
B
C
D
BI/RBO
RBI
LT

R1
R2
220
R3
220
R4
220
R5
220
R6
220
R7
220
220

+5V

U3
7
1
2
6
4
5
3

74LS47

Arquitectura de Computadoras
Ciclo 2015-A

QA
QB
QC
QD
QE
QF
QG

QA
QB
QC
QD
QE
QF
QG

13
12
11
10
9
15
14

R8
R9
220
R10
220
R11
220
R12
220
R13
220
R14
220
220

Você também pode gostar