Está en la página 1de 15

ESCUELA:

ESC. INGENIERIA ELECTRONICA


ASIGNATURA:
MICROCONTROLADORES
TEMA:
SOLUCION DEL EXAMEN PARCIAL Y LA SEGUNDA PRCTICA
CALIFICADA
PROFESOR:
ASTOCONDOR VILLAR, JACOB
ALUMNO:
GUTIERREZ ESPINOZA HAIRO ALAN
FECHA:

1223210065
Turno:

19/10/2015

01 - L

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

1. En esta prctica evitaremos programas sofisticados con cdigos grandes que desven
la atencin hacia una breve explicacin de la teora explicada.
El programa tendr dos tareas:
La rutina principal se encargara de hacer parpadear un LED y la funcin de
interrupcin har bascular otro LED cada vez que presionemos un pulsador.
Esto ser como fusionar dos programas que alguna vez hicimos. Correr dos
programas a la vez, dicen que algo as paso por la cabeza de Bill Gates cuando
pens en MS Windows. De las seales al presionar el botn, escogeremos el flanco d
bajada para disparar la interrupcin INT0.
Se pide:
a)
Escribir el programa, comente cada instruccin.
b)
Hacer pruebas en Proteus.
Solucin:
a)

Programa:
La carpeta contenedora del archivo de compilacin y programacin en Atmel Studio 6.2 se
encuentra en el CD, en la siguiente ruta:
Practica Calificada N2\Problema 1\Programacin

* P.asm
*
* Created: 04/10/2015 09:11:31 a.m.
*
Author: Hairo Gutierrez Espinoza
/*
* parpadeo_y_parpadeo_con_interrupciones.asm
*
* Created: 11/10/2015 09:31:52 p.m.
*
Author: Popow
*/
.include "m8def.inc"; durectiva del microcontrolador Atmega8
.cseg; directiva que almacena memoria
.org 0x0000; vector Reset
rjmp inicio; Salto a inicio
.org 0x0001; vector int0
rjmp int_ext0; salto a int_ext0
inicio:; etiqueta
ldi r16, high(ramend);habilito la pila del atmega 8...
out sph, r16
ldi r16, low(ramend)
out spl, r16;... direccionamiento a la posicion de memoria STACK, habilito
los retardos
sbi ddrc, 0; pinc0 -> salida
sbi ddrc, 1; pinc1 -> salida
cbi ddrd, 2; pind2 -> entrada
sei; pongo a uno el bit I del SREG
ldi r16, 0b00001010; habilito las interrupciones...

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 2

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

out mcucr, r16


ldi r16, 0b11000000
out gicr, r16;... en flanco de bajada...
bucle:; Programa principal; parpadeo de led
sbi portc, 0; prendo el led PC0
rcall delay; lo mantengo prendido cierto tiempo
cbi portc, 0; apago el led PC0
rcall delay; lo mantengo apagado cierto tiempo
rjmp bucle; parpadeo infinitamente
prender:; etiqueta; parpadearan ambos leds paralelamente si se produce la
interrupcion
sbi portc, 1; prendo el led PC1
sbi portc, 0; Prendo el led PC0
rcall delay; los mantengo prendios un parpadeo
rcall analisis; analizando si vuelvo a presionar la interrupcion
cbi portc, 1; apago led PC1
cbi portc, 0; apago led PC0
rcall delay; los mantengo apagados un parpadeo
rcall analisis1; vuelvo a analizar si se preoduce interrupcion
analisis:; analizando si se produce una nueva interrupcion
sbic pind, 2; si vuelvo a presionar, apago los leds
ret; si no presiono, retorno
rjmp apagar; apago los leds
analisis1:; analizando si se produce una nueva interrupcion
sbic pind, 2; si pulso PD2 salto a la siguiente linea
rjmp prender; si no lo pulso, salto a prender
rjmp apagar; si pulso, salto a apagar
apagar:; apagar
cbi portc, 1; apago led PC1
rjmp inicio; salto a inicio, continuando con el parpadeo de PC0
delay:; retardo
ldi r17, 255
x2:
ldi r18, 255
x1:
dec r18
brne x1
dec r17
brne x2
ret; retorno
int_ext0:; etiqueta
sbic pind, 2; si pulso PD2, salto a la siguiente linea
rjmp int_ext0; si no lo puslo, no pasa nada
ldi r19, 255; cargo r19 con 255
cpi r19, 255; si r19 = 255...
breq prender; si son iguales salto a prender

b) Proteus:
Sabemos que las patitas 8 y 22 van a GND y la patita 7 va a+5V, en el circuito mostrado, dichas
patitas estn conectadas por defecto y no aparecen en el microcontrolador.
La carpeta que contiene la simulacin en Proteus est ubicada en el CD, en la siguiente ruta:
Practica Calificada N2\Problema1\Simulacion

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 3

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

2. Contador UP\DOWN de 00 a 99 con salida de 7 segmentos. Acondicione un atemga8


y 2 displays de 7 segmentos para desarrollar un contador de eventos de dos dgitos.
Utilice las interrupciones externar 0 y 1 para los botones arriba\abajo, as, en el
programa principal nicamente se realizara el despliegue de datos y el sondeo del
botn reset.
Se pide:
a) Escribir el programa, comente cada instruccin.
b) Hacer pruebas en Proteus.
Solucin:
b) Programa:
La carpeta contenedora del archivo de compilacin y programacin en Atmel Studio 6.2 se
encuentra en el CD, en la siguiente ruta:
Practica Calificada N2\Problema 2\Programacion
/*
* P.C.2 Problema 2.asm
*
* Created: 07/10/2015 08:58:28 a.m.
* Author: Hairo Gutierrez Espinoza
*/
.include "m8def.inc"; Directiva del microcontrolador Atmega8
.cseg; Directiva donde se reserva memoria
.def bandera = r19; definimos el registro r19 como bandera
.equ unidades = $60; declaramos como constante unidades
.equ decenas = $61; declaramos como constante decenas
.org 0x0000; vector reset
rjmp inicio; si se presiona el reset, salto a inicio
.org 0x0001; vector interrupcion int0
rjmp int_ext0; si se produce la interrupcion, salta a int_ext0
.org 0x0002; vector interrupcion int1
rjmp int_ext1; si se produce la interrupcion, salta a int_ext1
display:; etiqueta donde definiremos los digitos del display
; "DB" reserva espacio de memoria
.db 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90; digitos del display( 0, 1, 2, 3, 4, 5,
6, 7, 8, 9)
int_ext0:; interrupcion externa 0
ser bandera; ponemos a 1 el regsitro bandera, lo cargamos con 255
reti; retorno, habilitando el bit I del SREG

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 4

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

int_ext1:; interrupcion externa 1


ldi bandera, 20; cargo el registro bandera con 20
reti; retorno, habilitando del bit I del SREG
;.....PROGRAMA PRINCIPAL......
inicio:; etiqueta
ldi r16, high(ramend);habilito la pila del atmega 8...
out sph, r16
ldi r16, low(ramend)
out spl, r16;... direccionamiento a la posicion de memoria STACK, habilito los retardos
ser r16; pongo a 1 el registro r16
out ddrb, r16; configuro el puerto B como salida de datos
out ddrc, r16; configuro el puerto C como salida de datos
cbi ddrd, 2; configuro el PIND2 como entrada de datos
cbi ddrd, 3; configuro el PIND3 como entrada de datos
ldi r16, 0b00001010; cargo r16 con 10
out mcucr, r16; lo configuro en flanco de bajada
ldi r16, 0b11000000; cargo r16 con 0b11000000
out gicr, r16; activamos la mascara de las interrupciones
clr r16; limpio r16, o sea, lo pongo a 0
out gifr, r16; limpiamos los flag de interrrupcion INTF0 e INTF1
sts unidades, r16; guarda directamente en la SRAM la constante unidades
sts decenas, r16; guarda directamene en la SRAM la constante decenas
clr bandera; flag para identificar la interrupcion
sei; pongo a uno el bit I del SREG, habilitando asi las interrupciones globales
ldi r31, high(display);cargo en Z
ldi r30, low(display); los datos del display y de esta manera realizo la decodificacion
ldi r16, 0b00000011; cargo r16 con 2
add r30, r16; lo sumo para que el puntero de memoria apunte a bits
bucle:; etiqueta
cpi bandera, 255; si presiono int0, se incrementara la cuenta
breq incremento; si r19 = a 255, salto a incremento, si no, sigo leyendo la siguiente linea
cpi bandera, 20; si presiono int1, se decrementa la cuenta
breq decremento; si r19 = a 20, salto a decremento, si no, sigo leyendo la siguiente linea
mostrar:; etiqueta en la cual se mostrara en el display los datos almacenados en unidades y
decenas
rcall multiplexar; llamada a subrutina relativa "multiplexar"
rjmp bucle; salto a bucle, para seguir analizando si decremento o incremento
incremento:; etiqueta
rcall delay25m; delay antirrebote
rcall multiplexar; llamada a subrutina relativa "multiplexar"
sbic pind, 2; si presiono el PINB2, salto a la siguiente linea
rjmp incremento; si no presiono PINB2, salto a incremento
lds r16, unidades; cargar r16 con el contenido de la constante "unidades"
lds r17, decenas; cargar r17 con el contenido de la constante "decenas"
inc r16; incremento en una unidad el registro r16
cpi r16, 10; comparo, si r16 < 10
brmi salir; si cumple la condicion anterior, salimos, si no...
clr r16; unidades a cero
inc r17; incremento en una unidad el registro r17
cpi r17, 10; analizo si r17 < 10
brmi salir; si cumple la condicion anterior, salimos, si no...
clr r17; decenas a cero
rjmp salir; salimos
decremento:; etiqueta
rcall delay25m; delay antirrebote
rcall multiplexar; llamada a subrutina relativa "multiplexar"
sbic pind, 3; si presiono PIND3, salto a la siguiente linea

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 5

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

rjmp decremento; si no presiono PIND3, salto a "decremento"


lds r16, unidades; cargo en r16 los datos almacenados en la constante "unidades"
lds r17, decenas; cargo en r17 los datos almancenados en la constante "decenas"
cpi r16,0; comparo r16 con 0
breq dec_unidades; salto si las unidades llegan a ser cero; si no...
dec r16; decremento en una unidad el registro r16
rjmp salir;si es mayor que cero, salimos
dec_unidades:;cada vez que las unidades lleguen a cero
ldi r16, 9; se hace 9 las unidades
cpi r17, 0; comparo r17 con 0
breq dec_decenas; salto si las decenas llegan a ser cero, si no...
dec r17; decremento en una unidad el registro r17
rjmp salir; si es mayor que cero, salimos
dec_decenas:; cada vez que las decenas lleguen a cer
ldi r17, 9; se hace 9 las decenas
rjmp salir; salimos
salir:; cuando salimos
sts unidades, r16; almaceno en SRAM
sts decenas, r17; almanceno en SRAm
clr bandera; limpio el registro R19, para volver a analizar las interrupciones
rjmp mostrar; muestro los nuevos datos en los displays
multiplexar:;para multiplexar los displays
sbi portc, 0; deshabilito ambos
sbi portc, 1; displays
lds r16, unidades; cargo en los datos almacenados en r16
lds r15, decenas; cargo los datos almacenados en r15
mov r28, r30; copiamos la direccion donde estan los datos del display
mov r29, r31; copiamos la direccion donde estan los datos del display
add r30, r16; se suma el valor de unidades, para desplazarse en a la tabla "display"
lpm r16, z; cargo z en r16
mov r30, r28; copio r28 en r30
add r30, r15; se suma el valor de decenas, para desplazarse en la tabla "display"
lpm r15, z; cargo z en r15
mov r30, r28; copio r28 en r30
out portb, r16; se muestra en el display unidades el valor correspondiente
cbi portc, 1; prendo el display unidades
rcall delay1m; tiempo de retardo para que sea visible al ojo
sbi portc, 1; apago el display unidadess
nop nop nop nop nop nop nop nop; el display requiere de un tiempo para apagarse
out portb, r15; se muestra en el display decenas el valor correspondiente
cbi portc, 0; prendo el display decenas
rcall delay1m; tiempo de retardo para que sea visible al ojo
sbi portc, 0; apago el display decenas
ret; retorno a la siguiente linea luego de llamar a "multiplexar"
delay25m:; retardo antirrebote de 25 milisegundos aproximadamente
ldi r22,4
zz:
ldi r23,188
yy:
ldi r24,6
xx:
dec r24
brne xx
dec r23
brne yy
dec r22
brne zz

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 6

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

ret; regreso de subrutina delay


delay1m:; retardo de 1 milisegundo aproximadamente
ldi r22,4
zzz:
ldi r23,188
yyy:
ldi r24,6
xxx:
dec r24
brne xxx
dec r23
brne yyy
dec r22
brne zzz
ret; regreso de subrutina delay
b) Proteus
Sabemos que las patitas 8 y 22 van a GND y la patita 7 va a+5V, en el circuito mostrado, dichas
patitas estn conectadas por defecto y no aparecen en el microcontrolador.
La carpeta que contiene la simulacin en Proteus est ubicada en el CD, en la siguiente ruta:
Practica Calificada N2\Problema1\Simulacion

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 7

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

A continuacin, veremos algunas fotos de los circuitos implementados:

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 8

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

Problema 1:
La rutina principal se encargar de parpadear 8 leds, ubicados en el puerto B, y la
funcin de interrupcin har desplazar 4 veces el encendido de los 8 leds cada vez que
se presione un pulsador.
De las seales que se generan al presionar el botn, escogeremos el flanco de bajada
para disparar la interrupcin.

Programacin

/*
* E.asm
*
* Created: 18/10/2015 07:41:37 p.m.
* Author: Popow
*/
.include "m8def.inc"; atmega 8
.cseg
.def temp=r16; definimos r16 = temp
.def stack=r17; definimos r16= stack
.org 0x0000; vector reset
rjmp inicio; salto a inicio
.org 0x0002; vector int1
rjmp int_ext1; salto a ext1
inicio:
ldi stack, high(ramend);configuracin de...
out sph, stack
ldi stack, low(ramend)
out spl, stack;... la pila del atmega8, habilita los retardos
;configuracion de puertos
ldi temp,0b00000000
out ddrd, temp; puerto D entrada
ldi temp, 0b11111111
out portd, temp; vizualizamos por el puerto D
out ddrB, temp; puerto C salida
sei; pone a 1 el bit I del SREG
ldi temp, 0b00001010; habilitando...
out mcucr, temp
ldi temp, 0b11000000
out gicr, temp;... las interrupciones
;.....Programa Principal.....
bucle:
LDI R18,0B11111111;cargo el registro
OUT PORTB,R18;visualizamos por el puerto b
RCALL DELAY;llamamos a subrutina especial
LDI R18,0B00000000;cargo el registro

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 9

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

OUT PORTB,R18;visualizamos por el puerto b


RCALL DELAY;llamamos a subrutina especial
rjmp bucle
///////////////////////
int_ext1:; cuando presiono PD3(int1), salto aqui
LDI R20,0B00000101;cargo el registro
lazo:;etiqueta de rutina
DEC R20;decrementamos en uno el registro
CPI R20,0X00;comparamos registro con inmediato
BREQ FIN ;salta si es igual
clc ;ponemos en cero el bit "c" (carry)
LDI R19,0X01;cargamos el registro con inmediato
OUT PORTB,R19
rcall delay;llamamos a subrutina especial
LOOP:;etiqueta para el desplazamiento
LSL R19;desplazamiento de derecha a izquierda
OUT PORTB,R19
RCALL DELAY;llamamos a subrutina especial
BRCS lazo;salta si no es igual
RJMP LOOP;salta a rutina
FIN:
reti; retorno
///////////////////////
delay:; retardo
ldi r17, 255
x2:
ldi r18, 255
x1:
dec r18
brne x1
dec r17
brne x2
ret; regreso a la subrutina
//////////////////////

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 10

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

Simulacin

U1
14
15
16
17
18
19
9
10

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

D8 D7 D6 D5 D4 D3 D2 D1
21
20

AREF
AVCC

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

R1

R2

10k

10k

R1

R2

10k

10k

2
3
4
5
6
11
12
13

ATMEGA8

R3
0

U1
14
15
16
17
18
19
9
10

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

D8 D7 D6 D5 D4 D3 D2 D1
21
20

AREF
AVCC

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

ATMEGA8

R3
0

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 11

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

U1
14
15
16
17
18
19
9
10

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

D8 D7 D6 D5 D4 D3 D2 D1
21
20

AREF
AVCC

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

R1

R2

10k

10k

2
3
4
5
6
11
12
13

ATMEGA8

R3
0

U1
14
15
16
17
18
19
9
10

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

D8 D7 D6 D5 D4 D3 D2 D1
21
20

AREF
AVCC

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

R1

R2

10k

10k

2
3
4
5
6
11
12
13

ATMEGA8

R3
0

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 12

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

Problema 2:
Hacer girara un PAP unipolar (5 o 6 cables) de 45 por paso conectados a los pines
digitales PB3, PB2, PB1, PB0 a travs de un array de Darlingtons, cada vez que completa
una vuelta el motor debe cambiar de giro, el motor debe comenzar a girara cuando se
presiona un interruptor conectado al PD0.

Programacin

/*
* E.asm
*
* Created: 18/10/2015 08:24:21 p.m.
* Author: Popow
*/
.include"m8def.inc"
.cseg
.org 0x0000
rjmp inicio
inicio:
ldi r16,high(ramend);configuracin de LA MEMORIA STACK Y .....
out sph,r16
ldi r16,low(ramend)
out spl,r16;....HABILITAMOS RETARDOS
ldi r17,0b00001111
out ddrb,r17;CONFIGURAMOS COMO SALIDA
ldi r17,0b00000000;Configuramos como entrada
out ddrd,r17
interruptor:;rutina para lectura del interrutor
sbic pind,0;;salta si esta en cero
rjmp interruptor;salta a rutina interruptor
sentido_horario:;etiqueta para para el giro en sentido horario
ldi r18,0x05;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x0D;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x0C;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x0E;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x0A;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x02;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x03;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 13

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

ldi r18,0x01;cargamos a registro


out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x05;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
SENTIDO_ANTIHORARIO:
ldi r18,0x01;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x03;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x02;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x0A;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x0E;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x0C;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x0D;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
ldi r18,0x05;cargamos a registro
out portb,r18
rcall delay;llamamos a subrutina delay
RJMP INTERRUPTOR
DELAY:;delay 1 segundo
ldi R17, $09
LOOP0: ldi R18, $BC
LOOP1: ldi R19, $C4
LOOP2: dec R19
brne LOOP2
dec R18
brne LOOP1
dec R17
brne LOOP0
ret

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 14

Examen Parcial y Segunda Prctica Calificada

Microcontroladores

Simulacin

U2

U1
R1

1k

1k

2
3
4
5
6
11
12
13

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

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

AREF
AVCC

14
15
16
17
18
19
9
10

1
2
3
4
5
6
7

COM
1C
2C
3C
4C
5C
6C
7C

1B
2B
3B
4B
5B
6B
7B

9
16
15
14
13
12
11
10

+88.8

R2

23
24
25
26
27
28
1

ULN2003A

21
20

ATMEGA8

U2

U1
R1

1k

1k

2
3
4
5
6
11
12
13

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

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

AREF
AVCC

14
15
16
17
18
19
9
10

1
2
3
4
5
6
7

1B
2B
3B
4B
5B
6B
7B

COM
1C
2C
3C
4C
5C
6C
7C

9
16
15
14
13
12
11
10

+293

R2

23
24
25
26
27
28
1

ULN2003A

21
20

ATMEGA8

U2

U1
R1

1k

1k

2
3
4
5
6
11
12
13

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

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

AREF
AVCC

14
15
16
17
18
19
9
10

1
2
3
4
5
6
7

1B
2B
3B
4B
5B
6B
7B

COM
1C
2C
3C
4C
5C
6C
7C

9
16
15
14
13
12
11
10

+0.54

R2

23
24
25
26
27
28
1

ULN2003A

21
20

ATMEGA8

UNIVERSIDAD NACIONAL DEL CALLAO

Pgina 15