SlideShare a Scribd company logo
1 of 37
UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE IGENIERIAELECTRONICA
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
B.- ESCRIBIR EL PROGRAMA; COMENTE CADA INSTRUCCIÓN
.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 ENTRADA
LDI R17,255 ; CARGO UN INMEDIATO CON 255 QUE ES EQUIVALENTE A 0b11111111
OUT DDRD,R17 ; DECLARO EL PUERTO D COMO SALIDA
;-----------------------------------------------------
RJMP INTERRUPCION ; SALTO A INTERRUPCION
INTERRUPCION:
SBIC PINC,PC0 ; PREGUNTO EL ESTADO DE PC0 SI ES CERO SALTA UNA LINEA
RJMP INTERRUPCION ; SI ES UNO LOGICO EL ESTADO DE PC0 SALTA A INTERRUPCION
X1: 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
0b11000000
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,240 ; CARGO EL REGISTRO R18 CON 240 EN DECIMAL QUE ES IGUAL
0b11110000
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,252 ; CARGO EL REGISTRO R18 CON 252 EN DECIMAL QUE ES IGUAL 0b11111100
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,255 ; CARGO EL REGISTRO R18 CON 255 EN DECIMAL QUE ES IGUAL 0b11111111
OUT PORTD,R18 ;LO MUESTRO POR EL PUERTO D EL VALOR DE R18
RCALL 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 |
; |
;-----------------------------------------------------------------------------------
DELAY: LDI R16,150 ; CARGO AL REGISTRO R16 CON 150 DECIMAL
Y0: LDI R17,45 ; CARGO AL REGISTRO R17 CON 45 DECIMAL
Y1: LDI R18,50 ; CARGO AL REGISTRO R18 CON 50 DECIMAL
Y2: 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
D.- SIMULAR EL FUNCIONAMIENTO DE DICHO CIRCUITO CON EL SOFTWARE PROTEUS
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R9
10k PULSADOR
PROBLEMA 1
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R9
10k PULSADOR
PROBLEMA 1
PROBLEMA 2.-
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
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,46
X1: LDI R20,49
X2: DEC R20
BRNE X2
DEC R19
BRNE X1
DEC R18
BRNE X0
RET
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,45
X0: LDI R19,46
X1: LDI R20,49
X2: DEC R20
BRNE X2
DEC R19
BRNE X1
DEC R18
BRNE X0
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,73
Y0: LDI R19,51
Y1: LDI R20,46
Y2: 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,42
Z0: LDI R19,40
Z1: LDI R20,40
Z2: DEC R20
BRNE Z2
DEC R19
BRNE Z1
DEC R18
BRNE Z0
RET
;--------------------------------------------------
CIRCUITO EN PROTEUS
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
D1
LED-YELLOW
R1
330
PROBLEMA2
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
D1
LED-YELLOW
R1
330
PROBLEMA2
APAGAOENCENDIDO
PROBLEMA 3.-
A.- DIAGRAMA DE FLUJO
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 R18
Z0: LDI R19,100; CARGO 100 EN DECIMAL AL REGIATRO R19
Z1: LDI R20,100; CARGO 100 EN DECIMAL AL REGIATRO R20
Z2: 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
C.- REALIZAR LA SIMULACION
SENTIDO ANTIHORARIO
SENTIDO HORARIO
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
IN1
2
OUT1
3
OUT2
6
OUT3
11
OUT4
14
IN2
7
IN3
10
IN4
15
EN1
1
EN2
9
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
IN1
2
OUT1
3
OUT2
6
OUT3
11
OUT4
14
IN2
7
IN3
10
IN4
15
EN1
1
EN2
9
VS
8
VSS
16
GND GND
U2
L293D
-110
PROBLEMA 4.-
A.- DIAGRAMA DE FLUJO
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 LOGICO
OUT DDRD,R17; CARGO UNO LOGICO Y ACTIVO TODO EL PUERTO D COMO SALIDA
LDI 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 SIGUIENTE
RJMP INTERRUPTOR;SALTO A INTERRUPTOR SIEMPRE Y CUANDO PB0=1
RJMP T1; SALTO A T1
T1:
SER R17;INICIALIZO TODO EL REGISTRO R17 CON UNOS
OUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO D
RCALL DELAY_200ms;LLAMO A UNA SUBRUTINA DELAY _200ms PARA OBSERVAR
; LO ANTERIOR UN INSTANTE
CLR R17;INICIALIZO TODO EL REGISTRO R17 CON CEROS
OUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO D
RCALL DELAY_200ms;LLAMO A UNA SUBRUTINA DELAY _200ms PARA
; OBSERVAR LO ANTERIOR UN INSTANTE
INC R16;INCREMENTO EN UNA UNIDAD EL REGISTRO R16
CPI 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_FANTASTICO1
RJMP T1;MIENTRAS QUE LO ANTERIOR NO SE CUMPLA AQUI SALTAMOS A T1
AUTO_FANTASTICO1:
CLC; BORRAMOS CARRY
CLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROS
LDI R17,1; CARGO R17 CON UNO
A1:
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
; INSTANTE
ROL R17; ROTO UN BIT A LA ISQUIERDA
BRCS AUTO_FANTASTICO2; ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A
; AUTO_FANTASTICO2
RJMP A1; MIENTRA NO CUMPLA LO ANTERIOR AQUI SALTAMOS A ETIQUETA A1
AUTO_FANTASTICO2:
CLC; BORRAMOS CARRY
CLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROS
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 PD7
RCALL DELAY_150ms;LLAMO A UNA SUBRUTINA DELAY _150ms PARA OBSERVAR LO
; ANTERIOR UN INSTANTE
ROR R17;ROTO A LA DERECHA EL BIT
BRCS AUTO_FANTASTICO1;ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A
; AUTO_FANTASTICO1
RJMP 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 R18
Z0: LDI R19,40; CARGAMOS 40 EN DECIMAL EN EL REGISTRO R19
Z1: LDI R20,40; CARGAMOS 40 EN DECIMAL EN EL REGISTRO R20
Z2: 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 R18
Y0: LDI R19,255; CARGAMOS 255 EN DECIMAL EN EL REGISTRO R19
Y1: 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
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
R9
10k
SWITCH ESTA CERRADO
PROBLEMA6.-
A.-DIAGRAMA DE FLUJO
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
R9
10k
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 LOGICO
OUT DDRD,R17; CARGO UNO LOGICO Y ACTIVO TODO EL PUERTO D COMO SALIDA
CBI 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
;--------------------------------------------------
; 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 R18
X0: LDI R19,46; CARGAMOS 46 EN DECIMAL AL REGISTRO R19
X1: LDI R20,49; CARGAMOS 49 EN DECIMAL AL REGISTRO R20
X2: 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/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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R9
10k
INTERRUPTOR ESTA CERRADO
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R9
10k
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R9
10k
PROBLEMA 7.-
A.- REALIZAR EL DIAGRAMA DE FLUJO
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 LOGICO
OUT DDRD,R17; CARGO UNO LOGICO Y ACTIVO TODO EL PUERTO D COMO SALIDA
CBI DDRC,PC1; PONGO PC1 COMO ENTRADA
CBI 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ÓN
RJMP PC1_;SALTA A PC1_ SI PC1=0
SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIÓN
RJMP PC1_1;SALTA A PC1_1 SI PC0=0
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
SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_;SALTA A PC1_ SI PC1=0
SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_1;SALTA A PC1_1 SI PC0=0
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
SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_;SALTA A PC1_ SI PC1=0
SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_1;SALTA A PC1_1 SI PC0=0
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
SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_;SALTA A PC1_ SI PC1=0
SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_1;SALTA A PC1_1 SI PC0=0
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
SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_;SALTA A PC1_ SI PC1=0
SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_1;SALTA A PC1_1 SI PC0=0
RJMP 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 INSTRUCCION
RJMP PC1_;SALTA A PC1_ SI PC1=0
SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_1;SALTA A PC1_1 SI PC0=1
SER R17; INICIALIZO TODO EL REGISTRO R17 CON UNOS
OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D
RCALL DELAY_300ms;LLAMO A UNA SUBRUTINA DELAY _200ms PARA OBSERVAR LO ANTERIOR UN
; INSTANTE
SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_;SALTA A PC1_ SI PC1=0
SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_1;SALTA A PC1_1 SI PC0=1
CLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROS
OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D
RCALL DELAY_300ms; LLAMO A UNA SUBRUTINA DELAY _200ms PARA OBSERVAR LO ANTERIOR
; UN INSTANTE
SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_;SALTA A PC1_ SI PC1=0
SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_1;SALTA A PC1_1 SI PC0=1
RJMP 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 INSTRUCCION
RJMP PC1_; SALTA A PC1_ SI PC1=1
SBIS PINC,PC0; PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_0;SALTA A PC1_0 SI PC0=0
AUTO_FANTASTICO1:
CLC; BORRAMOS CARRY
CLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROS
LDI R17,1; CARGO R17 CON UNO
A1:
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
; INSTANTE
ROL R17; ROTO UN BIT A LA ISQUIERDA
SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_ ;SALTA A PC1_ SI PC1=1
SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_0;SALTA A PC1_0 SI PC0=0
BRCS AUTO_FANTASTICO2; ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A
; AUTO_FANTASTICO2
RJMP 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 INSTRUCCION
RJMP PC1_;SALTA A PC1_ SI PC1=1
CLC;BORRAMOS CARRY
CLR R17;INICIALIZO TODO EL REGISTRO R17 CON CEROS
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 PD7
RCALL DELAY_300ms;LLAMO A UNA SUBRUTINA DELAY _300ms PARA OBSERVAR LO ANTERIOR UN
; INSTANTE
ROR R17; ROTO A LA DERECHA EL BIT
SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_ ;SALTA A PC1_ SI PC1=1
SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_0;SALTA A PC1_0 SI PC0=0
BRCS AUTO_FANTASTICO1; ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A
; AUTO_FANTASTICO1
RJMP 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 INSTRUCCION
RJMP PC1_;SALTA A PC1_ SI PC1=1
SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_0;SALTA A PC1_0 SI PC0=1
CLR R17 ;BORRO EL REGISTRO R17
OUT PORTD,R17;MUESTRO EL REGISTRO R17 POR EL PUERTO D
RCALL DELAY_300ms;LLAMO A UNA SUBRUTINA DELAY _300ms PARA OBSERVAR LO ANTERIOR UN
; INSTANTE
SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_; SALTA A PC1_ SI PC1=1
SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION
RJMP PC1_0;SALTA A PC1_0 SI PC0=1
RJMP 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 R18
X0: LDI R19,46;CARGAMOS 46 EN DECIMAL AL REGISTRO R19
X1: LDI R20,49;CARGAMOS 49 EN DECIMAL AL REGISTRO R20
X2: 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
PC1=0 Y PC0=0
PC1=0 Y PC0=1
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R9
10k
R10
10k
PC1 PC0
0
0
PC1 PC0
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R9
10k
R10
10k
PC1 PC0
0
1
PC1 PC0
PC1=1 Y PC0=0
PC1=1 Y PC0=1
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R9
10k
R10
10k
PC1 PC0
1
0
PC1 PC0
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
330
D1
LED-YELLOW
D2
LED-YELLOW
D3
LED-YELLOW
D4
LED-YELLOW
D5
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW
D8
LED-YELLOW
R9
10k
R10
10k
PC1 PC0
1
1
PC1 PC0
PROBLEMA8.-
A.-REALIZAR EL DIAGRAMA DE FLUJO DEL PROGRAMA
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
; PROGRAMACION
RJMP SUPERVISION_S ; SALTO A SUPERVISION_S SI PD0=1
LDI R16,1; CARGO UNO EN DECIMAL AL REGISTRO R16
RCALL 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
; PROGRAMACION
RJMP APAGADO; SALTO A APAGADO SI LO ANTERIOR ES PB1=0
PREGUNTA_PB1:
SBIC PINB,PB1; PREGUNTO POR PB1=0? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA
; PROGRAMACION
RJMP INTERMITENTE; SI LO ANTERIOR SE COMPRUEBA QUE PB1=1 SALTAMOS A INTERMITENTE
RJMP 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 LOGICO
RCALL DELAY_500ms; RETARDO PARA OBSERVAR LO ANTERIOR
SBIS PINB,PB0; PREGUNTO POR PB0=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA
; PROGRAMACION
RJMP APAGADO ; SI LO ANTERIOR ES PB0=0 SALTAMOS A APAGADO
SBIS PINB,PB2;PREGUNTO POR PB2=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA
; PROGRAMACION
RJMP PREGUNTA_PB1; SI LO ANTERIOR ES PB2=0 SALTAMOS A PREGUNTA_PB1
RJMP 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 ANTERIOR
SBIS PINB,PB0;PREGUNTO POR PB0=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA
; PROGRAMACION
RJMP APAGADO ; SI LO ANTERIOR PB0=0 SALTAMOS A APGADO
RJMP 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
; PROGRAMACION
RJMP APAGADO; SALTA A APAGADO SI PB0=0
SBIS PINB,PB1;PREGUNTO POR PB1=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA
; PROGRAMACION
RJMP MARCHA; SALTA A MARCHA SI PB1=0
SBIC PINB,PB2;PREGUNTO POR PB2=0? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA
; PROGRAMACION
RCALL APA;LLAMO A LA SUBRRUTINA SI PB2=1
SBIS PINB,PB2;PREGUNTO POR PB2=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA
; PROGRAMACION
RCALL PRE; LLAMO A LA SUBRRUTINA SI PB2=0
RJMP INTERMITENTE;SALTO A ETIQUETA INTERMITENTE
PRE:
SBI PORTC,PC0; MUESTRO UNO LOGICO POR PC0
RET; RETORNA A LA SIGUIENTE LINEA DE DONDE FUE LLAMADO
APA:
CBI PORTC,PC0;MUESTRO CERO LOGICO POR PC0
RCALL DELAY_500ms;LLAMO UN RETARDO PARA APRECIAR LO ANTERIOR
RET;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,73
Y0: LDI R19,51
Y1: LDI R20,46
Y2: DEC R20
BRNE Y2
DEC R19
BRNE Y1
DEC R18
BRNE Y0
RET
CUANDOEL SENSORESTA ABIERTONO PASA NADA ASI LOS PULSADORES ESTEN CERRADOS
CUANDOCERRAMOS EL CENSORY CERRAMOS BP
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
IN1
2
OUT1
3
OUT2
6
OUT3
11
OUT4
14
IN2
7
IN3
10
IN4
15
EN1
1
EN2
9
VS
8
VSS
16
GND GND
U2
L293D
0.00
R1
10k
R2
10k
R3
10k
R4
10k
BP
BM
BI
S
(PARADA)
(MARCHA)
(INTERMITENTE)
(SENSOR)
CERRAMOS “S” Y CERRAMOS “BM”
CERRAMOS “S” Y CERRAMOS “BI”
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
IN1
2
OUT1
3
OUT2
6
OUT3
11
OUT4
14
IN2
7
IN3
10
IN4
15
EN1
1
EN2
9
VS
8
VSS
16
GND GND
U2
L293D
+135
R1
10k
R2
10k
R3
10k
R4
10k
BP
BM
BI
S
(PARADA)
(MARCHA)
(INTERMITENTE)
(SENSOR)
PROBLEMA 9.-
A.-REALIZAR EL DIAGRAMA DE FLUJO
B.-ESCRIBA LAS INSTRUCCIONES ,COMENTADAS
.INCLUDE"M8DEF.INC"
.CSEG
.ORG 0X000
RJMP INICIO
;------------------------------
;DECLARO LAS ENTRADAS |
;------------------------------
INICIO:
LDI R16,255; CARGO 0b11111111 EN EL REGISTRO R16
OUT DDRD,R16;SACO EL VALOR DE R16 POR EL PUERTO D DANDO COMO SALIDAD A TODO EL
PUERTO D
CBI 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=1
SBIS 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=0
RJMP INTERRUPTOR ; SALTO A INTERRUPCION
CONTEO:
LDI R17,0B00111111;CARGO EN R17 0B00111111
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY; LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B00000110;CARGO EN R17 0B00000110
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY; LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B01011011;CARGO EN R17 0B01011011
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B01001111;CARGO EN R17 0B01001111
OUT PORTD,R;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR17
RCALL DELAY
LDI R17,0B01100110;CARGO EN R17 0B01100110
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B01101101;CARGO EN R17 0B01101101
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B01111101;CARGO EN R17 0B01111101
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B00000111;CARGO EN R17 0B00000111
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B01111111;CARGO EN R17 0B01111111
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B01100111;CARGO EN R17 0B01100111
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
RJMP INTERRUPTOR;SALTO A INTERRUPTOR
HOLA:
LDI R17,0B01110110;CARGO EN R17 0B01110110
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B00111111;CARGO EN R17 0B00111111
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B00111000;CARGO EN R17 0B00111000
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
LDI R17,0B01110111;CARGO EN R17 0B01110111
OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR
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/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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
10k
CIERRO EL PULSADOR EMPIZA A MOSTRAR LAS LETRAS H-O-L-A
PROBLEMA 10.-
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
R1
10k
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
C.-HACER SIMULACION
PB1=0 Y PB0=0
PB0=1 Y PB1=0 ESTA EN MODO ASCENDENTE
PB0=0 Y PB1=0 EN MODO DESCEMNDENTE
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
A
7
QA
13
B
1
QB
12
C
2
QC
11
D
6
QD
10
BI/RBO
4
QE
9
RBI
5
QF
15
LT
3
QG
14
U2
7447
R9
330
R10
330
R11
330
R12
330
R13
330
R14
330
R15
330
R1
10k
R2
10k
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
A
7
QA
13
B
1
QB
12
C
2
QC
11
D
6
QD
10
BI/RBO
4
QE
9
RBI
5
QF
15
LT
3
QG
14
U2
7447
R9
330
R10
330
R11
330
R12
330
R13
330
R14
330
R15
330
R1
10k
R2
10k
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
10
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
AREF
21
AVCC
20
U1
ATMEGA8
A
7
QA
13
B
1
QB
12
C
2
QC
11
D
6
QD
10
BI/RBO
4
QE
9
RBI
5
QF
15
LT
3
QG
14
U2
7447
R9
330
R10
330
R11
330
R12
330
R13
330
R14
330
R15
330
R1
10k
R2
10k

More Related Content

What's hot

Advanced motion controls mc4xzgal
Advanced motion controls mc4xzgalAdvanced motion controls mc4xzgal
Advanced motion controls mc4xzgalElectromate
 
Advanced motion controls mc4xzgalqd
Advanced motion controls mc4xzgalqdAdvanced motion controls mc4xzgalqd
Advanced motion controls mc4xzgalqdElectromate
 
Advanced motion controls dr100ee15a20bdc
Advanced motion controls dr100ee15a20bdcAdvanced motion controls dr100ee15a20bdc
Advanced motion controls dr100ee15a20bdcElectromate
 
8051-mazidi-solution
8051-mazidi-solution8051-mazidi-solution
8051-mazidi-solutionZunAib Ali
 
Advanced motion controls dx15co8
Advanced motion controls dx15co8Advanced motion controls dx15co8
Advanced motion controls dx15co8Electromate
 
Advanced motion controls dx15co8 src
Advanced motion controls dx15co8 srcAdvanced motion controls dx15co8 src
Advanced motion controls dx15co8 srcElectromate
 
Iai robonet controller_specsheet
Iai robonet controller_specsheetIai robonet controller_specsheet
Iai robonet controller_specsheetElectromate
 
Advanced motion controls dr100ee15a40ldc
Advanced motion controls dr100ee15a40ldcAdvanced motion controls dr100ee15a40ldc
Advanced motion controls dr100ee15a40ldcElectromate
 
Advanced motion controls dr100ee100a40ndc
Advanced motion controls dr100ee100a40ndcAdvanced motion controls dr100ee100a40ndc
Advanced motion controls dr100ee100a40ndcElectromate
 
Advanced motion controls dr100ee20a8bdc
Advanced motion controls dr100ee20a8bdcAdvanced motion controls dr100ee20a8bdc
Advanced motion controls dr100ee20a8bdcElectromate
 
Data Mapping - SCSALE COPYBOOK MAPPING PRELIM GUIDE
Data Mapping - SCSALE COPYBOOK MAPPING PRELIM GUIDEData Mapping - SCSALE COPYBOOK MAPPING PRELIM GUIDE
Data Mapping - SCSALE COPYBOOK MAPPING PRELIM GUIDEJon Fortman
 
Advanced motion controls dr100ee20a8bdc qd1
Advanced motion controls dr100ee20a8bdc qd1Advanced motion controls dr100ee20a8bdc qd1
Advanced motion controls dr100ee20a8bdc qd1Electromate
 
Advanced motion controls dr100ee60a40ndc
Advanced motion controls dr100ee60a40ndcAdvanced motion controls dr100ee60a40ndc
Advanced motion controls dr100ee60a40ndcElectromate
 
Advanced motion controls dx60co8
Advanced motion controls dx60co8Advanced motion controls dx60co8
Advanced motion controls dx60co8Electromate
 

What's hot (20)

ELECTRICOS PETERBILT
ELECTRICOS PETERBILTELECTRICOS PETERBILT
ELECTRICOS PETERBILT
 
Advanced motion controls mc4xzgal
Advanced motion controls mc4xzgalAdvanced motion controls mc4xzgal
Advanced motion controls mc4xzgal
 
Advanced motion controls mc4xzgalqd
Advanced motion controls mc4xzgalqdAdvanced motion controls mc4xzgalqd
Advanced motion controls mc4xzgalqd
 
Advanced motion controls dr100ee15a20bdc
Advanced motion controls dr100ee15a20bdcAdvanced motion controls dr100ee15a20bdc
Advanced motion controls dr100ee15a20bdc
 
8051-mazidi-solution
8051-mazidi-solution8051-mazidi-solution
8051-mazidi-solution
 
Instrumentation
InstrumentationInstrumentation
Instrumentation
 
merged
mergedmerged
merged
 
Advanced motion controls dx15co8
Advanced motion controls dx15co8Advanced motion controls dx15co8
Advanced motion controls dx15co8
 
Advanced motion controls dx15co8 src
Advanced motion controls dx15co8 srcAdvanced motion controls dx15co8 src
Advanced motion controls dx15co8 src
 
Rota 2
Rota 2Rota 2
Rota 2
 
Iai robonet controller_specsheet
Iai robonet controller_specsheetIai robonet controller_specsheet
Iai robonet controller_specsheet
 
Advanced motion controls dr100ee15a40ldc
Advanced motion controls dr100ee15a40ldcAdvanced motion controls dr100ee15a40ldc
Advanced motion controls dr100ee15a40ldc
 
Advanced motion controls dr100ee100a40ndc
Advanced motion controls dr100ee100a40ndcAdvanced motion controls dr100ee100a40ndc
Advanced motion controls dr100ee100a40ndc
 
Advanced motion controls dr100ee20a8bdc
Advanced motion controls dr100ee20a8bdcAdvanced motion controls dr100ee20a8bdc
Advanced motion controls dr100ee20a8bdc
 
Data Mapping - SCSALE COPYBOOK MAPPING PRELIM GUIDE
Data Mapping - SCSALE COPYBOOK MAPPING PRELIM GUIDEData Mapping - SCSALE COPYBOOK MAPPING PRELIM GUIDE
Data Mapping - SCSALE COPYBOOK MAPPING PRELIM GUIDE
 
M3488 datasheet
M3488 datasheetM3488 datasheet
M3488 datasheet
 
NT1065 LE DS v2.04
NT1065 LE DS v2.04NT1065 LE DS v2.04
NT1065 LE DS v2.04
 
Advanced motion controls dr100ee20a8bdc qd1
Advanced motion controls dr100ee20a8bdc qd1Advanced motion controls dr100ee20a8bdc qd1
Advanced motion controls dr100ee20a8bdc qd1
 
Advanced motion controls dr100ee60a40ndc
Advanced motion controls dr100ee60a40ndcAdvanced motion controls dr100ee60a40ndc
Advanced motion controls dr100ee60a40ndc
 
Advanced motion controls dx60co8
Advanced motion controls dx60co8Advanced motion controls dx60co8
Advanced motion controls dx60co8
 

Similar to Solucion de practica1 calificada microcontroladores

C monica_uabc2014-2_microcontroladores_micro1_motorpasos_motorpasos
C  monica_uabc2014-2_microcontroladores_micro1_motorpasos_motorpasosC  monica_uabc2014-2_microcontroladores_micro1_motorpasos_motorpasos
C monica_uabc2014-2_microcontroladores_micro1_motorpasos_motorpasosMonica Valenzuela
 
Automatic light project
Automatic light projectAutomatic light project
Automatic light projectkspece0928
 
fdocuments.in_the-ericsson-commands.pdf
fdocuments.in_the-ericsson-commands.pdffdocuments.in_the-ericsson-commands.pdf
fdocuments.in_the-ericsson-commands.pdfSaidHaman
 
2 g ms4099e dan ms4099f_alarm
2 g ms4099e dan ms4099f_alarm2 g ms4099e dan ms4099f_alarm
2 g ms4099e dan ms4099f_alarmheri Banget
 
2 g ms4099e dan ms4099f_alarm
2 g ms4099e dan ms4099f_alarm2 g ms4099e dan ms4099f_alarm
2 g ms4099e dan ms4099f_alarmheri Banget
 
The_ERICSSON_commands_listed_below_are_f (1) (1).pdf
The_ERICSSON_commands_listed_below_are_f (1) (1).pdfThe_ERICSSON_commands_listed_below_are_f (1) (1).pdf
The_ERICSSON_commands_listed_below_are_f (1) (1).pdfssuser340a0c
 
Z390 Designare REV1.0.pdf
Z390 Designare REV1.0.pdfZ390 Designare REV1.0.pdf
Z390 Designare REV1.0.pdfQuangSngBi
 
Questionnaire19098
Questionnaire19098Questionnaire19098
Questionnaire19098nitish9430
 
Schrödinger's ARM Assembly
Schrödinger's ARM AssemblySchrödinger's ARM Assembly
Schrödinger's ARM AssemblySaumil Shah
 
John deere cts 2 combine parts catalog
John deere cts 2 combine parts catalogJohn deere cts 2 combine parts catalog
John deere cts 2 combine parts catalogPartCatalogs Net
 
Topviewsimulator
TopviewsimulatorTopviewsimulator
TopviewsimulatorRashmi
 
0 bf3b425 abac-446e-90d456d8a4420452
0 bf3b425 abac-446e-90d456d8a44204520 bf3b425 abac-446e-90d456d8a4420452
0 bf3b425 abac-446e-90d456d8a4420452Carlos Carvalho
 
Precision Bearing House, Industrial Automation | PBH
Precision Bearing House, Industrial Automation | PBHPrecision Bearing House, Industrial Automation | PBH
Precision Bearing House, Industrial Automation | PBHPrecision Bearing House
 
PowerMate15 Technical Specification
PowerMate15 Technical SpecificationPowerMate15 Technical Specification
PowerMate15 Technical SpecificationRimsky Cheng
 
lb instruments by using microcontroller , Rabi Moirangthem
lb instruments by using microcontroller , Rabi Moirangthemlb instruments by using microcontroller , Rabi Moirangthem
lb instruments by using microcontroller , Rabi MoirangthemRabi Moirangthem
 

Similar to Solucion de practica1 calificada microcontroladores (20)

C monica_uabc2014-2_microcontroladores_micro1_motorpasos_motorpasos
C  monica_uabc2014-2_microcontroladores_micro1_motorpasos_motorpasosC  monica_uabc2014-2_microcontroladores_micro1_motorpasos_motorpasos
C monica_uabc2014-2_microcontroladores_micro1_motorpasos_motorpasos
 
Automatic light project
Automatic light projectAutomatic light project
Automatic light project
 
fdocuments.in_the-ericsson-commands.pdf
fdocuments.in_the-ericsson-commands.pdffdocuments.in_the-ericsson-commands.pdf
fdocuments.in_the-ericsson-commands.pdf
 
2 g ms4099e dan ms4099f_alarm
2 g ms4099e dan ms4099f_alarm2 g ms4099e dan ms4099f_alarm
2 g ms4099e dan ms4099f_alarm
 
2 g ms4099e dan ms4099f_alarm
2 g ms4099e dan ms4099f_alarm2 g ms4099e dan ms4099f_alarm
2 g ms4099e dan ms4099f_alarm
 
The_ERICSSON_commands_listed_below_are_f (1) (1).pdf
The_ERICSSON_commands_listed_below_are_f (1) (1).pdfThe_ERICSSON_commands_listed_below_are_f (1) (1).pdf
The_ERICSSON_commands_listed_below_are_f (1) (1).pdf
 
Dl2970 (b)
Dl2970 (b)Dl2970 (b)
Dl2970 (b)
 
Z390 Designare REV1.0.pdf
Z390 Designare REV1.0.pdfZ390 Designare REV1.0.pdf
Z390 Designare REV1.0.pdf
 
Questionnaire19098
Questionnaire19098Questionnaire19098
Questionnaire19098
 
Schrödinger's ARM Assembly
Schrödinger's ARM AssemblySchrödinger's ARM Assembly
Schrödinger's ARM Assembly
 
John deere cts 2 combine parts catalog
John deere cts 2 combine parts catalogJohn deere cts 2 combine parts catalog
John deere cts 2 combine parts catalog
 
74ls390
74ls39074ls390
74ls390
 
Topviewsimulator
TopviewsimulatorTopviewsimulator
Topviewsimulator
 
0 bf3b425 abac-446e-90d456d8a4420452
0 bf3b425 abac-446e-90d456d8a44204520 bf3b425 abac-446e-90d456d8a4420452
0 bf3b425 abac-446e-90d456d8a4420452
 
Precision Bearing House, Industrial Automation | PBH
Precision Bearing House, Industrial Automation | PBHPrecision Bearing House, Industrial Automation | PBH
Precision Bearing House, Industrial Automation | PBH
 
Log bora2
Log bora2Log bora2
Log bora2
 
PowerMate15 Technical Specification
PowerMate15 Technical SpecificationPowerMate15 Technical Specification
PowerMate15 Technical Specification
 
lb instruments by using microcontroller , Rabi Moirangthem
lb instruments by using microcontroller , Rabi Moirangthemlb instruments by using microcontroller , Rabi Moirangthem
lb instruments by using microcontroller , Rabi Moirangthem
 
Radix 4 booth
Radix 4 boothRadix 4 booth
Radix 4 booth
 
ABB MCB DB price List 004
ABB MCB DB price List 004ABB MCB DB price List 004
ABB MCB DB price List 004
 

Recently uploaded

Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZTE
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacingjaychoudhary37
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 

Recently uploaded (20)

Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
ZXCTN 5804 / ZTE PTN / ZTE POTN / ZTE 5804 PTN / ZTE POTN 5804 ( 100/200 GE Z...
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacing
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 

Solucion de practica1 calificada microcontroladores

  • 1. UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE IGENIERIAELECTRONICA CURSO: MICROCONTROLADORES TEMA: SOLUCIONARIO DE PRACTICA CALIFICADA N°1 ALUMNO: TINEO QUISPE ROLAN PROFESOR: MSc-ING.JACOB ASTOCONDOR VILLAR CICLO : 6TO CODIGO: 1223220597 2015
  • 3. B.- ESCRIBIR EL PROGRAMA; COMENTE CADA INSTRUCCIÓN .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 ENTRADA LDI R17,255 ; CARGO UN INMEDIATO CON 255 QUE ES EQUIVALENTE A 0b11111111 OUT DDRD,R17 ; DECLARO EL PUERTO D COMO SALIDA ;----------------------------------------------------- RJMP INTERRUPCION ; SALTO A INTERRUPCION INTERRUPCION: SBIC PINC,PC0 ; PREGUNTO EL ESTADO DE PC0 SI ES CERO SALTA UNA LINEA RJMP INTERRUPCION ; SI ES UNO LOGICO EL ESTADO DE PC0 SALTA A INTERRUPCION X1: 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 0b11000000 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,240 ; CARGO EL REGISTRO R18 CON 240 EN DECIMAL QUE ES IGUAL 0b11110000 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,252 ; CARGO EL REGISTRO R18 CON 252 EN DECIMAL QUE ES IGUAL 0b11111100 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,255 ; CARGO EL REGISTRO R18 CON 255 EN DECIMAL QUE ES IGUAL 0b11111111 OUT PORTD,R18 ;LO MUESTRO POR EL PUERTO D EL VALOR DE R18 RCALL 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 | ; | ;----------------------------------------------------------------------------------- DELAY: LDI R16,150 ; CARGO AL REGISTRO R16 CON 150 DECIMAL Y0: LDI R17,45 ; CARGO AL REGISTRO R17 CON 45 DECIMAL Y1: LDI R18,50 ; CARGO AL REGISTRO R18 CON 50 DECIMAL Y2: 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
  • 4. 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 D.- SIMULAR EL FUNCIONAMIENTO DE DICHO CIRCUITO CON EL SOFTWARE PROTEUS 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R9 10k PULSADOR PROBLEMA 1 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R9 10k PULSADOR PROBLEMA 1
  • 5. PROBLEMA 2.- 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
  • 6.
  • 7.
  • 8. 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,46 X1: LDI R20,49 X2: DEC R20 BRNE X2 DEC R19 BRNE X1 DEC R18 BRNE X0 RET
  • 9. 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,45 X0: LDI R19,46 X1: LDI R20,49 X2: DEC R20 BRNE X2 DEC R19 BRNE X1 DEC R18 BRNE X0 RET
  • 10. ;-------------------------------------------------- ; 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,73 Y0: LDI R19,51 Y1: LDI R20,46 Y2: 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,42 Z0: LDI R19,40 Z1: LDI R20,40 Z2: DEC R20 BRNE Z2 DEC R19 BRNE Z1 DEC R18 BRNE Z0 RET ;-------------------------------------------------- CIRCUITO EN PROTEUS 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 D1 LED-YELLOW R1 330 PROBLEMA2 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 D1 LED-YELLOW R1 330 PROBLEMA2 APAGAOENCENDIDO
  • 12. 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 R18 Z0: LDI R19,100; CARGO 100 EN DECIMAL AL REGIATRO R19 Z1: LDI R20,100; CARGO 100 EN DECIMAL AL REGIATRO R20 Z2: 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
  • 13. C.- REALIZAR LA SIMULACION SENTIDO ANTIHORARIO SENTIDO HORARIO 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 IN1 2 OUT1 3 OUT2 6 OUT3 11 OUT4 14 IN2 7 IN3 10 IN4 15 EN1 1 EN2 9 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 IN1 2 OUT1 3 OUT2 6 OUT3 11 OUT4 14 IN2 7 IN3 10 IN4 15 EN1 1 EN2 9 VS 8 VSS 16 GND GND U2 L293D -110
  • 15. 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 LOGICO OUT DDRD,R17; CARGO UNO LOGICO Y ACTIVO TODO EL PUERTO D COMO SALIDA LDI 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 SIGUIENTE RJMP INTERRUPTOR;SALTO A INTERRUPTOR SIEMPRE Y CUANDO PB0=1 RJMP T1; SALTO A T1 T1: SER R17;INICIALIZO TODO EL REGISTRO R17 CON UNOS OUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO D RCALL DELAY_200ms;LLAMO A UNA SUBRUTINA DELAY _200ms PARA OBSERVAR ; LO ANTERIOR UN INSTANTE CLR R17;INICIALIZO TODO EL REGISTRO R17 CON CEROS OUT PORTD,R17;SACO EL VALOR DE R17 POR EL PUERTO D RCALL DELAY_200ms;LLAMO A UNA SUBRUTINA DELAY _200ms PARA ; OBSERVAR LO ANTERIOR UN INSTANTE INC R16;INCREMENTO EN UNA UNIDAD EL REGISTRO R16 CPI 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_FANTASTICO1 RJMP T1;MIENTRAS QUE LO ANTERIOR NO SE CUMPLA AQUI SALTAMOS A T1 AUTO_FANTASTICO1: CLC; BORRAMOS CARRY CLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROS LDI R17,1; CARGO R17 CON UNO A1: 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 ; INSTANTE ROL R17; ROTO UN BIT A LA ISQUIERDA BRCS AUTO_FANTASTICO2; ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A ; AUTO_FANTASTICO2 RJMP A1; MIENTRA NO CUMPLA LO ANTERIOR AQUI SALTAMOS A ETIQUETA A1 AUTO_FANTASTICO2: CLC; BORRAMOS CARRY CLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROS LDI R17,128;CARGO R17 CON 0b10000000
  • 16. A2: OUT PORTD,R17; MUESTRO LO QUE CARGUE EN EL REGISTRO R17 POR ; EL PUERTO D AQUI SOLO PRENDE PD7 RCALL DELAY_150ms;LLAMO A UNA SUBRUTINA DELAY _150ms PARA OBSERVAR LO ; ANTERIOR UN INSTANTE ROR R17;ROTO A LA DERECHA EL BIT BRCS AUTO_FANTASTICO1;ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A ; AUTO_FANTASTICO1 RJMP 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 R18 Z0: LDI R19,40; CARGAMOS 40 EN DECIMAL EN EL REGISTRO R19 Z1: LDI R20,40; CARGAMOS 40 EN DECIMAL EN EL REGISTRO R20 Z2: 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 R18 Y0: LDI R19,255; CARGAMOS 255 EN DECIMAL EN EL REGISTRO R19 Y1: 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 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 R9 10k
  • 17. SWITCH ESTA CERRADO PROBLEMA6.- A.-DIAGRAMA DE FLUJO 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 R9 10k
  • 18. 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 LOGICO OUT DDRD,R17; CARGO UNO LOGICO Y ACTIVO TODO EL PUERTO D COMO SALIDA CBI 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
  • 19. ;-------------------------------------------------- ; 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 R18 X0: LDI R19,46; CARGAMOS 46 EN DECIMAL AL REGISTRO R19 X1: LDI R20,49; CARGAMOS 49 EN DECIMAL AL REGISTRO R20 X2: 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/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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R9 10k
  • 20. INTERRUPTOR ESTA CERRADO 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R9 10k 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R9 10k
  • 21. PROBLEMA 7.- A.- REALIZAR EL DIAGRAMA DE FLUJO
  • 22. 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 LOGICO OUT DDRD,R17; CARGO UNO LOGICO Y ACTIVO TODO EL PUERTO D COMO SALIDA CBI DDRC,PC1; PONGO PC1 COMO ENTRADA CBI 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ÓN RJMP PC1_;SALTA A PC1_ SI PC1=0 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCIÓN RJMP PC1_1;SALTA A PC1_1 SI PC0=0 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 SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_;SALTA A PC1_ SI PC1=0 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_1;SALTA A PC1_1 SI PC0=0 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 SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_;SALTA A PC1_ SI PC1=0 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_1;SALTA A PC1_1 SI PC0=0 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
  • 23. RCALL DELAY_300ms;TIEMPO DE RETARDO PARA PODER VISUALIZAR LO ANTERIOR SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_;SALTA A PC1_ SI PC1=0 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_1;SALTA A PC1_1 SI PC0=0 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 SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_;SALTA A PC1_ SI PC1=0 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_1;SALTA A PC1_1 SI PC0=0 RJMP 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 INSTRUCCION RJMP PC1_;SALTA A PC1_ SI PC1=0 SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_1;SALTA A PC1_1 SI PC0=1 SER R17; INICIALIZO TODO EL REGISTRO R17 CON UNOS OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D RCALL DELAY_300ms;LLAMO A UNA SUBRUTINA DELAY _200ms PARA OBSERVAR LO ANTERIOR UN ; INSTANTE SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_;SALTA A PC1_ SI PC1=0 SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_1;SALTA A PC1_1 SI PC0=1 CLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROS OUT PORTD,R17; SACO EL VALOR DE R17 POR EL PUERTO D RCALL DELAY_300ms; LLAMO A UNA SUBRUTINA DELAY _200ms PARA OBSERVAR LO ANTERIOR ; UN INSTANTE SBIS PINC,PC1;PREGUNTA POR PC1=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_;SALTA A PC1_ SI PC1=0 SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_1;SALTA A PC1_1 SI PC0=1 RJMP 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 INSTRUCCION RJMP PC1_; SALTA A PC1_ SI PC1=1 SBIS PINC,PC0; PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_0;SALTA A PC1_0 SI PC0=0 AUTO_FANTASTICO1: CLC; BORRAMOS CARRY CLR R17; INICIALIZO TODO EL REGISTRO R17 CON CEROS LDI R17,1; CARGO R17 CON UNO A1: 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 ; INSTANTE ROL R17; ROTO UN BIT A LA ISQUIERDA SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_ ;SALTA A PC1_ SI PC1=1 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_0;SALTA A PC1_0 SI PC0=0 BRCS AUTO_FANTASTICO2; ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A ; AUTO_FANTASTICO2 RJMP A1;MIENTRA NO CUMPLA LO ANTERIOR AQUI SALTAMOS A ETIQUETA A1 AUTO_FANTASTICO2:
  • 24. SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_;SALTA A PC1_ SI PC1=1 CLC;BORRAMOS CARRY CLR R17;INICIALIZO TODO EL REGISTRO R17 CON CEROS 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 PD7 RCALL DELAY_300ms;LLAMO A UNA SUBRUTINA DELAY _300ms PARA OBSERVAR LO ANTERIOR UN ; INSTANTE ROR R17; ROTO A LA DERECHA EL BIT SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_ ;SALTA A PC1_ SI PC1=1 SBIS PINC,PC0;PREGUNTA POR PC0=1? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_0;SALTA A PC1_0 SI PC0=0 BRCS AUTO_FANTASTICO1; ME PREGUNTO EXISTE CARRY AL FINAL C=1? SI EXISTE SALTA A ; AUTO_FANTASTICO1 RJMP 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 INSTRUCCION RJMP PC1_;SALTA A PC1_ SI PC1=1 SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_0;SALTA A PC1_0 SI PC0=1 CLR R17 ;BORRO EL REGISTRO R17 OUT PORTD,R17;MUESTRO EL REGISTRO R17 POR EL PUERTO D RCALL DELAY_300ms;LLAMO A UNA SUBRUTINA DELAY _300ms PARA OBSERVAR LO ANTERIOR UN ; INSTANTE SBIC PINC,PC1;PREGUNTA POR PC1=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_; SALTA A PC1_ SI PC1=1 SBIC PINC,PC0;PREGUNTA POR PC0=0? SI LO ES SALTA UNA LINEA DE INSTRUCCION RJMP PC1_0;SALTA A PC1_0 SI PC0=1 RJMP 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 R18 X0: LDI R19,46;CARGAMOS 46 EN DECIMAL AL REGISTRO R19 X1: LDI R20,49;CARGAMOS 49 EN DECIMAL AL REGISTRO R20 X2: 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
  • 25. C.-HACER LA SIMULACION PC1=0 Y PC0=0 PC1=0 Y PC0=1 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R9 10k R10 10k PC1 PC0 0 0 PC1 PC0 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R9 10k R10 10k PC1 PC0 0 1 PC1 PC0
  • 26. PC1=1 Y PC0=0 PC1=1 Y PC0=1 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R9 10k R10 10k PC1 PC0 1 0 PC1 PC0 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 330 R2 330 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 D1 LED-YELLOW D2 LED-YELLOW D3 LED-YELLOW D4 LED-YELLOW D5 LED-YELLOW D6 LED-YELLOW D7 LED-YELLOW D8 LED-YELLOW R9 10k R10 10k PC1 PC0 1 1 PC1 PC0
  • 27. PROBLEMA8.- A.-REALIZAR EL DIAGRAMA DE FLUJO DEL PROGRAMA
  • 28. 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 ; PROGRAMACION RJMP SUPERVISION_S ; SALTO A SUPERVISION_S SI PD0=1 LDI R16,1; CARGO UNO EN DECIMAL AL REGISTRO R16 RCALL 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 ; PROGRAMACION RJMP APAGADO; SALTO A APAGADO SI LO ANTERIOR ES PB1=0 PREGUNTA_PB1: SBIC PINB,PB1; PREGUNTO POR PB1=0? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACION RJMP INTERMITENTE; SI LO ANTERIOR SE COMPRUEBA QUE PB1=1 SALTAMOS A INTERMITENTE RJMP 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 LOGICO RCALL DELAY_500ms; RETARDO PARA OBSERVAR LO ANTERIOR SBIS PINB,PB0; PREGUNTO POR PB0=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACION RJMP APAGADO ; SI LO ANTERIOR ES PB0=0 SALTAMOS A APAGADO SBIS PINB,PB2;PREGUNTO POR PB2=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACION RJMP PREGUNTA_PB1; SI LO ANTERIOR ES PB2=0 SALTAMOS A PREGUNTA_PB1 RJMP MARCHA; SI PB2=1 SALTAMOS A MARCHA
  • 29. APAGADO: CBI PORTC,PC0;MUESTRO CERO LOGICO POR EL PUERTO C RCALL DELAY_500ms;UN RETARDO PARA PODER PERCATAR LO ANTERIOR SBIS PINB,PB0;PREGUNTO POR PB0=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACION RJMP APAGADO ; SI LO ANTERIOR PB0=0 SALTAMOS A APGADO RJMP 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 ; PROGRAMACION RJMP APAGADO; SALTA A APAGADO SI PB0=0 SBIS PINB,PB1;PREGUNTO POR PB1=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACION RJMP MARCHA; SALTA A MARCHA SI PB1=0 SBIC PINB,PB2;PREGUNTO POR PB2=0? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACION RCALL APA;LLAMO A LA SUBRRUTINA SI PB2=1 SBIS PINB,PB2;PREGUNTO POR PB2=1? SI ES CIERTO NO LEE LA SIGUIENTE LINEA DE LA ; PROGRAMACION RCALL PRE; LLAMO A LA SUBRRUTINA SI PB2=0 RJMP INTERMITENTE;SALTO A ETIQUETA INTERMITENTE PRE: SBI PORTC,PC0; MUESTRO UNO LOGICO POR PC0 RET; RETORNA A LA SIGUIENTE LINEA DE DONDE FUE LLAMADO APA: CBI PORTC,PC0;MUESTRO CERO LOGICO POR PC0 RCALL DELAY_500ms;LLAMO UN RETARDO PARA APRECIAR LO ANTERIOR RET;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,73 Y0: LDI R19,51 Y1: LDI R20,46 Y2: DEC R20 BRNE Y2 DEC R19 BRNE Y1 DEC R18 BRNE Y0 RET
  • 30. CUANDOEL SENSORESTA ABIERTONO PASA NADA ASI LOS PULSADORES ESTEN CERRADOS CUANDOCERRAMOS EL CENSORY CERRAMOS BP 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 IN1 2 OUT1 3 OUT2 6 OUT3 11 OUT4 14 IN2 7 IN3 10 IN4 15 EN1 1 EN2 9 VS 8 VSS 16 GND GND U2 L293D 0.00 R1 10k R2 10k R3 10k R4 10k BP BM BI S (PARADA) (MARCHA) (INTERMITENTE) (SENSOR)
  • 31. CERRAMOS “S” Y CERRAMOS “BM” CERRAMOS “S” Y CERRAMOS “BI” 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 IN1 2 OUT1 3 OUT2 6 OUT3 11 OUT4 14 IN2 7 IN3 10 IN4 15 EN1 1 EN2 9 VS 8 VSS 16 GND GND U2 L293D +135 R1 10k R2 10k R3 10k R4 10k BP BM BI S (PARADA) (MARCHA) (INTERMITENTE) (SENSOR)
  • 32. PROBLEMA 9.- A.-REALIZAR EL DIAGRAMA DE FLUJO B.-ESCRIBA LAS INSTRUCCIONES ,COMENTADAS .INCLUDE"M8DEF.INC" .CSEG .ORG 0X000 RJMP INICIO ;------------------------------ ;DECLARO LAS ENTRADAS | ;------------------------------ INICIO: LDI R16,255; CARGO 0b11111111 EN EL REGISTRO R16 OUT DDRD,R16;SACO EL VALOR DE R16 POR EL PUERTO D DANDO COMO SALIDAD A TODO EL PUERTO D CBI 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=1 SBIS 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=0 RJMP INTERRUPTOR ; SALTO A INTERRUPCION
  • 33. CONTEO: LDI R17,0B00111111;CARGO EN R17 0B00111111 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY; LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B00000110;CARGO EN R17 0B00000110 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY; LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B01011011;CARGO EN R17 0B01011011 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B01001111;CARGO EN R17 0B01001111 OUT PORTD,R;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR17 RCALL DELAY LDI R17,0B01100110;CARGO EN R17 0B01100110 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B01101101;CARGO EN R17 0B01101101 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B01111101;CARGO EN R17 0B01111101 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B00000111;CARGO EN R17 0B00000111 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B01111111;CARGO EN R17 0B01111111 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B01100111;CARGO EN R17 0B01100111 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR RJMP INTERRUPTOR;SALTO A INTERRUPTOR HOLA: LDI R17,0B01110110;CARGO EN R17 0B01110110 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B00111111;CARGO EN R17 0B00111111 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B00111000;CARGO EN R17 0B00111000 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR LDI R17,0B01110111;CARGO EN R17 0B01110111 OUT PORTD,R17;MUESTRO LO ANTERIOR O SEA R17 SACO POR EL PUERTO D
  • 34. RCALL DELAY;LLAMO A SUBRRUTINA PARA VISUALIZAR LO ANTERIOR 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/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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 10k
  • 35. CIERRO EL PULSADOR EMPIZA A MOSTRAR LAS LETRAS H-O-L-A PROBLEMA 10.- 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 R1 10k
  • 36. 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
  • 37. C.-HACER SIMULACION PB1=0 Y PB0=0 PB0=1 Y PB1=0 ESTA EN MODO ASCENDENTE PB0=0 Y PB1=0 EN MODO DESCEMNDENTE 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 A 7 QA 13 B 1 QB 12 C 2 QC 11 D 6 QD 10 BI/RBO 4 QE 9 RBI 5 QF 15 LT 3 QG 14 U2 7447 R9 330 R10 330 R11 330 R12 330 R13 330 R14 330 R15 330 R1 10k R2 10k 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 A 7 QA 13 B 1 QB 12 C 2 QC 11 D 6 QD 10 BI/RBO 4 QE 9 RBI 5 QF 15 LT 3 QG 14 U2 7447 R9 330 R10 330 R11 330 R12 330 R13 330 R14 330 R15 330 R1 10k R2 10k 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 10 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 AREF 21 AVCC 20 U1 ATMEGA8 A 7 QA 13 B 1 QB 12 C 2 QC 11 D 6 QD 10 BI/RBO 4 QE 9 RBI 5 QF 15 LT 3 QG 14 U2 7447 R9 330 R10 330 R11 330 R12 330 R13 330 R14 330 R15 330 R1 10k R2 10k