PDA

Επιστροφή στο Forum : Μονοπολικος Βηματικος Κινητηρας Pic16f628



genikos
24-12-08, 08:35
Γεια χαρά, έχω κατασκεύασει ένα κύκλωμα με τη max232 των pic16f628 με την l293d. Έβαλα κώδικα με assebly σε Hex αρχειο μέσω του Mplab, μετά με το winpic800 το πέρασα στο κύκλωμα. Ο κινητήρας άρχισε να γυρίζει με την εντολή Run (υπάρχει διακόπτης με θέση πρόγραμμα και θέση Run), αλλά γύριζε πχ 2 sec αριστερά και 2 sec δεξιά και έκανε το ίδιο πράγμα συνέχεια, κάτι που ήταν και ο αρχικός μου σκοπός. Όμως επειδή πρόκειται για πτυχιακή, ζήτησε ο καθηγητής να ενσωματωθεί ένα πρόγραμμα με τη visual basic, όπου θα υπάρχει start stop αριστερά και start stop δεξιά, μέσω υπολογιστή. Μπορεί κανείς να ενσωματώσει το πρόγραμμα αυτό στον κώδικα και να μου το στείλει; Είναι λίγο άμεσο διότι η εργασία θα πρέπει να παραδοθεί γιατί με παίρνουν στα Ελληνικά Στρατά.
Παρακάτω παραθέτω τον κώδικα καθώς και το κύκλωμα σε αρχείο word.
Σημείωση: Στην επαφή του l293d (3 και 6), συνδέεται το ένα πηνίο και στη επαφή (11 και 14) το άλλο πηνίο, και το 5ο καλώδιο του κινητήρα στη γείωση.
Ευχαριστώ εκ των προτέρων για την πολύτιμη βοήθειά σας.

LIST P=16F628A
include <P16F628A.INC>
__config 0x3fff
ERRORLEVEL -302

CBLOCK 0x20 ;thesis tis ram.orizoume onomata gia xrisi sto DELAY
cntr1
cntr2
cntr3
FULLSTEP ;Metritis kuklou enos plirous vimatos
ENDC


org 0x0000
goto start
org 0x0004
call diavasma_xar
retfie
org 0x10
DELAY
movlw 0x01
delay movwf cntr3
delay1 movlw 0xff
movwf cntr2
delay2 movlw 0xff
movwf cntr1
delay3 decfsz cntr1, f
goto delay3
decfsz cntr2, f
goto delay2
decfsz cntr3, f
goto delay1
return

start
movlw 0x07 ; ston kataxoriti CMCON vazoume to 00000111
movwf CMCON ; Comparator off (lowest power)


BSF STATUS,RP0 ;epilegoume BANK 1
movlw b'11111111'
movwf TRISB ; portb oles eisodous
movlw b'00000000' ;
movwf TRISA ; porta oles eksodoi

movlw 0x24 ;ston TXSTA to 10000100 epilogi ipsilou baud rate
movwf TXSTA ;kai epilogi clock.to roloi paragete esoterika apo ton brg
movlw 0x19 ;0x0C=19200 bps (0x19=9600 bps)
movwf SPBRG
bcf STATUS,RP0 ;epilogi tou BANK0
movlw b'10010000' ;to 10010000 ston RCSTA.energopiisi siriakis portas
movwf RCSTA ;kai energopiisi sinexous lipsis

clrf PORTA ;midenismos-arxikopiisi porta
clrf PORTB ;midenismos-arxikopiisi portb
clrf FULLSTEP ;midenismos-arxikopiisi fullstep
CALL ENABLEINT
GOTO $

left_move
CALL ENABLEINT
CLRF FULLSTEP
AGAINLEFT
movf FULLSTEP,w
CALL deksia
MOVWF PORTB
CALL DELAY
incf FULLSTEP
MOVLW 0X08
subwF FULLSTEP,W
BTFSC STATUS,Z
CLRF FULLSTEP
GOTO AGAINLEFT
RETURN

Right_move
CALL ENABLEINT
CLRF FULLSTEP
AGAINRIGHT
movf FULLSTEP,w
CALL aristera
MOVWF PORTB
CALL DELAY
incf FULLSTEP
MOVLW 0X08
subwF FULLSTEP,W
BTFSC STATUS,Z
CLRF FULLSTEP
GOTO AGAINRIGHT
RETURN

deksia ;loop gia kinisi tou vimatikou deksiostrofa
RETLW b'01000011'
RETLW b'01000010'
RETLW b'01000110'
RETLW b'01000100'
RETLW b'01001100'
RETLW b'01001000'
RETLW b'01001001'
RETLW b'01000001'
aristera ;loop gia kinisi tou vimatikou aristerostrofa
RETLW b'10000001'
RETLW b'10001001'
RETLW b'10001000'
RETLW b'10001100'
RETLW b'10000100'
RETLW b'10000110'
RETLW b'10000010'
RETLW b'10000011'

RECEIVE
Receive btfss PIR1,RCIF
goto Receive
return

ENABLEINT
BSF STATUS,RP0 ;epilogi Bank 1
MOVLW 0XC0 ;energopiisi diakopon
MOVWF INTCON
BSF PIE1,RCIE ;energopiisi periferiakon diakopon
BCF STATUS,RP0 ;epilogi bank 0
RETURN

diavasma_xar
call RECEIVE
movf RCREG,w
sublw 'L';ASCII
btfss STATUS,Z ;elegxos an patithike to L.an nai pame sto left_move
goto next_checkR ;diaforetika sinexizei to programma
call left_move
next_checkR
movf RCREG,W
sublw 'R';ASCII
btfss STATUS,Z ;elegxos an patithike to R.an nai pame sto right_move
goto next_Stop ;diaforetika an patithike oti dipote allo pame sto next_stop
call Right_move
next_Stop
CALL ENABLEINT
CLRF PORTB ;midenosmos portb.kanena revma stin eksodo
GOTO $ ;anamoni gia diakopi

END

nio-4-
24-12-08, 11:58
σε visual basic δεν μπορω να σε βοη8ησω δεν ξερω και θελω να μαθω....αλλα και εγω εχω το ιδιο προβλημα...8α παω να υπηρετησω την μαμα πατριδα....
αλλα υπαρχουν καποια "μαθηματα" σε visual basic στο site αυτο
εδω http://www.hlektronika.gr/forum/showthread.php?t=38827&highlight=visual+basic

genikos
26-12-08, 00:31
σε visual basic δεν μπορω να σε βοη8ησω δεν ξερω και θελω να μαθω....αλλα και εγω εχω το ιδιο προβλημα...8α παω να υπηρετησω την μαμα πατριδα....
αλλα υπαρχουν καποια "μαθηματα" σε visual basic στο site αυτο
εδω http://www.hlektronika.gr/forum/showthread.php?t=38827&highlight=visual+basic

Φίλε nio-4 δές εδώ.Προσπαθώ & εγώ να την καταλάβω .
Μάθετε την Visual Basic (http://dide.flo.sch.gr/Plinet/Tutorials/Tutorials-Visual%20Basic.html)
Ασκήσεις στη Visual Basic (http://dide.flo.sch.gr/Plinet/Tutorials/Visual%20Basic-Exercises.html)

Πιο αναλυτικά θα βρεις εδώ
Προγραμματισμός Υπολογιστών (Visual Basic) Αρχείο zip (4, 6MB) (http://pi-schools.sch.gr/download/lessons/tee/electronic/2a/Programming_ypologistwn.zip)