Autor Tema: Aprende Atmel y arquitectura 8051  (Leído 29142 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Gokuden

  • PIC16
  • ***
  • Mensajes: 100
Aprende Atmel y arquitectura 8051
« en: 08 de Abril de 2005, 11:39:00 »
hola.

aqui les dejo un rar con un completo paquete en español de funcionamiento e instrucciones, registros de estos micros.



les recomiendo que si desean comenzar, usen un 89c51 o 52. si desean tambien, puedo poner aqui una introduccion de como se programa para que vean como se programa ... junto con un compilador...

Edición (link roto)
http://usuarios.lycos.es/gokudenelavismo/temporal/pdf51.rar
« Última modificación: 16 de Noviembre de 2008, 23:27:31 por migsantiago »

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: aprende atmel y arquitectura 8051
« Respuesta #1 en: 08 de Abril de 2005, 12:53:00 »
Estaría interesante Gokuden.
Algún esquemilla de un programador sencillito?
Por cierto estuve buscando algún sitio donde poder comprar un AT89C51SND.Uno de esos q implementa usb,Compact flash y demas...pero no he conseguido na de na.
Ah,otra cosa,el enlace que pusiste no me funciona
Saludos

Desconectado Gokuden

  • PIC16
  • ***
  • Mensajes: 100
RE: aprende atmel y arquitectura 8051
« Respuesta #2 en: 08 de Abril de 2005, 18:06:00 »
ya arregle el link, si sigue dando problemas, me avisan.

primero comenzemos con algo basico.

estos micro controladores son famosos, economicos y versatiles. ESCUCHEN, tenganlos por seguro que si tienen un micro de estos, el prgoramador aprendera sa usarlo, es realmente facil.


BREVE INTRODUCCION

este micro tiene 4 ptos como un 877, no trae adc, ni i2c, ni captura, trae solo uart.
y no trabaja a 4 ciclos por instruccion como microchip sino a 12. exactamente el trabaja a 1microsegundo por instruccion si le colocas un cristal e 11,0529mhz, que es bastante comercial.  Chica



otra cosa es que no se configuran puertos, es decir, si deseas sacar datos por el saca y si deseas leer lee, es bidireccional en tiempo de ejecucion.

con respecto a las interrupciones, tiene igual interrupciones para cada modulo, como timers, uart, etc etc pero cada uno apunta a un vector diferente, no como en microchip que todos apuntan a 04h, estos apuntan diferente, asi que puedes hacer rutinas de interrupcion diferentes para cada una. pero me imagino que tendran una duda. ?que pasa si esta interrumpido y viene otra interrupcion?, el tiene un registro donde tu le puedes dar mas prioridad a una que a otra, y si estas en una interrupcion y se activa la de mayor prioridad, entonces se va a la otra, se ejecuta y regresa a la que estaba realizando. ^^. pero si todas tienen la misma jerarquia, pos la interrupcion que se haga mientras este haciendo una no se ejecuta, se pierde Enfurruñado.



ADENTREMOS ALGO A LA PROGRAMACION.

los puertos se llaman p0, p1,p2, y p3 a diferencia de porta,portb,etc etc.

con respecto a las instrucciones. estan en el pdf que les di arriba, en un capitulo, pero para decirles una de las mas utilizadas en microchips serian.

MICROCHIP    VS    8051

CALL                      LCALL O ACALL
GOTO                     JMP    O  LJMP


COSAS IMPORTANTISIMA.

porque ciertas instrucciones se les pone una L antes. es porque  s i tu programa es muy largo, las instrucciones sin L como esas llaman a rutinas que esten 128 lineas por debajo o per encima a ella, en cambio con la L antes, puedes abarcar toda la memoria del micro. mejor usa siempre L, lo que pasa es que esta instruccion te ocupa dos  espacios en vez de 1 como las demas.

este mciro funciona como microcontrolador, como microchip o como microprocesador, asi que la patita EA, debe ir a tierra creo, voy a revisar y corregire si no es asi.

este micro no tiene PWR, o power on reset de microchip, asi que debes resetearlo manualmente despues de haberlo encendido, o le pones una resistencia de 10k a tierra, y en esa misma patita un condensador de 10micros F. a vcc. pero el lado negativo del condensador a Vcc. ya que el reset es inverso.

con respecto al direccionamiento, es micro usa un direccionamiento diferente, usa un registro llamado DPTR, este registro es de 16 bits y puedes usarlo directo, meter valores de 16bits en el, pero para leerlo, el tiene un Dptr bajo y un dptr alto ya que este micro es de 8bits. QUE SIGNIFICA ESE DIRECCIONAMIENTO. significa que no usa el cochino PCL de microchip, tienes dos bancos de registro, ni paginas, todo esta en una misma pagina y  dos bancos. programas para adelante y no le pares a nada ^^.



Desconectado Gokuden

  • PIC16
  • ***
  • Mensajes: 100
RE: aprende atmel y arquitectura 8051
« Respuesta #3 en: 08 de Abril de 2005, 18:58:00 »
PRIMEROS CONOCIMIENTOS DE SUS CARACTERISTICAS. SEGUNDA PARTE ANTES DE HACER UN PROGRAMA.


INTERRUPCIONES.

tiene varias interrupciones, y como dije antes, un vector de interrupcion diferente.
que son vectores de interrpcion? es la localidad de memoria a donde el micro se dirije cuando se acontece la interrupcion deseada y previamente activada.

son estos:

INTERRUPCION                                                                VECTOR A QUE APUNTA.
1. interrupcion externa 0 (IE0)                                                        3h
2. interrupcion timer0   (TF0)                                                           BH
3. interrupcion externa 1 (IE1)                                                       13h
4. interrupcion timer 1 (TF1)                                                           1BH
5. R1 y T1, interrupcion serial                                                         23H
 y hay un timer 2 que es para el 89c52.



DIFERENCIAS ENTRE 89C51 Y 89C52

son iguales, si tienes un programa en uno, puedes programarlo en el otro, colocarlo en tu circuito sin alterar nada y te funcionara. pero el 89c52 trae un timer2 y trae 8k de memoria en comparacion a los 4k que trae el 51.


OTRAS COSA.

ete micro tiene unos registros de ram, que tienen nombre, que son r0,r1,r2... a r7, puedes usarlos cuando quieras, son ram que trae el micro pero ya tienen nombre.


REGISTROS MAS USADOS.

esta el famoso status qe ahora no se usa para nada. a menos que vayas a usar el carry. ya no se usa el Z, no existe, ya que hay instrucciones para comparar directo y no con una xorwf o xorlw.





registro de interrupcion.



y el de priroridades pero este no le paren mucho


Desconectado Gokuden

  • PIC16
  • ***
  • Mensajes: 100
RE: aprende atmel y arquitectura 8051
« Respuesta #4 en: 08 de Abril de 2005, 19:09:00 »
TIMERS


El 8051 tiene 2 timer/contadores de 16 bits cada uno, llamados Timer 0 y
el Timer 1 respectivamente. Ambos pueden ser configurados para operar como
temporizadores (timers) o como contadores (counters).

Cuando se trabaja como contador, el registro interno del contador, es incrementado cada vez que existe una transición negativa (de 1 a 0) por la línea de entrada correspondiente a T0 ó T1. En cambio, cuando funciona como temporizador "Timer", el registro es incrementado cada 12 periodos de oscilación es decir su frecuencia de conteo es 1/12 de la frecuencia del oscilador.

En el momento que los bits del registro del contador pasan de todos 1"s a
todos 0"s, se activa la línea de interrupción interna correspondiente a TF0 o TF1,
generándose, (si ha sido permitida) una interrupción.





REGISTRO DE MODO DE CONTROL DEL TIMER/CONTADOR

Este registro permite especificar si se van a trabajar como Temporizadores
(Timers) o como Contadores (Counters), los puertos denominados Timer 0 y Timer 1. Existen 4 modos de trabajo para estos puertos




COSAS IMPORTATES 2.

otra cosa que deben saber es que tu puedes levantar el bit o bajar el bit de un registro de forma directa.

ejemplo.

el bcf o bsf de microchip aqui con clr y setb respectivamente.
este ejemplo es como si usaremos el status de microchip. si deseamos poner en alto el bit RP0, ponemos


SETB     RPO         en vez de     BSF    STATUS,RP0














Desconectado Gokuden

  • PIC16
  • ***
  • Mensajes: 100
RE: aprende atmel y arquitectura 8051
« Respuesta #5 en: 08 de Abril de 2005, 19:39:00 »

COSAS ANTES DE HACER EL PROGRAMA.


este microcontrolador no controla nada de corriente en sus salidas, asi que no podran prender ni un led, pueden quemar el puerto. asi que deben usar un latch, buffer digital, o un amplificador operacional en modo seguidor para ello. pero para informacion y otras cosas pueden hacerlo directo. la corriente de cada pto es de menos de 1mA.



el acumulador se llama A, hay registros ram con nombres libres de uso como B, r1 a r7, y puedes mover datos directo de un registro a otro

SOFTWARE

para programar usaremos el block de notas, y como compilador el ASM52, buscalo en google. para hacer los retardos o delays usaremos el PICLOOPS, el cual este posee la capacidad de tambien hacer retardos para 8051.




PRENDAMOS Y APAGUEMOS UN LED

PONDRE EL PROGRAMA Y EXPLICARE LINEA A LINEA.








$MOD51               ;identificador de programa, obligatorio.            
;primero programa
;POWERED by:
;   Gokuden
;****************DECLARACION DE REGISTROS********************
   LED   BIT   P1.0      
   DATOL   EQU   20H   
; decimos qe el bit 0 del Pto1,      se llamara LED, con la pseudoinstruccion BIT   
; asi se declara una variable, igual que microchip. desde 20h com el 16f84a
   
;************************ VECTORES**************************
   ORG   0000H   ;comenzaremos a programar desde la 0h, obligatorio
   LJMP   START   ; cuando el micro arranca, apunta a 00000h   MOV   SP,#2FH;stack pointer   es el stack, dejalo asi
   
;*******************CUERPO**************************
START:   SETB   P1.0      
                LCALL   RET1S            
                CLR   P1.0      
   LCALL   RET1S         
   JMP   START         


; PONEMOS EN ALTO EL BIT P1.0 ......ES COMO EL BSF PORTB,0.
; LLAMAMOS A LA RUTINA DE 1SEGUNDO DE RETARDO
; PONEMOS EN BAJO EL BIT P1.0....... ES COMO EL BCF PORTB,0
; LLAMAMOS LA RUTINA DE 1 SEGUNDO
; VAMOS A START DE NUEVO, COMO EL GOTO   START .



;**********************************************************   ; ESTO ES RUTINA DE 1SEGUNDO. SE HACE CON PICLOOPS.
;       RETARDO 1 SEGUNDO            
;****************************************************************
RET1S:   MOV   R1,#16      
   MOV   R2,#71      
   MOV   R3,#255
LOOP:   DJNZ   R3,$      
   DJNZ   R2,LOOP      
   DJNZ   R1,LOOP
   RET


; MOVEMOS EL VALOR EN DECIMAL A EL REGISTRO R1, FIJENSE QUE SE MUEVE DIRECTO, Y NO COM EN MICROCHIP QUE PRIMERO A W  LUEGO A EL REGISTRO
;Y NO COM EN MICROCHIP QUE PRIMERO A W  LUEGO A EL REGISTRO
; DECREMENTA Y SALTA SI NO ES CERO EL VALOR.
; DECREMENTA Y SALTA SI NO ES CERO


END











disculpen que no puse los comentarios al lado pero se descuadraba el programa.
luego pondre otro programa mas complicado con mas cosas. no eexplico las instrucciones porque son muchas pero por eso ire haciendo programas  y las iran viendo en ejecucion.  

pero si en realidad no van a dejar esto solo en el pc y van a comprar el micro y van a programrarlo ya probar. pos me mandan un email a elavismo@gmail.com o a mi msn supergogeta_4@hotmail.com, o por aqui mismo mejor, y le detallo a la perfeccion cada detalle , cada paso, y que tengan duda.



SE QUE NO ES FACIL ARRANCAR ASI COMO ASI Y QUE LO QUE ESCRIBI NO ES SUFICIENTE PERO ASI EMPESAREMOS, LOS QUE COMPREN Y TENGAN COMO PROGRAMARLOS, ME DICEN, Y LO HAREMOS DETALLADAMENTE.


Desconectado hjauregui

  • PIC10
  • *
  • Mensajes: 3
RE: aprende atmel y arquitectura 8051
« Respuesta #6 en: 05 de Mayo de 2005, 19:12:00 »
Amigo no puedo acceder al archivo, serias tan amable y me lo podrías enviar, o me das otra opción para descargarlo.
harry_jauregui@hotmail.com


Gracias por tu atención

Desconectado sergius209

  • PIC10
  • *
  • Mensajes: 1
RE: aprende atmel y arquitectura 8051
« Respuesta #7 en: 24 de Mayo de 2005, 22:34:00 »
Amigo necesito vajar el archico q pusiste pero no se puede, porfa no se si tu me lo podrias enviar a mi mail q es.. serfran@gmail.com, te quedare muy agradecido.

Desconectado electronando

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 427
RE: aprende atmel y arquitectura 8051
« Respuesta #8 en: 27 de Mayo de 2005, 23:20:00 »
que tal gokuden la verdad sabes me esta llamando la atencion pues estos micros 8051 estan regalados pero lo que no se es si son memoria flash ,que tal son los grabadores si son faciles de fabricar como para los pic el compilador de donde lo consiguo y la verdad el link que dejastes ya no funciona creo ,pero sobre todo queria saber lo del grabado del micro o es que ya hay una version flash del 8051 o de frente nos vamos para lo de atmel que parece que si es flash y e visto un compilador en c de esos bichos bueno hasta luegolocolocolocoRebotado

Desconectado Gokuden

  • PIC16
  • ***
  • Mensajes: 100
RE: aprende atmel y arquitectura 8051
« Respuesta #9 en: 31 de Mayo de 2005, 15:59:00 »
el micro que uso de esa arquitectura es el conocido at89c51 y at89c52 el cual son iguales pero uno con mas memoria. si son flash. y los programadores son exageradamentes sencillos. uno mas que otros..

el compilador es el asm52. buscalo en google pero es para assembler..

Desconectado xerex

  • PIC16
  • ***
  • Mensajes: 138
    • Mi servidor, mi casa.
RE: aprende atmel y arquitectura 8051
« Respuesta #10 en: 03 de Junio de 2005, 14:09:00 »
hola xavales, ya lo he comentado en otro post, los micros AT89C5X tienen memoria flash pero necesitan la programacion en paralelo (complicado de hacer....), Sin embargo los AT89S5X se pueden programar via SPI (3 lineas ;D, osea como los AT90SXX ) buscad en la red ISP FLASH PROGRAMMER y encontrareis tanto el HW como el SW para programarlos via puerto Paralelo.  En cuanto al compilador, os recomiendo que paseis del ensamble (no es que no me guste pero no se pueden hacer muchas cosas complicadas sin dejarse los sesos), os recomiendo el Keil C para programar en lenguaje C (la version DEMO te permite compilar hasta 2k y no tiene las librerias para trabajar con numeros flotantes).

Un saludo.XeReX
Es falso eso de que el saber no ocupa lugar....


No se donde poner tanto libro.... :P

Desconectado Gokuden

  • PIC16
  • ***
  • Mensajes: 100
RE: aprende atmel y arquitectura 8051
« Respuesta #11 en: 03 de Junio de 2005, 14:48:00 »
aqui esta un programador sencillo para la familia 51 y 51.

Aqui

Desconectado xerex

  • PIC16
  • ***
  • Mensajes: 138
    • Mi servidor, mi casa.
RE: aprende atmel y arquitectura 8051
« Respuesta #12 en: 04 de Junio de 2005, 02:53:00 »
Hola, la pagina a la que apuntas tiene un programador, yo lo hice y el resultado fue negativo... no creo que me equivocara a la hora de hacer la placa y de soldar los componentes..... en este otro enlace (de la misma pagina)

http://chaokhun.kmitl.ac.th/~kswichit/IspPgm30a/ISP-Pgm30a.html

viene otro programador (el que yo comentaba) con un integrado CMOS 74HC745, este es el que yo utilizo y funciona perfectamente. Un saludo.
Es falso eso de que el saber no ocupa lugar....


No se donde poner tanto libro.... :P

Desconectado electronando

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 427
RE: aprende atmel y arquitectura 8051
« Respuesta #13 en: 05 de Junio de 2005, 12:53:00 »
Gracias gente pues de solo pic no vive el hombre amenAngelito

Desconectado beto_mmf

  • PIC10
  • *
  • Mensajes: 5
RE: aprende atmel y arquitectura 8051
« Respuesta #14 en: 06 de Julio de 2005, 01:56:00 »
Fumador hola amigos, gracias por sus respuestas son muy amables
Tengo una duda:
El programador "ISP Programer"  puede programar o no la serie AT89C5X por favor aclaren eso.
En cuanto al integrado CMOS 74HC745 que esta en el esquematico del "ISP Programer"
me parece muy buena la idea de su inclusion  porque ademas aisla al Puerto paralelo del PC.

bueno en todo caso aqui les envio una pagina que encontre:
para grabar la seriel AT89C5X no es tan sencillo pero funciona
ya lo probe, y si encuentran un grabador mas sencillo avisen please.

http://usuarios.lycos.es/tervenet/grabador8051.htm



 

anything