preguntas 3 y 4
TRANSCRIPT
PREGUNTAS 3 Y 4
SE USAN LOS DIPSWITCH PARA HACER UNA SELECCIÓN EN LA QUE DESEE
LOS DOS EN 0L ESTA HASTA 2V
EL PIN5 EN 0L ESTA HASTA 5V
EL PIN6 EN 0L ESTA HASTA 3.4V
/* *
prepasensoresinstru.asm * * Created: 20/11/2011 8:37:17 PM * Author: Owner */
.device atmega164p.nolist.include "m164pdef.inc".list.def aux=r16.def unidad=r17.def decena=r18
clr auxout ddrd,auxser auxout ddrb,auxout ddrc,auxout portd,aux
ldi aux,low(ramend)out spl,auxldi aux,high(ramend)out sph,aux
ldi aux,0b00100000sts admux,auxldi aux,0b10000111sts adcsra,aux
conversion: ldi aux,0b11000111sts adcsra,aux
espera: lds aux,adcsra
andi aux,0b00010000cpi aux,0b00010000brne espera
clr auxlds aux,adcllds aux,adchcall acondicionamientocpi aux,100brsh desbordecall binbcdcall displaycall retardojmp conversion
desborde: ldi unidad,9ldi decena,9call displayjmp conversion
binbcd: clr unidadclr decena
comp1: cpi aux,0x0Abrlo comp2inc decenasubi aux,0x0Ajmp comp1
comp2: mov unidad,auxret
display: ldi zl,low(tabla<<1)ldi zh,high(tabla<<1)clr auxadd zl,unidadlpm aux,zout portc,auxldi zl,low(tabla<<1)ldi zh,high(tabla<<1)clr auxadd zl,decenalpm aux,zout portb,auxret
acondicionamiento:ldi r17,100 ;para que a los 5V sea 100sbis pind,5ldi r17,147 ;para que a los 3.4V sea 100sbis pind,6ldi r17,250 ;para que a los 2V sea 100mul aux,r17movw aux,r0lsr r17ror auxlsr r17ror auxlsr r17ror auxlsr r17ror auxlsr r17ror auxlsr r17ror auxlsr r17ror auxlsr r17ror auxret
retardo:ldi unidad,255ldi decena,255loop:dec unidadbrne loopdec decenabrne loopret
tabla:.db 0b01000000, 0b01111001; 0,1.db 0b00100100, 0b00110000; 2,3.db 0b00011001, 0b00010010; 4,5.db 0b00000010, 0b01111000; 6,7.db 0b00000000, 0b00010000; 8,9
.exit