# Proyecto con lenguaje ensamblador



## voyteck (Oct 30, 2008)

Compañeros tengo que hacer un proyecto usando lenguaje ensamblador como proyecto final de mi materia programacion de sistemas. Entre las opciones habia muchas que eran relacionadas a software pero le plantee al profe hacer algo mas enfocado a mi carrera y que controle hardware ya que me gusta meterle mano a los fierros.
quisiera saber si me pudieran orientar con opciones que pudiera elegir para llevar a cabo pero que no representen alto grado de dificultad ya que apenas empiezo con la materia y en lo que va del curso hare el proyecto, ya saben controlar con los puertos algo.

espero su ayuda comentarios  sugerencias o dudas


----------



## voyteck (Nov 3, 2008)

ninguna sugerencia?

he leido un poco y veo que habria que implementar un pic para hacer la cosa mas interesante, podrian decirme por donde empezar o donde puedo tomar referencias para informaciónrmarme sobre el tema


saludos


----------



## Meta (Nov 3, 2008)

Hola:

Hay muchas sugerencia aquí.

Un cordial saludos.


----------



## voyteck (Nov 6, 2008)

que risa eh, deberias ser comico jaja

gracias por el aporte lo leere para plantear dudas mas especificas.


----------



## Meta (Nov 6, 2008)

*Ensamblador para DOS, Linux y Windows*







Si usted conoce algo de programación, al contemplar este libro y su temática, probablemente se preguntará qué sentido tiene dedicar nuestro tiempo a aprender a programar en un lenguaje, como es el ensamblador, de tan bajo nivel, teniendo hoy a nuestra disposición sofisticadas herramientas de desarrollo rápido que, en minutos, son capaces de generar las aplicaciones más complejas que podamos imaginar.

Una de las respuestas a esta pregunta sería que, programando en ensamblador, nos convertiremos prácticamente en artesanos del desarrollo de programas, ocupándonos de todas las tareas en las que deseemos intervenir personalmente. El tiempo empleado para crear cualquier programa será superior pero, a cambio, obtendremos programas muchísimo más pequeños e infinitamente más rápidos que los que podamos crear con cualquier lenguaje de alto nivel.

La finalidad de este libro es, entre otras, la de servir como guía de aprendizaje para todos aquellos programadores que desean introducirse en el desarrollo a bajo nivel, utilizando el lenguaje ensamblador de los procesadores x86 en la plataforma PC y con los sistemas operativos DOS, Windows y Linux. Para ello se facilitará toda la información, teórica y práctica, llevándole desde un nivel de inicio hasta un nivel medio. El objetivo es hacer el aprendizaje de este lenguaje lo más simple posible, sin entrar en todos los detalles de bajo nivel y todas las posibilidades que, pudiéndose encontrar en materiales de referencia, no resultan totalmente imprescindibles en un principio.

Este libro incluye un CD-ROM donde encontrará todos los recursos necesarios: ensambladores, enlazadores y editores, que serán usados a lo largo del libro en los tres sistemas citados, así como las imágenes utilizadas por el autor en los ejemplos desarrollados a lo largo del libro. 

http://www.fcharte.com/libros/84-415-1482-8.pdf


----------



## voyteck (Nov 10, 2008)

gracias por la ayuda he estado investigando sobre proyectos pero todavia no me decido por uno en especifico.

me podrian dar sugerencias de que pic es el mas barato y sencillo como para iniciarme en esto de la programacion de pics?,  porque hay infinidad de proyectos pero no quiero algo excesivamente complejo y costoso a tal grado que no lo pueda terminar.

saludos


----------



## Meta (Nov 10, 2008)

Hola:

Si es para iniciarte a los PIC, el más recomendado es el *16F84A* por lo fácil que es, el más usado para aprender, donde hay más información sobre él sea en Internet, institutos o universidad e incluso hay un buen libro todo en ensamblador precisamente el *PIC-16F84A* en el cual puedes ver su página en www.pic16f84a.org

Más adelante, como 18 patas son pocas sobre todo si vas a usar LCD, normalmente se lanzan al *16F876A* con 28 patas o las 40 patas del *16F877A*.

Hay otros PIC similares del 16F84A, el 16F627A/628A y el más nuevo *16F88* con más memoria, más funciones, más RAM y EEPROM, etc.

En el libro aprenderás todas las instrucciones de ese PIC de gama media.

Saludos.


----------



## voyteck (Nov 12, 2008)

compañeros me surgio una idea para llevar a cabo y me gustaria que me dijeran el grado de complejidad para ver si me animo o mejor le quito cosas.

bueno viendo por ahi que se puede hacer un velocimetro, pense en la posibilidad de crear el velocimetro pero que pueda programarlo para que a cierta velocidad accione un actuador, por ejemplo como el bugatti veyron que a determinada velocidad el aleron se despliega , bueno algo similar programar una velocidad a la cual mueva algo

que me dicen se puede hacer facilmente o si le estoy jugando al mago?


saludos


----------



## lanselor (Nov 12, 2008)

No es del todo descabellado. Con unos pocos conocimientos de electronica pueden hacerse. Aunque si pretendes montarlo en tu vehiculo puede que necesites más precisión. Con esas cosas no se juega.


----------



## voyteck (Nov 12, 2008)

en verdad no pensaba montar un aleron en mi auto pero fue de ahi donde surgio la idea, lo mio mas bien seria accionar un actuador cualquiera pero dependiendo de la velocidad.

siguiendo con las dudas lo que mas me preocupa seria el codigo fuente que tiene que ser ensamblador, el proyecto que menciono que tal esta en cuanto a codigo? crees que resulte muy engorroso hacerlo en ensamblador?

lo que pasa es que ese es uno de los requerimentos del proyecto.  por otro lado hoy se me ocurrio otra idea, que en ves de que sea velocidad lo que rija mi actuador , que sea la temperatura.  osea el mismo sistema que mencione antes de controlar un actuador pero su referencia seria la temperatura que registre un sensor.
por ultimo me podrian dar comentarios de una comparativa de complejidad y precio entre los dos proyectos?


disculpen si soy tan pregunton pero es que si ando medio perdido.

saludos


----------



## lanselor (Nov 17, 2008)

No vi antes tu pregunta.

Con temperatura... Seria relativamente más sencillo, ya que por internet hay varios proyectos de un termometro, algunos ya vienen con el codigo.

Programar con ensamblador es casi siempre, relativamente complejo. En general, programar pic u otros micros. Los recursos son muy limitados y no podemos excedernos gastando recursos.

Lo complejo del codigo, seria realizar el algoritmo de control del velocimetro. Para saber esactamente a que velocidad estás llendo. (Suponiendo que el acelerometro, te dé resultados Velocidad-Tensión).  Ya que tendrias que hacer que el microcontrolador en cuestión interpretase estos datos, para eso yo usaria una tabla dentro del pic. 

Comparativa, complejidad precio. Pues no puedo darte un numero esacto. Pero, si me atreveria a aventurar que lo más caro seria el acelerometro. Un pic sencillo y economico 16f84 o 16F873, no cuestan demasiado. Y tambien dependerá de el circuito que pretendas gobernar con el pic y el acabado que quieras darle. Yo no creo que salga más allá de 30 o 40 €.


----------



## voyteck (Nov 19, 2008)

gracias por tus comentarios lanselor en verdad que me son de mucha ayuda ya que estoy entrando en algo totalmente nuevo para mi.

con respecto al proyecto como dices lo de la velocidad seria mas complicado y no quiero meterme en problemas por tratar de impresionar al profe, ya que tengo que entregar proyectos finales para otras materia tambien.
he optado por hacer el medidor de temperatura y que este accione un actuador de acuerdo a un parametro que yo le programe previamente.  por ejemplo que a los 80 °C mueva una compuerta o algo asi.

no se que me recomiendes en cuanto al proyecto, he visto algunos y manejan otros pics, en lo personal quisiera apegarme al pic 16f84 que segun me dicen otros miembros es el mas sencillo y barato como para iniciarse.  crees que pueda ser posible el proyecto del termometro asi usando este pic?

a y otra cosa no se que tanto problema represente conectar un display mas bien un lcd a este pic para desplegar la temperatura, crees que aumente mucho la complejidad? solo seria poner la temperatura en pantalla.


gracias por todo


----------



## Gradmaster (Nov 20, 2008)

El de temperatura esta excelente para empezar.
y lo puedes hacer con ese pic (16f84a)

En donde vivo cuesta $US 4.00 y tiene lo suficiente para multiples aplicaciones.

Lo que no se es que si ya cuentas con un programador o pienzas fabricarlo?

el programa que puedes usar es el MPLab para compilar tu programa y el IC-prog para cargarlo al pic

el Mplab lo bajas de la pagina de microchip y el ic-prog de su propia pagina los dos son gratuitos.

en relacion a la programacion despues hablamos cuando tengas la lista de elementos que mencione.

exito.


----------



## Gradmaster (Nov 22, 2008)

Viendo costo beneficio te conviene comprar un pic que traiga por lo menos un ADC incluido, sin embargo, se puede fabricar un ADC con el pic 16f84a, pero es mas trabajo.
Hay dos formas que eh provado y almenos funcionan lo sufivcientemente bien para practicar.


las dos se basan en la señal de comparacion por aproximaciones sucesivas.

la primera es hacer un contador de 8 bits con el puerto b, cada ves que avance un nuemro en el contador deberas escanear una entrada del puerto a.

la segunda que aun estoy refinando es la de generar una señal de PWM y pasarla por un filtro actovo de paso bajo a 1Hz de frecuencia de corte para tener una señal limpia a comparar.

la primera consiste en hacer un contador y usar ese contador con un DAC de 8 bits o uno hecho con resistencias el inconveniente de hacerlo con resistencias es no hay valores de 2a la x para cumplir con los lineamientos necesario ademas creo que se vuelve mas complicado hacer arreglos para fabricar tu el DAC por lo que te recomiendo que no lo fabrique y mejor lo compres.
la señal que te dara el contador es una rampa la cual podras comparar con un opam741, con relacion a la señal de entrada de tu amplificador de intrumentacion  de donde proviene la señal de sensor de temperatura.

para el  sensor de temperatura te recomiendo que uses el LM35 que es un transistor que te provee de 10mv/ºC lo que te asegura cierta exactitud en la medicion.

en relacion con la segunda opcion de ADC, supone que debes hacer mediante programacion un PWM que te de la cantidad de bits que requieras, mas que bits se podria decir que son divisiones por volt, despues este PWM deberas pasarlo por un filtro pasa bajos para gerenar una señal estable de tension para poderla comparar con la señal de entrada y despues la salida del comparador llevarla a  una entrada del puerto A que hara una interrupcion de programa para asignarle un valor de tension.

la segunda opcion como vez es mas compleja, sin embargo te da la posibilidad de crear las divisiones o resolucion que tu necesites, asi no estaras ligado a un numero de bits y te reduce el numero de conversiones que deves hacer para tener el valor de tu lectura.

se que mis explicaciones no son muy claras, solo te estoy dando una idea general, es necesario que investigues por tu cuenta, no es por ser egoista pero necesitamos ver que tanto interez tienes en realizar tus proyectos y no solo el que te proporcionemos todo para que tu llegues y armes.

espero que la explicacion te aclare ciertas dudas, sino sigue preguntando.

lo que te mencione arriba es mas sencillo, que busques un pic con un adc incluido, te facilita desde el armado hasta la programacion, pero si te intereza ver todo el desarrollo desde cero, te podre proporcionar mas información.

exito.


----------



## Meta (Nov 22, 2008)

Gradmaster dijo:
			
		

> Viendo costo beneficio te conviene comprar un pic que traiga por lo menos un ADC incluido, sin embargo, se puede fabricar un ADC con el pic 16f84a, pero es mas trabajo.



El nuevo sustituto directo del 16F84A, ahora es el *16F88*, antes 16F876A y 16F627 y 16F628. Son de 10 bit, si quieres algo mejor aparte ya se puede usar el *PCF8591*, ADC y DAC en bus I2C.


----------



## Gradmaster (Nov 22, 2008)

Muy buena referencia camarada Meta, los checare.


----------



## betois3 (Nov 23, 2008)

Hola voyteck, un buen velocimetro es mucho más caro que un sensor de temperatura, yo te recomiendo que mejor hagas el proyecto con la temperatura, aunque si ocupas un sensor como el lm35, la salida es analógica, por lo que tendrias que usar un convertidor analogico digital si ocupas el 16f84a o ocupar el cad integrado en el 16f877, podrias ocupar un display para marcar la temperatura, y si tienes los conocimientos necesarios de control, podrias controlar la velocidad de un ventilador con PID, pero si no podrias simplemente prender o apagar un ventilador dependiendo de la temperatura, ya se que esto lo puedes hacer unicamente con amplificador operacionales, pero si tienes que programar en ensamblador, tambien se puede.


----------



## voyteck (Nov 26, 2008)

agradezco sus comentarios y por lo que dicen y lo que he indagado seria mas complejo ocupar el 16f84 porque mi señal de entrada es analogica y este solo procesa digitales estoy en lo correcto?

veo que varios proyectos incorporan el 16f877 porque ya tiene el convertidor analogico digital integrado asi que supongo que sera mas facil ocupar este modelo de pic y en combinacion con el lm35.

les comento que el programador lo tienen en los laboratorios de electronica de la escuela y el software que mencionan ya lo he descargado.

bueno ahora el proyecto quedaria asi:          pic 16f877  + lm35   verdad?


entonces ocupo el 16f877 ? es que no se de modelos de pic osea como van los grados segun entiendo el 16f84 es el mas basico pero de ahi no se cual siga que ya incorpore el conversor analogico digital y ademas que sea facil de conseguir y a un precio razonable.

que me dicen?


----------



## betois3 (Nov 26, 2008)

pues el 16f877 es como el hermano grande del 16f84 es un poco más caro pero vale la pena, en cuanto a código, es exactamente el mismo que el 16f84.


----------



## voyteck (Dic 14, 2008)

compañeros una disculpa por ausentarme tanto tiempo pero la verdad que la universidad me ha absorbido bastante estos ultimos dias.

ya he encargado el pic 16f877 y ahora en las vacaciones tengo planeado elaborar el codigo de mi programa para que regresando de vacaciones solo lo cargue al pic y listo.

con respecto a esto tengo una serie de preguntas:

descargue el mplab v8.15 que segun entendi si es compatible con windows vista, pero que me dicen ustedes si funciona bien o mejor descargo el 8.10 y lo ocupo en una pc con xp?

quisiera que me corrigieran si estoy equivocado, pero segun he entendido el mplab te permite crear y ejecutar el codigo que hayas hecho en lenguaje ensamblador y ya con esto darte cuenta si funcionara al cargarselo a tu pic? la verdad quisiera simularlo antes de cargarlo al pic pues no me gustaria quemarlo.


por ultimo, yo estoy llevando una materia de lenguaje ensamblador pero quisiera saber donde puedo encontrar los comandos suficientes para llevar a cabo mi proyecto, en el foro tienen varios tutoriales, alguno en especial que me recomienden para el 16f877?

saludos y gracias


----------



## Gradmaster (Dic 15, 2008)

Consigue los que dice pic-school te dan ejemplos de C de CCS y ensamblador a mi me ayudaron bastante.

estan aqui en el foro.

y en relacion a windows Vista la verdad en lo personal no me gusta por que ocupa muchos recursos, sin embargo no se como funciona esa version del MPlab.

y es cierto te permite simular tu programa, cuesta un poco de trabajo entender como funciona la simulacion pero es una excelente herramienta.

exito.

si necesitas el codigo ya lo tengo, auqnque prefiero que y tu lo hagas.


----------



## voyteck (Dic 16, 2008)

agradezco tu ayuda Gradmaster y aqui vengo de nuevo con otra jejej, sucede que en otro post lei algo de pedir pics de muestra en la pagina de microchip, total que ya se como hacerlo pero al seleccionar el pic 16f877 me aparece un listado de varios modelos del pic 16f877, quisiera saber cual es el que tengo que ordenar, la verdad que pense que solo era el modelo y listo, pero por lo que vi tienen otros aspectos.

desearia que me dijeran cual es el modelo en especifico que utilizaria para mi proyecto.

saludos


----------



## sangreaztk (Dic 16, 2008)

Para usarlos en un protoboard, pide los PDIP, microchip aun sigue enviando muestras gratis pero los gastos de envío corren por tu cuenta, eso fue la ultima vez que cheque su pagina, todo por la maldita crisis.

Buena Vibra!


----------



## Gradmaster (Dic 16, 2008)

si como omenta son de tipo PDIP, y el modelo puedes usar el 16f877 u 16f877A basicamente son lo mismo.


----------



## Meta (Dic 16, 2008)

El sustituto del 16F877 y 16F877A es el 16F887 con la diferencia de que tiene oscilador interno y externo, usted elige. mientras el 16F887 sólo externo.


----------



## voyteck (Ene 7, 2009)

gracias por su ayuda compañeros he estado leeyendo varios post del pic y ya pienso pedir mi pic el 16f877A que cuesta $85 pesos pero ahora viene la cuestion del display o lcd segun entendi con el pic ya se tienen salidas especificas para esto pero desconozco un modelo comercial de lcd que pueda ocupar, que sea barato y comun para que lo pueda conseguir por estos lugares jejje. el otro dia pregunte en una electronica y me mostraron uno que segun funcionaba bien con el 16f877 y lo daban en $150 pesos. pero no me supieron decir el modelo solo que segun si me servia.


por cierto si tienen codigos en ensamblador sobre temperatura lo agradeceria para tener mas de donde sacar ideas.


saludos


----------



## sangreaztk (Ene 7, 2009)

Pss yo tengo un LCD de 16x2 caracteres, es un 'generico' me costo como unos 30 varos (2.5 U$A), pero según cualquier LCD compatible con el controlador Hitachi 44780 te servirá (eso creo, espero no estar diciendo pendejadas).
Eso de que el 16f877 tenga salidas/entradas especificas para LCD, pss como que no tiene importancia, en un PIC tu puedes decidir cuales pines sean de entrada o de salida y para que los ocupas, aunque claro algunos pines tienen características extras.
Por algún rincón de mi HD tengo códigos del uso del LCD, deja los busco y veo que pex, igual tengo te temperatura. Por lo mientras dejo un documento que me encontré en Internet muy chido sobre el protocolo del LCD.


----------



## voyteck (Ene 11, 2009)

bros hay alguien que me pueda apoyar brindandome codigos en ensamblador de los mas sencillos que tengan pero que ya hayan utilizado, quiero decir que funcionen de temperatura o algo asi leve porque ya tengo algo de conocimientos sobre los pics de los links que me han dado y dos o tres articulos interesantes que he encontrado, pero ahora que se mas o menos como va la cosa no tengo idea de como iniciar.

ya tengo el ic prog y el mplab, estoy por pedir mi pic 16f877a y mi lcd con backlight azul 16x2, ya lei el tutorial del icprog que me pasaron por ahi, tambien un pdf de un kit para enseñarte a programar pics que esta en ingles, tambien el tutorial del compañero snakewheather. osea ya me quedo claro que es un pic como funciona y mas o menos lo de las instrucciones, pero no tengo idea de como iniciar un codigo osea cuales son los requisitos que tiene que cumplir.

a y con respecto al proyecto de mi termometro, que otros componentes importantes necesito osea aparte del pic 16f877 y mi lcd, es necesario el reloj que dicen o tambien llamado cristal?


saludos


----------



## sangreaztk (Feb 14, 2009)

Te paso el código ensamblador de un termómetro digital de una practica escolar, no está muy comentada pero espero que puedas entenderle. Aunque no me acuerdo si el código funciona adecuadamente es que no recuerdo si le modifique algo.

Buena Vibra!


----------

