Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.
Programa de rotacion de leds no funciona
 | #1 Programa de rotacion de leds no funciona |  |
|
rayko
| Ubicación: españa |
| Registrado: 20 Mar 2008 |
| Mensajes: 46 |
|
 |
| Publicado: Sab Ago 23, 2008 10:08 am |
|
|
 |
 |
hola,quisiera que me dijerais donde esta el fallo en este programa que he hecho,no me va,solo enciende el primer led pero de rotar nada.
;*********************************************
rotar equ 0x0a
PORTB equ 0x06
STATUS equ 0x03
;***********************************************
reset org 0x00;
goto Inicio;
Inicio org 0x05;
bsf STATUS,RP0;
clrf PORTB;
bcf STATUS,RP0;
;**********************************************
Principal movlw 0x01 ;
movwf rotar;
rotando movf rotar,w;
movwf PORTB;
call Retardo_1s;
rlf rotar,1;
btfss rotar,6;
goto rotando;
goto Principal;
|
|
|
|
Chico3001
| Ubicación: Mexico, D.F. |
| Registrado: 09 Jul 2006 |
| Mensajes: 484 |
|
 |
| Publicado: Sab Ago 23, 2008 2:02 pm |
|
|
 |
 |
El programa se ve bien... no recuerdo si en la instruccion rlf rotar,1 el "1" quiere decir f, si ese es el caso no debes tener problemas
Verifica tu rubrutina de retardo de 1S (Retardo_1s) posiblemente es demasiado lenta, demasiado rapida o esta causando que se atasque el microcontrolador
|
|
|
|
Meta
| Ubicación: 16F84A |
| Registrado: 20 Ene 2008 |
| Mensajes: 1086 |
|
 |
| Publicado: Sab Ago 23, 2008 3:39 pm |
|
|
 |
 |
Hola, es posible que te falte definir la variable
rotar, con la instruccion equ para que tenga un lugar en la memoria
ejemplo rotar equ 0x20
esto hace que el programa busque los valores de "rotar" en la posicion de memoria 0x20
Saludos
|
|
|
|
rayko
| Ubicación: españa |
| Registrado: 20 Mar 2008 |
| Mensajes: 46 |
|
 |
| Publicado: Sab Ago 23, 2008 6:36 pm |
|
|
 |
 |
hola chico 3001,el 1 se refiere al registro f y la subrutina de retardo la he comprobado en otros programas y va perfecta,tambien he cambiado de valor a la variable rotar como me dijo el amigo meta pero tampoco va y el micro no es ya que le he grabado otros programas y va bueno ,no se que le pasa ...........saludos.
|
|
|
|
Chico3001
| Ubicación: Mexico, D.F. |
| Registrado: 09 Jul 2006 |
| Mensajes: 484 |
|
 |
| Publicado: Sab Ago 23, 2008 10:39 pm |
|
|
 |
 |
Meta tiene razon.. la variable rotar esta mal declarada.. la estas declarando en la direccion 0Ah y dependiendo del tipo de PIC la RAM de usuario va apartir de la direccion 20h...
que PIC es el que usas?
|
|
|
|
rayko
| Ubicación: españa |
| Registrado: 20 Mar 2008 |
| Mensajes: 46 |
|
 |
| Publicado: Dom Ago 24, 2008 3:56 am |
|
|
 |
 |
pic 16f84a
|
|
|
|
andresd0
| Ubicación: COLOMBIA |
| Registrado: 12 Ago 2008 |
| Mensajes: 6 |
|
 |
| Publicado: Dom Ago 24, 2008 1:06 pm |
|
|
 |
 |
e probado algo similar simulando en proteus, aunque inicia bien al llegar al 4 bit simplemente se pierde el valor quedado el registro en ceros (utilizo un 628 es mejor qu el 84)
|
|
|
|
Meta
| Ubicación: 16F84A |
| Registrado: 20 Ene 2008 |
| Mensajes: 1086 |
|
 |
| Publicado: Dom Ago 24, 2008 2:11 pm |
|
|
 |
 |
andresd0 escribió:
e probado algo similar simulando en proteus, aunque inicia bien al llegar al 4 bit simplemente se pierde el valor quedado el registro en ceros (utilizo un 628 es mejor qu el 84)
Cuando acabe con el libro utilizaré el 16F88 que es mejor que el 16F628A que por eso lo actualizaron.
|
|
|
|
Vick
| Ubicación: México |
| Registrado: 12 Ene 2008 |
| Mensajes: 92 |
|
 |
| Publicado: Dom Ago 24, 2008 4:10 pm |
|
|
 |
 |
El primer error es que estas definiendo rotar en la posición 0x0a y esa dirección corrsponde al registro PCLATH, la memoria de datos de usuario comienza en la dirección 0x0c.
|
|
|
 | Foros de Electronica |  |
|
 |