ΠΑΡΟΥΣΙΑΣΗ ΤΟΥ ΕΡΓΑΣΤΗΡΙΑΚΟΥ ΜΑΘΗΜΑΤΟΣ «ΣΥΣΤΗΜΑΤΑ ΨΗΦΙΑΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ» ή ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ ΤΟΝ ΜΙΚΡΟΕΛΕΓΚΤΉ PIC16F877 ΤΗΣ MICROCHIP TECHNOLOGY INC ΗΛΕΚΤΡΟΝΙΚΟΣ ΤΟΜΕΑΣ ΕΠΑΛ
ΣΕΙΡΑ ΠΑΡΑΓΩΓΗΣ MICROCONTROLLERS ΤΗΣ MICROCHIP 2 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
3
Ο PIC16F877: ΕIΝΑΙ ΕΝΑΣ ΕΠΕΞΕΡΓΑΣΤΗΣ ΜΕ ΤΑ ΕΞΗΣ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ: 1. ΤΕΧΝΟΛΟΓΙΑΣ RISC ΜΕ 35 ΕΝΤΟΛΕΣ. 2. ΕΣΩΤΕΡΙΚΗ ΜΝΗΜΗ ΜΕ 368Χ8 bits RAM, 256X8 bits EEPROM, 8K X 14bits 3. DC-20MHz clock 4. In Circuit Serial Programming 5. Τροφοδοσία 2-5V 6. Θύρες I/O Α, Β, C, D, E 7. ADC με 8 κανάλια των 10 bits (ένας υπολογιστής σε ένα ολοκληρωμένο) 4
FLASH Εσωτερική δομή του PIC RAM ΠΟΡΤΕΣ Ι/Ο CONTROL ALU CLOCK TIMERS, ADC, DATA BUS 5 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
Οργάνωση μνήμης 1. Μνήμη προγράμματος (Program memory): 8K των 14bits Η κάθε μία λέξη των 14bits περιλαμβάνει την εντολή (opcode) και την πληροφορία (data). Ο διάδρομος διευθύνσεων έχει εύρος 13bits (213=8192). Η εντολή φορτώνεται και εκτελείται σε ένα χρόνο π.χ. ANDWF TMR0,0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 6
2. Μνήμη δεδομένων (Data Memory-RAM): Αποτελείται από 4 επιμέρους περιοχές μνήμης (Bank0,...3) η κάθε μία με 128 bytes Static Ram. Κάθε περιοχή περιλαμβάνει καταχωρητές: Α. Ειδικούς για τη λειτουργία του PIC Β. Γενικής χρήσης που αποθηκεύονται δεδομένα από το πρόγραμμα κατά τη λειτουργία του. Η προσπέλαση των περιοχών μνήμης γίνεται με ειδική ρύθμιση του STATUS. 7
3. Μνήμη EEPROM Μνήμη Data 256 bytes που γράφετε και διαγράφεται κατά τη διάρκεια εκτέλεσης του προγράμματος. Η γραφή και ανάγνωση γίνεται έμμεσα με τη βοήθεια 6 ειδικών καταχωρητών (EEDATA, EEDATH, EEADR, EEADRH, EECON1, EECON2). 8 ΗΛΕΚΤΡΟΝΙΚΟΣ ΤΟΜΕΑΣ ΕΠΑΛ
Ειδικοί καταχωρητές Μνήμη δεδομένων ALU W 1. Καταχωρητής εργασίας W Είναι ένας ειδικής λειτουργίας καταχωρητής (accumulator=συσσωρευτής) που συμμετέχει σε πολλά ενδιάμεσα αποτελέσματα (αριθμητικές και λογικές πράξεις, μεταφορά και αποθήκευση δεδομένων κ.α.) 9
Πόρτες εισόδου-εξόδου δεδομένων Ι/Ο PORTS Η διακίνηση (είσοδος-έξοδος) των δεδομένων στον PIC γίνεται μέσα από τους ειδικούς καταχωρητές: Port (A ή B ή C ή D ή E), που αναλαμβάνουν τη διακίνηση των δεδομένων. Tris (A ή B ή C ή D ή E), για την κατεύθυνση των δεδομένων (0 για έξοδο, 1 για είσοδο). 10 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
Οι πόρτες του PIC 1. PORTA (05h), TRISA (05h ή 85h) 6 bit 2. PORTB (06h), TRISB (86h) 8 bit 3. PORTC (07h), TRISC (87h) 8 bit 4. PORTD (08h), TRISD (88h) 8 bit 5. PORTE (09h), TRISE (89h) 3 bit BANK0 BANK1 11 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
Αναλογικός σε Ψηφιακό Μετατροπέας ADC Ο PIC διαθέτει μετατροπέα ADC 8 εισόδων με πολυπλεξία και το αποτέλεσμα είναι ένας ψηφιακός αριθμός των 10 bits. Στη διαδικασία εμπλέκονται 4 καταχωρητές: ADRESH ADRESL ADCON0 ADCON1 12 ΗΛΕΚΤΡΟΝΙΚΟΣ ΤΟΜΕΑΣ ΕΠΑΛ
Ταλαντωτής-clock Ο PIC μπορεί να λειτουργήσει με 4 διαφορετικούς τρόπους: 1. LP χαμηλής ισχύος κρύσταλλος 2. XT κρύσταλλος 3. HS υψηλής ταχύτητας κρύσταλλος 4. RC αντίσταση - πυκνωτής 13
Τροφοδοσία 7805 14 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
ΓΛΩΣΣΑ ASSEMBLY Στο λογισμικό MPLAB οι εντολές που αναγνωρίζονται από τον MPASM assembler είναι της μορφής: CLRF f Καθαρισμός του καταχωρητή f. GOTO k Άλμα στο k BTFSS f,b Εντολή άλματος με συνθήκη Αν το b είναι 0 τότε εκτελείτε η αμέσως επόμενη εντολή αλλιώς η μεθεπόμενη. π.χ. BTFSS 20h,2 (20h=10110111) GOTO K GOTO L BSF BCF χειρισμός ενός bit σε καταχωρητή 15 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
ΕΝΤΟΛΕΣ ΧΕΙΡΙΣΜΟΥ BYTE MOVLW MOVLW 62h W=01100010 RAM MOVWF f 18h MOVWF 20h W=11011000 19h 11011000 20h 21h 22h MOVF f,d 23h MOVF 25h,0 W=00111011 24h 00111011 25h 26h 27h 28h MOVF 29h,1 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ 01100011 29h 16
Μορφή εντολών Οι 35 εντολές που διαθέτει ο PIC είναι της μορφής: Α. Επεξεργασίας byte (6+1+7 bits) x x x x x x x x x x x x x x Β. Επεξεργασίας bit (4+3+7 bits) x x x x x x x x x x x x x x Γ. Άλματος (3+4+7 bits) x x x x x x x x x x x x x x Δ. Άλλες (3+4+7 bits) x x x x x x x x x x x x x x 17 ΗΛΕΚΤΡΟΝΙΚΟΣ ΤΟΜΕΑΣ ΕΠΑΛ
Το σύνολο των Εντολών του PIC στη γλώσσα MPASM 18
Το περιβάλλον προγραμματισμού MPLAB IDE 5.30.00 19
Καθορισμός των παραμέτρων του έργου (project) 20
Προσομοίω ση της λειτουργία ς ενός προγράμμα τος για εξαγωγή δεδομένων από τον PIC 21
Τοποθέτηση του PIC στον PICSTART (προγραμματιστή) και σύνδεση του με τον Η/Υ 22
Προγραμματισμός με τον Picstart Plus: Ρυθμίσεις του καταχωρητή διαμόρφωσης (configuration bits) 23
Παράδειγμα 1: Είσοδος-έξοδος δεδομένων Είσοδος ψηφιακού σήματος 1 byte από την PORTD και έξοδος στην PORTB: Στη διαδικασία εμπλέκονται οι καταχωρητές: W PORTD PORTB TRISD TRISB (Εντολές της μορφής mov..) 4 B PORTB (06H) D 1 PORTD (08h) 2 3 W PIC 24 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
#Include "p16f877.inc" org 0 movlw b'00000000' bsf STATUS, RP0 movwf TRISB movlw b 11111111' movwf TRISD bcf STATUS, RP0 lp1 movf PORTD,0 movwf PORTB goto lp1 End Bank0 Bank1 (STATUS) 25 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
2. Αναλογικός σε ψηφιακό μετατροπέας 8 εισόδων Στη διαδικασία εισόδου και μετατροπής αναλογικού σήματος σε ψηφιακό συμμετέχουν οι καταχωρητές: Α. ADRESH, ADRESL για καταχώρηση του αποτελέσματος Β. 1Fh 9Fh ADCON0 ADCON1 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ ADCS=ταχύτητα μετατροπής ADC, CHS=αναλογική είσοδος από πολυπλέκτη, GO/DONE =έναρξη/ολοκλήρωση μετατροπής, ADON=ADC σε λειτουργία ή όχι ADFM=τοποθέτηση των bits στους καταχωρητές ADRESH,ADRESL. (δεξιά/αριστερή ευθυγράμμιση) PCFG=καθορισμός pins με τάσεις αναφοράς 26
Βήματα για ADC: 1. Διαμόρφωση των ADCON1,0 και TRIS 2. Εκκίνηση μετατροπής (GO) 3. Αναμονή για μετατροπή (DONE ή INTERUPT) 4. Ανάγνωση των καταχωρητών ADRESH, ADRESL (Eντολές της μορφής mov.). 27 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
#INCLUDE "P16F877.INC" ORG 0 movlw b'10000000 bsf STATUS,RP0 movwf ADCON1 bcf STATUS,RP0 movlw b'10011001' movwf ADCON0 bsf STATUS,RP0 clrf TRISB bcf STATUS,RP0 clrf PORTB LO bcf PIR1,ADIF NOP NOP bsf ADCON0, GO WAI btfss PIR1,ADIF goto WAI bsf STATUS,RP0 movf ADRESL,w bcf STATUS,RP0 movwf PORTB goto LO END Δεξιά ευθυγράμμιση του ψηφιακού αριθμού Καθορισμός ταχύτητας, εισόδου, λειτουργίας ADC Καθαρισμός των καταχωρητών TRISB και PORTB Καθαρισμός του διακόπτη ADIF Έναρξη μετατροπής Επανάληψη μέχρι το ADIF να γίνει 1 Μεταφορά των 8 LSB στην πόρτα Β Επανάληψη της διαδικασίας ADC 28
3. Χρονιστής TIMER0 Χρησιμοποιείται για καταμέτρηση παλμών, καθυστέρηση (delay) κ.ά. Στη διαδικασία του χρονισμού συμμετέχουν οι καταχωρητές: 3. OPTION_REG για τη ρύθμιση της λειτουργίας του χρονιστή 4. TMR0 καταχωρητής εγγραφής-ανάγνωσης που περιέχεται το αποτέλεσμα της καταμέτρησης των παλμών. 5. INTCON (bit T0IF) ένδειξη υπερχείλισης του TMR0 29 BANK0 BANK1 BANK2
#INCLUDE "P16F877.INC" ORG 0 bsf STATUS,RP0 movlw b'11010111' movwf OPTION_REG clrf TRISB bcf STATUS,RP0 s movlw b'01000000' call subr movlw b'00100000' call subr movlw b'10000000' call subr movlw b'00010000' call subr goto s subr movwf PORTB movlw D'000' movwf TMR0 de1 btfss INTCON, T0IF goto de1 bcf INTCON, T0IF RETURN END ΗΛΕΚΤΡΟΝΙΚΟΣ ΤΟΜΕΑΣ ΕΠΑΛ Ρύθμιση του OPTION Ορισμός της PORTB σαν εξόδου Κλίση υπορουτίνας καθυστέρησης Έξοδος δεδομένων στην PORTB Μηδενισμός του TMR0 Έλεγχος του TMR0 για υπερχείλιση Μηδενισμός του T0IF 30 ΚΑΛΠΟΓΙΑΝΝΗΣ ΣΩΦΡΟΝΗΣ
4. Universal Synchronous Asynchronous Receiver Transmitter (USART) Σειριακή επικοινωνία (σύγχρονη- ασύγχρονη) μέσα από τα RC6 και RC7 (25 και 26 pins) και συμμετέχουν οι καταχωρητές: TXSTA, RCSTA: καταχωρητές κατάστασης και ελέγχου δεδομένων SPBRG: Καταχωρητής ελέγχου γεννήτριας Baud rate TXREG, RCREG: καταχωρητές δεδομένων PIR1: bits TXIF,RCIF, SSPIF 31 ΗΛΕΚΤΡΟΝΙΚΟΣ ΤΟΜΕΑΣ ΕΠΑΛ
TXSTA: (1/0) CSRC: Επιλογή πηγής ωρολογιοπαλμών ΤΧ9: Εκπομπή 9/8 bits TXEN: Ενεργοποίηση εκπομπής SYNC: Σύγχρονη/Ασ. εκπομπή BRGH: Επιλογή ταχύτητας H/L TRMT: Κατάσταση του TSR (άδειος/γεμάτος) TX9D: Έλεγχος ισοτιμίας (9bit) RCSTA: SPEN: Ενεργοποίηση σειριακής RX9: Λήψη 9/8 bits SREN: Επιτρέπει απλή λήψη CREN: Διαρκής λήψη ADDEN: Επιτρέπει τη λήψη διεύθυνσης FERR: Σφάλμα πλαισίου OERR: Σφάλμα λήψης 32 RX9D: Έλεγχος ισοτιμίας (9bit)
#INCLUDE "P16F877.INC" REC equ 20h TEMP equ 21h ORG 00h Call INITIALIZE loop1 call RECEIVE addlw 0 btfss STATUS,Z (σημαία μηδενισμού) goto loop1 movlw > call SEND goto loop1 INITIALIZE bcf STATUS,RP0 movlw 0xFF movwf PORTC bsf STATUS,RP0 movwf TRISC (Είσοδος) bcf STATUS,RP0 movlw 0x24 bsf STATUS,RP0 movwf TXSTA bcf STATUS,RP0 movlw D 25 bsf STATUS, RP0 movwf SPBRG bcf STATUS,RP0 movlw 0x90 movwf RCSTA return SEND btfss PIR1,TXIF (1 για άδειο f) goto SEND movwf TXREG return RECEIVE btfss PIR1,RCIF (1 γεμάτος f) goto NO_CHAR movf RCREG,W movwf REC movlw 00h return NO_CHAR movlw 0FFh return END 33
Εφαρμογές: Μετρητικές διατάξεις, μετρητικά όργανα, έλεγχος κινητήρων, τηλεφωνία αντικλεπτικά συστήματα, έλεγχος καυσαερίων, αυτόματο έλεγχο σε οικιακές συσκευές, έξυπνο σπίτι, διαχείριση μπαταριών, έλεγχο θυρών κ.ά. 34
Εφαρμογή στο αυτοκίνητο 35
Αυτοματισμοί 36