TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: pipotve en 19 de Junio de 2004, 13:30:00
-


hola todos soy nuevo !!!
bueno mi primera pregunta en este foro es que quiero hacer la suma de dos numeros hexadecimales aki pego el codigo poara que lo vean y asi me pueden decir algo que les pregunto al final::
list p=16f84
contador3 EQU 0x5c
contador1 EQU 0x6c
contador2 EQU 0x7c
pata2 EQU 0x06
trisb EQU 0x86
estado EQU 0x03
org 0
bsf estado,5 ; colocar las
movlw 0x00 ; patas del
movwf trisb ; puerto B
bcf estado,5 ; como salida
movlw 0x97
movwf contador1
movlw 0x79
addwf contador1
btfss estado,2
goto primero
goto segundo
primero btfss estado,1; verifica DC a ver si esta en 1
goto segundo ; no esta en 1
movlw 0x06 ; esta en 1
addwf contador1; suma 6 si DC esta en 1
movwf pata2
goto segundo ; verifica ahora el otro
segundo btfss estado,0
call start2
movlw 0x60
addwf contador1
start2 decfsz contador3,1
call start2
end
Ok mi pregunta es la siguiente por que cuando hago la suma de 7 y 9 si se guarda en la memoria un 10 que luego con el carry lo coloco 6 mas, para que me de 16 pero cuando hago que sume solo 90 y 70 eso me tiene que dar 100 pero en la memoria me coloca 0x00 luego hago la suma y me sale 60 ?
Yo creo que es porque no caben en la memoria 100 hexadecimal pero no estoy seguro ... bueno espero que me ayuden
-
7+9 en hexadecimal es 10, que en decimal es 16

0 1 2 3 4 5 6 7 8 9 A B C D E F
ESTOS SON LOS VALORES CON LOS QUE TRABAJA EL CÓDIGO HEXADECOMAL....
90 + 70 ES 100 EN HEXADECIMAL PERO EN DECIMAL ES 256... POR LO QUE SOBREPASAS EL BYTE...
POR LO TANTO SE PONE A 0 QUE ES EL SIGUIENTE VALOR.
255 + 1 = 0
y el accareo daría la opción de incrementar el segundo byte para presentar el valor que necesitas
100h = 100000000b
como verás son 9 bits 
para trabajar con el 100h, tendrías que trabajar con 2 bytes...
si no te he resuelto la duda, la proxima vez me explico mejor...
y te recomiendo que centres tu mente en un solo sistema numérico
decimal, hexadecimal, binario....
pero no los mezcles, porque te llevarás mas de un disgusto...
-
ok entendi muy bien gracias


tu dices que estoy confundiendo "hex" con "dec " no es eso, lo que pasa es que hago la suma en hexadecimal y luego paso a decimal que si vez, se le suman 6 o 60 que depende de quien se vea afectado si DC o C para que pasen a se decimal los nuemeros por eso es que meto todo
-
No me refiero a que confundas los sistemas, sino a que los mezclas... para obtener resultados... Cosa que yo tambien hago, pero con mucho cuidado porque como ya comenté antes, nos ahorraremos muchos disgustos.
-

okas ya entendi