Escolar Documentos
Profissional Documentos
Cultura Documentos
DEL CALLAO
Facultad de Ingeniera Elctrica y
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
LIMA CALLAO
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
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
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
//-----------------------------------------------PULSADO
5
--------------------------------------------------pulsado:
//---------------------------------------------------------------------------------------------------------------SBIS PINB,PB0
RJMP pulsado
CPI R16,10
BREQ BUCLE1
RJMP BUCLE
//-----------------------------------------------------FIN
-----------------------------------------------------
PROTEUS:
Arquitectura de Computadoras
Ciclo 2015-A
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
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:
Arquitectura de Computadoras
Ciclo 2015-A
Arquitectura de Computadoras
Ciclo 2015-A
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...
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