Sei sulla pagina 1di 8

UNIVERSIDAD

DEL CALLAO

NACIONAL

FACULTAD DE INGENIERIA ELCTRICA Y


ELECTRNICA
ESCUELA PROFECIONAL DE INGENIERIA
ELECTRNICA

ASIGNATURA:

MICROCONTROLADORES
01L

SEMESTRE ACADEMICO: 2015-A

TEMA:

PROFESOR:
Alumno:

TAREA ACADEMICA
ASTOCONDOR VILLAR JACOB

o De
la
Cruz
1213220376

Castro

Domingo

Cesar

TAREA ACADEMICA:
1. Disee un Circuito que controle el encendido de 8 Leds, estos deben
encender uno a uno de izquierda a derecha.
- Realizar el circuito dejando listo para hacer pruebas

U1
14
15
16
17
18
19
9
10

21
20

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

PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PC6/RESET
PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/T0/XCK
PD5/T1
PD6/AIN0
PD7/AIN1

AREF
AVCC

R3

23
24
25
26
27
28
1

1k

2
3
4
5
6
11
12
13

ATMEGA8

D8

D7

D6

D5

D4

D3

D2

D1

LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW

- Realizar el diagrama de flujo del programa


PROGRAMA1

CONFIGURACION DE
PUERTOS

LEER INTERRUPTOR

no

Led apagados

S1=1

si

Encendidos de
leds 1 a 1

no

Finalizo?

si

- Hacer el programa en asembler y comente cada instruccin


.INCLUDE"m8def.inc"
.ORG 0X0000
RJMP INICIO
INICIO: ;; CONFIGURACION DE LA PILA
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
PUERTOS:
;; CONFIGURANCO PUERTOS
LDI R17,0B11111111 ;; PONGO R17 EN UNOS
OUT DDRD,R17
;; PUERTO D SALIDA
LDI R17,0B00000000 ;; PONGO R17 EN CEROS
OUT DDRC,R17
;; PUERTO C ENTRADA
PULSO1:
A:

SBIC PINC,1
RJMP PULSO1
SBIS PINC,1
RJMP A
;; HACIENDO SECUENCIA

;;
;;
;;
;;

PREGUNTO SI ES 0 EL PINC1
SALTO A "PULSO1"
PREGUNTO SI ES 1 EL PINC1
SALTO A "A"

INI:
LDI R30,0B00000001 ;; CARGO A R30 EL NUMERO 00000001
MOV R31,R30
;; COPIO R30 A R31
IMPRESION:

OUT PORTD,R30
;; BOTANDO R30 POR EL PUERTO D
RCALL DELAY1S
;; DELAY 1 S
CPI R30,0B11111111 ;; COMPARO R30 CON 11111111
BREQ PULSO1
;; SI ES IGUAL SALTO A "PULSO1"
LSL R30
;; DEZPLASO 1 BIT A LA IZQUIERDA
ADD R30,R31
;; SUMO R30 CON R31

RJMP IMPRESION
FIN:
RET
DELAY1S:
X0:
X1:
X2:

;; RETARDO DE 1S
LDI R20,$24
LDI R21,$BC
LDI R22,$C4
DEC R22
BRNE X2
DEC R21
BRNE X1
DEC R20

;; SALTO A "IMPRESION"

BRNE X0
RET

2. Disee un Circuito que controle el encendido de 8 Leds, Estos deben


encender de dos en dos hasta que todos estn encendidos.
> Realizar el circuito dejando listo para hacer pruebas

U1
14
15
16
17
18
19
9
10

21
20

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

PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PC6/RESET
PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/T0/XCK
PD5/T1
PD6/AIN0
PD7/AIN1

AREF
AVCC

R3

23
24
25
26
27
28
1

1k

2
3
4
5
6
11
12
13

ATMEGA8

D8

D7

D6

D5

D4

D3

D2

D1

LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW

> Realizar el diagrama de flujo del programa

PROGRAMA1

CONFIGURACION DE
PUERTOS

LEER INTERRUPTOR

no

Led apagados

S1=1

si

Encendidos de
leds 2 a 2

no

Finalizo?

si

> Hacer el programa en asembler y comente cada instruccin


.INCLUDE"m8def.inc"
.ORG 0X0000
RJMP INICIO
INICIO:

;; CONFIGURACION DE LA PILA
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16

PUERTOS:
LDI R17,0B11111111 ;; PONGO R17 EN UNOS
OUT DDRD,R17
;; PUERTO D SALIDA
LDI R17,0B00000000 ;; PONGO R17 EN CEROS
OUT DDRC,R17
;; PUERTO C ENTRADA
PULSO1:
A:

INI:
IMPRESION:

SBIC PINC,1
RJMP PULSO1
SBIS PINC,1
RJMP A
;; HACIENDO SECUENCIA

;;
;;
;;
;;

PREGUNTO SI ES 0 EL PINC1
SALTO A "PULSO1"
PREGUNTO SI ES 1 EL PINC1
SALTO A "A"

LDI R30,0B00000011 ;; CARGO A R30 EL NUMERO 00000011


MOV R31,R30
;; COPIO R30 A R31
OUT PORTD,R30
;; BOTANDO R30 POR EL PUERTO D
RCALL DELAY1S
;; DELAY 1 S
CPI R30,0B11111111 ;; COMPARO R30 CON 11111111
BREQ PULSO1
;; SI ES IGUAL SALTO A "PULSO1"
LSL R30
;; DEZPLASO 1 BIT A LA IZQUIERDA
LSL R30
;; DEZPLASO 1 BIT A LA IZQUIERDA
ADD R30,R31
;; SUMO R30 CON R31

RJMP IMPRESION

;; SALTO A "IMPRESION"

FIN:
RET

X0:
X1:
X2:

DELAY1S:
LDI R20,$24
LDI R21,$BC
LDI R22,$C4
DEC R22
BRNE X2
DEC R21

;; RETARDO DE 1S

BRNE X1
DEC R20
BRNE X0
RET

3. Disee un Circuito que controle el encendido de 12 Leds, el encendido


ser de manera aleatoria a conveniencia del programador.
> Realizar el circuito dejando listo para hacer pruebas

U1
14
15
16
17
18
19
9
10

21
20

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

PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PC6/RESET
PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/T0/XCK
PD5/T1
PD6/AIN0
PD7/AIN1

AREF
AVCC

R3

23
24
25
26
27
28
1

1k

2
3
4
5
6
11
12
13

ATMEGA8

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOWLED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW

> Realizar el diagrama de flujo del programa

PROGRAMA1
CONFIGURACION DE
PUERTOS

LEER INTERRUPTOR

no

Led apagados

S1=1

si

ROTACION POR
DESOPLAZAMIENTO DE

no

Finalizo?

si

> Hacer el programa en asembler y comente cada instruccin


.INCLUDE"m8def.inc"
RJMP INICIO
INICIO:
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
PUERTOS:
LDI R17,0B11111111 ;; CARGO A R17 UNOS
OUT DDRD,R17
;; PUERTO D SALIDA
LDI R17,0B11111111 ;; CARGO A R17 UNOS
OUT DDRB,R17
;; PUERTOB SALIDA
LDI R17,0B00000000 ;; CARGO R17 CEROS
OUT DDRC,R17
;; PUERTOC ENTRADA
PULSO1:
A:

SBIC PINC,1
RJMP PULSO1
SBIS PINC,1
RJMP A

;;
;;
;;
;;

PREGUNTO SI ES 0 EL PINC1
SALTO A "PULSO1"
PREGUNTO SI ES 1 EL PINC1
SALTO A "A"

ROTACIONA:

BUCLE:

LDI R31,0B00000000 ;; CARGO R31 00000000


OUT PORTB,R31
;;BOTANDO R31 POR EL PUERTOB
LDI R30,0B00000001 ;; CARGO R31 00000001
OUT PORTD,R30
;;BOTANDO R30 POR EL PUERTO D
RCALL DELAY1S
;; SALTO A "DELAY1S"
LSL R30
;;DEZPLASO 1 BIT A LA IZQUIERDA
OUT PORTD,R30
;;BOTANDO R30 POR EL PUERTO D
RCALL DELAY1S
;; SALTO A "DELAY1S"
CPI R30,0B10000000 ;;COMPARO R30 CON 10000000
BREQ ROTACIONB
;; SI ES IGUAL SALTA "ROTACIONB"
BRNE BUCLE
;; SINO SALTA "BUCLE"

ROTACIONB:

BUCLE2:

LDI R30,0B00000000 ;; CARGO R30 00000000


OUT PORTD,R30
;;BOTANDO R30 POR EL PUERTOD
LDI R31,0B00000001 ;; CARGO R31 00000001
OUT PORTB,R31
;;BOTANDO R31 POR EL PUERTOB
RCALL DELAY1S
;; SALTO A "DELAY1S"
LSL R31
OUT PORTB,R31

;;DEZPLASO 1 BIT A LA IZQUIERDA


;;BOTANDO R31 POR EL PUERTO D

RCALL DELAY1S
CPI R31,0B1000
BREQ ROTACIONA
BRNE BUCLE2

DELAY1S:
X0:
X1:
X2:

LDI R20,$24
LDI R21,$BC
LDI R22,$C4
DEC R22
BRNE X2
DEC R21
BRNE X1
DEC R20
BRNE X0
RET

;; SALTO A "DELAY1S"
;;COMPARO R30 CON 00001000
;; SI ES IGUAL SALTA "ROTACIONA"
;; SINO SALTA "BUCLE2"

Potrebbero piacerti anche