Programa asm o c para pic16f84a para control motor pap

Hola, he copiado la seccion avance del programa donde esta la unica instruccion del tema rtcc:

;****************************************AVANCE********************************
; SOLO SE SALE CON STOP
;******************************************************************************

AVANCE
;CLRF RTCC ¿Qué es RTCC? Si lo djo, da error.
NOP
NOP
BCF INTCON, INT0IF
BSF INTCON, GIE
BSF INTCON, INT0IE

QUEDA
BTFSS PORTA, 3
GOTO PARA
GOTO QUEDA
asi es como la tengo en texto y solo sale en esta ocasion, que yo haya visto. como se sabe si esta en 0 o 1? como se cambia si no veo como esta?
por otro lado editando el original, veo que tiene esta linea:

RTCC EQU 0X01
por lo que voy pillando. creo que es la asignacion de direccion de memoria que se le da a rtcc. pero no veo cual es el equivalente en el del 16f88.

otra cosilla. sabeis si el curso de Diseño de componentes electronicos se puede hacer online? si el lunes aruevo, me gustaria entrar en materia al fin.
 
ok gracias. seguro que las habra. pero si puedo no las hago. me encanta resolver las dudas solo. es como hacer crucigramas sin mirar las soluciones de la ultima pagina. lo unico que cuando no sale pues...ya me entendeis, seguro que no se os ha olvidado cuando enpezais en algo desde cero. de la misma manera si puedo ayudaros en algo. astronomia, photoshop, algo de solidworks. etc. solo teneis que pedirlo.
 
Hola:

Si miras la hoja de datos del PIC16F84A y el PIC16F88. En el 16F84A no aparece nada del RTCC ni el realmente llamado RTC. En el 16F88 aparecen varias páginas del RTC, no RTCC.

En el 16F88, página 73.
7.0 TIMER1 MODULE
The Timer1 module is a 16-bit timer/counter consisting
of two 8-bit registers (TMR1H and TMR1L) which are
readable and writable. The TMR1 register pair
(TMR1H:TMR1L) increments from 0000h to FFFFh
and rolls over to 0000h. The TMR1 interrupt, if enabled,
is generated on overflow which is latched in interrupt
flag bit, TMR1IF (PIR1<0>). This interrupt can be
enabled/disabled by setting/clearing TMR1 interrupt
enable bit, TMR1IE (PIE1<0>).
The Timer1 oscillator can be used as a secondary clock
source in low-power modes. When the T1RUN bit is set
along with SCS<1:0> = 01, the Timer1 oscillator is providing
the system clock. If the Fail-Safe Clock Monitor is
enabled and the Timer1 oscillator fails while providing
the system clock, polling the T1RUN bit will indicate
whether the clock is being provided by the Timer1
oscillator or another source.
Timer1 can also be used to provide Real-Time Clock
(RTC) functionality to applications with only a minimal
addition of external components and code overhead.
Página 78.
7.11 Using Timer1 as a Real-Time
Clock
Adding an external LP oscillator to Timer1 (such as the
one described in Section 7.6 “Timer1 Oscillator”)
gives users the option to include RTC functionality to
their applications. This is accomplished with an inexpensive
watch crystal to provide an accurate time base
and several lines of application code to calculate the
time. When operating in Sleep mode and using a
battery or supercapacitor as a power source, it can
completely eliminate the need for a separate RTC
device and battery backup.
The application code routine, RTCisr, shown in
Example 7-3, demonstrates a simple method to
increment a counter at one-second intervals using an
Interrupt Service Routine. Incrementing the TMR1
register pair to overflow triggers the interrupt and calls
the routine, which increments the seconds counter by
one; additional counters for minutes and hours are
incremented as the previous counter overflows.
Since the register pair is 16 bits wide, counting up to
overflow the register directly from a 32.768 kHz clock
would take 2 seconds. To force the overflow at the
required one-second intervals, it is necessary to preload
it; the simplest method is to set the MSb of TMR1H
with a BSF instruction. Note that the TMR1L register is
never preloaded or altered; doing so may introduce
cumulative error over many cycles.
For this method to be accurate, Timer1 must operate in
Asynchronous mode and the Timer1 overflow interrupt
must be enabled (PIE1<0> = 1), as shown in the
routine, RTCinit. The Timer1 oscillator must also be
enabled and running at all times.
Página 79.
Código:
EXAMPLE 7-3: IMPLEMENTING A REAL-TIME CLOCK USING A TIMER1 INTERRUPT SERVICE
TABLE 7-2: REGISTERS ASSOCIATED WITH TIMER1 AS A TIMER/COUNTER
RTCinit BANKSEL TMR1H
MOVLW 0x80 ; Preload TMR1 register pair
MOVWF TMR1H ; for 1 second overflow
CLRF TMR1L
MOVLW b’00001111’ ; Configure for external clock,
MOVWF T1CON ; Asynchronous operation, external oscillator
CLRF secs ; Initialize timekeeping registers
CLRF mins
MOVLW .12
MOVWF hours
BANKSEL PIE1
BSF PIE1, TMR1IE ; Enable Timer1 interrupt
RETURN
RTCisr BANKSEL TMR1H
BSF TMR1H, 7 ; Preload for 1 sec overflow
BCF PIR1, TMR1IF ; Clear interrupt flag
INCF secs, F ; Increment seconds
MOVF secs, w
SUBLW .60
BTFSS STATUS, Z ; 60 seconds elapsed?
RETURN ; No, done
CLRF seconds ; Clear seconds
INCF mins, f ; Increment minutes
MOVF mins, w
SUBLW .60
BTFSS STATUS, Z ; 60 seconds elapsed?
RETURN ; No, done
CLRF mins ; Clear minutes
INCF hours, f ; Increment hours
MOVF hours, w
SUBLW .24
BTFSS STATUS, Z ; 24 hours elapsed?
RETURN ; No, done
CLRF hours ; Clear hours
RETURN ; Done

microcontrolador-pic-16f88.jpg


Puedes llamar en la RAM RTCC 0x01 como me has presentado y me lo salté sin darme cuenta.

Puse el RTCC como lo tenías al principio y me compila ahora, antes no porque borré el EQU sin darme cuenta. Prueba el Hex, que puedes descargar y nos cuentas.

Saludo.
 

Adjuntos

  • PAP_16F88-con_RTCC.zip
    435 bytes · Visitas: 34
muchisimas gracias. ahora mismo lo voy a probar.
la verdad es que cuato mas profuncizo mas miedo me da la materia. realmente es tan dificil como parece?
yo hice 6 meses de lenguaje c con 18 años y empece que nunca habia tocado un pc y acabe entre los 5 primeros. pero no recuerdo casi nada. nunca lo use. pero en asm me parece chino. y es tan basico asignando asta las direcciones de memoria donde se ubican los datos que me resulta dificil pensar en acabar algo solo y que funcione. por otro lado. sabeis si existe este posibilidad de cursarlo a distancia. trabajando no podre conbinarlo y he descubierto que a distancia puedo hacer conbinaciones que de otra manera no podria.
asta ahora.
 
Hola:

Hay cursos de PIC presencial muy caro. Por experiencias de la gente, no vale la pena. Te enseña lo básico y luego búscate la vida, para eso ser autodidacta.

Estoy aprendiendo ASM gracias al www.pic16f84a.org buenísimo para empezar. Luego con otro que tiene el 16F886 ASM y C del CCS.

No se si te funcionará el invento del RTCC.

Un saludo.
 
Hola de nuevo. espero que mis conclusiones no sean erroneas para no hacer confundir a nadie. pero lo que veo es que al darle al estop, todo queda desactivado, pin2. en este estado si se pulsan cualquiera de los botones adelante o atras, pines 17 y 18, funciona a velocidad rapida adelante o atras. pero si se da al boton avance, pin 1, deberia de avabzar pero en su lugar, todo queda congelado y no se mueve nada con ningun botos, excepto claro el de stop que lo libera de la congelacion permitiendo el avance y retroceso.
creo que le falta muy poco y que loque falla debe de estar en la manera de decidir que de el paso siguiente en el estado de avance. al no suceder la condicion de avance, queda esperando bloqueado a que se pulse el boton de stop.
gracias por lo otro tambien. que me recomiendas para estudiar de acceso superior. me gusta la electronica, pero que rama en concreto. decian que se podia estudiar dieño de componentes electronicos. poro no veo ningun curso que explique en que consiste. todos son un lio y por el propio nombre no veo a que puesto de trabajo me orientan. como decidir que hacer?
 
Buenas:

Desde que te metas en electrónica general, te van a reventar con electrónica analógica, luego la digital. Tendrás la base. Todo llegará.

Comprueba ahora las cosas.
V3 incluye los registros originales del 16F84 que me diste incluyendo el propio LIST, en cuanto al V4, sin el LIST y con los registros que me diste.

Si no funciona así. Hay que pantear desde 0 ese motor.

Saludo.
 

Adjuntos

  • PAP_16F88_v3.rar
    372 bytes · Visitas: 44
  • PAP_16F88_v4.rar
    372 bytes · Visitas: 41
hola, siento dar tantas molestias. el caso es que no veo que hayan diferencias en como funcionan ninguna de las tres versiones. al dar a avance no da pulsos y se bloquea. solo sale con el stop de ese bloqueo y cuando no esta bloqueado funciona el avance y retroceso rapido bien.
he hecho un circuito nuevo solo con los botones y el 16f88 ya que me daba miedo haber hecho algo mal con la electronica. las pruebas las he hecho con esto que te adjunto. nunca fisicamente siempre en proteus.

Edito: se me ocurre que hagas una prueba tu con proteus que si ago algo mal lo veras. mas que nada para que tanto esfuerzo tuyo sirva para algo y no lo desperdicie yo por alguna tonteria.

Edito-2:he vuelto a hacer una prueba que me rondo por la cabeza. he cogido el esquema con el 16f84a donde trabajaba bien con unipolar y le puse el archivo hex ultimo v4 a ver que hacia. y resulta que trabaja con las mismas condiciones que con el 16f88 en bipolar con los mismos fallos. es decir, como si no dependiera de que chip se simula. o como si las instrucciones de movimiento para bipolar no estubieran bien. se me ocurre vaya.
 

Adjuntos

  • prueba.jpg
    prueba.jpg
    156.4 KB · Visitas: 32
Última edición:
Hola:

El esquema parece bien.
No me acuerdo que motor usas. ¿Cuántos hilos tienes?
Mejor empezar desde cero. Tienes que saber cuantos pasos son ese motor que tienes.
Así programamos desde cero.
El quema base lo tienes.

Si no son los registros, es la forma de programar que tienes en el botón de avanse. Algo no tienes bien. Revisa de arriba abjao el avanse.

Saludo.
 
Última edición:
bueno, si quieres hayudarme te lo agradezco. quizas sea mejor empezar desde cero.
mi motor es bipolar de 48 pasos 4 hilos.
si es mas facil para ti me compro el chip que me digas y pasamos de los 16f88 que tengo en casa y ya le dare salida en otra ocasion.
el planteamiento general es que el motor puede estar parado, de hecho ha de iniciar en parado. avance lento en sentido orario, esto lo hare configurando el montaje de los hilos, a una velocidad de 1 rpm.
si le doy a estop se para y no responde a nada mas.
cuando le he dado a stop y esta parado. puedo elegir avanzar deprisa y si suelto el boton se para, retroceder deprisa y si suelto se para o volver a hacer el avance a 1 rpm que aunque suelte no se para asta que le doy a stop.
velocidad rapida es entre 40 y 100 vueltas por minuto digamos 60 rpm.

me voy a dormir que mañana se me juntaran las letras en el examen.
 
Perdonadme he probado en circuito real , estoy haciendome una bibinadora, con un PIC 16f84A un puente en H y un motor bipolar con el codigo madero%original(1).ASMy funciona bien tanto en adelante como atras y avance con su correspondiente stop. La modificacion que me ha requerido hacer es en la etiqueta TIEMPO pues es tan bajo su valor que no escitaba el suficiente tiempo como para mover los polos del motor
Dejo los archivos, handyss, para que asi puedas practicar y decirnos como te va



Adjunto los archivos
 

Adjuntos

  • 16f84A.txt
    1.5 KB · Visitas: 55
  • madero.txt
    5.3 KB · Visitas: 40
Última edición:
hola juan47. no me fio de como pueda compilar yo pues recien empece a usar el programa y puede compilar algo mal por error de inexperto. El madero original lo he podido probar en unipolar con proteus y no me da mas problemas. lo que no veo como funciona bien con motor bipolar. en principio donde lo encontre decian que era para unipolares.
por mi inexperiencia, lo del puente en h solo lo tengo concebido para rectificar alterna. me gusteria ver el esquema que aplicas. por otro lado, intentare compilar yo mismo pero me gustaria si no consigo el exito que lo pusieras ya compilado tambien, que no tengo muy poca experiencia con el mplab y tengo miedo que no anden los programas por hacer algo mal y no detectarlo.
voy a hacer alguna prueva y os cuento.
por otro lado, el primer asalto con los examenes ha ido mejor de lo que me temia. solo ingles se que no aprobare, pero es que se han pasado de nivel. todos nos quejabamos de lo mismo. pero como lo que cuenta es la media...



he intentado compilar y mira:

Código:
Debug build of project `C:\Users\pedro pavo\Documents\pic-pruebas\16f84A\madero descargado.mcp' started.
Language tool versions: MPASMWIN.exe v5.33, mplink.exe v4.33
Preprocessor symbol `__DEBUG' is defined.
Mon Apr 16 20:42:10 2012
----------------------------------------------------------------------
Make: The target "C:\Users\pedro pavo\Downloads\madero-descargado.o" is out of date.
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F84A "madero-descargado.asm" /l"madero-descargado.lst" /e"madero-descargado.err" /d__DEBUG=1
Error[105]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 17 : Cannot open file (Include File "16F84A.INC" not found)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 39 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 39 : Symbol not previously defined (RP0)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 41 : Symbol not previously defined (TRISB)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 43 : Symbol not previously defined (TRISA)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 45 : Symbol not previously defined (OPTIO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 46 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 46 : Symbol not previously defined (RP0)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 48 : Symbol not previously defined (INTCON)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 54 : Symbol not previously defined (PUERTAA)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 54 : Symbol not previously defined (RA0)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 56 : Symbol not previously defined (PUERTAA)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 56 : Symbol not previously defined (RA1)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 58 : Symbol not previously defined (PUERTAA)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 58 : Symbol not previously defined (RA2)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 60 : Symbol not previously defined (PUERTAB)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 67 : Symbol not previously defined (PUERTAA)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 67 : Symbol not previously defined (RA0)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 72 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 72 : Symbol not previously defined (Z)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 84 : Symbol not previously defined (PUERTAA)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 84 : Symbol not previously defined (RA1)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 89 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 89 : Symbol not previously defined (Z)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 100 : Symbol not previously defined (TMR0)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 103 : Symbol not previously defined (INTCON)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 103 : Symbol not previously defined (TOIF)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 104 : Symbol not previously defined (INTCON)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 104 : Symbol not previously defined (GIE)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 105 : Symbol not previously defined (INTCON)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 105 : Symbol not previously defined (TOIE)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 106 : Symbol not previously defined (PUERTAA)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 106 : Symbol not previously defined (RA3)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 112 : Symbol not previously defined (PUERTAA)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 112 : Symbol not previously defined (RA3)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 114 : Symbol not previously defined (PUERTAB)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 115 : Symbol not previously defined (INTCON)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 115 : Symbol not previously defined (GIE)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 116 : Symbol not previously defined (INTCON)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 116 : Symbol not previously defined (TOIF)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 131 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 131 : Symbol not previously defined (Z)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 134 : Symbol not previously defined (PUERTAB)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 139 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 139 : Symbol not previously defined (Z)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 142 : Symbol not previously defined (PUERTAB)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 147 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 147 : Symbol not previously defined (Z)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 150 : Symbol not previously defined (PUERTAB)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 155 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 155 : Symbol not previously defined (Z)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 158 : Symbol not previously defined (PUERTAB)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 168 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 168 : Symbol not previously defined (Z)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 174 : Symbol not previously defined (ESTADO)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 174 : Symbol not previously defined (Z)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 180 : Symbol not previously defined (INTCON)
Error[113]   C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 180 : Symbol not previously defined (TOIF)
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `C:\Users\pedro pavo\Documents\pic-pruebas\16f84A\madero descargado.mcp' failed.
Language tool versions: MPASMWIN.exe v5.33, mplink.exe v4.33
Preprocessor symbol `__DEBUG' is defined.
Mon Apr 16 20:42:11 2012
----------------------------------------------------------------------
BUILD FAILED
 
Última edición:
El primer archivo me compila a 4MHz y oscilador XT.

El primer error, falta el LIST que nunca les gusta poner a ustedes. Xddddddd.

Ya me dirán si funciona. Se pueden descargar el ASM del amigo de arriba pero con el LIST y el HEX compilado correctamente.

Saludo.
 

Adjuntos

  • 16f84A-1.asm.txt
    1.6 KB · Visitas: 39
  • 16f84A-1.rar
    113 bytes · Visitas: 42
Última edición:
Hola Meta. el hex que hay en el zip que has puesto, no me mueve nada ni en el 84a con unip. ni con bipo. ni en el 88 en bipol. he observado las salidas de los pics y en el proteus no veo excitacion o cambio de estado en las salidas al uln2003/l293. seria bueno que juan47 nos pusiera el hex compilado para probarlo. si funciona con bipolar en el 16f84a ya estariamos en puertas.
 
Este hex es creado en base del pirmer ejemplo que puso @juan47.

Probando el de MAdero. Me dio los mismos fallos, los he corregido uno a uno, no me queda otra. Ahora compila bien, no por ello debe tener el funcionamiento esperado.

---------------------------------------------------------------------
Debug build of project `D:\PAP_PIC16F84A\PAP_16F84A.mcp' started.
Language tool versions: MPASMWIN.exe v5.44, mplink.exe v4.42, mplib.exe v4.42
Preprocessor symbol `__DEBUG' is defined.
Thu Jan 24 18:40:25 2002
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F84A "16f84A-1.asm" /l"16f84A-1.lst" /e"16f84A-1.err" /d__DEBUG=1
Message[302] D:\PAP_PIC16F84A\16F84A-1.ASM 44 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\PAP_PIC16F84A\16F84A-1.ASM 46 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\PAP_PIC16F84A\16F84A-1.ASM 48 : Register in operand not in bank 0. Ensure that bank bits are correct.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\mplink.exe" /p16F84A "16f84A-1.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"16f84A-1.cof" /M"16f84A-1.map" /W /x
MPLINK 4.42, Linker
Device Database Version 1.7
Copyright (c) 1998-2011 Microchip Technology Inc.
Errors : 0


Loaded D:\PAP_PIC16F84A\16f84A-1.cof.
----------------------------------------------------------------------
Debug build of project `D:\PAP_PIC16F84A\PAP_16F84A.mcp' succeeded.
Language tool versions: MPASMWIN.exe v5.44, mplink.exe v4.42, mplib.exe v4.42
Preprocessor symbol `__DEBUG' is defined.
Thu Jan 24 18:40:28 2002
----------------------------------------------------------------------
BUILD SUCCEEDED

Código:
;********************************************************
;
;    Movimiento de un motor de pasos,
;    MOTOR DE 48 PASOS POR VUELTA
;    1 PASO CADA 1.25SEG  A 32768KHz
;
;        RB3    RB2    RB1    RB0
;        
;        1    0    1    0
;        1    0    0    1    AVANCE, LOS 1 SON ON        
;        0    1    0    1    SE SUPONE A TRAVÉS DE ULN2003
;        0    1    1    0
;
;*******************************************************

    LIST        P=16F84A
    INCLUDE        <P16F84A.INC>
    __CONFIG    _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

;*******************************
;    DEFINICIÓN DE REGISTROS
;********************************
POS        EQU        0X0C                                ;Aquí va el número de paso de 1 a 4
CUENTA    EQU        0X0D                                ;Cuenta cada interrupción de 0.25 segundos, a las 5 dá un paso
RETARDO    EQU        0X0E



                        ORG    0X0000
                        GOTO     SETEOS                ;


                        ORG    0X0004
                        GOTO    INTERR


                        ORG    0X0008
                        

SETEOS            BSF            STATUS, RP0                                ;TRABAJO BANCO 1
                MOVLW        B'11110000'                                ;BITS BAJOS = SALIDA
                MOVWF        TRISB
                MOVLW        B'11111111'
                MOVWF        TRISA
                movlw        b'00000010'
                movwf        OPTION_REG                                        ;Temporizador TMR0 a 1/8 preescala
                BCF            STATUS,RP0                                ;Banco 0
                movlw        b'00100000'
                movwf        INTCON                                    ;Interrupcion por TMR0
                MOVLW        .1            
                MOVWF        POS            
                CLRF        CUENTA

;**************************************ESPERA 1 BOTÓN************************
ESPERA            BTFSS        PORTA,RA0
                call        ADEL
                BTFSS        PORTA,RA1            
                call        ATRAS
                BTFSS        PORTA,RA2            
                call         AVANCE                
                CLRF        PORTB                                                ;APAGA TODO PUES ESTÁ EN REPOSO    
                GOTO        ESPERA

;****************************************ADELANTE****************************
;                       MUEVE UN PASO Y VUELVE
;****************************************************************************
ADEL            CALL        TIEMPO                                    ;Tiempo para el antirrebote
                BTFSC        PORTA,RA0            
                return                                                        ;RUIDO            
                INCF        POS,F            
                MOVLW        .5            
                SUBWF        POS,W            
                BTFSS        STATUS, Z            
                GOTO        NA            
                MOVLW        .1            
                MOVWF        POS            
NA                CALL         PULSOS            
                CALL        TIEMPO                                    ;Tiempo para escitar las bobinas del motor
                CALL        TIEMPO                                    ;ESPERA ESTABILIZARSE            
                return
;****************************************ATRAS****************************
;                       MUEVE UN PASO Y VUELVE
;****************************************************************************
ATRAS            CALL        TIEMPO                                    ;Tiempo para el antirrebote
                BTFSC        PORTA,RA1            
                return                                                    ;RUIDO            
                DECF        POS,F
                movlw        .0
                subwf        POS,W            
                BTFSS        STATUS, Z                                        ;controlo no baje de 1, si es 0 va a 4
                GOTO        NT            
                MOVLW        .4            
                MOVWF        POS
NT                CALL         PULSOS                
                CALL        TIEMPO                                            ;ESPERA ESTABILIZARSE                
                CALL        TIEMPO                                    ;Tiempo para escitar las bobinas del motor
                return
;****************************************AVANCE********************************
;                   SOLO SE SALE CON STOP
;******************************************************************************
AVANCE            CLRF        TMR0
                NOP                
                NOP            
                BCF            INTCON, T0IF                                ;Bandera TMR0            
                BSF            INTCON,    GIE                                    ;Interrupcion general
                BSF            INTCON, T0IE                                ;Interrupcion por TMR0
QUEDA            BTFSS        PORTA,RA3
                GOTO        PARA            
                GOTO        QUEDA

;****************************************PARA**********************************
PARA            CALL        TIEMPO                                        ;Tiempo para el antirrebote
                BTFSC        PORTA,RA3
                GOTO         QUEDA                                                ;SI FUE UN RUIDO VUELVO            
                CLRF        PORTB            
                BCF            INTCON, GIE            
                BCF            INTCON, T0IF            
                return

;**************************************TIEMPO RETARDO REBOTES*****************************
TIEMPO            MOVLW        .50                                            ;Aumentar el tiempo pues no escita las ;bobinas
                MOVWF        RETARDO
TI                DECFSZ        RETARDO,F                                                ;RETARDO PARA REBOTES
                GOTO        TI

                RETURN

;***************************************PULSOS*************************************

PULSOS            MOVLW        .1
                SUBWF        POS, 0            
                BTFSS        STATUS, Z            
                GOTO        SEG            
                MOVLW         B'00001010'                                                ;1 CODIGO            
                MOVWF        PORTB            
                RETURN

SEG                MOVLW        .2
                SUBWF        POS, 0            
                BTFSS        STATUS, Z            
                GOTO        TER            
                MOVLW         B'00001001'                                                ;2 CODIGO            
                MOVWF        PORTB            
                RETURN

TER                MOVLW        .3
                SUBWF        POS, 0            
                BTFSS        STATUS, Z            
                GOTO        CUAT            
                MOVLW         B'00000101'                                                ;3 CODIGO            
                MOVWF        PORTB
                return
                
CUAT            MOVLW        .4
                SUBWF        POS, 0            
                BTFSS        STATUS, Z            
                return            
                MOVLW         B'00000110'                                                    ;4 CODIGO            
                MOVWF        PORTB

FINAL            RETURN

;************************************INTERR***********************************
;                                CADA .25 DE SEGUNDO VIENE AQUÍ
;*****************************************************************************
INTERR            INCF            CUENTA,F
                MOVLW            .5            
                SUBWF            CUENTA,W            
                BTFSS            STATUS, Z            
                GOTO             VOLVER                                                    ; SI NO LLEGÓ A 5        
                CLRF            CUENTA                                                    ; SI LLEGÓ A 5/4 AVANZO    
                INCF            POS,F            
                MOVLW            .5            
                SUBWF            POS,W            
                BTFSS            STATUS, Z            
                GOTO            NIN            
                MOVLW            .1            
                MOVWF            POS
NIN                CALL             PULSOS
                CALL            TIEMPO
VOLVER            BCF                INTCON, T0IF                                            ;BOORO BANDERA
                RETFIE


                    END

Puedes descargar el hex abajo del PIC16F84A a 4 MHz de XT.

Saludo.
 

Adjuntos

  • 16f84A-1_PRUEBA.rar
    359 bytes · Visitas: 52
Hola. lo he estado probando con el circuito 16f84a + motor unipolar dando buenos resultados. adjunto las imagenes. las 4 son del 16f84a. tambien adjunto las del 16f84a con motor bipolar y su correspondiente l293.
por las señales que se ven, y no es que entienda yo mucho, yo me quedo con que estamos al principio. 16f84a para unipolar. pero seguro que se ha corragido lo del tiempo de excitacion que yo no detectaba con el proteus. o no sabia como detectarlo.
 

Adjuntos

  • unipolar lento.jpg
    unipolar lento.jpg
    128 KB · Visitas: 15
  • unipolar rapido.jpg
    unipolar rapido.jpg
    130.7 KB · Visitas: 12
  • bipolar lento.jpg
    bipolar lento.jpg
    132.7 KB · Visitas: 8
  • bipolar rapido.jpg
    bipolar rapido.jpg
    135.4 KB · Visitas: 7
Los errores de compilacion que muestras es devido a que no tienes el archivo 16F84A.INC abierto. Te descargue los archivos con extension .TXT pues no tenia mucho tiempo
Una recomendacion que te doy, porque no se si lo haces de esta manera, es de desacargar los dos archivos en una sola carpeta que por ejemplo abras en el escritorio y poner los dos archivos con extension .TXT que puse
Despues abres el MPLAB y abriendo por ejemplo, desde el mismo MPLAB, el archivo madero.txt despues lo guadas en la misma carpeta pero con extension .ASM.Una vez efectuado la anterior operacion abres, en el MPLAB, el archivo 16f84A.txt y lo guardas en la misma carpeta con extension .INC te debera
constar cuatro archivos en la carpeta deseada, dos con extension .TXT y otros dos que seran madero.ASM y el siguiente 16f84A.INC

Error[105] C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 17 : Cannot open file (Include File "16F84A.INC" not found)Este mensaje suele salir cuando compilas y los archivos se encuentran en diferentes carpetas por eso es aconsejable poner siempre los archivos a compilar esten en la misma carpeta, como te he comentado anteriormente

Error[113] C:\USERS\PEDRO PAVO\DOWNLOADS\MADERO-DESCARGADO.ASM 180 : Symbol not previously defined (INTCON)
Referente a este mensaje es devido a que como no ha encontrado el archivo 16f84A.INC pues el compilador no sabe sustituir letras por numeros binarios, por ello en el archivo 16f84A.INC se le da unos valores a las palabras o letras

Porfavor puedes poner el esquema que utilizas en PROTEUS, para saber si has conectado correctamente los componentes. El que lleva el 16f84, l293 y motor bipolar

Un saludo
 
Hola:

@juan47, arriba lo puse bien y compila. Aún así, gracias por la aclaración.

@handyss, si todo anda bien, encontes muestra el código para adaptarlo al 16F88.

Por cierto. ¿Qué código usaste realmente?
No se cual has usado para que luego te funcione de repente, jejejeej.

Saludo y suerte.
 
Atrás
Arriba