ejercicios 2015 micro

Upload: rafael-ramoscordova

Post on 06-Mar-2016

218 views

Category:

Documents


0 download

DESCRIPTION

asd

TRANSCRIPT

MICROCONTROLADORES

TEMA: REALIZACIN DE EJERCICIOS

1. PROGRAMA : CONTROL DE LEd Microcontrolador ATMEGA 8 Objetivo: Encender y apagar cada segundo un led conectado al Pin 14 que corresponde a el puerto B1 Esquema elctrico:_____________________________________Programa en Asembler;////////////////// Practica 1 /////////////////////;--------------- LED Intermitente -------------------; Demuestra como Prender y Apagar un Led Indefinidamente; Conecte un LED al Pin 15 (Pb0); micro: ATmega8 ;----------------------------------------------------;///////////////////////////////////////////////////.include "m8def.inc" ;Libreria en assembler para el micro ATmega8.org $0000 ldi r16,low(ramend) out spl,r16 ;Inicializa el Stack Pointer ldi r16,high(ramend) out sph,r16 ser r16 ;Coloca FF en el registro R16 out ddrb,r16 ;Configura el Puerto B como SALIDAS ;---------------------------------------------------LOOP: sbi portb,1 ; Coloca un 1 logico en el Pin 14 (Pb0) rcall DELAY ; Llama a la rutina de Retardo cbi portb,1 ; Coloca un 0 logico en el Pin 14 (Pb0) rcall DELAY ; Llama a la rutina de Retardo rjmp LOOP ; Salta a la etiqueta LOOP indefinidamente;---------------------------------------------------DELAY: ;Rutina de Retardo Llamada DELAY= 1 segundo ldi R17, $1F ;Cristal= 6 MHzZZ: ldi R18, $FDYY: ldi R19, $FEXX: dec R19 brne XX dec R18 brne YY dec R17 brne ZZ; --------------------------------------------------; delaying 12 cycles: ldi R17, $04WW: dec R17 brne WW retNota: Se pide a) Realizar el circuito dejando listo para hacer pruebasb) Realizar el diagrama de fluje del programac) Comente cada instruccin del programa________________________________________

Tarea Acadmica: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 ahcer pruebas Realizar el diagrama de flujo del programa Hacer el programa en asembler y comente cada instruccin2. 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 ahcer pruebas Realizar el diagrama de flujo del programa Hacer el programa en asembler y comente cada instruccin3. 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 ahcer pruebas Realizar el diagrama de flujo del programa Hacer el programa en asembler y comente cada instruccin

2. PROGRAMA: CONTROL DE LEDS Microcontrolador Atmega 8Objetivo:Controlar el encendido y apagado de unos Leds conectados al puerto B, utilizando dos pulsadores Realizar el circuito dejando listo para ahcer pruebas Realizar el diagrama de flujo del programa Hacer el programa en asembler y comente cada instruccin

_____________________________________;////////////////// Practica 2 /////////////////////;------------------ Lectura de un Pulsador ----------------; Demuestra como Prender y Apagar unos Led Indefinidamente; Con dos Pulsadores utilizando un ATmega8 ;----------------------------------------------------------;///////////////////////////////////////////////////.include "m8def.inc" ; Libreria en assembler para el micro ATmega8.org $0000 ldi r16,low(ramend) out spl,r16 ; Inicializa el Stack Pointer ldi r16,high(ramend) out sph,r16 ldi r16,0b11111001 ; Carga los bit 11111001 en R16 out ddrb,r16 ;Configura el Puerto B como SALIDAS y Pb1 ;Pb2 como entrada ;----------------------------------------------------------Leer: sbic pinb,1 ;Si el Pulsador Conectado en Pb1= 1?,Salta a la etiqueta Rutina1. rjmp Rutina1 sbic pinb,2 ;Si el Pulsador Conectado en Pb1= 1?,Salta a la etiqueta Apaga. rjmp Rutina2 rjmp LeerRutina1: sbi portb,3 ;Coloca un 1 en el Pin 3 del Puerto B. (Pb3= 1), "Led Encendido" Rcall Retardo cbi portb,3 sbi portb,4 Rcall Retardo cbi portb,4 sbi portb,5 Rcall Retardo cbi portb,5 Rcall Retardo rjmp Leer ; salta a la etiqueta LeerRutina1: ldi r16,0b00111000 out portb,r16 ;Coloca un 1 en el Pin 3,4,5 del Puerto B. "Leds Encendidos" Rcall Retardo ldi r16,0b00000000 out portb,r16 ;Coloca un 0 en el Pin 3,4,5 del Puerto B. "Leds Apagados" Rcall Retardo rjmp Leer ; salta a la etiqueta Leer

3. Programa Ruleta

Realizar el circuito dejando listo para ahcer pruebas Realizar el diagrama de flujo del programa Hacer el programa en asembler y comente cada instruccin

;////////////////// Proyecto 3 /////////////////////////////;--------------- Reuleta -----------------------------------; Se coloca 8 leds en el puerto D; Conecte un pulsador al Pin 14 (Pb0); micro: ATmega8 ;-----------------------------------------------------------;///////////////////////////////////////////////////////////.include "m8def.inc" ; Libreria en assembler para el micro ATmega8.org $0000INIT_SP: ldi r16,low(ramend) out spl,r16 ;Inicializa el Stack Pointer ldi r16,high(ramend) out sph,r16 INIT_PORT: ser r16 out ddrd,r16 ;Configura el Puerto D como SALIDAS ldi r16,0b11111110 out ddrb,r16 ;Configura el Puerto B como SALIDAS y Pb0 como entrada ldi r16,0b00000001READ: sbic pinb,0 rjmp STOP out portd,r16 rjmp READLOOP: sbis pinb,0 rjmp READROTATE: out portd,r16 rcall delay lsl r16 brcc LOOP ldi r16,$01 rjmp LOOPSTOP: ldi r22,$04 ldi r23,$02 rcall STOP1 ldi r22,$03 ldi r23,$04 rcall STOP1 ldi r22,$02 ldi r23,$08 rcall STOP1 rjmp READSTOP1: mov r21,r22RET0: mov r20,r23 out portd,r16RET1: rcall delay dec r20 brne RET1 lsl r16 brcc RET2 ldi r16,$01RET2: dec r21 brne RET0 retDELAY: ldi R17, $5FWGLOOP0: ldi R18, $17WGLOOP1: ldi R19, $79WGLOOP2: dec R19 brne WGLOOP2 dec R18 brne WGLOOP1 dec R17 brne WGLOOP0; ----------------------------- ; delaying 3 cycles: ldi R17, $01WGLOOP3: dec R17 brne WGLOOP3; ----------------------------- ; delaying 2 cycles: nop nop; ============================= Ret1