Está en la página 1de 7

ESCUELA POLITECNICA NACIO NAL SISTEMAS MICROPROCESADOS NOMBRES: Wil mer Villegas FECHA: 22 05 2012 1.

1. Disear un vez y que me izquierda con conversiones y programa utilizando el conversor A/ D que lea un sensor a la muest re con leds el valor del ADCH utilizando justif icacin 8 bits de resolucin, en el PORTC muestro el menor de las en el PORTD el valor mxi mo de las tres.

PROGRAMA EN AVR: .include" m164pdef.inc" ; Declaracin de mis variables .def tempo=r17 .def aux=r18 .def aux1=r19 .def valor1=r20 .def valor2=r21 .def valor3=r22 .org 0x00 ; declaro mis prticos como entrada y salidas ldi tempo,0b00000000 out ddra,tempo ser tempo out ddrc,tempo out ddrd,tempo ; inicializo el SP ldi tempo,hi gh(ramend) out sph,tempo ldi tempo,low(ramend) out spl,tempo clr tempo out portc,tempo out portd,tempo lazo: ; configuro mis bits especficos para el conversor pri mero codifico el voltaj e de referencia, la j ustificacin y el canal que voy a usar ldi tempo,0b0110 0000 sts admux,tempo

;habilito ADC, inicio de la conversin, modo manual, y el factor de di vision ldi tempo,0b11000011 sts adcsra,tempo ; salto a la subrutina para ver si la conversin a finali zado rcall espera ; encero el canal y paro el conversor clr tempo sts admux,tempo sts adcsra,tempo sts adch,tempo ;inicializo los registros pero para usar el siguiente canal ldi tempo,0b01100001 sts admux,tempo ldi tempo,0b11000011 sts adcsra,tempo rcall espera1 clr sts sts sts tempo admux,tempo adcsra,tempo adch,tempo

brlo comp5 out portc,valor1 out portd,valor3 rj mp fin comp5: out portc,valor1 out portd,valor2 rj mp fin comp4: out portc,valor3 out portd,valor2 rj mp fin comp2: cp valor2,valor3 brlo comp6 cp valor1,valor3 brlo comp7 out portc,valor2 out portd,valor3 rj mp fin comp6: out portc,valor3 out portd,valor1 rj mp fin comp7: cp valor2,valor3 brsh comp8 rj mp fin comp8: out portc,valor2 out portd,valor1 ; realizo un lazo infini to para cuando ingrese un nuevo valor este sea comparado continuamente fin: rj mp lazo espera: ; chequeo si la conver sin a finalizado caso contrario espero lds aux,adcsra sbrc aux,6

ldi tempo,0b01100010 sts admux,tempo ldi tempo,0b11000011 sts adcsra,tempo rcall espera2 ; realizo la comparaci n de los tres datos para ver cul es el mayor y menor de los 3 cp valor1,valor2 brsh comp1 brlo comp2 rj mp fin comp1: cp valor1,valor3 brlo comp4 cp valor2,valor3

rj mp espera lds valor1,adch ret espera1: lds aux1,adcsra sbrc aux1,6 rj mp espera1

lds valor2,adch ret espera2: lds aux1,adcsra sbrc aux1,6 rj mp espera2 lds valor3,adch ret

SIMULACION EN PROTEUS:

DIAGRAMA DE FLUJO:

2. Al programa anterior implementar lo siguiente: Calcular el promedio de las dos medidas, a ese le envi a la computadora y como conf irmacin me enva otra vez al mi cro. PROGRAMA EN AVR: .include" m164pdef.inc" .def .def .def .def .def .def .def .def tempo=r17 aux=r18 aux1=r19 valor1=r20 valor2=r21 valor3=r22 guardar=r23 promedio=r24 1MHz y calculamos para 9600 baudios ldi tempo,hi gh( 6) ;cristal 1MHz, 9600baudios sts ubrr0h,tempo ldi tempo,low(6) sts ubrr0l,tempo ldi sts ldi sts ldi sts sei clr tempo out portc,tempo out portb,tempo clr promedio tempo,0b00000000 ucsr0a,tempo tempo,0b10011000 ucsr0b,tempo tempo,0b00000110 ucsr0c,tempo

.org 0x00 rj mp inicio ;modo de recepcin serial para ver si mi dato ya ha sido recibido .org 0x28 rj mp recepcion inicio: ldi tempo,0b00000000 out ddra,tempo ldi tempo,0b10000010 out ddrd,tempo ser tempo out ddrc,tempo out ddrb,tempo ldi tempo,hi gh(ramend) out sph,tempo ldi tempo,low(ramend) out spl,tempo ;configure lo que corresponde a la comunicacion serial con un cristal lazo:

ldi tempo,0b01100000 sts admux,tempo ldi tempo,0b11000011 sts adcsra,tempo rcall espera clr sts sts sts tempo admux,tempo adcsra,tempo adch,tempo

ldi tempo,0b01100001

sts admux,tempo ldi tempo,0b11000011 sts adcsra,tempo rcall espera1 clr sts sts sts tempo admux,tempo adcsra,tempo adch,tempo

brlo comp6 cp valor1,valor3 brlo comp7 out portc,valor2 out portb,valor3

ldi tempo,0b01100010 sts admux,tempo ldi tempo,0b11000011 sts adcsra,tempo rcall espera2 cp valor1,valor2 brsh comp1 brlo comp2 rj mp fin comp1: cp valor1,valor3 brlo comp4 cp valor2,valor3 brlo comp5 out portc,valor1 out portb,valor3 rj mp fin comp5: out portc,valor1 out portb,valor2 rj mp fin comp4: out portc,valor3 out portb,valor2 rj mp fin comp2: cp valor2,valor3

rj mp fin comp6: out portc,valor3 out portb,valor1 rj mp fin comp7: cp valor2,valor3 brsh comp8 rj mp fin comp8: out portc,valor2 out portb,valor1 fin: add valor1,valor2 lsr valor1 add valor1,valor3 lsr valor1 mov promedio,valor1 verifico: lds guardar,ucsr0a sbrc guardar,5 rj mp verifico sts udr0,promedio rj mp lazo espera: lds aux,adcsra sbrc aux,6 rj mp espera

lds valor1,adch ret espera1: lds aux1,adcsra sbrc aux1,6 rj mp espera1 lds valor2,adch ret espera2: lds aux1,adcsra sbrc aux1,6 rj mp espera2 lds valor3,adch ret SIMULACION EN PROTEUS:

recepcion: push tempo in tempo,sreg push tempo

lds promedio,udr0 sbi portd,7 sts udr0,promedio control: lds guardar,ucsr0a sbrc guardar,5 rj mp control pop tempo out sreg,tempo pop tempo reti