You are on page 1of 9

INTEGRATES: PREZ CONTRERAS DIEGO PREZ ESPINOZA EFRAIN GRUPO HORARIO: 91G PROFESOR: ING.

G. ZENON CUCHO CICLO: 2014-A 100678J 10023220673

Pregunta 1:
Mediante un microcontrolador de 8 bits se desea evaluar la temperatura final a partir de la siguiente expresin:

Donde: L, es la temperatura inicial obtenida a partir de la lectura de 3 interruptores que estn conectadas a los bits 1, 2 y 3 del puerto C. T, es la temperatura final que se observa en diodos leds (forma binaria) que estn conectadas al puerto B.

Circuito Esquemtico

R2 R1
10k 10k

R3
10k

R4
10k

6 5 4
OFF

DSW1
DIPSW_3

13 12 11 6 5 4 3 2

1 28 27 26 25 24 23

PC6/RESET PC5/ADC5/SCL PC4/ADC4/SDA PC3/ADC3 PC2/ADC2 PC1/ADC1 PC0/ADC0

PD7/AIN1 PD6/AIN0 PD5/T1 PD4/T0/XCK PD3/INT1 PD2/INT0 PD1/TXD PD0/RXD

U1
ATMEGA8

20 21

D8
LED-RED

D7
LED-RED

D6
LED-RED

10 9 19 18 17 16 15 14

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

AVCC AREF

D5
LED-RED

D4
LED-RED

D3
LED-RED

1 2 3

ON

D2
LED-RED

D1
LED-RED

R12
220

R11
220

R10
220

R9
220

R8
220

R7
220

R6
220

R5
220

Diagrama de Flujo
INICIO

CONFIGURACIN DE PUERTOS ENTRADA: 3 DIP-SWITCHS SALIDA: 8 LEDS

LEER ENTRADA L

MOSTRAR SALIDA T Cdigo Documentado


.include "m8def.inc" .cseg .def L=r20 .def T=r21 .def C=r18 .org 0 rjmp Inicio Inicio: ;Configuracion de Pila ldi r16,low(ramend) out spl,r16 ldi r16,high(ramend) out sph,r16 ;Configuracin de Puertos ldi r16,$FF;r16<-FF out ddrb,r16;PuertoB Salida ldi r16,$00;r16<-00 out ddrc,r16;PuertoC Entrada Proceso: ldi C,0;C<-0 in r17,pinc;Tomar el valor en la entrada andi r17,$0E;Multiplcar por la Mascara Entre2: cpi r17,0;Comparo con 0 breq Temperatura;Si r17=0->Temperatura subi r17,2;Resta 2 inc C;C<-C+1 rjmp Entre2;Vuelve a comparar Temperatura: mov L,C;Guardamos el valor de L mul L,L;r0<-L^2 mov T,r0;T<-r0 ldi r18,4;r18<-4 mul T,r18;r0<-4*L^2 mov T,r0;T<-r0 ldi r18,10;r18<-10 add T,r18;T<-4*L^2+10 out portb,T;Mostra T en la salida rjmp Proceso;Repite el proceso

Operando:
D8
LED-RED
20 21 AVCC AREF

220

R12

Para la simulacin:
D7
LED-RED
PD7/AIN1 PD6/AIN0 PD5/T1 PD4/T0/XCK PD3/INT1 PD2/INT0 PD1/TXD PD0/RXD 13 12 11 6 5 4 3 2

220

R11 D6
LED-RED

220

R10 D5
LED-RED
10 9 19 18 17 16 15 14 PB7/TOSC2/XTAL2 PB6/TOSC1/XTAL1 PB5/SCK PB4/MISO PB3/MOSI/OC2 PB2/SS/OC1B PB1/OC1A PB0/ICP1 PC6/RESET PC5/ADC5/SCL PC4/ADC4/SDA PC3/ADC3 PC2/ADC2 PC1/ADC1 PC0/ADC0 1 28 27 26 25 24 23

Simulacin

220

R9 D4 U1
LED-RED ATMEGA8

10k

R1

220

R8 D3
LED-RED

220

R7 D2
LED-RED

10k

R2

1 2 3

ON

OFF

6 5 4

10k

R3

220

R6 D1
LED-RED

10k

R4

DSW1

DIPSW_3

220

R5

Pregunta 2:
Se tiene conectado a un microcontrolador 4 interruptores, un pulsador y 4 diodos leds. Inicialmente los diodos estn apagados el pulsador sin presionar, y los interruptores en circuito abierto. Se desea evaluar el nmero ingresado a travs de los interruptores, para ello se utiliza presionado (sin soltar) el pulsador. Si el nmero ingresado es mayor o igual que 10, se prenden los 4 diodos leds, si es menor a 10 y mayor o igual a 5 se prenden 3 diodos leds y si el nmero es menor que 5 se prenden 2 diodos leds. Al soltar el pulsador los leds se apagan, es decir vuelve a su estado inicial.

Circuito Esquemtico
Inicialmente leds apagados:

Nmero >= 10 (4 leds prendidos):

5 <= Nmero < 10 (3 leds prendidos):

0 <= Nmero < 5 (2 leds prendidos):

Diagrama de Flujo

Cdigo Documentado
.include "m8def.inc" .cseg .org 0x0000 LDI OUT LDI OUT R16,LOW(RAMEND) ;////////////////////// SPL,R16 ;///reservar memoria/// R16,HIGH(RAMEND);///// en la pila ///// SPH,R16 ;//////////////////////

//------------------------------------------incio: ldi out ldi out r16,$00 ddrC,r16 r17,$ff ddrb,r17 ;R16 = $00 ;configuramos el puerto C como entrada ;R17 = $FF ;configuramos el puerto B como entrada

//-------------------------------------------out portB,r16 dato: in r18,pinC ;leemos los 4 switchs y el pulsador cpi r18,0b01011010 ;si button = 1, comparamos con 10 brsh mayor_que_10 ;si es > =, salta a "mayor_que_10" cpi r18,0b01010101 ;si button = 1, comparamos con 5 brsh mayor_que_5 ;si es > =, salta a "mayor_que_5" cpi r18,0b01010000 ;si button = 1, comparamos con 0 brsh mayor_que_0 ;si es > =, salta a "mayor_que_0" //-------------- ;si button = 0 se apagan los leds ldi r16,0b00000000 out portB,r16 rjmp dato mayor_que_0: ldi r16,0b00000011 out portB,r16 rjmp dato mayor_que_5: ldi r16,0b00000111 out portB,r16 rjmp dato mayor_que_10: ldi r16,0b00001111 out portB,r16 rjmp dato ;R16 = $00 ;se apagan los leds ;volvemos a inicio ;R16 = $03 ;prendemos 2 leds ;volvemos a inicio ;inicialmente los leds apagados

;R16 = $07 ;prendemos 3 leds ;volvemos a inicio

;R16 = $FF ;prendemos 4 leds ;volvemos a inicio

Circuito Esquemtico
UP RESET

U1 R6
10k 23 24 25 26 27 28 1 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 ATMEGA8 PB0/ICP1 PB1/OC1A PB2/SS/OC1B PB3/MOSI/OC2 PB4/MISO PB5/SCK PB6/TOSC1/XTAL1 PB7/TOSC2/XTAL2 14 15 16 17 18 19 9 10

D1
LED-RED

D2
LED-RED

D3
LED-RED

D4
LED-RED

D5
LED-RED

R7
10k

AREF AVCC

21 20

R1
220

R2
220

R3
220

R4
220

R5
220

Diagrama de Flujo

INICIO CONFIGURACIN DE PUERTOS ENTRADA: 1 PULSADOR SALIDA: 5 LEDS


C=1

MOSTRAR C EN SALIDA

LEER ENTRADA No SE PRESION?

LEER ENTRADA

SE SOLT?

No

S C=25?

CC+3

Cdigo Documentado
.include "m8def.inc" .cseg .def c=r20 .org 0 rjmp Configuracion Configuracion: ;Configuracion de Pila ldi r16,low(ramend) out spl,r16 ldi r16,high(ramend) out sph,r16 ;Configuracin de Puertos ldi r16,$FF;r16<-FF out ddrb,r16;PuertoB Salida ldi r16,$00;r16<-00 out ddrc,r16;PuertoC Entrada Inicio: ldi c,1;c=1 ldi r17,3 Mostrar: out portb,c;Mostrar 'c' Presionar: rcall Leer;Leer entrada cpi r16,8;Se presion? breq Soltar;S->Soltar rjmp Presionar;No->Pregunta de nuevo Soltar: rcall Leer;Leer entrada cpi r16,0;Se Solt? breq Serie;S->Serie rjmp Soltar;No->Pregunta de nuevo Serie: cpi c,25;C=25? breq Inicio;S->Inicio add c,r17;No->'c<-c+3' rjmp Mostrar;Salta a Mostrar Leer: in r16,pinc;Leer entrada andi r16,8; Filtrar valor ret

*El problema peda: Un pulsador genera una serie aritmtica de razn 3 desde 1 a 25 la cuenta varia al presionar y soltar el pulsador.

You might also like