Problema 21
por Gómez González, Isabel Maria
—
Última modificación
31/05/2021 18:02
Modificaciones con respecto al problema 20
Problema21.txt — Plain Text, 2Kb
Contenido del Archivo
/* Autor: Alberto J. Molina modificado por Isabel G� �tima modificaci�1-6-11 *//* Repita el ejercicio anterior para las siguiente estructura en la que se ha eliminado los latches. Adem�la alimentaci�e los displays dispone de unos transistores conectados, a trav�de resistencias, con salidas del microcontrolador. Esto implica que cuando la salida del microcontrolador est� 1, el transistor se activa permitiendo el flujo de corriente hacia el display correspondiente, mientras que si la salida est� 0 el transistor se desactiva provocando el corte de suministro al display, por lo que sus diodos se apagan. */ /* En este caso, se proceder� utilizar una variable auxiliar para controlar la secuencia de refresco y represente cada d�to a partir del n� N (tambi�BCD, ver problema anterior), almacenado en un registro determinado. ----------------- N� |0 .. 9 | 0 .. 9| ----------------- MS LS Obs�ese que, ahora, los displays son del tipo �do com�or tanto, el c�o 7 segmentos de cada d�to BCD es la versi�omplementada del problema anterior (si se asume que las conexiones entre cada segmento a...h y los bits del puerto B, son las mismas PB0 a, PB1 b, ...PB6 h). Dos pines del puerto D, PD1, y PD0, */ .include "m328pdef.inc" .equ CERO = ~0b00111111 .equ UNO = ~0b00000110 .equ DOS = ~0b01011011 .equ TRES = ~0b01001111 .equ CUATRO=~0b01100110 .equ CINCO= ~0b01101101 .equ SEIS= ~0b01111100 .equ SIETE= ~0b00000111 .equ OCHO= ~0b01111111 .equ NUEVE= ~0b01100111 .equ DIGITO0 = 0 .equ DIGITO1 = 1 .def temporal = r16 .def N = r17 .def cer= r18 .def aux = r19 .cseg Reset: rcall Inicializacion clr aux clr cer Bucle:cpi aux, 127 breq FIN rcall Representa inc aux jmp Bucle rcall ConfiguraES Fin: rjmp Fin Representa: mov temporal,aux lsr temporal si (aux[0] == 0) brcs RepDigitoI RepDigitoD: mov temporal,N andi temporal,$F ldi zl, low(Tabla7Seg) ldi zh, high(Tabla7Seg) add zl,temporal adc zh,cer ld r0,z out portb,r0 cbi portd,DIGITO1 sbi portd,DIGITO0 ret RepDigitoI: mov temporal,N swap temporal andi temporal,$F ldi zl, low(Tabla7Seg) ldi zh, high(Tabla7Seg) add zl,temporal adc zh,cer ld r0,z out portb,r0 sbi portd,DIGITO1 cbi portd,DIGITO0 ret ConfiguraES: ldi temporal,$ff out ddrb,temporal ;Puerto B como salida ldi temporal, $3 out ddrd,temporal ;Puertos D[1:0] como salidas clr aux ;Inicializar variables clr cer ret