9
- Program de formare profesionala flexibila pe platforme mecatronice Investeste in oameni! Program de formare: Mecatronica I Platforme mecatronice pentru educatie si formare flexibila Titlul lucrarii:Microcontrolere – aplicatii

Program de formare : Mecatronica I Platforme mecatronice pentru educatie si formare flexibila

Embed Size (px)

DESCRIPTION

Program de formare : Mecatronica I Platforme mecatronice pentru educatie si formare flexibila. Titlul lucrarii: Microcontrolere – aplicatii. Grupuri de LED-uri care pulsează. - PowerPoint PPT Presentation

Citation preview

Page 1: Program de  formare : Mecatronica I  Platforme mecatronice pentru educatie si formare flexibila

- Program de formare profesionala flexibila pe platforme mecatronice

Investeste in oameni!

Program de formare: Mecatronica I Platforme mecatronice pentru educatie si formare flexibila

Titlul lucrarii:Microcontrolere –aplicatii

Page 2: Program de  formare : Mecatronica I  Platforme mecatronice pentru educatie si formare flexibila

- Program de formare profesionala flexibila pe platforme mecatronice

Investeste in oameni!

Grupuri de LED-uri care pulsează

Scopul aplicaţiei este de a scrie programul pentru aprinderea intermitentă la un interval de timp de 100000ms a ledurilor 0 şi 7.

Structura programului este urmatoarea:#include “16F917.h”# use delay (clock=8000000) void main (){while(1){output _B(0x81)delay_ms(1000000) output _B(0x81)delay_ms(1000000) }}

Page 3: Program de  formare : Mecatronica I  Platforme mecatronice pentru educatie si formare flexibila

- Program de formare profesionala flexibila pe platforme mecatronice

Investeste in oameni!

Explicarea programului:

#include “16F917.h”aceasta instructiune include in procesul de compilare functiile cuprinse in fisierul “16F917.h” # use delay (clock=8000000)seteaza frecventa de utilizare a platformei ( de fapt a microcontrolerului)  void main (){incepe functia principala a programului care nu are parametric si nu returneaza nimic

while(1){   buclă repetitivă – cât timp condiţia dintre parantezele rotunde este adevărată se execută instrucţiunile dintre acolade. În cazul nostru bucla se repetă la infinit, deoarece 1 este asimilat valorii logice TRUE

Page 4: Program de  formare : Mecatronica I  Platforme mecatronice pentru educatie si formare flexibila

- Program de formare profesionala flexibila pe platforme mecatronice

Investeste in oameni!

In sistemul binar ledurilor le corespund valori.Ledurile 0 si 7 : B0(8) si B7(1), in hexazecimal avem 81output _B(0x81)se trimite 1 logic pe tori pinii ledurilor B, adica se aprind ledurile 0 si 7 output _B(0x00)se trimite 0 logic pe toti pinii ledurilor B, adica se sting ledurile 0 si 7delay_ms(V) se introduce o intarziere  } se termina bucla repetitiva while}

Se termina functia principala main , adica se termina programul

Page 5: Program de  formare : Mecatronica I  Platforme mecatronice pentru educatie si formare flexibila

- Program de formare profesionala flexibila pe platforme mecatronice

Investeste in oameni!

Astabil cu grupuri de LED-uri Scopul aplicatiei este de aprinderea alternativa la un anumit interval de timp a doua grupuri de LED-uri. Aprinderea alternativă a LED-urilor 1 şi 5 şi apoi 3 şi 7, la un interval de 800 ms are următorul program: #include “16F917.h”#use delay(clock=8000000)void main() {         while(1)  {                 output_B(0x44);                 delay_ms(800);                 output_low(0x11);                 delay_ms(800);           }}

Page 6: Program de  formare : Mecatronica I  Platforme mecatronice pentru educatie si formare flexibila

- Program de formare profesionala flexibila pe platforme mecatronice

Investeste in oameni!

Pentru realizarea unui prim exemplu de program in cadrul caruia va fi scris pe afisaj cuvantul PIC, vor fi utilizate ca instructiuni noi urmatoarele uinstructiuni

byte const DigMap[x]={...}; → crearea unui vector de date, de tip bit;

#define DIG1 … → instructiune ce defineste numele unei variabile (dupa o astfel de instructiune - directivaă nu se pune „ ; ” ) setup_lcd(LCD_MUX14,0); → comandă de inițializare a LCD-ului. L lcd_symbol(val1,destinație); → comandă prin care se transfera (scrie) „val1” la adresa „destinație”. Ambele (val1 și destinație), se vor scrie în hexazecimal!

Page 7: Program de  formare : Mecatronica I  Platforme mecatronice pentru educatie si formare flexibila

- Program de formare profesionala flexibila pe platforme mecatronice

Investeste in oameni!

Afisarea unei cifreScopul apicatiei este de a afisa cifrelor de la 0 la 4 simultan pe cei trei digiti , la interval de o secunda.Programul propus este urmatorul:#include “16F917.h”# use delay (clock=8000000)byte const Dig Map[10]={ 0xFD,0x60,0xF3,0x66,0xB7,0xBF,0xE0,0xFF,0xE7,0x00};#define DIG1 COM0+22,COM0+23,COM2+23,COM3+22,COM2+22,COM1+22,COM1+23#define DIG2 COM0+06,COM0+21,COM2+21,COM3+6,COM2+6,COM1+6,COM1+21#define DIG3 COM0+03,COM0+11,COM2+11,COM3+03,COM2+03,COM1+03,COM1+11 void main() {

int8 n;setup_lcd(LCD_MUX14,0);for(n=0;n<5;n++) { lcd_symbol(DigMap[n],DIG1); lcd_symbol(DigMap[n],DIG2); lcd_symbol(DigMap[n],DIG3); delay_ms(1000); }}

Page 8: Program de  formare : Mecatronica I  Platforme mecatronice pentru educatie si formare flexibila

- Program de formare profesionala flexibila pe platforme mecatronice

Investeste in oameni!

Explicarea programului: #include “16F917.h”aceasta instructiune include in procesul de compilare functiile cuprinse in fisierul “16F917.h”# use delay (clock=8000000)seteaza frecventa de utilizare a platformei ( de fapt a microcontrolerului)byte const declar variabila de tip byte, numita constDig Map[10]={ 0xFD,0x60,0xF3,0x66,0xB7,0xBF,0xE0,0xFF,0xE7,0x00};codul pentru cifre#define DIG1 COM0+22,COM0+23,COM2+23,COM3+22,COM2+22,COM1+22,COM1+23adresele unde vor fi trimise valorile void main() {incepe programulint8 ndeclar variabila

Page 9: Program de  formare : Mecatronica I  Platforme mecatronice pentru educatie si formare flexibila

- Program de formare profesionala flexibila pe platforme mecatronice

Investeste in oameni!

setup_lcd(LCD_MUX14,0)comandă de inițializare a LCD-ului.lcd_symbol(DigMap[n],DIGi); → comandă prin care se transfera (scrie) DigMap[n] la adresa DIGi. for(n=0;n<5;n++) se repeata pana se termina programul, afiseaza 0,1,2,3,4n++=n+1