TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Sacahe en 16 de Enero de 2012, 15:14:36
-
Hola Amigos!!!
He estado en estos dias de vacaciones cacharreando el PicBasic para aprender mas de el. Y estoy recopilando subrutinas en este lenguaje para aplicarlos en los proyectos que realice. Ahora deseo realizar una vitacora con respecto a la conversion de datos con PBP.
1. Convertir un numero contenido en dos bytes en una variable tipo Word
Ejm: tenemos el numero 624 guardado en BYTE1 y BYTE2 (BYTE2=00000010- BYTE1=01110000) ---------------------> WORD= 0000001001110000 = H'0270'
H'02' H'70' CONVERSION
Solucion: WORD1 = BYTE2 * 256 + BYTE1
2. Convertir dos numeros BCD a su equivalente Hexadecimal
Ejm: Tenemos BCD2=6 y BCD1=3 ---------------------> HEX=h'63'
CONVERSION
Solucion: HEX = (BCD2<<4) + BCD1
3. Convertir un numero Hexadecimal a su equivalente Binario
Ejm: Tenemos el numero HEX=h'56' ---------------------> BIN= 56 = h'38'
CONVERSION
Solucion: BIN = ((HEX & $F0)>>4*10) + (HEX & $0F)
Ya seguire subiendo otros ejercicios y quien desee aportar es Bienvenido!!! :-/
-
Por mi parte ya tienes un seguidor del hilo, están interesantes esos procedimientos.
-
Aqui van otros ejercicios:
4. Convertir un Word (16 bits) en dos Bytes:
Ejm: tenemos WORD= 285 = 0000000100011101 = h'011D' ---------------------> BYTE2=h'01' y BYTE1=h'1D'
CONVERSION
Solucion: BYTE_1 = WORD_1 // 256
BYTE_2 = WORD_1 / 256
5. Convertir dos numeros Hexadecimales a su equivalente Binario (16BITS) :
Ejm: tenemos HEX2= h'98' y HEX1= H'42' ---------------------> BIN= 10011001110010 = h'2672' = 9842
CONVERSION
Solucion: HEX2 = $98
HEX1= $42
BINARIO = ((HEX2 & $F0)>>4*1000) + ((HEX2 & $0F)*100) + ((HEX1 & $F0)>>4*10) + (HEX1 & $0F)
6. Convertir 4 numeros BCD a su equivalente Binario:
Ejm: Tenemos BCD4=6, BCD3=2, BCD2=1, BCD1=9 ---------------------> BIN= 1100001001011 = h'184B' = 6219
CONVERSION
Solucion: :-) Para realizar esta conversion aplicamos los ejercicios 2 y 5 :-)
HEX2 = (BCD4<<4) + BCD3
HEX1 = (BCD2<<4) + BCD1
BIN = ((HEX2 & $F0)>>4*1000) + ((HEX2 & $0F)*100) + ((HEX1 & $F0)>>4*10) + (HEX1 & $0F)