Solucion de practica1 calificada microcontroladores

43
UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE IGENIERIA ELECTRONICA CURSO: MICROCONTROLADORES TEMA: SOLUCIONARIO DE PRACTICA CALIFICADA N°1 ALUMNO: TINEO QUISPE ROLAN PROFESOR: MSc-ING.JACOB ASTOCONDOR VILLAR CICLO : 6 TO CODIGO: 1223220597

Transcript of Solucion de practica1 calificada microcontroladores

Page 1: Solucion de practica1 calificada microcontroladores

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE IGENIERIA ELECTRONICA

Page 2: Solucion de practica1 calificada microcontroladores

CURSO: MICROCONTROLADORES

TEMA: SOLUCIONARIO DE PRACTICA CALIFICADA N°1

ALUMNO: TINEO QUISPE ROLAN

PROFESOR: MSc-ING.JACOB ASTOCONDOR VILLAR

CICLO : 6TO CODIGO: 1223220597

2015

PROBLEMA1

A.- DIAGRAMA DE FLUJO

Page 3: Solucion de practica1 calificada microcontroladores

B.- ESCRIBIR EL PROGRAMA; COMENTE CADA INSTRUCCIÓN

Page 4: Solucion de practica1 calificada microcontroladores

.INCLUDE "M8DEF.INC"

.CSEG

.ORG 0x0000

. RJMP INICIO

.ORG 0x0020

INICIO: LDI R16,HIGH(RAMEND) ; SE APUNTA A LA OUT SPH,R16 ; POCICION DE

LDI R16,LOW(RAMEND) ; MEMORIA STACK OUT SPL,R16;-----------------------------------------------------------------------------------; DECLARO LA ENTRADA Y SALIDA | ; | ;-----------------------------------------------------------------------------------CBI DDRC,PC0 ; DECLARO EL BIT PC0 COMO ENTRADALDI R17,255 ; CARGO UN INMEDIATO CON 255 QUE ES EQUIVALENTE A 0b11111111OUT DDRD,R17 ; DECLARO EL PUERTO D COMO SALIDA ;-----------------------------------------------------RJMP INTERRUPCION ; SALTO A INTERRUPCIONINTERRUPCION: SBIC PINC,PC0 ; PREGUNTO EL ESTADO DE PC0 SI ES CERO SALTA UNA LINEARJMP INTERRUPCION ; SI ES UNO LOGICO EL ESTADO DE PC0 SALTA A INTERRUPCIONX1: LDI R18,0 ; CARGO CERO EN REGISTRO R18

OUT PORTD,R18 ; LO MUESTRO POR EL PUERTO D EL VALOR DE R18 RCALL DELAY ; LLAMO A UNA SUBRRUTINA PARA HACER UN RETARDO EN EL MUESTREO LDI R18,192 ; CARGO EL REGISTRO R18 CON 192 EN DECIMAL QUE ES IGUAL 0b11000000OUT PORTD,R18 ; LO MUESTRO POR EL PUERTO D EL VALOR DE R18RCALL DELAY ; LLAMO A UNA SUBRRUTINA PARA HACER UN RETARDO EN EL MUESTREO LDI R18,240 ; CARGO EL REGISTRO R18 CON 240 EN DECIMAL QUE ES IGUAL 0b11110000OUT PORTD,R18 ; LO MUESTRO POR EL PUERTO D EL VALOR DE R18RCALL DELAY ; LLAMO A UNA SUBRRUTINA PARA HACER UN RETARDO EN EL MUESTREO LDI R18,252 ; CARGO EL REGISTRO R18 CON 252 EN DECIMAL QUE ES IGUAL 0b11111100OUT PORTD,R18 ; LO MUESTRO POR EL PUERTO D EL VALOR DE R18RCALL DELAY ; LLAMO A UNA SUBRRUTINA PARA HACER UN RETARDO EN EL MUESTREO LDI R18,255 ; CARGO EL REGISTRO R18 CON 255 EN DECIMAL QUE ES IGUAL 0b11111111OUT PORTD,R18 ;LO MUESTRO POR EL PUERTO D EL VALOR DE R18RCALL DELAY ; LAMO A UNA SUBRRUTINA PARA HACER UN RETARDO EN EL MUESTREO RJMP X1 ; SALTO A LA ETIQUETA X1 PARA ENPEZAR DE NUEVO LA SECUENCIA;-----------------------------------------------------------------------------------; RETARDO DE UN SEGUNDO | ; |

Page 5: Solucion de practica1 calificada microcontroladores

;----------------------------------------------------------------------------------- DELAY: LDI R16,150 ; CARGO AL REGISTRO R16 CON 150 DECIMALY0: LDI R17,45 ; CARGO AL REGISTRO R17 CON 45 DECIMALY1: LDI R18,50 ; CARGO AL REGISTRO R18 CON 50 DECIMALY2: DEC R18 ; DECREMENTAR EN 1 A R18 BRNE Y2 ;MIENTRAS QUE SEA DIFERENTE DE CERO R18 SALATA A LA ETIQUETA Y2 DEC R17 ; DECREMENTAR EN 1 A R17 BRNE Y1 ; MIENTRAS QUE SEA DIFERENTE DE CERO R17 SALATA A LA ETIQUETA Y1

DEC R16 ; DECREMENTAR EN 1 A R16 BRNE Y0 ; MIENTRAS QUE SEA DIFERENTE DE CERO R16 SALATA A LA

ETIQUETA Y0 RET ; RETORNAR A LA SIGUIENTE LINEA DE DONDE FUE

LLAMADO

C.- PRESENTAR EL CIRCUITO DEJANDO LISTO PARA HACER PRUEBAS EN EL LABORATORIO

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R1

330R2

330R3

330R4

330R5

330R6

330R7

330R8

330

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R910k PULSADOR

PROBLEMA 1

D.- SIMULAR EL FUNCIONAMIENTO DE DICHO CIRCUITO CON EL SOFTWARE PROTEUS

Page 6: Solucion de practica1 calificada microcontroladores

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R1

330R2

330R3

330R4

330R5

330R6

330R7

330R8

330

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R910k PULSADOR

PROBLEMA 1

PROBLEMA 2.-

Page 7: Solucion de practica1 calificada microcontroladores

HACEMOS DIAGRAMA DE FLUJO PARA CALCULAR LOS TIEMPOS DE RETARDO DE UN LAZO, DOS LAZO Y TRES LAZOS PARA HACER PARPADEAR LO IMPORTANTE ES HACER RETARDOS PRECISOS Y CON LAS FORMULAS APROXIMAMOS BASTANTE A LO DESEADO LO DEMAS SOLO ES SACAR VALOR UNO LOGICO Y HACER RETARDO Y LUEGO SACAR CERO LOGICO Y HACER RETARDO Y REPETIR CUANTAS VECES SEA NECESARIO

Page 8: Solucion de practica1 calificada microcontroladores
Page 9: Solucion de practica1 calificada microcontroladores
Page 10: Solucion de practica1 calificada microcontroladores

NOS PERCATAMOS QUE CON LAZO DE TRES APROXIMAMOS A 3.00030ms DE RETARDO

A y b:

.INCLUDE "M8DEF.INC"

.CSEG

.ORG 0x0000

. RJMP INICIO

.ORG 0x0020

INICIO: LDI R16,HIGH(RAMEND) OUT SPH,R16

LDI R16,LOW(RAMEND) OUT SPL,R16;-----------------------------------------------------; DECLARO SALIDA |;----------------------------------------------------- SBI DDRB,PB0; PONGO UNO LOGICO EN PB0

LDI R17,0;-----------------------------------------------------; ENCIENDO Y APAGO LED CADA 300ms SOLO 10 VECES |;-----------------------------------------------------L1: SBI PORTB,PB0; SACO UNO LOGICO POR PB0 Y LO MUESTRO RCALL DELAY_300ms; LLAMO UN TIEMPO DE RETARDO PARA MOSTRAR EL ENCENDIDO

CBI PORTB,PB0; SACO CERO LOGICO POR PBO Y LO MUESTRO RCALL DELAY_300ms; LLAMO UN TIEMPO DE RETARDO PARA MOSTRAR EL

APAGADO INC R17; INCREMENTO EN UNO AL REGISTRO R17 CPI R17,10 ;COMPARO R17 CON 10 EN DECIMAL

BREQ APAGADO_TOTAL ; SI ES QUE R17 QUE ME INDICA LA CANTIDAD DE ; PRENDIDO Y APAGO ES IGUAL A 10 SALTA A APAGADO_TOTAL

RJMP L1 ;MIENTRA NO CUMPLA LO ANTERIOR SALTAR A ETIQUETA L1;----------------------------------------------------; BUCLE INFINITO |;----------------------------------------------------APAGADO_TOTAL: CLR R17 ; BORRO R17 CBI PORTB,PB0 ; SACO CERO LOGICO POR PB0 Y LO MUESTRO

RJMP APAGADO_TOTAL ; SALTA A ETIQUETA APAGADO_TOTAL;--------------------------------------------------; UTILIZAREMOS LA FORMULITA DE LAZO DE TRES PARA |; CALCULAR EL TIEMPITO DE RETARDO |; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 45;46;49 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 3.00030ms |;--------------------------------------------------

DELAY_300ms: LDI R18,45;X0: LDI R19,46X1: LDI R20,49X2: DEC R20

BRNE X2 DEC R19 BRNE X1 DEC R18 BRNE X0 RET

Page 11: Solucion de practica1 calificada microcontroladores

C y d:

.INCLUDE "M8DEF.INC"

.CSEG

.ORG 0x0000

. RJMP INICIO

.ORG 0x0020

INICIO: LDI R16,HIGH(RAMEND) OUT SPH,R16

LDI R16,LOW(RAMEND) OUT SPL,R16;-----------------------------------------------------; DECLARO SALIDA |;----------------------------------------------------- SBI DDRB,PB0; PONGO UNO LOGICO EN PB0

LDI R17,0;-----------------------------------------------------; ENCIENDO DURANTE 500ms Y APAGADO DURANTE 200ms |; TODO ESTO DURANTE UN PERIODO DE 5 VECES |;-----------------------------------------------------L1: SBI PORTB,PB0; SACO UNO LOGICO POR PB0 Y LO MUESTRO RCALL DELAY_500ms; LLAMO UN TIEMPO DE RETARDO PARA MOSTRAR EL ENCENDIDO

CBI PORTB,PB0; SACO CERO LOGICO POR PBO Y LO MUESTRO RCALL DELAY_200ms; LLAMO UN TIEMPO DE RETARDO PARA MOSTRAR EL

APAGADO INC R17; INCREMENTO EN UNO AL REGISTRO R17 CPI R17,5; COMPARO R17 CON 5 EN DECIMAL BREQ APAGADO_TOTAL ; SI ES QUE R17 QUE ME INDICA LA CANTIDAD DE

; PRENDIDO Y APAGO ES IGUAL A 5 SALTA A APAGADO_TOTAL

RJMP L1 ;MIENTRA NO CUMPLA LO ANTERIOR SALTAR A ETIQUETA L1;----------------------------------------------------; BUCLE INFINITO |;----------------------------------------------------APAGADO_TOTAL: CLR R17 ; BORRO R17 CBI PORTB,PB0 ; SACO CERO LOGICO POR PB0 Y LO MUESTRO

RJMP APAGADO_TOTAL ; SALTA A ETIQUETA APAGADO_TOTAL;--------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 45;46;49 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 300ms |;--------------------------------------------------

DELAY_300ms: LDI R18,45X0: LDI R19,46X1: LDI R20,49X2: DEC R20

BRNE X2 DEC R19 BRNE X1 DEC R18 BRNE X0

Page 12: Solucion de practica1 calificada microcontroladores

RET

;--------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 73;51;46 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 500ms |;--------------------------------------------------

DELAY_500ms: LDI R18,73Y0: LDI R19,51Y1: LDI R20,46Y2: DEC R20

BRNE Y2 DEC R19 BRNE Y1 DEC R18 BRNE Y0 RET

;--------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 42;40;40 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 200ms |;--------------------------------------------------

DELAY_200ms: LDI R18,42Z0: LDI R19,40Z1: LDI R20,40Z2: DEC R20

BRNE Z2 DEC R19 BRNE Z1 DEC R18 BRNE Z0 RET

;--------------------------------------------------

CIRCUITO EN PROTEUS

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

D1LED-YELLOW

R1

330

PROBLEMA2PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

D1LED-YELLOW

R1

330

PROBLEMA2

APAGAOENCENDIDO

Page 13: Solucion de practica1 calificada microcontroladores

PROBLEMA 3.-A.- DIAGRAMA DE FLUJO

Page 14: Solucion de practica1 calificada microcontroladores

B.- ESCRIBA LAS INSTRUCCIONES

.INCLUDE "M8DEF.INC"

.CSEG

.ORG 0x0000

. RJMP INICIO

.ORG 0x0020

INICIO: LDI R16,HIGH(RAMEND) OUT SPH,R16

LDI R16,LOW(RAMEND) OUT SPL,R16;--------------------------------------------------; INICIALIZO LA SALIDA |;-------------------------------------------------- LDI R17,3 ;CRAGO 0b00000011 EN EL REGISTRO R17 OUT DDRB,R17 ; CONFIGURO EL PUERTO B :PB0,PB1 COMO SALIDA CLR R17 ; BORRO EL REGISTRO R17;-------------------------------------------------; CONTROL DEL MOTOR DC | ;-------------------------------------------------X0: LDI R17,1; CARGO UNO DECIMAL OUT PORTB,R17;SACO EL VALOR DEL REGISTRO R17 Y LO MUESTRO POR EL PUERTO B RCALL DELAY_5segundo;LLAMO A UN RETARDO PARA SEGUIR MOSTRANDO LO ANTERIOR

LDI R17,0;CARGO 0 EN DECIMAL EN R17 OUT PORTB,R17; SACO EL VALOR DE R17=0 Y LO MUESTRO POR EL PUERTO B RCALL DELAY_5segundo; LLAMO A UN RETARDO PARA SEGUIR MOSTRANDO LO

ANTERIOR LDI R17,2;CARGO 2EN DECIMAL AL REGISTRO R17

OUT PORTB,R17;SACO EL VALOR DE R17=2 Y LO MUESTRPO POR EL PUERTO B RCALL DELAY_5segundo; LLAMO A UN RETARDO PARA SEGUIR MOSTRANDO LO

ANTERIOR LDI R17,0;CARGO 0 EN DECIMAL EN R17 OUT PORTB,R17;SACO EL VALOR DE R17=0 Y LO MUESTRPO POR EL PUERTO B RCALL DELAY_5segundo; LLAMO A UN RETARDO PARA SEGUIR MOSTRANDO LO

ANTERIOR RJMP X0; SALTO A LA ETIQUETA X0;------------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 170;100;100 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 5segundo |;------------------------------------------------------

DELAY_5segundo: LDI R18,170; CARGO 170 EN DECIMAL AL REGIATRO R18Z0: LDI R19,100; CARGO 100 EN DECIMAL AL REGIATRO R19Z1: LDI R20,100; CARGO 100 EN DECIMAL AL REGIATRO R20Z2: DEC R20; DECREMENTO EN UNA UNIDAD A R20

BRNE Z2; SI R20 ES DIFERENTE DE CERO SALTA A ETIQUETA Z2

DEC R19; DECREMENTO EN UNA UNIDAD A R19 BRNE Z1; SI R19 ES DIFERENTE DE CERO SALTA A ETIQUETA

Z1 DEC R18; DECREMENTO EN UNA UNIDAD A R18 BRNE Z0 ; SI R18 ES DIFERENTE DE CERO SALTA A ETIQUETA

Z0 RET ;RETORNA A LA SIGUIENTE LINEA DE DONDE FUE

LLAMADO

Page 15: Solucion de practica1 calificada microcontroladores
Page 16: Solucion de practica1 calificada microcontroladores

C.- REALIZAR LA SIMULACION

SENTIDO ANTIHORARIO

SENTIDO HORARIO

PROBLEMA 4.-

PB0/ICP1 14

PB1/OC1A 15

PB2/SS/OC1B 16

PB3/MOSI/OC2 17

PB4/MISO 18

PB5/SCK 19

PB6/TOSC1/XTAL1 9

PB7/TOSC2/XTAL2 10PC6/RESET1

PD0/RXD2

PD1/TXD3

PD2/INT04

PD3/INT15

PD4/T0/XCK6

PD5/T111

PD6/AIN012

PD7/AIN113

PC0/ADC023

PC1/ADC124

PC2/ADC225

PC3/ADC326

PC4/ADC4/SDA27

PC5/ADC5/SCL28

AREF 21

AVCC 20

U1

ATMEGA8

IN12 OUT1 3

OUT2 6

OUT3 11

OUT4 14

IN27

IN310

IN415

EN11

EN29

VS

8

VSS

16

GND GND

U2

L293D

+106

PB0/ICP1 14

PB1/OC1A 15

PB2/SS/OC1B 16

PB3/MOSI/OC2 17

PB4/MISO 18

PB5/SCK 19

PB6/TOSC1/XTAL1 9

PB7/TOSC2/XTAL2 10PC6/RESET1

PD0/RXD2

PD1/TXD3

PD2/INT04

PD3/INT15

PD4/T0/XCK6

PD5/T111

PD6/AIN012

PD7/AIN113

PC0/ADC023

PC1/ADC124

PC2/ADC225

PC3/ADC326

PC4/ADC4/SDA27

PC5/ADC5/SCL28

AREF 21

AVCC 20

U1

ATMEGA8

IN12 OUT1 3

OUT2 6

OUT3 11

OUT4 14

IN27

IN310

IN415

EN11

EN29

VS

8

VSS

16

GND GND

U2

L293D

-110

Page 17: Solucion de practica1 calificada microcontroladores

A.- DIAGRAMA DE FLUJO

Page 18: Solucion de practica1 calificada microcontroladores

B.-ESCRIBA LAS INSTRUCCIONES

.INCLUDE "M8DEF.INC"

.CSEG

.ORG 0x0000

. RJMP INICIO

.ORG 0x0020

INICIO: LDI R16,HIGH(RAMEND) OUT SPH,R16

LDI R16,LOW(RAMEND) OUT SPL,R16;-------------------------------------------; INICIALIZO LA SALIDA TODO EL PUERTO D |;-------------------------------------------

SER R17; PONGO TODO EL REGISTRO R17 A UNO LOGICOOUT DDRD,R17; CARGO UNO LOGICO Y ACTIVO TODO EL PUERTO D COMO SALIDALDI R16,0; INICIALIZO EL CONTADOR EN CERO LO ALMACENO EN R16 COSA ; QUE EN T1 SE INCREMENTA EN UNA UNIDAD CADA CICLO QUE

HACE ; EN TOTAL DEVE DE HACER 5 CICLOS DE PRENDIDO Y APAGADO

DE LOS ; LEDS

;---------------------------------------------; INTERRUPTOR |;---------------------------------------------

INTERRUPTOR : SBIC PINB,PB0 ; PEGUNTO PB0=0 SI LO ES SALTO UNA LINEA O SEA NO LEO ; LA LINEA SIGUIENTERJMP INTERRUPTOR;SALTO A INTERRUPTOR SIEMPRE Y CUANDO PB0=1RJMP T1; SALTO A T1T1: SER R17;INICIALIZO TODO EL REGISTRO R17 CON UNOSOUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO DRCALL DELAY_200ms;LLAMO A UNA SUBRUTINA DELAY _200ms PARA OBSERVAR ; LO ANTERIOR UN INSTANTECLR R17;INICIALIZO TODO EL REGISTRO R17 CON CEROSOUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO DRCALL DELAY_200ms;LLAMO A UNA SUBRUTINA DELAY _200ms PARA ; OBSERVAR LO ANTERIOR UN INSTANTEINC R16;INCREMENTO EN UNA UNIDAD EL REGISTRO R16CPI R16,5;A R16 LE HAGO LA COMPARACION INMEDIATA CON 5 EN DECIMAL BREQ AUTO_FANTASTICO1 ;DE LA COMPARACION ANTERIOR NOS PREGUNTAMOS SI ; ES IGUAL A 5 SALTA A AUTO_FANTASTICO1RJMP T1;MIENTRAS QUE LO ANTERIOR NO SE CUMPLA AQUI SALTAMOS A T1 AUTO_FANTASTICO1: CLC; BORRAMOS CARRYCLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROSLDI R17,1; CARGO R17 CON UNOA1: OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D AQUI SOLO PRENDE PD0 RCALL DELAY_150ms; LLAMO A UNA SUBRUTINA DELAY _150ms PARA OBSERVAR LO ANTERIOR UN ; INSTANTEROL R17; ROTO UN BIT A LA ISQUIERDABRCS AUTO_FANTASTICO2; ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A ; AUTO_FANTASTICO2RJMP A1; MIENTRA NO CUMPLA LO ANTERIOR AQUI SALTAMOS A ETIQUETA A1 AUTO_FANTASTICO2: CLC; BORRAMOS CARRYCLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROS

Page 19: Solucion de practica1 calificada microcontroladores

LDI R17,128;CARGO R17 CON 0b10000000

A2: OUT PORTD,R17; MUESTRO LO QUE CARGUE EN EL REGISTRO R17 POR ; EL PUERTO D AQUI SOLO PRENDE PD7RCALL DELAY_150ms;LLAMO A UNA SUBRUTINA DELAY _150ms PARA OBSERVAR LO ; ANTERIOR UN INSTANTEROR R17;ROTO A LA DERECHA EL BITBRCS AUTO_FANTASTICO1;ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A ; AUTO_FANTASTICO1RJMP A2; MIENTRA NO CUMPLA LO ANTERIOR AQUI SALTAMOS A ETIQUETA A2

;--------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 42;40;40 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 200ms |;--------------------------------------------------

DELAY_200ms: LDI R18,42; CARGAMOS 42 EN DECIMAL EN EL REGISTRO R18Z0: LDI R19,40; CARGAMOS 40 EN DECIMAL EN EL REGISTRO R19Z1: LDI R20,40; CARGAMOS 40 EN DECIMAL EN EL REGISTRO R20Z2: DEC R20; DECREMENTAMOS EN UNO AL REGISTRO R20

BRNE Z2; MIENTRAS QUE R20 SEA DIFERENTE DE CERO SALTA A Z2

DEC R19; DECREMENTAMOS EN UNO AL REGISTRO R19 BRNE Z1; MIENTRAS QUE R19 SEA DIFERENTE DE CERO

SALTA A Z1 DEC R18; DECREMENTAMOS EN UNO AL REGISTRO R18 BRNE Z0; MIENTRAS QUE R18 SEA DIFERENTE DE CERO

SALTA A Z0 RET ; RETORNA DENDE FUE LLAMADO

;--------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 200;255 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 150ms |;--------------------------------------------------

DELAY_150ms: LDI R18,200; CARGAMOS 200 EN DECIMAL EN EL REGISTRO R18Y0: LDI R19,255; CARGAMOS 255 EN DECIMAL EN EL REGISTRO R19Y1: DEC R19; DECREMENTAMOS EN UNO AL REGISTRO R19

BRNE Y1; MIENTRAS QUE R19 SEA DIFERENTE DE CERO SALTA A Y1

DEC R18; DECREMENTAMOS EN UNO AL REGISTRO R18 BRNE Y0; MIENTRAS QUE R18 SEA DIFERENTE DE CERO

SALTA A Y0 RET ; RETORNA DE DONDE FUE LLAMADO

C.- SIMULACION

EL SWITCH ESTA ABIERTO

Page 20: Solucion de practica1 calificada microcontroladores

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R1

330

R2

330

R3

330

R4

330

R5

330

R6

330

R7

330

R8

330

R910k

Page 21: Solucion de practica1 calificada microcontroladores

SWITCH ESTA CERRADO

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R1

330

R2

330

R3

330

R4

330

R5330

R6

330

R7

330

R8

330

R910k

PROBLEMA6.-

A.-DIAGRAMA DE FLUJO

Page 22: Solucion de practica1 calificada microcontroladores

B.- ESCRIBA LAS INSTRUCCIONES COMENTADAS

.INCLUDE "M8DEF.INC"

.CSEG

.ORG 0x0000

. RJMP INICIO

.ORG 0x0020 INICIO: LDI R16,HIGH(RAMEND) OUT SPH,R16

LDI R16,LOW(RAMEND) OUT SPL,R16;-------------------------------------------; INICIALIZO LA SALIDA TODO EL PUERTO D |;-------------------------------------------

SER R17; PONGO TODO EL REGISTRO R17 A UNO LOGICOOUT DDRD,R17; CARGO UNO LOGICO Y ACTIVO TODO EL PUERTO D COMO SALIDACBI DDRC,PC0; PONGO PC0 COMO ENTRADA

;---------------------------------------------; INTERRUPTOR |;---------------------------------------------

INTERRUPTOR : SBIC PINC,PC0 ; PEGUNTO PC0=0 SI LO ES SALTO UNA LINEA O SEA NO ; LEO LA LINEA SIGUIENTE RJMP INTERRUPTOR; SALTO A INTERRUPTOR SIEMPRE Y CUANDO PB0=1

RJMP T1; SALTO A T1

T1: LDI R17,129; CARGO 120 QUE ES IGUAL A 0b10000001 OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D OSEA

; ESTARIA ENCENDIDO PD7 Y PD0 RCALL DELAY_300ms; TIEMPO DE RETARDO PARA PODER VISUALIZAR LO

; ANTERIOR LDI R17,66; CARGO 66 QUE ES IGUAL A 0b01000010 OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D OSEA

; ESTARIA ENCENDIDO PD6 Y PD1 RCALL DELAY_300ms; TIEMPO DE RETARDO PARA PODER VISUALIZAR

LO ; ANTERIOR

LDI R17,36; CARGO 36 QUE ES IGUAL A 0b00100100 OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D OSEA

ESTARIA ; ENCENDIDO PD5 Y PD2 RCALL DELAY_300ms; TIEMPO DE RETARDO PARA PODER VISUALIZAR LO

; ANTERIOR LDI R17,24; CARGO 24 QUE ES IGUAL A 0b00011000 OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D OSEA

ESTARIA ; ENCENDIDO PD4 Y PD3

RCALL DELAY_300ms; TIEMPO DE RETARDO PARA PODER VISUALIZAR LO ; ANTERIOR

RJMP T1; SALTO A ETIQUETA T1 PARA REPETIR M EL CICLO DE NUEVO

Page 23: Solucion de practica1 calificada microcontroladores

;--------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 45;46;49 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 300ms |;--------------------------------------------------

DELAY_300ms: LDI R18,45; CARGAMOS 45 EN DECIMAL AL REGISTRO R18X0: LDI R19,46; CARGAMOS 46 EN DECIMAL AL REGISTRO R19X1: LDI R20,49; CARGAMOS 49 EN DECIMAL AL REGISTRO R20X2: DEC R20; DECREMENTO EN UNA UNIDAD AL REGISTRO R20

BRNE X2; MIENTRAS QUE R20 SEA DIFERENTE DE CERO SALTAR ; A X2

DEC R19; DECREMENTO EN UNA UNIDAD AL REGISTRO R19

BRNE X1; MIENTRAS QUE R19 SEA DIFERENTE DE CERO SALTAR ; A X1

DEC R18; DECREMENTO EN UNA UNIDAD AL REGISTRO R18

BRNE X0; MIENTRAS QUE R18 SEA DIFERENTE DE CERO SALTAR ; A X0

RET ; RETORNO A LA SIGUIENTE LINEA DE DONDE FUE ; LLAMADO

C.- HACER LA SIMULACION

EL INTERRUPTOR ESTA ABIERTO

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R1

330

R2

330

R3

330

R4

330

R5

330

R6

330

R7

330

R8

330

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R910k

Page 24: Solucion de practica1 calificada microcontroladores

INTERRUPTOR ESTA CERRADO

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R1

330

R2

330

R3

330

R4

330

R5

330

R6

330

R7

330

R8

330

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R910k

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R1

330

R2

330

R3

330

R4

330

R5

330

R6

330

R7

330

R8

330

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R910k

Page 25: Solucion de practica1 calificada microcontroladores

PROBLEMA 7.-A.- REALIZAR EL DIAGRAMA DE FLUJO

Page 26: Solucion de practica1 calificada microcontroladores

B.-ESCRIBA LAS INSTRUCCIONES COMENTADAS

.INCLUDE "M8DEF.INC"

.CSEG

.ORG 0x0000

. RJMP INICIO

.ORG 0x0020 INICIO: LDI R16,HIGH(RAMEND) OUT SPH,R16

LDI R16,LOW(RAMEND) OUT SPL,R16;-------------------------------------------; INICIALIZO LA SALIDA TODO EL PUERTO D |;-------------------------------------------

SER R17; PONGO TODO EL REGISTRO R17 A UNO LOGICOOUT DDRD,R17; CARGO UNO LOGICO Y ACTIVO TODO EL PUERTO D COMO SALIDACBI DDRC,PC1; PONGO PC1 COMO ENTRADACBI DDRC,PC0;PONGO PC0 COMO ENTRADA

;---------------------------------------------; INTERRUPTOR |;---------------------------------------------

PC1_: SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION

SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_0;SALTA A ETIQUETA PC1_0 SI PC1=0

RJMP PC1_1;SALTA A ETIQUETA PC1_1 SI PC1=1

PC1_0: SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP AUTO_FANTASTICO;SI PC0=1 SALTA A ETIQUETA AUTO_FANTASTICO RJMP LED_APAGADO ;SI PC0=0 SALTA A ETIQUETA LED_APAGADO

PC1_1: SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP JUEGO_DE_LEDS;SI PC0=1 SALTA A ETIQUETA JUEGO_DE_LEDS RJMP LEDS_INTERMITENTES;SI PC0=0 SALTA A ETIQUETA LEDS_INTERMITENTES;-----------------------------------------------

JUEGO_DE_LEDS: SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIÓNRJMP PC1_;SALTA A PC1_ SI PC1=0 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIÓNRJMP PC1_1;SALTA A PC1_1 SI PC0=0LDI R17,129;CARGO 120 QUE ES IGUAL A 0b10000001OUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO D OSEA ESTARIA ENCENDIDO PD7 Y PD0RCALL DELAY_300ms;TIEMPO DE RETARDO PARA PODER VISUALIZAR LO ANTERIORSBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_;SALTA A PC1_ SI PC1=0 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_1;SALTA A PC1_1 SI PC0=0LDI R17,66;CARGO 66 QUE ES IGUAL A 0b01000010OUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO D OSEA ESTARIA ENCENDIDO PD6 Y PD1RCALL DELAY_300ms;TIEMPO DE RETARDO PARA PODER VISUALIZAR LO ANTERIORSBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_;SALTA A PC1_ SI PC1=0

Page 27: Solucion de practica1 calificada microcontroladores

SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_1;SALTA A PC1_1 SI PC0=0LDI R17,36;CARGO 36 QUE ES IGUAL A 0b00100100OUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO D OSEA ESTARIA ENCENDIDO PD5 Y PD2RCALL DELAY_300ms;TIEMPO DE RETARDO PARA PODER VISUALIZAR LO ANTERIORSBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_;SALTA A PC1_ SI PC1=0 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_1;SALTA A PC1_1 SI PC0=0LDI R17,24;CARGO 24 QUE ES IGUAL A 0b00011000OUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO D OSEA ESTARIA ENCENDIDO PD4 Y PD3RCALL DELAY_300ms;TIEMPO DE RETARDO PARA PODER VISUALIZAR LO ANTERIORSBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_;SALTA A PC1_ SI PC1=0 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_1;SALTA A PC1_1 SI PC0=0RJMP JUEGO_DE_LEDS;SALTO A ETIQUETA JUEGO_DE_LEDS PARA REPETIR M EL CICLO DE NUEVO

LEDS_INTERMITENTES: SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_;SALTA A PC1_ SI PC1=0 SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_1;SALTA A PC1_1 SI PC0=1SER R17; INICIALIZO TODO EL REGISTRO R17 CON UNOSOUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO DRCALL DELAY_300ms;LLAMO A UNA SUBRUTINA DELAY _200ms PARA OBSERVAR LO ANTERIOR UN ; INSTANTESBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_;SALTA A PC1_ SI PC1=0 SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_1;SALTA A PC1_1 SI PC0=1CLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROSOUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO DRCALL DELAY_300ms; LLAMO A UNA SUBRUTINA DELAY _200ms PARA OBSERVAR LO ANTERIOR ; UN INSTANTESBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_;SALTA A PC1_ SI PC1=0 SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_1;SALTA A PC1_1 SI PC0=1RJMP LEDS_INTERMITENTES; SALTA A ETIQUETA LEDS_INTERMITENTES PARA HACER LOS CICLOS ; SUCESIVOS

AUTO_FANTASTICO: SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_; SALTA A PC1_ SI PC1=1SBIS PINC,PC0; PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_0;SALTA A PC1_0 SI PC0=0

AUTO_FANTASTICO1: CLC; BORRAMOS CARRYCLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROSLDI R17,1; CARGO R17 CON UNOA1: OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D AQUI SOLO PRENDE PD0 RCALL DELAY_300ms; LLAMO A UNA SUBRUTINA DELAY _300ms PARA OBSERVAR LO ANTERIOR UN ; INSTANTEROL R17; ROTO UN BIT A LA ISQUIERDA

Page 28: Solucion de practica1 calificada microcontroladores

SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_ ;SALTA A PC1_ SI PC1=1SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_0;SALTA A PC1_0 SI PC0=0BRCS AUTO_FANTASTICO2; ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A ; AUTO_FANTASTICO2RJMP A1;MIENTRA NO CUMPLA LO ANTERIOR AQUI SALTAMOS A ETIQUETA A1 AUTO_FANTASTICO2: SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_;SALTA A PC1_ SI PC1=1CLC;BORRAMOS CARRYCLR R17;INICIALIZO TODO EL REGISTRO R17 CON CEROSLDI R17,128;CARGO R17 CON 0b10000000A2: OUT PORTD,R17; MUESTRO LO QUE CARGUE EN EL REGISTRO R17 POR EL PUERTO D AQUI SOLO ; PRENDE PD7RCALL DELAY_300ms;LLAMO A UNA SUBRUTINA DELAY _300ms PARA OBSERVAR LO ANTERIOR UN ; INSTANTEROR R17; ROTO A LA DERECHA EL BITSBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_ ;SALTA A PC1_ SI PC1=1SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_0;SALTA A PC1_0 SI PC0=0BRCS AUTO_FANTASTICO1; ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A ; AUTO_FANTASTICO1RJMP A2;MIENTRA NO CUMPLA LO ANTERIOR AQUI SALTAMOS A ETIQUETA A2

LED_APAGADO: SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_;SALTA A PC1_ SI PC1=1SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_0;SALTA A PC1_0 SI PC0=1CLR R17 ;BORRO EL REGISTRO R17OUT PORTD,R17;MUESTRO EL REGISTRO R17 POR EL PUERTO DRCALL DELAY_300ms;LLAMO A UNA SUBRUTINA DELAY _300ms PARA OBSERVAR LO ANTERIOR UN ; INSTANTESBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_; SALTA A PC1_ SI PC1=1SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCIONRJMP PC1_0;SALTA A PC1_0 SI PC0=1RJMP LED_APAGADO;SALTO A ETIQUETA LED_APAGADO MIENTRAS NO CUMPLA LO ANTERIOR OSEA ; PC0=1;--------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 45;46;49 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 300ms |;--------------------------------------------------

DELAY_300ms: LDI R18,45;CARGAMOS 45 EN DECIMAL AL REGISTRO R18X0: LDI R19,46;CARGAMOS 46 EN DECIMAL AL REGISTRO R19X1: LDI R20,49;CARGAMOS 49 EN DECIMAL AL REGISTRO R20X2: DEC R20;DECREMENTO EN UNA UNIDAD AL REGISTRO R20 BRNE X2;MIENTRAS QUE R20 SEA DIFERENTE DE CERO SALTAR A X2 DEC R19;DECREMENTO EN UNA UNIDAD AL REGISTRO R19 BRNE X1;MIENTRAS QUE R19 SEA DIFERENTE DE CERO SALTAR A X1 DEC R18;DECREMENTO EN UNA UNIDAD AL REGISTRO R18 BRNE X0;MIENTRAS QUE R18 SEA DIFERENTE DE CERO SALTAR A X0 RET ;RETORNO A LA SIGUIENTE LINEA DE DONDE FUE LLAMADO

Page 29: Solucion de practica1 calificada microcontroladores

C.-HACER LA SIMULACION

PC1=0 Y PC0=0

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R1

330

R2

330

R3

330

R4

330

R5

330

R6

330

R7

330

R8

330

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R910k

R1010k

PC1 PC0

0 0

PC1 PC0

PC1=0 Y PC0=1

Page 30: Solucion de practica1 calificada microcontroladores

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R1

330

R2

330

R3

330

R4

330

R5

330

R6

330

R7

330

R8

330

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R910k

R1010k

PC1 PC0

0 1

PC1 PC0

PC1=1 Y PC0=0

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R1

330

R2

330

R3

330

R4

330

R5

330

R6

330

R7

330

R8

330

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R910k

R1010k

PC1 PC0

1 0

PC1 PC0

PC1=1 Y PC0=1

Page 31: Solucion de practica1 calificada microcontroladores

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R1

330

R2

330

R3

330

R4

330

R5

330

R6

330

R7

330

R8

330

D1LED-YELLOW

D2LED-YELLOW

D3LED-YELLOW

D4LED-YELLOW

D5LED-YELLOW

D6LED-YELLOW

D7LED-YELLOW

D8LED-YELLOW

R910k

R1010k

PC1 PC0

1 1

PC1 PC0

PROBLEMA8.-

Page 32: Solucion de practica1 calificada microcontroladores

A.-REALIZAR EL DIAGRAMA DE FLUJO DEL PROGRAMA

Page 33: Solucion de practica1 calificada microcontroladores

B.- ESCRIBA LAS INSTRUCCIONES

.INCLUDE "M8DEF.INC"

.CSEG

.ORG 0x0000

. RJMP INICIO

.ORG 0x0020 INICIO: LDI R16,HIGH(RAMEND) OUT SPH,R16

LDI R16,LOW(RAMEND) OUT SPL,R16;----------------------------------------------------------------------; DECLARO LAS ENTRADAS PARA LOS PULASDORES:BP,BM,BI,S |;---------------------------------------------------------------------- CBI DDRB,PB0; DECLARO BP COMO ENTRADA

CBI DDRB,PB1; DECLARO BM COMO ENTRADA CBI DDRB,PB2; DECLARO BI COMO ENTRADA CBI DDRD,PD0; DECLARO S COMO ENTRADA

;--------------------------------------------------------; DECLARO LA SALIDA PARA EL MOTOR DC |;-------------------------------------------------------- LDI R16,3;CARGO 0b00000011

OUT DDRC,R16; DECLARO PC0 Y PC1 COMO SALIDA DEL MOTOR;--------------------------------------------------------; SUPERVICION |;--------------------------------------------------------

SUPERVISION_S: SBIC PIND,PD0; PREGUNTO POR PD0=0? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACIONRJMP SUPERVISION_S ; SALTO A SUPERVISION_S SI PD0=1

LDI R16,1; CARGO UNO EN DECIMAL AL REGISTRO R16RCALL DELAY_500ms ; UNA PAUSA PARA LEER LO QUE BIENE DESPUES DE ESTO

PREGUNTA_PB0: SBIS PINB,PB0;PREGUNTO POR PB1=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACIONRJMP APAGADO; SALTO A APAGADO SI LO ANTERIOR ES PB1=0PREGUNTA_PB1: SBIC PINB,PB1; PREGUNTO POR PB1=0? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACIONRJMP INTERMITENTE; SI LO ANTERIOR SE COMPRUEBA QUE PB1=1 SALTAMOS A INTERMITENTERJMP MARCHA; SI LO ANTERIOR SE COMPRUEBA QUE PB1=0 SALTAMOS A MARCHA MARCHA: OUT PORTC,R16; SACO EL VALOR DE R16 POR EL PUERTO C OSEA 1 LOGICORCALL DELAY_500ms; RETARDO PARA OBSERVAR LO ANTERIORSBIS PINB,PB0; PREGUNTO POR PB0=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACIONRJMP APAGADO ; SI LO ANTERIOR ES PB0=0 SALTAMOS A APAGADOSBIS PINB,PB2;PREGUNTO POR PB2=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA

Page 34: Solucion de practica1 calificada microcontroladores

; PROGRAMACIONRJMP PREGUNTA_PB1; SI LO ANTERIOR ES PB2=0 SALTAMOS A PREGUNTA_PB1RJMP MARCHA; SI PB2=1 SALTAMOS A MARCHA

APAGADO: CBI PORTC,PC0;MUESTRO CERO LOGICO POR EL PUERTO C RCALL DELAY_500ms;UN RETARDO PARA PODER PERCATAR LO ANTERIORSBIS PINB,PB0;PREGUNTO POR PB0=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACIONRJMP APAGADO ; SI LO ANTERIOR PB0=0 SALTAMOS A APGADORJMP PREGUNTA_PB1;SI LO ANTERIOR PB0=1 SALTA A PREGUNTA_PB1

INTERMITENTE: SBIS PINB,PB0;PREGUNTO POR PB0=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACIONRJMP APAGADO; SALTA A APAGADO SI PB0=0SBIS PINB,PB1;PREGUNTO POR PB1=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACIONRJMP MARCHA; SALTA A MARCHA SI PB1=0SBIC PINB,PB2;PREGUNTO POR PB2=0? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACIONRCALL APA;LLAMO A LA SUBRRUTINA SI PB2=1SBIS PINB,PB2;PREGUNTO POR PB2=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA; PROGRAMACIONRCALL PRE; LLAMO A LA SUBRRUTINA SI PB2=0RJMP INTERMITENTE;SALTO A ETIQUETA INTERMITENTEPRE: SBI PORTC,PC0; MUESTRO UNO LOGICO POR PC0RET; RETORNA A LA SIGUIENTE LINEA DE DONDE FUE LLAMADOAPA: CBI PORTC,PC0;MUESTRO CERO LOGICO POR PC0RCALL DELAY_500ms;LLAMO UN RETARDO PARA APRECIAR LO ANTERIORRET;RETORNA A LA SIGUIENTE LINEA DE DONDE FUE LLAMADO

;--------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 73;51;46 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 500ms |;--------------------------------------------------

DELAY_500ms: LDI R18,73Y0: LDI R19,51Y1: LDI R20,46Y2: DEC R20

BRNE Y2 DEC R19 BRNE Y1 DEC R18 BRNE Y0 RET

Page 35: Solucion de practica1 calificada microcontroladores

CUANDO EL SENSOR ESTA ABIERTO NO PASA NADA ASI LOS PULSADORES ESTEN CERRADOS

CUANDO CERRAMOS EL CENSOR Y CERRAMOS BP

CERRAMOS “S” Y CERRAMOS “BM”

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

IN12 OUT1 3

OUT2 6

OUT3 11

OUT4 14

IN27

IN310

IN415

EN11

EN29

VS

8

VSS

16

GND GND

U2

L293D

0.0

0

R110k

R210k

R310k

R410k

BP

BM

BI

S

(PARADA)

(MARCHA)

(INTERMITENTE)

(SENSOR)

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

IN12 OUT1 3

OUT2 6

OUT3 11

OUT4 14

IN27

IN310

IN415

EN11

EN29

VS

8

VSS

16

GND GND

U2

L293D

+13

5

R110k

R210k

R310k

R410k

BP

BM

BI

S

(PARADA)

(MARCHA)

(INTERMITENTE)

(SENSOR)

Page 36: Solucion de practica1 calificada microcontroladores

CERRAMOS “S” Y CERRAMOS “BI”

Page 37: Solucion de practica1 calificada microcontroladores

PROBLEMA 9.-

A.-REALIZAR EL DIAGRAMA DE FLUJO

B.-ESCRIBA LAS INSTRUCCIONES ,COMENTADAS

.INCLUDE"M8DEF.INC"

.CSEG

.ORG 0X000RJMP INICIO;------------------------------;DECLARO LAS ENTRADAS |;------------------------------

INICIO:LDI R16,255; CARGO 0b11111111 EN EL REGISTRO R16OUT DDRD,R16;SACO EL VALOR DE R16 POR EL PUERTO D DANDO COMO SALIDAD A TODO EL PUERTO DCBI DDRB,PB0;DECLARO ENTRADA A PB0;----------------------------;INTERRUPTOR |;----------------------------INTERRUPTOR:SBIC PINB,PB0; PREGUNTO PB0=0? SI LO ES SALTO UNA LINEA DE PROGRAMACION OSEA NO LO LEO LA LINEA SIGUIENTE RJMP CONTEO; SALTO A CONTEO SI PB0=1SBIS PINB,PB0; PREGUNTO PB0=1? SI LO ES SALTO UNA LINEA DE PROGRAMACION OSEA NO LO LEO LA LINEA SIGUIENTE RJMP HOLA;SALTO A HOLA SI PB0=0RJMP INTERRUPTOR ; SALTO A INTERRUPCION

Page 38: Solucion de practica1 calificada microcontroladores

CONTEO:LDI R17,0B00111111;CARGO EN R17 0B00111111OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY; LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B00000110;CARGO EN R17 0B00000110OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY; LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B01011011;CARGO EN R17 0B01011011OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B01001111;CARGO EN R17 0B01001111OUT PORTD,R;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR17RCALL DELAY

LDI R17,0B01100110;CARGO EN R17 0B01100110OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B01101101;CARGO EN R17 0B01101101OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B01111101;CARGO EN R17 0B01111101OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B00000111;CARGO EN R17 0B00000111OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B01111111;CARGO EN R17 0B01111111OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B01100111;CARGO EN R17 0B01100111OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIORRJMP INTERRUPTOR;SALTO A INTERRUPTOR

HOLA:LDI R17,0B01110110;CARGO EN R17 0B01110110OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B00111111;CARGO EN R17 0B00111111OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B00111000;CARGO EN R17 0B00111000OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

LDI R17,0B01110111;CARGO EN R17 0B01110111OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO DRCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR

Page 39: Solucion de practica1 calificada microcontroladores

RJMP INTERRUPTOR ; SALTO A INTERRUPCION;--------------------------------------------------; CARGAREMOS A LOS REGISTROS DE LA SIGUIENTE MODO: |; 46;60;60 EN ESTE ORDEN Y NOS DARA APROXIMADAMENTE |; UN TIEMPO DE 500ms |;--------------------------------------------------

DELAY: LDI R20,46 X3: LDI R19,60 X2: LDI R18,60 X1: DEC R18 BRNE X1 DEC R19 BRNE X2 DEC R20 BRNE X3 RET

C.- HACER LA SIMULACION

PULSADOR ABIERTO EMPIEZA A CONTAR

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R110k

Page 40: Solucion de practica1 calificada microcontroladores

CIERRO EL PULSADOR EMPIZA A MOSTRAR LAS LETRAS H-O-L-A

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

R110k

PROBLEMA 10.-

Page 41: Solucion de practica1 calificada microcontroladores

B.-ESCRIBA LAS INSTRUCCIONES ,COMENTADAS

.INCLUDE "M8DEF.INC" .CSEG .ORG 0X000 RJMP INICIO

INICIO: LDI R16,255;CARGO 0B11111111 EN R16 OUT DDRD,R16;DECLARO SALIDA EL PUERTO D CBI DDRB,PB0;PONGO PB0 COMO ENTADA CBI DDRB,PB1;PONGO PB1 COMO ENTRADA LDI R17,0;CARGO 0 EN DECIMAL LDI R21,9;CARGO 9 EN DECIMAL INTERRUPTOR: SBIS PINB,PB0;PREGUNTO PB0=1? SI LO ES SALTA UNA LINEA RJMP DESCENDENTE; SI PB0=0 SALTAMOS A DECENDENTE RJMP ASCENDENTE;SI PB0=1 SALTAMOS ASCENDENTE

ASCENDENTE: SBIC PINB,PB1;PREGUNTO PB1=0? SI LO ES SALTA UNA LINEA RJMP ASCENDENTE;SI PB1=1 SALTO A ASCENDENTE RCALL DELAY;RETARDO OUT PORTD,R17;MUESTRO EL VALOR DE R17 Y LO SACO POR EL PUERTO D INC R17;INCREMENTO R17 EN UNA UNIDAD CPI R17,10;COMPARO CON 10 BREQ I1;SI LO ANTERIOR ES IGUAL OSEA R17=10 SALTO A ETIQUETA I1 RJMP INTERRUPTOR;SALTO A INTERRUPTOR

DESCENDENTE: SBIC PINB,PB1;PREGUNTO PB1=0? SI LO ES SALTA UNA LINEA RJMP DESCENDENTE;SI PB1=1 SALTO A ASCENDENTE RCALL DELAY;RETARDO OUT PORTD,R21;MUESTRO EL VALOR DE R21 Y LO SACO POR EL PUERTO D DEC R21;DECREMENTO A R21 EN UNA UNIDAD CPI R21,-1 ;COMPARO CON -1 BREQ I2;SI LO ANTERIOR ES IGUAL OSEA R21=-1 SALTO A ETIQUETA I2 RJMP INTERRUPTOR;SALTO A INTERRUPTOR

I1: LDI R17,0;INICIALIZO DE NUEVO CON CERO A R17 RJMP ASCENDENTE; SALTO ASCENDENTE I2: LDI R21,9;INICIALIZO DE NUEVO CON NUEVE A R21 RJMP DESCENDENTE; SALTO DESCENDENTE

DELAY: ;CREACION DE RETARDO LDI R20,50 X3:LDI R19,45 X2:LDI R18,40 X1:DEC R18 BRNE X1 DEC R19 BRNE X2 DEC R20 BRNE X3 RET

Page 42: Solucion de practica1 calificada microcontroladores

C.-HACER SIMULACION

PB1=0 Y PB0=0

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

A7 QA 13

B1 QB 12

C2 QC 11

D6 QD 10

BI/RBO4 QE 9

RBI5 QF 15

LT3 QG 14

U2

7447

R9

330R10

330R11

330R12

330R13

330R14

330R15

330

R110k

R210k

PB0=1 Y PB1=0 ESTA EN MODO ASCENDENTE

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

A7 QA 13

B1 QB 12

C2 QC 11

D6 QD 10

BI/RBO4 QE 9

RBI5 QF 15

LT3 QG 14

U2

7447

R9

330R10

330R11

330R12

330R13

330R14

330R15

330

R110k

R210k

PB0=0 Y PB1=0 EN MODO DESCEMNDENTE

PB0/ICP114

PB1/OC1A15

PB2/SS/OC1B16

PB3/MOSI/OC217

PB4/MISO18

PB5/SCK19

PB6/TOSC1/XTAL19

PB7/TOSC2/XTAL210 PC6/RESET 1

PD0/RXD 2

PD1/TXD 3

PD2/INT0 4

PD3/INT1 5

PD4/T0/XCK 6

PD5/T1 11

PD6/AIN0 12

PD7/AIN1 13

PC0/ADC0 23

PC1/ADC1 24

PC2/ADC2 25

PC3/ADC3 26

PC4/ADC4/SDA 27

PC5/ADC5/SCL 28

AREF21

AVCC20

U1

ATMEGA8

A7 QA 13

B1 QB 12

C2 QC 11

D6 QD 10

BI/RBO4 QE 9

RBI5 QF 15

LT3 QG 14

U2

7447

R9

330R10

330R11

330R12

330R13

330R14

330R15

330

R110k

R210k