PWM мотор?

C

cheerzmiki

Guest
Здравейте момчета, аз съм новак в ASM език.Аз наскоро написа ASM кодиране да тече ми 2 малки DC мотори чрез използване PWM свързани с моята моторни мост шофьор з.Но аз са срещнали някои грешки, когато стартирате програмата.Двигателят започва да тече преди да натиснете произволен бутон за стартиране на мотора и бутоните не изглежда да се отговори и на моменти те само ще спре след няколко преси.Моля да ми помогнеш.Един милион благодаря.

кодиране:списък р = 18f452
# включват p18f452.inc

; Стартовия код
;************************************************* ***********
Декларираме променливите туксек EQU 0x0000
sec2 EQU 0x0001
Count2 EQU 0x000
Count1 EQU 0x001

;************************************************* ***********

Стартовият код
Org 00000h; Проучване Вектор
Отидох в началото

PROG1 КОД

;************************************************* ***********
; програмен код започва от тук

започвам

;*********** инициализиране *****************

clrf PORTC; initialise PORTC като продукция на пристанището и изчистване на пристанището.
movlw b'00000000 "
movwf TRISC

setf TRISA; първоначален PORTA като входни данни

clrf PORTB; initialise PORTB като вход пристанище.
movlw b'11111111 '; initialise PORTB като вход пристанище.
movwf TRISB; initialise PORTB като вход пристанище.

;*********** основното тяло *************

clrf T2CON
ФБК T2CON, TMR2ON
setf PR2; PR2 = oxFF
movlw 0x7F
movwf CCPR1L

clrf CCP1CON
BSF CCP1CON, CCP1M3
BSF CCP1CON, CCP1M2
BSF CCP1CON, CCP1M0, поставете CCP1 PWM режим

movlw 0x7F
movwf CCPR2L

clrf CCP2CON
BSF CCP2CON, CCP2M3
BSF CCP2CON, CCP2M2
BSF CCP2CON, CCP2M1
BSF CCP2CON, CCP2M0, поставете CCP2 PWM режим

checkSW
btfsc PORTB, 0; проверка за sw.it е нормално висок, нисък, като се натиснат
Отидох в checkSW; проверка за SW2 SW, ако не е натиснат.
BSF T2CON, TMR2ON
movlw 0x7F
movwf CCPR1L
BSF порта, 0; определени посока
movlw 0x7F
movwf CCPR2L
BSF порта, 1; определени посока

Забавяне повикване

wait4SW_release
btfss PORTB, 0; SW провери дали все още се натиснат.
Отидох в wait4SW_release; ако SW е натиснат, проверете отново

ФБК T2CON, TMR2ON

Забавяне повикване

Отидох в checkSW;******************* забавяне *******************

Забавям
movlw 0xFF
movwf Count1
movwf Count2
Повторете
decfsz Count1, F
Отидох в Повторете
movlw 0x01
movwf Count1
decfsz Count2, F
Отидох в Повторете
връщане

приключвам

 

Welcome to EDABoard.com

Sponsor

Back
Top