Convertir Hexadecimal a ASCII

!Felictaciones chicos se ve que realmente son verdaderos capos en ese tema de tecnicas Digitales , cosa que para mi es tal cual apriender Aramaico ( lingua ya morta del tienpo de Jesus Cristo) !
No minto en descir que tengo un poquito de envidia , serias barbaro jo tanbien saper programar los bendictos PICs o Microprocesadores para puder programar PLL seriales , gerenciar pantallas LCD , teclados numericos para adentrar con las frequencias deseadas , sistemas inteligentes de protección contra elevada potencia reflejada , control digital de la potencia de salida de RF de transmissores , enfin la inmaginación es lo limite .
!Saludos cordeales desde Brasil!
 
Don @Daniel Lopes... me parece que usted está empeñado en esconderse detrás de las barreras. No hay límites, mi amigo... solo debe usted ubicar el "Origen de cada cosa que usted quiera conocer" e ir recolectando cada detalle que siguió, debido a ese origen y todo se aclara.
El origen de la programación "Digital" viene desarrollándose desde el primer proyecto de automatización de las centrales telefónicas y, todo el temas de los bits y bytes comenzó a resultar practico desde el desarrollo de la Álgebra de Boole Álgebra de Boole - Wikipedia, la enciclopedia libre y la definición de las compuertas (AND, OR, XOR, NAND, NOR) que, para finales del siglo XVIII, eran formadas por simples artilugios mecánicos. Cada BIT de un sistema lógico solo representa un vulgar interrupor/switch, no importa si mecánico o de estado sólido. Y con la programación aplicada a un sistema, lo único que se hace es acomodar "Bancos de Interruptores" para que hagan funcionar algún mecanismo de una manera predeterminada por el programador.
Le recuerdo que,para cambiar de una operación a otra "El ENIAC", las señoras que hacían eso requerían semanas y si había algún error... a comenzar de nuevo y, por demás, ese COSO no era Digital, sino analógico.
Como siempre... no es posible comenzar a construir una casa desde el techo, ni ninguna otra cosa a saber.
Me animo a incentivarlo, Daniel... Comprese un paquetico de compuertas TTL o CMOS, unos cuantos Switches, unos LED y vea un par de videos de Youtube donde muestran como encender LEDs y verá que, en unas pocas prácticas se le aclararán muchas cosas.. se encenderán muchas luces...
 
Hola mi amigazo Don mcrven , de tecnicas digitales basicas (puertas logica , circuitos conbinacionales sensillos , Flip-Flops ) tengo si lo conocimento , lo gran problema es progamar PICs y Microprocesadores para que eses chips trabajen para mi , jajajajajajajajajaja !
Muy desafortunadamente mi cerebro no funciona para hacer firmwares , softwares ,mi quedo con la buena y vieja Electronica Analogica y Radiofrequencia , ciencia esa considerada por muchos como "magia negra" , Jajajajajajajajajajajajajaja !
!Saludos desde Brasil!
 
La programación y desarrollo de sistemas, circuitos y todo esto que involucra la electrónica, no es nada sencillo.
Si bien se puede aprender de manera autodidacta, siempre habrá dudas que solo un profesor catedrático nos podrá responder.
Y estoy hablando a nivel del siglo actual, ya que antes las cosas se descubrían casualmente o por mucho estudio en la materia.
Todos los que nos titulamos en esto empezamos desde cero en el colegio y poco a poco fuimos entendiendo el tema.
Lo único que me quejo del catedrático que nos daba la clase es que tenía mucha teoría pero cero práctica, como él lo comento cierta vez...
- Jamás he usado un cautín y si me ponen a reparar un televisor no lo podré hacer porque desconozco el procedimiento.
Y no era porque no supiera electrónica, lo que no tenía era práctica.
Por eso es muy bueno ese refrán que dice: La práctica hace al maestro.
Y su falta de práctica no le quita méritos, porque él tan solo era profesor, no un técnico con taller de reparaciones.
En sí, este profesor era una Wikipedia. Los que nos graduamos fuimos las personas que realmente amamos la electrónica.
Posteriormente vinieron las clases de programación cuando entramos a Sistemas, pero nos tocó aprender lenguaje ensamblador.
Luego vino el C y las cosas se vieron mejor, con esto de querer aprender programación conocí varios lenguajes y me llamó la atención el Basic.
Vi el Pascal, el Cobol, el Fortran, Perl, etc, pero tampoco me quería meter tantas cosas en la cabeza, así que me decidí por un buen tiempo al VB.
Con la llegada de Visual Studio me fue mejor y no se diga cuando llegó Visual Studio .Net.
Ahí sí que tendría que usar lo ya aprendido para al menos poder iniciarme en este nuevo entorno.
Actualmente sigo usando el VB pero poco a poco lo he ido dejando y he estando dedicándome más al C# (C Sharp)
Estas clases ya las tuve que tomar por mi cuenta, sin embargo, las bases primordiales ya las tenía.
Así que con la llegada de los microcontroladores, no tuve mucho problema, pero claro, no fue fácil, recuerden que todo empezó con el lenguaje ensamblador.
Yo pienso que, nunca es tarde para empezar.

Edit:
No sé porqué pero tengo la sospecha de que el orden de los nombres en los lenguajes de programación viene siendo así:
A = Assembler
B = Basic
C = C, C++, C#
D = Delphi o Pascal
E = Erlang, Elixir
F = Fortran y etc, etc. 😄
 
Tal como dice @D@rkbytes, el tema de la programación en electrónica es algo completamente diferente de la electrónica tradicional aunque está "hermanada" con ella por la aplicación. Y la diferencia está en que programar implica apropiarse de una forma de pensar que no es la natural en la absoluta mayoría de los seres humanos. Una vez que se consigue ajustar el cerebro a esa nueva forma de pensar, comienza a encontrarse su plena aplicación a la vida cotidiana y entonces la programación se transforma en algo casi natural.
Por supuesto que este proceso de apropiación lleva tiempo y esfuerzo, aunque hay métodos que contribuyen a que se logre más rápidamente... el problema es que esos métodos son mas recientes y poco entendidos por las mayoría de los docentes.
Llevo mas de 20 años enseñando programación a futuros ingenieros electrónicos, y como en todo, siempre hay chicos que aceptan esta forma de pensar como propia y natural, y hay otros que prefieren evitarla y dedicarse a otras ramas...y está bien que así sea. A fin de cuentas, de eso también se trata la libertad...

Una vez que ya se conocen los pasos y técnicas para resolver un problema mediante programación, entonces se pueden buscar y aprender nuevos paradigmas de análisis y diseño si es que se pretende programar como se debe o se quiere seguir escribiendo código mediante cut&paste sin entender lo que sucede (no sé si esto les resulta conocido...). Pero bueno, sigue siendo parte de la libertad...
 
Última edición:
Y es que es normal que esto suceda.
Por ejemplo: Llega cierta persona para que le realices un programa médico que involucre tomar ritmos cardíacos, presión vascular, fluido sanguíneo, etc.
Pero uno es programador con conocimientos en electrónica, no un médico.
Entonces aquí entra la compaginación entre ambas partes para poder entendernos.
Pero luego resulta que el programa también debe tomar muestras termográficas corporales, aquí entra otra persona que nos lo tiene que explicar para poder interpretar lo que ahora se quiere y llevarlo al modo gráfico.
En sí, un programa de esta índole debe ser llevado a cabo por varias personas que, aunque desconozcan sobre programación, nos ayudan para poderlo realizar.
¿Por qué creen que un programa médico cuesta tanto?
Y no nada más uno de ese tipo, hay millones de programas en los que los programadores nos quemamos las pestañas escribiendo código.
Es muy bien pagado ser programador y aparte se ama lo que se hace.
 
La programación y desarrollo de sistemas, circuitos y todo esto que involucra la electrónica, no es nada sencillo.
Si bien se puede aprender de manera autodidacta, siempre habrá dudas que solo un profesor catedrático nos podrá responder.
Y estoy hablando a nivel del siglo actual, ya que antes las cosas se descubrían casualmente o por mucho estudio en la materia.
Todos los que nos titulamos en esto empezamos desde cero en el colegio y poco a poco fuimos entendiendo el tema.
Lo único que me quejo del catedrático que nos daba la clase es que tenía mucha teoría pero cero práctica, como él lo comento cierta vez...
- Jamás he usado un cautín y si me ponen a reparar un televisor no lo podré hacer porque desconozco el procedimiento.
Y no era porque no supiera electrónica, lo que no tenía era práctica.
Por eso es muy bueno ese refrán que dice: La práctica hace al maestro.
Y su falta de práctica no le quita méritos, porque él tan solo era profesor, no un técnico con taller de reparaciones.
En sí, este profesor era una Wikipedia. Los que nos graduamos fuimos las personas que realmente amamos la electrónica.
Posteriormente vinieron las clases de programación cuando entramos a Sistemas, pero nos tocó aprender lenguaje ensamblador.
Luego vino el C y las cosas se vieron mejor, con esto de querer aprender programación conocí varios lenguajes y me llamó la atención el Basic.
Vi el Pascal, el Cobol, el Fortran, Perl, etc, pero tampoco me quería meter tantas cosas en la cabeza, así que me decidí por un buen tiempo al VB.
Con la llegada de Visual Studio me fue mejor y no se diga cuando llegó Visual Studio .Net.
Ahí sí que tendría que usar lo ya aprendido para al menos poder iniciarme en este nuevo entorno.
Actualmente sigo usando el VB pero poco a poco lo he ido dejando y he estando dedicándome más al C# (C Sharp)
Estas clases ya las tuve que tomar por mi cuenta, sin embargo, las bases primordiales ya las tenía.
Así que con la llegada de los microcontroladores, no tuve mucho problema, pero claro, no fue fácil, recuerden que todo empezó con el lenguaje ensamblador.
Yo pienso que, nunca es tarde para empezar.

Edit:
No sé porqué pero tengo la sospecha de que el orden de los nombres en los lenguajes de programación viene siendo así:
A = Assembler
B = Basic
C = C, C++, C#
D = Delphi o Pascal
E = Erlang, Elixir
F = Fortran y etc, etc. 😄
Hola amigos, unos simples comentarios a propósito de que el forista lo mencionó. Qué bonito era el ForTran y su capacidad de resolver cuestiones matemáticas, tengo por ahí un programa que hice en su momento que resolvía sistemas de ecuaciones de dos incógnitas. Si no me equivoco, pues hace mucho que lo hice, usaba el método de los determinantes. Ingresabas los coeficientes en orden y te daba las soluciones. Cuando lo compilé y vi que funcionaba me sentí muy feliz. No hace falta aclarar que mi experiencia en programación es amateur y menos que básica y que esta pequeña pieza de programación funcionando para mi es una proeza por mi falta de dedicación al tema.
Después me siguió interesando la programación y empecé con LaTeX. Otro lenguaje maravilloso.
Bueno, disculpen el off topic. Me encanta encontrar gente aqui que sabe tanto y tiene cabeza y voluntad abiertas a ayudar.
Saludos cordiales.
 
Esta es la sección del mensaje inicial:
Código:
LADR_0x03F3
    BCF PCLATH,3         ; !!Bank Program-Page-Select
    MOVLW 0x57           ;   b'01010111'  d'087'  "W"
    MOVWF LRAM_0x39
    MOVLW 0x65           ;   b'01100101'  d'101'  "e"
    MOVWF LRAM_0x3A
LADR_0x03F8
    MOVLW 0x6C           ;   b'01101100'  d'108'  "l"
    MOVWF LRAM_0x3B
    MOVLW 0x63           ;   b'01100011'  d'099'  "c"
    MOVWF LRAM_0x3C
    MOVLW 0x6F           ;   b'01101111'  d'111'  "o"
    MOVWF LRAM_0x3D
LADR_0x03FE
    MOVLW 0x6D           ;   b'01101101'  d'109'  "m"
    MOVWF LRAM_0x3E
    MOVLW 0x65           ;   b'01100101'  d'101'  "e"
LADR_0x0401
    MOVWF LRAM_0x3F
    MOVLW 0x21           ;   b'00100001'  d'033'  "!"
    MOVWF LRAM_0x40
LADR_0x0404
    CLRF LRAM_0x41
    MOVLW 0x01           ;   b'00000001'  d'001'
LADR_0x0406
    MOVWF LRAM_0x5A
    MOVLW 0x05           ;   b'00000101'  d'005'
    MOVWF LRAM_0x5B
    MOVLW 0x39           ;   b'00111001'  d'057'  "9"
    MOVWF LRAM_0x5C
    BSF PCLATH,3         ; !!Bank Program-Page-Select
    CALL LADR_0x0365     ; !!Bank!! 0x0365 - 0x0B65
    BCF PCLATH,3         ; !!Bank Program-Page-Select
    MOVLW '-'           ;   "-"
    MOVWF LRAM_0x39
    MOVLW 'R'           ;   "R"
    MOVWF LRAM_0x3A
    MOVLW 'A'           ;   "A"
    MOVWF LRAM_0x3B
    MOVLW 'D'           ;   "D"
    MOVWF LRAM_0x3C
    MOVLW 'I'           ;   "I"
    MOVWF LRAM_0x3D
    MOVLW 'U'           ;   "U"
    MOVWF LRAM_0x3E
LADR_0x041A
    MOVLW 'M'           ;   "M"
    MOVWF LRAM_0x3F
    MOVLW '9'           ;   "9"
    MOVWF LRAM_0x40
    MOVLW '8'           ;   "8"
    MOVWF LRAM_0x41
    MOVLW '-'           ;   "-"
    MOVWF LRAM_0x42
Después de modificar compilas presionando la tecla F10
 
En PICdisasm, una vez has seleccionado el microcontrolador, cargas el HEX el cual se desensamblara automáticamente. Una vez hecho eso file/save y lo guardas en ASM. De ahí como cualquier archivo que uses en MPLAB o compilador a elección, modificas/añades/borras/etc y luego compilar nuevamente para obtener el HEX.

El PICdisasm no es un editor, solo decompilador.
 
switchxxi didn't, try to see can you disassemble this, just to see (16f88)
he borrado la imagen y comprobar en lcd con puntos , que el cambio a REVEFMLB en mplab , pulse F10 y construir asm , obtener el éxito de construcción , entonces nada cambia , qué extraño , si cualquier pequeño video si se puede , para ver lo que está mal . A recién w 7 instalado.
 

Adjuntos

  • PROGCO.rar
    6.7 KB · Visitas: 5
Última edición:
Ya se por donde puede venir tu problema, según mi intuición me dice que estas cambiando en el comentario pero no en la instrucción en si.

Por ejemplo:

C:
LADR_0x03F3
    MOVLW 0x57           ;   b'01010111'  d'087'  "W"

Si cambias la "W" por otra letra no cambiara nada porque ese es un comentario. Todo después de ";" el compilador lo toma como un comentario, sería el equivalente a "//" en C.

Debes cambiar donde está la instrucción: MOVLW 0x57 al equivalente de la letra que deseas que muestre. Lo bueno que tiene el compilador es que ya esa conversión la hace automáticamente por lo que puedes usar: MOVLW "A" (o la letra que quieras que aparezca).




Resumido:

C:
LADR_0x03F3
    MOVLW 0x57           ;   b'01010111'  d'087'  "W"

Hay que cambiarlo por:

Código:
LADR_0x03F3
    MOVLW "A"           ;   b'01010111'  d'087'  "W"
 
Ahí se ve claramente lo que @switchxxi te explicó.
Estás modificando los comentarios, no el código, por eso nunca lograrás que el mensaje cambie.
Entiende que los comentarios en lenguaje ensamblador van precedidos por ;
En Basic por ' o también ; y REM, en C, C++ y C# por //, Python por #, etc. Cada lenguaje tiene su forma de añadir comentarios al código.
Ejemplo: movlw 'A' ; Comentario
Solo debes modificar lo que sigue después de movlw, o sea: 'A' (Una comilla por letra) o también se puede usar "A" (Dos comillas por letra)
Igualmente se puede usar el decimal, binario o hexadecimal de la letra, al compilador le da igual, mientras se escriba con la sintaxis correcta.

Entiendo que tu idioma no es el español, pero por favor trata de poner más atención a lo que se te explica.
 
Ahí se ve claramente lo que @switchxxi te explicó.
Estás modificando los comentarios, no el código, por eso nunca lograrás que el mensaje cambie.
Entiende que los comentarios en lenguaje ensamblador van precedidos por ;
En Basic por ' o también ; y REM, en C, C++ y C# por //, Python por #, etc. Cada lenguaje tiene su forma de añadir comentarios al código.
Ejemplo: movlw 'A' ; Comentario
Solo debes modificar lo que sigue después de movlw, o sea: 'A' (Una comilla por letra) o también se puede usar "A" (Dos comillas por letra)
Igualmente se puede usar el decimal, binario o hexadecimal de la letra, al compilador le da igual, mientras se escriba con la sintaxis correcta.

Entiendo que tu idioma no es el español, pero por favor trata de poner más atención a lo que se te explica.
!Alén de no ser lo Español y para enpeorar aun mas es Turco , donde hasta lo modo de escribir los caracteres son por demasiadamente raros aca para nosotros !
 
Atrás
Arriba