Upload
jerica
View
13
Download
0
Embed Size (px)
DESCRIPTION
EINGEBETTETE SYSTEME. Beispiel mit der PIC Mikrocontrollern. Die REGISTER. INTCON Register. T0IF: Der Interrupt wurde durch einen Timer Überlauf hervorgerufen ( T imer 0 I nterrupt F lag). Bei einem Interrupt wird außer der Auslösung des Sprungs zu 04H das Bit 2 im Intcon-Register - PowerPoint PPT Presentation
Citation preview
1M.Milushev
EINGEBETTETE SYSTEME
2M.Milushev
Beispiel
mit der PIC
Mikrocontrollern
3M.Milushev
Die REGISTER
INTCON Register
T0IF: Der Interrupt wurde durch einen Timer Überlauf hervorgerufen (Timer 0 Interrupt Flag).Bei einem Interrupt wird außer der Auslösung des Sprungs zu 04H das Bit 2 im Intcon-Registergesetzt. Es muß per Software gelöscht werden.
4M.Milushev
Der Timer
Der Timer0 (TMR0) ist wahlweise ein, vom Prozessortakt abhängiger, 8-Bit Timer oder Zähler. Dies kann im Option-Register durch Bit 5 festgelegt werden (0=intern=Timer; 1=extern=Zähler an RA4). Das TMR0-Register (Bank 0, 01h), in dem gezählt wird, kann ebenso beschrieben wie gelesen werden. Zur Verlängerung der Zeitperiodendauer oder bei sehr großen Zählfrequenzen kann ein Prescaler vorgeschaltet werden (dieser kann beschrieben, jedoch nicht gelesen werden). Dieser ist alternativ beim WDT oder TMR0 einsetzbar. Die Zuweisung erfolgt durch Bit 3 im Option-Register (0=TMR0; 1=WDT). Der Wert des Prescalers wird durch die Bits 2-0 im Option-Register bestimmt.
5M.Milushev
Die ASM-BEFEHLE
6M.Milushev
PIC16F84list p=16F84A
2. #include <p16F84A.inc>3. _CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC4. *****************************Kostante und Variable *********************************5. w EQU 06. f EQU 17. Counter EQU H’0C’8. ************************************************************************************9. Anwenderprogramm10.************************************************************************************11. ORG H’0000’12. goto start13.************************************************************************************14. Programmstart 15.************************************************************************************16. Start bsf STATUS,RPO ;Bank 1 17. movlw B’11010111’ ;11010111b in W18. movwf OPTION_REG ;W in OPTION_REG 19. bcf STATUS,RPO ;Bank0 20. clrf PORTB ;PORTB löschen21. bsf STATUS,RPO ;Bank 1 22. movlw B’11111110’ ;11111110 in W23. movwf TRISB ;RB7-RB1-Eing.,RB0-Ausg 24. bcf STATUS,RPO ;Bank 0 25. goto main
7M.Milushev
PIC16F84
26.****************************************************************************************27. Unterprogramm “Wait”- 460ms 28.****************************************************************************************30.wait movlw D’7’ ;7 in W31. movwf Counter ;lade W in Counter32. clrf TMRO ;lösche TMR033.again bcf INTCON,TOIF ;TMR0 overflow interrupt flag bit löschen34.loop btfss INTCON,TOIF ;springe wenn T0IF gesetzt35. goto loop ;nein, Counter = 0?36. decfsz Counter,f ;ja, Counter = 0?37. goto again38. return39.****************************************************************************************40. Hauptprogramm 41.****************************************************************************************42.main bsf PORTB’0 ;Leuchtdiode ein 43. call wait44. bcf PORTB’0 ;Leuchtdiode aus45. call wait46. goto main47. END
8M.Milushev
REGISTER FILE MAP
unimplemented data memory location; read as ‘0’
system und universelle 8-bit-Register
9M.Milushev
Beschreibung des PIC16C84
10M.Milushev
Blockschaltbild des PIC16F84
11M.Milushev
END
12M.Milushev
Phase A-A
Phase B-B
Phase C-C
VollschrittbetriebRechtslauf
VollschrittbetriebLinkslauf
Phase A-A
Phase B-B
Phase C-C
Halbschrittbetrieb - Linkslauf
13M.Milushev
L 297
CLOCK
RESET
RICHTUNG
HALB/VOLL
OUT1
OUT1
OUT1
OUT2
OUT2
OUT2
Drehmoment
Schrittfrequenz
bipolar
unipolar
Unterschiedliche Drehmomentverläufe bei verschiedenen Ansteuervariaenten