Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

14/09/2014 #1


¿Con qué programa compilo este código?
bueno quice desde hace mucho tiempo quise usar el driver con dir y step pero unca se me ocurrio nada pero ahora me llevo a encontrar con un programa ya hecho y funcional en este enlace
forosdeelectronica.com/showthread.php?p=955329#post955329

y aqui esta su codigo
Código:
; File STEP.ASM ---> version 2
; ... for PIC16F84 microcontroller
; Program to use F84 as a step and direction controller for a unipolar
; step motor.  Step and direction pins are RA0, RA1; RA2, RA3; RB0-3 and RB4-7 are the windings
; in order (driven by NPN small sig transistors or MOSFETS)
; Steps on negative going edge of step pulse.

; CPU configuration
;     (It's a 16F84, RC oscillator,
;     watchdog timer off, power-up timer on)

    processor 16f84
    include      <p16f84.inc>
    __config  _RC_OSC & _WDT_OFF & _PWRTE_ON

; Declare variables

pattA    equ    H'0D'    ;Current step pattern number (0-7) for axis A
lastA    equ    H'0E'   ;Last state of step pin on axis A (1 is high, 0 is low)
pattB    equ    H'0F'    ;Current step pattern number (0-7) for axis B
lastB    equ    H'10'   ;Last state of step pin on axis B (1 is high, 0 is low)
inport    equ    H'11'    ;Value of port A when read (stored for later access)
temp    equ    H'12'

; Program

    org    0      ; start at address 0

;***************************************************
;
;    START OF PIC 16F84 CODE FOR STEP;
;
;***************************************************
;

;------------------------------------------
;****Power on reset startpoint
;------------------------------------------

;***Initialization of program    

; Set port B as output and port A as input (except bit 4)

    movlw    B'00001111'
    tris    PORTA        
    movlw    B'00000000'
    tris    PORTB        

;Clear ports and zero motors

    clrf    PORTA
    movlw    B'00010001'
    movwf    PORTB
    clrf    lastA
    clrf    lastB
    clrf    pattA
    clrf    pattB

;Loop around for a while to let everything stabilize

    movlw    d'255'
    movwf    inport
loop:    decfsz    inport, f
;    goto loop

;***Basic program loop

;Main routine - check pin states and step on negative edge
;Get port data and store, then check axis A
;A10 checks if old is 0, new is 1 (update register)
;A01 checks if old is 1, new is 0 (step and update register)
;Similarly for axis B

main:    movf    PORTA, w
    movwf    inport
A10:    btfsc    lastA, 0
    goto A01
    btfss    inport, 2
    goto A01
    bsf    lastA, 0
A01:    btfss    lastA, 0
    goto B10
    btfsc    inport, 2
    goto B10
    bcf    lastA, 0
    call stepA

B10:    btfsc    lastB, 0
    goto B01
    btfss    inport, 0
    goto B01
    bsf    lastB, 0
B01:    btfss    lastB, 0
    goto main
    btfsc    inport, 0
    goto main
    bcf    lastB, 0
    call stepB
    goto main

;------------------------------------------
;***stepA - sub to cycle axis A one half step
;  improve this later to read RA4 and choose full/halfsteps as appropriate
;  Dir of 1 is increase, else decrease

stepA:    btfss    inport, 3
    decf    pattA, f
    btfsc    inport, 3
    incf    pattA, f

;Peter Homann's optimization for add/subtract mod 7

        movlw D'07'
        andwf pattA, f

;Get step pattern and send to port B on bits 0-3

    movf    PORTB, w
    andlw    B'11110000'
    movwf    temp
    movf    pattA, w
    call dcode
    iorwf    temp, w
    movwf    PORTB

    return

;------------------------------------------
;***stepB - sub to cycle axis B one half step
;  improve this later to read RA4 and choose full/halfsteps as appropriate
;  Dir of 1 is increase, else decrease

stepB:    btfss    inport, 1
    decf    pattB, f
    btfsc    inport, 1
    incf    pattB, f

;Check for pattern overflow and fix

;Peter Homann's optimization for add/subtract mod 7

        movlw D'07'
        andwf pattB, f

;Get step pattern and send to port B on bits 4-7

    movf    PORTB, w
    andlw    B'00001111'
    movwf    temp
    swapf    temp, f
    movf    pattB, w
    call dcode
    iorwf    temp, f
    swapf    temp, w
    movwf    PORTB

    return

;------------------------------------------
;***stepcode - sub to generate bit pattern for number in w (!!MUST BE 0-7!!)
;  pattern is stored in w register (lower four bits) for half step pattern

dcode:    addwf    PCL, f
    retlw    B'00000001'    ;0
    retlw    B'00000011'    ;1
    retlw    B'00000010'    ;2
    retlw    B'00000110'    ;3
    retlw    B'00000100'    ;4
    retlw    B'00001100'    ;5
    retlw    B'00001000'    ;6
    retlw    B'00001001'    ;7

;Mandatory end of program command

    end
mi problema ahora es encontrar con que programa fue compilado este para crear el archivo .hex ya que yo utilizo c para programar mis microcontroladores y para crear mi archivo .hex

utilizo el pic c compiler pero hay otros programas como mikroc, c18, de ahi mi duda con que programa fue compilado este ya que utiliza assembler

desde ya muchas gracias por su ayuda
14/09/2014 #2
Moderador

Avatar de D@rkbytes

Ese programa está escrito en lenguaje ensamblador.
Utiliza el programa MPLAB IDE de Microchip.
Puedes usar ese enlace o usar este otro para la descarga directa de MPLAB IDE v8.92

Suerte.
14/09/2014 #3


tambien lo puedes compilar con proteus ya trae el mpasm y esta menos pesado que el mplab
15/09/2014 #4

Avatar de JoaquinFerrero

Debes usar el ensamblador mpasm o mpasmx, con la opción -a, para que te genere un archivo hex. Pero depende del formato de hex que necesites... puede ser INHX8S, INHX8M o INHX32. Esto se determina a partir del tipo de microcontrolador que estés usando.

Si usas un IDE como el MPLAB o MPLABX, te los pone de forma automática.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.