首页 > 解决方案 > 如何通过在 PIC16f84a 上创建汇编程序来提高步进电机的转速?

问题描述

对于硬件,我使用的是 10MHz Xtal 振荡器、两个 22pf 和步进电机 28BYJ-48 5V DC

下面是我到目前为止所做的代码。如何提高步进电机的转速?我尝试将低值 (0Ah) 设置为 COUNT1,但它没有旋转,而是仅导致步进电机振动。请帮我解决我的这个小问题。


#include "p16f84a.inc"

; CONFIG
; __config 0xFFF1
 __CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_ON & _CP_OFF

RES_VECT  CODE    0x0000        ; processor reset vector
    GOTO    BEGIN           ; go to beginning of program

;Constants
    
STATUS  EQU 03h
TRISB   EQU 86h
PORTB   EQU 06h
COUNT1  EQU 08h
 

MAIN_PROG CODE              ; let linker place main program

BEGIN   bsf STATUS,5        ; go to bank 1
    movlw   00h             ; put 0000 to w register
    movwf   TRISB           ; make all pins as output
    bcf STATUS,5            ; goto bank 0
    
PROCESS 
    movlw   b'10000000'
    movwf   PORTB      
    CALL    DELAY
    
    movlw   b'01000000'
    movwf   PORTB
    CALL    DELAY
    
    movlw   b'00100000'
    movwf   PORTB
    CALL    DELAY
    
    movlw   b'00010000'
    movwf   PORTB
    CALL    DELAY
    
GOTO    PROCESS             ; loop forever

DELAY   
 LOOP   DECFSZ COUNT1,1         ; subtract 1 to the total COUNT1 value  
    GOTO LOOP              ; until reaches zero
   RETURN                  ; return to PROCESS
    
END


标签: assemblymplabmicroprocessorsstepper

解决方案


推荐阅读