TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: angel777 en 10 de Abril de 2011, 18:14:55
-
hola a todos soy nueva en el foro y tengo una duda en un programa que estoy realizando
ya que tengo un error en la simulacion y no he netendido cual es si alguien me puede ayudar gracias
programa que tome dos datos de 4 bits (ambos del puerto A), si en pin 7 del
puerto B hay un cero se muestra la suma de los datos en el puerto C (5 bits); si hay un 1 se
muestra la resta en los últimos 5 bits del puerto C y el signo de la resta en el pin 7 del mismo
puerto. (0 positivo, 1 negativo).
este es mi codigo:
;DIRECTIVAS EN ENSAMBLADOR
.include "m16def.inc"
.device ATMEGA16
;RESET_VECTOR ADDRESS $0000
.org $00
jmp inicio
; PROGRAMA PRINCIPAL
inicio:
ldi r16, high(ramend)
out sph, r16
ldi r16, low(ramend)
out spl, r16
ser r16
;configuracion de puertos
ldi r17,$00 ; entradas de porta
out ddra, r17
ldi r18,$7F ;seleccionPINA 0 25
out ddrb, r18
ldi r19, $1F ;salida con signo
out ddrc, r19
clr r19
ciclo:
in r17,pina
in r18,pinb
mov r20,r17
andi r20,$F0
swap r20
andi r17,$0F
cpi r18,$00
breq suma
resta:
sub r20, r17
brmi signo
out portc,r20
jmp ciclo
suma:
add r20, r17
out portc, r20
jmp ciclo
signo:
neg r17
ldi r23,$08
add r20,r23
out portc, r20
jmp ciclo
-
Como cual es el error el código compila funciona la suma la resta lo que no estoy muy seguro es el resultado de la resta con signo.
Pero el programa corre normal.
El problema es el pinc7 no sale por que no esta como salida aparte de la salida de pinc0...pinc4.
-
gracias.... :) si es verdad tengo problemas con la salida, ademas de que en proteus no simula muy bien. pero revisare lo ke me dices