3. include derivative.inc
org Z_RAMStart
fibo1 ds.b 1
fibo2 ds.b 1
suma ds.b 1
resultado ds.b 1
TABLA: dc.b $00
dc.b $00
dc.b $00
dc.b $00
dc.b $00 TABLA ds.b 12 ... y listo!!
dc.b $00
dc.b $00
dc.b $00
dc.b $00
dc.b $00
dc.b $00
dc.b $00
org ROMStart
INICIO: rsp
clra
Esta etiqueta no puede ir ahi. clrx
De lo contrario en cada iteración bset 0,CONFIG1
RESULTADO va a ser cero y nunca
va acumular la suma de los
mov #$FF,DDRB No se pedia manejar puertos. Solo el algoritmo !!
términos. mov #$00,fibo1
mov #$01,fibo2
INICIO1: mov #$00,resultado
INICIO1:
lda fibo1
sta TABLA,X
incx
sta PTB
add fibo2
sta suma
lda resultado
add fibo2
sta resultado
lda fibo2 MOV FIBO2,FIBO1 ... y listo !!
sta fibo1
lda suma
sta fibo2
cbeqx #$0C,INICIO
bra INICIO1
org INT_RESET ; Definición de vectores de interrupción
dc.w INICIO
4. (1.0) COMPARADOR DE 4BITS Primero van: las consideraciones de diseño
(que faltaron aqui y se pedían en la tarea)
y el diagrama circuital antes que el
diagrama de flujo.
Qué hay en el puerto A?,
serán las entradas en
cascada?
V o F?
V o F?
¿?
OBS: Es necesario poner en las estructuras
de decisión que camino es FALSO y que otro
es el VERDADERO.
5. ;*****************************************************************
;* NOMBRE: COMPARADOR DE 4BITS *
;* CODIGO: *
;* VERSIÓN: *
;*****************************************************************
include derivative.inc
; Definición de variables en la RAM
org Z_RAMStart
VAR1 ds.b 1
VAR2 ds.b 1
; Programa en la FLASH
org ROMStart
INICIO: rsp ; Inicializa registros de la CPU
clra
clrx
bset 0,CONFIG1 ; Desactiva el COP
PTA2 solo como entrada
mov #$00,DDRB
mov #$07,DDRA
mov #$FF,PTBPUE
mov #$38,PTAPUE ;SE CONFIGURA COMO PUE LOS ULTIMOS TRES PINES DEL PTA
lda PTB ;se lee el puerto
and #$0F
sta VAR1
lda PTB
and #$F0
nsa
sta VAR2
sub VAR1
cbeqa #$00,BIT0 ;se compara con cero
bcs BIT1 ;salta si el acarreo esta en 1 si VAR2 > VAR1
BIT2 bset 2,PTA ;activa el bit 2,PTA si VAR1 > VAR2
bra INICIO
BIT0 brset 3,PTA,BIT1
brset 5,PTA,BIT2 Se debe indicar aqui y en el diagrama circuital
bset 0,PTA a que salidas corresponden A>B,A=B y A<B
bra INICIO
BIT1 bset 1,PTA
bra INICIO
; Definición de vectores de interrupción
org INT_RESET
dc.w INICIO
6. Entradas en
cascada?
PTA2 en este MCU solo
puede usarse como entrada
Quién es A>B,A=B y A<B ?
7. IMPORTANTE: Faltaron las consideraciones de diseño.
En esta parte se debió revisar la tabla de verdad
que rige el comportamiento del 74LS148.
(0.5) CODIFICADOR
OBS: Diagrama de flujo muy general. Es necesario
dar más detalle, para entender como se desarrolló
el programa.
F o V?
F o V?
¿?
...y que sigue aqui?
Esto no puede quedar así!!
;*****************************************************************
;* NOMBRE:CODIFICADOR DE 8 A 3,, NEGADO *
;* CODIGO: *
;* VERSIÓN: *
;*****************************************************************
include derivative.inc
; Definición de variables en la RAM
org Z_RAMStart
; Programa en la FLASH
org ROMStart
INICIO: rsp ; Inicializa registros de la CPU
clra
clrx
8. bset 0,CONFIG1 ; Desactiva el COP
mov #$1F,DDRA
PTA2 solo como entrada
mov #$00,DDRB
mov #$FF,PTBPUE
mov 5,PTAPUE
ENABLE brclr 5,PTA,SAL
mov #$FF, PTA
No, según el 74LS148...la habilitación es activo en bajo.
bra barrido1 Cuando PTA5 es cero debería saltar a la etiqueta BARRIDO1
SAL mov #$00,PTA
bra ENABLE
barrido1: lda PTB
;and #$00 En comentario, cierto?...es decir esta línea de código no va?
cbeqa #$00,siete
bra barrido2
siete: mov #$10,PTA
barrido2: brset 7,PTB,SAL1
bra barrido3
SAL1 mov #$0F, PTA
bra barrido3
; cbeqa #$40,seis
; bra barrido3
¿? ;seis: mov #$32,PTA Esta linea de código nunca es ejecutada!!
barrido3: lda PTB
and #$40
cbeqa #$40,cinco
bra barrido4 OBS: No funciona como el 74LS148. Además
que existen algunas inconsistencias en
cinco: mov #$0B,PTA el programa.
barrido4: lda PTB
and #$20
cbeqa #$20,cuatro
bra barrido5
cuatro: mov #$0D,PTA
barrido5: lda PTB
and #$10
cbeqa #$10,tres
bra barrido6
tres: mov #$09,PTA
barrido6: lda PTB
and #$08
cbeqa #$08,dos
bra barrido7
dos: mov #$0E,PTA
barrido7: lda PTB
and #$04
cbeqa #$04,uno
bra barrido8
uno: mov #$0D,PTA
barrido8: lda PTB
and #$02
cbeqa #$02,cero
bra barrido9
cero: mov #$0C,PTA
barrido9: lda PTB
and #$01
9. OBS: Faltó también diagrama circuital.
cbeqa #$01,otro
bra ENABLE
otro: mov #$08,PTA
bra ENABLE
; Definición de vectores de interrupción
org INT_RESET
dc.w INICIO