UNIVERSIDAD NACIONAL DE SAN AGUSTN
FACULTAD DE INGENIERA DE PRODUCCIN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA
TRABAJ O CALI FI CADO 1
ADC DEL MI CROCONTROLADOR
CURSO:
MICROCONTROLADORES Y MICROPROGRAMACION
DOCENTE:
ING. WILDOR FERREL SERRUTO
ELABORADO POR:
SONCCO ARIAS MARIO WASHINGTON
CANCHI PAYEHUANCA JUAN LUIS
LOPEZ CARITA MARCO ANTONIO
MAYTA CASTRO MIRIAN CARMEN
VARGAS ROQUE JOSE LUIS
AREQUIPA - 2011
3. Descripcin del funcionamiento del sistema:
1
El microcontrolador recibe seales analgicas de voltaje de los 8 sensores
,mediante un pulsador seleccionamos el sensor deseado y con el otro pulsador
disparamos la conversin del ADC del microcontrolador.
El funcionamiento es el siguiente:
Confguracion del ADC:
En nuestro programa utiliamos la interrupcin !"#$ para poder con%gurar
nuestro ADC de la manera siguiente:
&ref ' (.)*&
Ajuste a la i+uierda: AD,A- ' $
.actor de /re escalamiento ' *0
Entradas unipolares
En nuestro programa 1emos empleado solo el registro ADC2 para guardar la
informacin de la conversin del ADC, por lo +ue solo usamos 8 bits de
resolucin.
!"#E--3/C!4"5!"#$:
,D! -$6,78$$$77777 9voltaje de referencia (.)*v y todo a la
i+uierda
DEC -$8 9
ADD -$6,-$8 9:umamos el valor del numero del sensor
seleccionado
43# AD;3<,-$6 9-$6 movemos al registro AD;3<
!"C -$8 9
,D! -$6,78$$77$$$7 92abilitamos el ADC y la interrupcin del ADC
43# ADC:-A,-$6 9con factor de pre escalamiento de *0
:8! ADC:-A,AD:C 9
:E!
ADC5C4"&E-:!4":
!" ADC5A,#4,ADC2
:8! ADC:-A,AD:C
-E#!
CONFIG!ACION D" #A$ IN%"!!&CION"$ IN%' ( IN%1
Con la !"#7 seleccionamos el sensor +ue +ueremos disparar generando registro
r$8 el valor binario del numero de sensor +ue corresponde y displayamos tal
numero de sensor en un display de = segmentos de c>todo com?n.
Con !"#$ iniciamos la conversin del sensor +ue 1emos seleccionado, para esto
se toma el valor almacenado en r$8 y la usamos para +ue forme parte del
registro AD;3< +ue nos permite seleccionar el canal ADC de 7 1asta =.
.inalmente el valor de la conversin se displayara en un display = segmentos
de 0 digitos ,
para esto 1acemos uso de un decodi%cador bcd a =segmentos y uso de
retardos en el programa ensamblador para mostrar cada uno de los digitos.
Es importante mencionar +ue las interrupciones de !"#7 e !"#$ ser>n
detectadas con @anco de bajada.
!"#E--3/C!4"5!"#7:
!"C -$8 9!ncrementamos -$8
C/! -$8,6 9Comparamos -$8 con 6 si 6A-$8 entonces C'$
8-C: :A,#4$ 9:alta si C'$
,D! -$8,$ 9/onemos $ en -$8
:A,#4$:
;4& -$*,-$= 9/onemos $ en -$*
A"D! -$*,787777$$$$
,D! B2,2!C2D#A8,A5=:EC;E"#4: E
,D! B,,,4FD#A8,A5=:EC;E"#4: E
ADD B,,-$* 9:umamos -$* con el puntero B
E4- -$*,-$* 9/onemos 7 en -$*
ADC B2,-$* 9:umamos -$* con el puntero B
C,C
-4, B, 9rotacion a la i+uierda
-4, B2 9rotacion a la i+uiera
,/; -$*,B 9cargo el contenido del puntero B a -$*
43# /4-#8,-$* 9mostrar en el puerto8 -$*
!"C -$= 9!"cremento -$=
C/! -$*,7b7$$$$$$$ 9comparo con el numnero 8 en = segmentos
8-EG /-4C 9si es mayor salto a /-4C
-E#!
). listado de los programas en formato est*ndar+ con comentarios
.!"C,3DE H;$*DE..!"CH 9A#;ECA$*
.DE. /-!;E-5D!C ' -7
.DE. :EC3"D45D!C ' -$
.DE. #E-CE-5D!C ' -(
.DE. 3"!DADE: ' -(7
.DE. DECE"A: ' -($
.DE. CE"#E"A: ' -((
.DE. ADC58AI4 ' -(J
.DE. ADC5A,#4 ' -(0
.D:EC
.E:EC
.C:EC
I;/ -E:E#
.4-C K7(
I;/ !"#E--3/C!4"5!"#7
.4-C K70
I;/ !"#E--3/C!4"5!"#$
.4-C K$C
I;/ ADC5C4"&E-:!4"
-E:E#:
,D! -$*,2!C2D-A;E"DE 9Con%guramos
43# :/2,-$* 9la pila
,D! -$*,,4FD-A;E"DE
43# :/,,-$*
,D! -$*,78$$$$$$$$ 9/onemos todo el puerto 8 como salidas
43# DD-8,-$*9
,D! -$*,78$$$$$$$$ 9/onemos todo el puerto C como salidas
43# DD-C,-$*9
,D! -$*,7877777777 9/onemos todo el puerto D como entradas
43# DD-D,-$*9
,D! -$*,7877777777 9/onemos todo el puerto C con valor cero
43# /4-#C,-$*
,D! -$*,7877777777 9/onemos todo el puerto 8 con valor cero
43# /4-#8,-$*
,D! -$*,787777$7$7 9Con%guramos las interrupciones !"#7 L
!"#$
43# ;C3C-,-$* 9ambas con @anco de bajada
,D! -$*,78$$777777 92abilitamos las interrupciones eMternas
43# C!C-,-$* 9!"#7 L !"#$
,D! -$8,K77 9/onemos 7 en -$8
/-4C:
,D! -$=,K7$ 9/onemos $ en -$=
:E! 92abilitamos el 1abilitador global de interrupciones
:A,#4: -I;/ :A,#4
!"#E--3/C!4"5!"#7:
!"C -$8 9!ncrementamos -$8
C/! -$8,6 9Comparamos -$8 con 6 si 6A-$8 entonces C'$
8-C: :A,#4$ 9:alta si C'$
,D! -$8,$ 9/onemos $ en -$8
:A,#4$:
;4& -$*,-$= 9/onemos $ en -$*
A"D! -$*,787777$$$$ 9
,D! B2,2!C2D#A8,A5=:EC;E"#4: E
,D! B,,,4FD#A8,A5=:EC;E"#4: E
ADD B,,-$* 9:umamos -$* con el puntero B
E4- -$*,-$* 9/onemos 7 en -$*
ADC B2,-$* 9:umamos -$* con el puntero B
C,C
-4, B, 9rotacion a la i+uierda
-4, B2 9rotacion a la i+uiera
,/; -$*,B 9cargo el contenido del puntero B a -$*
43# /4-#8,-$* 9mostrar en el puerto8 -$*
!"C -$= 9!"cremento -$=
C/! -$*,7b7$$$$$$$ 9comparo con el numnero 8 en = segmentos
8-EG /-4C 9si es mayor salto a /-4C
-E#!
!"#E--3/C!4"5!"#$:
,D! -$6,78$$$77777 9voltaje de referencia (.)*v y todo a la
i+uierda
DEC -$8 9
ADD -$6,-$8 9:umamos el valor del numero del sensor
seleccionado
43# AD;3<,-$6 9al registro AD;3<
!"C -$8 9
,D! -$6,78$$77$$$7 92abilitamos el ADC y la interrupcion del
ADC
43# ADC:-A,-$6 9con factor de preescalamiento de *0
:8! ADC:-A,AD:C 9
:E! 92abilitamos las interrupciones globales
83C,E:
;4& -$6,ADC5A,#4 9;ovemos el valor del registro ADC5A,#4 a -$6
-CA,,8!"A-!458CD 9para convertir a 8CD = segmentos
;4& /-!;E-5D!C,3"!DADE: 9 movemos las unidades a primer digito
;4& :EC3"D45D!C,DECE"A: 9 movemos las decenas a segundo
digito
;4& #E-CE-5D!C,CE"#E"A: 9 movemos las centenas a tercer
digito
9 para poder visualiarlas
-CA,,&!B3A,!BA-
:E! 92abilitamos el 1abilitador global de interrupciones
-I;/ 83C,E 9repetimos para ver si variamos el valor
del registro del ADC
-E#!
ADC5C4"&E-:!4":
!" ADC5A,#4,ADC2 9movemos el valor de ADC2 en ADC alto
:8! ADC:-A,AD:C 9empear la conversion
-E#!
&!B3A,!BA-:
;4& -$6,/-!;E-5D!C 9movemos el primer digito a -$6
4-! -$6,787$$77777 91acemos or eMclusivo el primer digito con el
valor para el barrido del display
43# /4-#C,-$6 9displayamos el valor de -$6
-CA,,-E#-A:45)m: 9retrao para el barrido del display
;4& -$6,:EC3"D45D!C 9movemos el segundo digito a -$6
4-! -$6,78$7$77777 91acemos or eMclusivo el primer digito con el
valor para el barrido del display
43# /4-#C,-$6 9displayamos el valor de -$6
-CA,,-E#-A:45)m: 9retrao para el barrido del
display
;4& -$6,#E-CE-5D!C 9movemos el tercer digito a -$6
4-! -$6,78$$7$7777 91acemos or eMclusivo el primer digito
con el valor para el barrido del display
43# /4-#C,-$6 9displayamos el valor de -$6
-CA,,-E#-A:45)m: 9retrao para el barrido del display
-E#
8!"A-!458CD:
CE"#E"A: 9ponemos cero en el registro centenas
C,- DECE"A: 9ponemos cero en el registro decenas
C,- 3"!DADE: 9ponemos cero en el registro unidades
CE"5D!C!#:
C/! -$6,$77 9Comparamos -$6 con $77 si $77 A -$6 entonces
C'$
8-C: DEC5D!C!# 9:alta si C'$
:38! -$6,$77 9resta $77 a -$6
!"C CE"#E"A: 9incremento centenas
-I;/ CE"5D!C!# 9regreso para volver a comparar
DEC5D!C!#:
C/! -$6,$7 9Comparamos -$6 con $7 si $7 A -$6 entonces
C'$
8-C: 3"!5D!C!# 9:alta si C'$
:38! -$6,$7 9resta $7 a -$6
!"C DECE"A: 9incremento decenas
-I;/ DEC5D!C!# 9regrreso para volver a comparar
3"!5D!C!#:
;4& 3"!DADE:,-$6 9muevo -$6 a unidades
-E#
-E#-A:45)m:: 9retrao de )msegundos para el barrido del display
,D! -(), K*J
-E#-A:4$:
,D! -(*, KC6
-E#-A:4(:
DEC -(*
8-"E -E#-A:4(
DEC -()
8-"E -E#-A:4$
,D! -(), K7(
-E#-A:4J:
DEC -()
8-"E -E#-A:4J
-E#
.4-C K)77
#A8,A5=:EC;E"#4::
.D8 7b77$$$$$$ 9numero 7
.D8 7877777$$7 9"3;E-4 $
.D8 787$7$$7$$ 9"3;E-4 (
.D8 787$77$$$$ 9"3;E-4 J
.D8 787$$77$$7 9"3;E-4 0
.D8 787$$7$$7$ 9"3;E-4 )
.D8 787$$$$$7$ 9"3;E-4 *
.D8 7877777$$$ 9"3;E-4 =
.D8 787$$$$$$$ 9"3;E-4 8
,. CONC#$ION"$
/odemos convertir seales analogicas en digitales con el adc del
microcontrolador atmega$*
,os sensores, su seal de salida es un voltaje continuo
Al usar el ADC del atmega$* convierte los voltajes continuos a un codigo
1eMadecimal
El ADC no convierte voltajes negativos, por lo tanto,tenemos +ue
sumarle un voltaje positivo,para subir su nivel de voltaje antes de
conectarlo a la entrada del ADC del microcontrolador atmega$*
,as conversiones del adc se obtienen con una resolucin de 8 bits ,
seg?n el programa.
-. .I.#IOG!AFIA
1ttp:NNOOO.datas1eetcatalog.netNesNdatas1eets5pdfN,N;NJN)N,;J).s1tml
1ttp:[Link]
8Pbit A&- !nstruccion :et
8Pbit A&- ;icrocontroller Oit1 $*Q 8ytes !n :ystem /rogramable .las1
1ttp:[Link]'detectorPdeP1umedadPconP
circuitoPintegrado
1ttp:[Link].comNdynNresourcesNprod5documentsNdoc8$)[Link]