1 / 9

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

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

neve-finley
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Program de formare: Mecatronica I Platforme mecatronice pentru educatie si formare flexibila Titlul lucrarii:Microcontrolere –aplicatii

  2. Grupuri de LED-uri care pulsează Scopulaplicaţieieste de a scrieprogramulpentruaprindereaintermitentă la un interval de timp de 100000ms a ledurilor 0 şi 7. Structuraprogramuluiesteurmatoarea: #include “16F917.h” # use delay (clock=8000000) void main () { while(1){ output _B(0x81) delay_ms(1000000) output _B(0x81) delay_ms(1000000) } }

  3. Explicareaprogramului: #include “16F917.h”aceastainstructiune include in procesul de compilarefunctiilecuprinse in fisierul “16F917.h”# use delay (clock=8000000)seteazafrecventa de utilizare a platformei ( de fapt a microcontrolerului) void main (){incepefunctiaprincipala a programului care nu are parametric si nu returneazanimic while(1){buclărepetitivă – câttimpcondiţiadintreparantezelerotundeesteadevărată se executăinstrucţiuniledintreacolade. Încazulnostrubucla se repetă la infinit, deoarece 1 esteasimilatvaloriilogice TRUE

  4. In sistemulbinarledurilor le corespundvalori. Ledurile 0 si 7 : B0(8) si B7(1), in hexazecimalavem 81 output _B(0x81) se trimite 1 logic petoripiniiledurilor B, adica se aprindledurile 0 si 7 output _B(0x00) se trimite 0 logic petotipiniiledurilor B, adica se sting ledurile 0 si 7 delay_ms(V) se introduce o intarziere } se terminabuclarepetitivawhile } Se terminafunctiaprincipala main , adica se terminaprogramul

  5. 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);            } }

  6. Pentrurealizareaunui prim exemplu de program in cadrulcaruiavafiscrispeafisajcuvantul PIC, vorfiutilizate ca instructiuninoiurmatoareleuinstructiunibyte const DigMap[x]={...}; → creareaunui vector de date, de tip bit;#define DIG1 … → instructiunecedefinestenumeleuneivariabile (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 șidestinație), se vorscrieînhexazecimal!

  7. Afisarea unei cifre Scopulapicatieieste de a afisacifrelor de la 0 la 4 simultanpeceitreidigiti , la interval de o secunda. Programulpropusesteurmatorul: #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); } }

  8. Explicareaprogramului: #include “16F917.h”aceastainstructiune include in procesul de compilarefunctiilecuprinse in fisierul “16F917.h”# use delay (clock=8000000)seteazafrecventa de utilizare a platformei ( de fapt a microcontrolerului)byte const declarvariabila de tip byte, numita constDig Map[10]={ 0xFD,0x60,0xF3,0x66,0xB7,0xBF,0xE0,0xFF,0xE7,0x00};codulpentrucifre#define DIG1 COM0+22,COM0+23,COM2+23,COM3+22,COM2+22,COM1+22,COM1+23adreseleundevorfitrimisevalorilevoid main() {incepeprogramulint8 ndeclarvariabila

  9. 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 adresaDIGi. for(n=0;n<5;n++) se repeatapana se terminaprogramul, afiseaza 0,1,2,3,4n++=n+1

More Related