Вы находитесь на странице: 1из 10

ESCUELA,POLITCNICA,NACIONAL

FACULTAD,DE,INGENERA,ELCTRICA,Y,ELECTRNICA
DEPARTAMENTO,DE,ELECTRNICA,,TELECOMUNICACIONES,Y,REDES,DE,INFORMACIN

Trabajo preparatorio de: SISTEMAS MICROPROCESADOS


7
Barrido!de!displays

Prctica #:

Tema:

!
Jonathan Palacios GRUPO:
GR6$D

Realizado por: Alumno:

2012 03 28 Fecha de Entrega: _____ /_____ /_____ ao mes, da Sancin:

f.

Recibido por:

Semestre: Febrero 2012 - Junio 2012

ESCUELA'POLITCNICA'NACIONAL
Facultad'de'Ingeniera'Elctrica'y'Electrnica
Laboratorio'de'Sistemas'Microprocesados
PRCTICA(No.7 Tema:(!Barrido!de!displays OBJETIVO:(Disear!un!circuito,!y! el!software!asociado! para!manejar!4!displays!de! 7!segmentos!usando!la!tcnica!de!barrido. TRABAJO(PREPARATORIO: 1. Consulte( la( distribucin(de( pines(de( los(display( de(7(segmentos(a( ser( utilizados. TIPOS Los!hay!de!dos!tipos:!nodo!comn!y!ctodo!comn. En!los!de!tipo!de!nodo! comn,!todos! los! nodos!de!los! leds!o!segmentos! estn!unidos!internamente!a!una!patilla!comn!que!debe!ser! conectada!a! potencial!positivo!(nivel!1).!El!encendido!de!cada!segmento!individual!se! realiza! aplicando! potencial! negativo! (nivel! 0)! por! la! patilla! correspondiente! a! travs! de! una! resistencia! que! limite! el! paso! de! la! corriente.

En!los!de!tipo! de!ctodo!comn,!todos!los!ctodos!de!los!leds!o!segmentos! estn!unidos!internamente!a!una!patilla!comn!que!debe!ser! conectada!a! potencial!negativo!(nivel!0).!El!encendido!de!cada!segmento!individual!se! realiza! aplicando! potencial! positivo! (nivel! 1)! por! la! patilla! correspondiente! a! travs! de! una! resistencia! que! limite! el! paso! de! la! corriente.

Los! segmentos! pueden! ser! de! diversos! colores,! aunque! el! display! ms! comnmente!utilizado!es!el!de!color!rojo,!por!su!facilidad!de!visualizacin. Tambin! existen! displays! alfanumricos! de! 14! segmentos! que! permiten! representar!tanto! letras! como! nmeros.! El! display! de!14!segmentos!tuvo! xito!reducido!y!slo!existe!de!forma!marginal!debido!a!la!competencia!de! la!matriz!de!5x7!puntos. Si! bien! hoy! este! tipo! de! displays! parecen!antiguos! u! obsoletos.! Ya! en! la! actualidad!es!muy!comn!el! uso!de!vistosos! displays!grTicos,!incluso! con! posibilidad! de! colores! a! un! bajo! costo.! Sin! embargo! el! display! de! 7! segmentos!sigue!siendo!una!excelente!opcin!en!ciertas!situaciones!en!las! que! se! requiera!mayor! poder!lumnico! y! trabajo! en!reas! hostiles,! donde! los! displays! podran! verse! afectados! por! condiciones! ambientales! adversas.! An!no! se! ha!creado!otro! dispositivo!de! sealizacin!que!rena! caractersticas! como! este! en! cuanto! a:! Buen! poder! lumnico,! claridad,! sencilla!implementacin,!bajo!costo!y!robustez.

2. Disee( un( circuito( de( barrido( de( 4( display( con( el( micro( controlador( MEGA164p(usando(solamente( dos(puertos,(pues(los(otros(dos(puertos( son( usados( para( el( ingreso( de( los(datos.( El( circuito( a( construir( debe( obligatoriamente( incorporar(los( elementos(que( considere( necesarios( para( manejar( los( display( (tomar( en( cuenta( la( capacidad( de( corriente( de( salida( de( los( pines( del( micro( controlador( para( no( excederla,( e( incorporar( los( transistores( o( ampliSicadores( de( corriente( para( proveer( la( suSiciente( corriente( a( los( display),( y( adems( nunca( debe( olvidar(las(resistencias(limitadoras(de( corriente(para(cada( uno(de( los( segmentos.( Como( referencia( se( incluye( un( circuito(con( los(elementos( adicionales( ms( comunes.( Cabe( indicar(que( dado( que( los(segmentos( van(a(trabajar(solamente(1/4(del(tiempo,(se(debe(hacer(pasar(por(ellos( pulsos(de( corriente( de( mayor(valor(para( obtener(una(corriente(media( suSiciente;( esta( es( la( razn( por( la( que( no( se( recomienda( manejar( directamente(los(segmentos(desde(los(puertos(del(ATMega164p.(En(el( caso(del(diseo( de( ejemplo( se( ha( colocado( un( arreglo(de( transistores( darlington( NPN( (el( ULN2003),( pero( puede( ser( reemplazado( por( 7( transistores(NPN.((Los(transistores(PNP(del(diseo(sirven(para(activar( cada( uno( de( los( dgitos.( En( el( peor( de( los( casos( pueden( estar( encendidos(todos( los( segmentos( y( la( suma( de( estas( corrientes( entra( por( el( terminal(del( nodo( comn( del( display;( por( lo(que( de( ninguna( manera( puede( ser( conectado( directamente( a( una( salida( del( microcontrolador.( Conviene( recordar( que( la( corriente( que( puede( manejar( cada( pin( del( miocrocontrolador( est( alrededor( de( 20mA,( y( que( hay( otras( limitantes(como(la( que( la( suma( total(de( corriente( que( puede( manejar( un( puerto( no( debera( sobrepasar( de( unos( 100( mA,( adems(de(otras(limitantes(que(se(pueden(ver(en(el(manual(en(la(parte( de("Caractersticas(Elctricas".

3. Escribir( una( rutina( para( convertir( de( binario( a( BCD.( Con( 4( dgitos( decimales( el( nmero( ms( grande( a( convertir( es( el( 9999,( ese( dato( requiere(14(bits(en(binario(para(ser(almacenado,esto(debe(tomarse(en( consideracin(en(su(rutina.
.include ) m164pdef.inc .nolist .include)"m164pdef.inc" .list .def)a=r16 .def)b=r17 .def)c=r18 .def)d=r19 .def)time=r20 .org)0x00 ldi) ) a,0b00000000) ;los)puertos)A,C)con)entradas)pull)up) out) ) ddra,a out) ) ) ddrc,a)) ))))))))))))) ldi) ) ) a,0b11111111) ;configuracin)de)las)salidas)B,D) out) ) ) ddrd,a out) ) ) porta,a out) ) ) portc,a ldi) ) ) a,0b01111111 out) ) ) ddrb,a ldi) ) ) a,0b10000000 out) ) ) portb,a;el)pin)7)de)portb)es)entrada)pull)up)en)la)cual)se) conectar)el)led salto:))))))))))))))))))))))))) ldi) ) ) c,high(ramend) out) ) ) sph,c ldi) ) ) c,low(ramend)) ) out) ) ) spl,c ) ) ;)stck)pointer)en)4FF in)) ) a,pina in)) ) b,pinc )) ;)lee)los)datos sbic)) ) pinb,7 call)) ) multiplicar call)) ) conversion call ) ) display4) ) rjmp)) ) salto))))))

;realiza)una)multiplicacin)por)12)solamente)al)dato)de)la)entrada)del) reg)A)de)8)bits multiplicar: ldi) ) c,11 ldi) ) b,0) ) ) ) mov) ) d,a) ) ) ) lazo: add) ) ) a,d) ) brlo ) ) mcarry )) lazo2: dec) ) brne ) ) ret c lazo

mcarry: inc) ) b rjmp ) ) lazo2 ) ;)salidas)en)b)de)un)numero)binario)multiplicado)por) 12 ;fin)del)lazo)multiplicar ;se)usan)cuatro)display)de)7)segmentos)para)los)nibles)de)los)registros) B,A display4: ldi) ) time,$ff) ) ) ;cuantas)veces)repito)barrido ddelay:) mov) ) a,r13 mov) ) b,r14 ldi) ) d,0b11111110) ) ;primer)display dshow:) ldi) ) zh,high(tabla<<1))));tablas ldi) ) zl,low(tabla<<1)))))))))))) mov) ) c,a) ) ) ) ) ;copio)el)dato)A cbr) ) c,0b11110000) add) ) zl,c) lpm) ) c,z))))))) out) ) portd,c) ;solo)se)imprime)el)primer)nible out) ) portb,d) ;se)habilita)el)primer)display sbic ) ) pinb,7 ) ;poner)1L)en)un)pin)(esto)no)es)parte)de)display) normal) sbi) ) ) portd,7) ) ;(esto)no)es)parte)de)display)normal) swap ) ) a) ) ) ;)se)cambian)los)nibles bset ) ) 0) ) ) ;carry=1 rol) ) d) ) ) ;el)cero)de)portc)se)desplaza)a)la)izq sbrs ) ) d,2) ) ) ;si)est)en)el)tercer)display)cambio)el) dato)A)por)el)dato)B mov) ) a,b sbrc ) ) d,4) ;si)el)programa)est)en)el)cuarto)display)termina rjmp)) ) dshow dec) ) time brne ) ) ddelay ldi) ) d,0b11111111 ret ;fin)del)lazo)display4 ;conversin)de)dos)nmeros)en)binario)a)bcd)(8bit)c/u) conversion: ldi) ) r18,16 ) ;) clr) ) r15) ) ;borrar)result)(3)bytes) clr) ) r14) ) clr) ) r13) ) clr) ) ZH) ) ;borrar)ZH

bBCDx_1: lsl) ) rol) ) rol) ) rol) ) rol) ) dec) ) brne ) ) ret) )

r16) ) ;shift)input)value r17) ) ;through)all)bytes r13) ) ; r14 r15 r18) ) ;decrementa)el)contador)R18 bBCDx_2) ) ;si)el)contador)no)es)cero ) ;)))regresa)donde)se)genero)la)subrutina

bBCDx_2: ldi) ) r30,15+1) ;Z)apunta)al)resultado)de)MSB)+)1 bBCDx_3: ld) ) r19,cZ ) ;obtiene)(Z))con)un)precdecremento subi ) ) r19,c$03) ;suma)0x03 sbrc ) ) r19,3 ) ;si)el)bit)3)no)es)borrado st) ) Z,r19 ) ;) ld) ) r19,Z ) ;obtener)(Z) subi ) ) r19,c$30) ;sumar)0x30 sbrc ) ) r19,7 ) ;si)el)bit)7)no)es)borrado st) ) Z,r19 ) ;) cpi) ) ZL,13 ) ) ; brne ) ) bBCDx_3) ) ;repite)el)lazo)bBCDx_3: rjmp ) ) bBCDx_1) ) ;fin)del)lazo)conversin tabla:))))))));gfedcba)))))))gfedcba )))))))))))).db)0b00111111,0b00000110);0,1 )))))))))))).db)0b01011011,0b01001111);2,3 )))))))))))).db)0b01100110,0b01101101);4,5 )))))))))))).db)0b01111101,0b00000111);6,7 )))))))))))).db)0b01111111,0b01101111);8,9 ).exit

4. Escribir( un( programa( para( convertir( de( pies( a( pulgadas( (1( pie( =( 12( pulgadas).(Por(uno(de( los(puertos(entra( el(nmero(de(pies(en( binario( ((el(rango(es(de( 0(a( 255(pies),(y( por(un(pin(adicional(entra( la(seal(de( un( interruptor( que( tiene( la( siguiente( funcin:( en( una( posicin( los( display( deben( indicar( en( base( diez( ( el( nmero( de( pies( que( se( ha( ingresado(mientras(que( un( led( (permanece( apagado.(Si(el(interruptor( est( en( la( otra( posicin,( los( display( deben( indicar( en( base( diez( el( nmero(de(pulgadas(que(corresponde(mientras(se(mantiene(el(led(est( encendido.
.include "m164pdef.inc" .def .def .def .dseg binario: bcd0: digO: .cseg .org ldi out ldi out ldi tempo=r16 contador=r17 conversor=r18 .byte 2 .byte 4 .byte 4 0x00 tempo,0b00000000 ddrb,tempo tempo,0b10000000 ddrd,tempo tempo,0b01111111

out out ldi out out ldi out ldi out in andi out ldi out ldi out lazo: in sts clr sts ldi out in sbrc call call call call rjmp conversion: push push lds ldi mul sts sts ldi out pop pop ret r16 push push push lds lds clr subi sbci brcs inc rjmp bin_bcd_cen: ldi add ldi adc

ddra,tempo portd,tempo tempo,0b11111111 portc,tempo portb,tempo tempo,0b00001111 ddrc,tempo tempo,0b10000000 porta,tempo tempo,MCUCR tempo,0b11101111 MCUCR,tempo tempo,high(ramend) sph,tempo tempo,low(ramend) spl,tempo tempo,pinb binario,tempo r1 binario+1,r1 tempo,0b01111111 portd,tempo tempo,pind tempo,0 conversion bin_bcd bcd_7seg barrido lazo r16 r17 r16,binario r17,12 r16,r17 binario,r0 binario+1,r1 r16,0b11111111 portd,r16 r17 r16 r17 r18 r19 r16,binario r18,binario+1 r17 r16,232 r18,3 bin_bcd_cen r17 bin_bcd_0 r19,232 r16,r19 r19,3 r19,r18

bin_bcd:push

bin_bcd_0:

sts clr bin_bcd_1: subi sbci brcs rjmp bin_bcd_dec: subi sts clr bin_bcd_2: subi brcs rjmp bin_bcd_uni: subi sts sts pop pop bcd_7seg: push push push push push push push push ldi ldi ldi ldi ldi zh zl yh yl xh xl r16 r17

bcd0+3,r17 r17 r16,100 r18,0 bin_bdc_dec bin_bcd_1 r16,-100 bcd0+2,r17 r17 r16,10 bin_bdc_uni bin_bcd_2 r16,-10 bcd0+1,r17 bcd0,r16 r19 r18

xh,high(bdc0) xl,low(bcd0) yh,high(dig0) yl,low(dig0) r17,4

tabla:

;gfedcba gfedcba .db 0b00111111,0b00000110 .db 0b01011011,0b01001111 .db 0b01100110,0b01101101 .db 0b01111101,0b00000111 .db 0b01111111,0b01101111

;0,1 ;2,3 ;4,5 ;6,7 ;8,9

.exit

5. Construya( el( circuito( diseado,( el( mismo( que( deber( ser( llevado( al( laboratorio(el(da(de(la(prctica.

BibliograSia: (http://vicodg.blogspot.com/2011/03/displayZconZbarrido.html !http://www.unicrom.com/Tut_displayZ7Zsegmentos.asp ! http://electronica.tecnoface.com/tutoriales/12ZpracticandoZconZdisplaysZdeZ7Z segmentos/19ZconceptosZbasicosZdeZunZdisplayZdeZ7Zsegmentos !http://www.unicrom.com/Tut_displayZ7Zsegmentos.asp !http://es.wikipedia.org/wiki/Visualizador_de_siete_segmentos !MANUAL!ATMEGA164P ! h t t p : / / w w w . a v r f r e a k s . n e t / i n d e x . p h p ? m o d u l e = F r e a k s %20Tools&func=viewItem&item_id=69

Вам также может понравиться