MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV...

23
1 | www.germanelectronics.ro MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă pe care o găsim peste tot: în aparatele electrocasnice, aparatele media, mașini, aparate de măsură, ba chiar și în navele spațiale. Această componentă realizează comenzile înscrise în programul său. Iar realizarea de programe de comandă este o activitate interesantă pentru oricine. Primul pas constă în identificarea unui microcontroler sau procesor optim adecvat pentru aplicația respectivă. În acest sens aveți la dispoziție o paletă largă de modele de la diferiți producători. De asemenea puteți alege și limbajul de programare. De obicei se oferă Assembler sau C, în multe cazuri Basic sau un alt limbaj. În mod normal pentru programare aveți nevoie de un software complex și un aparat de programare. Pe lângă aspectul financiar trebuie să țineți cont și de perioada de timp necesară pentru realizarea programului. Microcontrolerul folosit de noi este cu totul diferit. Pentru programare nu aveți nevoie decât de două taste. Controlul prin programarea tastelor nu include decât câteva comenzi ușor de învățat și care pot fi programate în microcontroler cu ajutorul tastelor. Aveți oricând posibilitatea să modificați programul fără ajutoare speciale. Sistemul este adecvat în special pentru aplicațiile compacte din domeniile măsurători, sisteme de control și reglare. Acest sistem poate realiza foarte multe sarcini. După programarea microcontrolerului acesta poate fi integrat în circuitele proprii. Dar în acest scop aveți nevoie de cunoștințe de bază din domeniul electronicii. De asemenea sistemul este adecvat drept element de bază și primii pași în programarea microcontrolerului. În plus cu acest sistem veți avea mult mai repede succes. Structurile sunt similare cu cele din alte limbaje de programare astfel încât se simplifică mult tranziția ulterioară. 1. Introducere Principiul de funcționare al controllerului TPS este simplu. El are 4 intrări digitale E1 – E4 și patru ieșiri digitale A1 – A4. În plus există două intrări analogice AD1 și AD2 și o ieșire cvasi-analogică PWM. Intrarea Reset la care este conectată tasta Reset resetează programul. Controllerul este alimentat de la 3 baterii A4 cu cca. 4,5 V și poate funcționa în intervalul 2,2 V – 5,5 V. Date tehnice Microcontroler: Frecvență procesare: EEPROM intern: Alimentare VCC: Consum de curent: 4 ieșiri: sarcina max. 10 mA 1 ieșire PWM: sarcina max. 10 mA 4 intrări: stare de repaus 1 2 intrări analogice: 2 intrări taste: stare de repaus 1 Componentele incluse în set Placă experimentală Compartiment baterii 3 x AA Fir HT46F47 cu firmware TPS 3 taste 4 leduri 5 mm, roșu 1 led 5 mm, verde 1 LDR 3 condensatori disc 100 nF 1 condensator electrolitic 47 μF 5 rezistențe 2,2 kΩ 1 rezistență 10 kΩ 1 rezistență 27 kΩ 2 rezistențe 100 kΩ Pentru programare aveți nevoie de ambele taste S1 și S2 și de un ecran led simplu compus din 4 leduri la ieșirile A1 – A4. În total există 14 componente simple împreună cu datele sau sub-comenzile respective. Comenzile și datele sunt codificate drept număr binar 4 biți în domeniul 0000 – 1111 (zecimale 0 - 15) pentru a fi apoi afișate direct pe ecranul led. Numărul respectiv este

Transcript of MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV...

Page 1: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

1 | w w w . g e r m a n e l e c t r o n i c s . r o

MANUAL DE UTILIZARE

SET EDUCATIV MICROCONTROLLER Cod produs: 192286

Control prin programarea tastelor Microcontrolerul este o componentă pe care o găsim peste tot: în aparatele electrocasnice, aparatele media, mașini, aparate de măsură, ba chiar și în navele spațiale. Această componentă realizează comenzile înscrise în programul său. Iar realizarea de programe de comandă este o activitate interesantă pentru oricine.

Primul pas constă în identificarea unui microcontroler sau procesor optim adecvat pentru aplicația respectivă. În acest sens aveți la dispoziție o paletă largă de modele de la diferiți producători. De asemenea puteți alege și limbajul de programare. De obicei se oferă Assembler sau C, în multe cazuri Basic sau un alt limbaj. În mod normal pentru programare aveți nevoie de un software complex și un aparat de programare. Pe lângă aspectul financiar trebuie să țineți cont și de perioada de timp necesară pentru realizarea programului.

Microcontrolerul folosit de noi este cu totul diferit. Pentru programare nu aveți nevoie decât de două taste. Controlul prin programarea tastelor nu include decât câteva comenzi ușor de învățat și care pot fi programate în microcontroler cu ajutorul tastelor. Aveți oricând posibilitatea să modificați programul fără ajutoare speciale. Sistemul este adecvat în special pentru aplicațiile compacte din domeniile măsurători, sisteme de control și reglare. Acest sistem poate realiza foarte multe sarcini. După programarea microcontrolerului acesta poate fi integrat în circuitele proprii. Dar în acest scop aveți nevoie de cunoștințe de bază din domeniul electronicii.

De asemenea sistemul este adecvat drept element de bază și primii pași în programarea microcontrolerului. În plus cu acest sistem veți avea mult mai repede succes. Structurile sunt similare cu cele din alte limbaje de programare astfel încât se simplifică mult tranziția ulterioară.

1. Introducere Principiul de funcționare al controllerului TPS este simplu. El are 4 intrări digitale E1 – E4 și patru ieșiri digitale A1 – A4. În plus există două intrări analogice AD1 și AD2 și o ieșire cvasi-analogică PWM. Intrarea Reset la care este conectată tasta Reset resetează programul. Controllerul este alimentat de la 3 baterii A4 cu cca. 4,5 V și poate funcționa în intervalul 2,2 V – 5,5 V.

Date tehnice Microcontroler: Frecvență procesare: EEPROM intern: Alimentare VCC: Consum de curent: 4 ieșiri: sarcina max. 10 mA 1 ieșire PWM: sarcina max. 10 mA 4 intrări: stare de repaus 1 2 intrări analogice: 2 intrări taste: stare de repaus 1

Componentele incluse în set Placă experimentală Compartiment baterii 3 x AA Fir HT46F47 cu firmware TPS 3 taste 4 leduri 5 mm, roșu 1 led 5 mm, verde 1 LDR 3 condensatori disc 100 nF 1 condensator electrolitic 47 µF 5 rezistențe 2,2 kΩ 1 rezistență 10 kΩ 1 rezistență 27 kΩ 2 rezistențe 100 kΩ

Pentru programare aveți nevoie de ambele taste S1 și S2 și de un ecran led simplu compus din 4 leduri la ieșirile A1 – A4. În total există 14 componente simple împreună cu datele sau sub-comenzile respective. Comenzile și datele sunt codificate drept număr binar 4 biți în domeniul 0000 – 1111 (zecimale 0 - 15) pentru a fi apoi afișate direct pe ecranul led. Numărul respectiv este

Page 2: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

2 | w w w . g e r m a n e l e c t r o n i c s . r o

programat la S1 prin apăsarea tastei. Cu S2 se trece de la comenzi la date și se crește adresa liniei comenzii. Întreaga structură a programului este atât de simplă încât poate fi învățată după foarte puține exerciții.

Fig. 1: Circuitul de bază al sistemului

Fig. 2: Structura standard cu taste Anumite programe de bază sunt echipate cu controller TPS în formula de bază (default) și pot fi pornite direct. De aceea este posibil să puneți controllerul în funcționare pas cu pas. Prima dată trebuie să vă familiarizați cu funcțiile hardware-ului, iar apoi să folosiți câteva programe.

La primele teste folosiți programe simple, care deja sunt integrate în controller. Lista cu programele incluse vă oferă o privire de bază asupra tuturor opțiunilor. Programele sunt descrise pe scurt. Explicațiile detaliate privind programele apar în capitolul următor.

La primul test folosiți numai configurația de bază cu controllerul și celelalte componente necesare pe placa experimentală. Aveți neapărată nevoie de:

Conectarea alimentării la GND (minus) și VCC (plus)

Un condensator de blocare de 100 nF între VCC și GND

Rezistență de reset după VCC și condensator de reset după GND

Rezistență 100 kΩ după VCC și condensator după GND Microcontrolerul HT46F47 funcționează cu un oscilator intern RC. Rezistența de la intrarea oscilator determină frecvența de procesare. Cu 100 kΩ se setează o frecvență de cca. 2 MHz. La nevoie puteți folosi viteze mai mici sau mai mari. Condensatorul legat servește numai în blocare și nu joacă niciun rol în frecvența de procesare. Conexiunea Osc2 rămâne liberă. La nevoie aici puteți lega o rezistență suplimentară contra VCC și puteți deconecta impulsuri cu un sfert din frecvența de procesare.

Page 3: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

3 | w w w . g e r m a n e l e c t r o n i c s . r o

Fig. 3: Patru leduri la ieșiri

Folosiți șina de alimentare superioară și inferioară de pe placa experimental drept conexiunea la masă GND. Aici se conectează cablul negru al compartimentului baterii, adică polul negativ. Cablul plus VCC se leagă la cablul roșu al compartimentului baterii. Respectați neapărat polaritatea corectă, căci altfel controllerul se poate defecta. Pentru detensionarea cablului folosiți un fir scurt. Alimentarea conectată trebuie pe cât posibil să rămână permanent conectată. Pentru decuplare scoateți o baterie din compartiment.

Fig. 4: Circuit minim cu leduri

Instalați și tasta Reset și conectați patru leduri cu rezistențe în serie de 2,2 kO. De acestea aveți nevoie pentru primele teste hardware. Respectați succesiunea corectă. A1 se leagă la ledul stâng, iar A4 la cel drept. Astfel se obține o afișare binară în stânga. Acest lucru este util în programarea ulterioară.

2. Semnalizator Instalați 3 baterii 1,5 V sau trei acumulatoare NiMH în compartimentul baterii. În acest fel porniți primul program model cu un semnalizator cu ledul stâng și drept. Frecvența de clipire este de cca. 1 Hz. Lista cu programe indică acest program simplu cu numai cinci șiruri. Se cuplează alternativ ledul 1 și ledul 8. Între acestea există comenzi de așteptare cu un timp de așteptare de 0,5 sec. Revenirea la început asigură repetarea la infinit a clipirii. Comenzile individuale sunt explicate pe larg în cele ce urmează. Dar din acest exemplu vă puteți face deja o idee privind simplitatea programului. Firmware-ul controllerului are un interpreter care identifică și realizează comenzile simple. De aceea programele sunt mult mai compacte decât la alte sisteme.

Exemplul se referă la șirul adrese începând cu 20h (zecimala 32). Alte programe din domeniul superior de adrese pot fi pornite ulterior drept aplicații proprii. Alternativ adresele pot fi suprascrise cu un cod programe propriu. La nevoie controllerul poate fi resetat la starea de bază, caz în care se reiau programele model originale.

Adresă Comandă Date Comentariu

20 1 1 Led 1

21 2 8 Așteaptă 500 ms

22 1 8 Led 8

23 2 8 Așteaptă 500 ms

24 3 4 Sare -4

Page 4: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

4 | w w w . g e r m a n e l e c t r o n i c s . r o

Dacă lipsește rezultatul dorit verificați prima dată polaritatea corectă a ledurilor. De ajutor în acest sens este măsurarea tensiunilor. Folosiți de ex. un multimetru digital în domeniul 20 V și lăsați conexiunea minus la GND. Astfel toate tensiunile să măsoară contra GND: VCC: 4,5 V Reset: 4,5 V Osc1: 1,5 V E1 la E4: 4,5 V A1: alternativ A2, A3: 0V A3: alternativ

3. Contor binar și sarcină PWM Toate intrările digitale sunt ridicate cu o rezistență internă contra VCC (rezistență pull-up) și au o tensiune de repaus de aceeași valoare ca și tensiunea de funcționare. Puteți realiza fiecare intrare cu un fir sau contact la GND. La start programul default citește și evaluează starea portului. Conexiunile individuale pot fi legate la GND, astfel încât aici se citește starea zero. În funcție de rezultat se activează diferite programe.

Fig. 5: Utilizarea ledului PWM

Fig. 6: Start pentru contorul binar

Legați E1 la GND. Astfel după un reset pornește al doilea program model. Acesta ridică binar starea ieșirilor. Sunt trecute în revistă alternativ stările de la 0000 (zecimală 0) până la 1111 (zecimală 15). Programul folosește variabila A pentru o adunare simplă și pentru sarcina la ieșirile digitale, precum și la ieșirea PWM. Comenzile 7 și 5 posedă sub-funcții care sunt scrise drept date.

Page 5: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

5 | w w w . g e r m a n e l e c t r o n i c s . r o

Adresă Comandă Date Comentariu

25 7 1 A = A +1

26 5 4 Port = A

27 5 9 PWM = A

28 2 6 Așteaptă 100 ms

29 3 4 Sare -4

Lista 2: Contor binar cu sarcină led și PWM

Programul de contorizare poate fi folosit drept program de exercițiu pentru citirea numerelor binare, de care aveți nevoie pentru programare. Fiecare dintre cele patru leduri reprezintă un bit. În total se poate afișa o cifră cu 4 biți. Ledurile sun numerotate pe schema de conexiuni conform valorii lor 8, 4, 2 și 1. Prin adunarea valorilor respective se obține numărul zecimal. În notația hexazecimală cifrele de la 10 la 15 sunt reprezentate prin literele A – F.

8 4 2 1 Zecimal Hexazecimal

0 0 0 0 0 0

0 0 0 1 1 1

0 0 1 0 2 2

0 0 1 1 3 3

0 1 0 0 4 4

0 1 0 1 5 5

0 1 1 0 6 6

0 1 1 1 7 7

1 0 0 0 8 8

1 0 0 1 9 9

1 0 1 0 10 A

1 0 1 1 11 B

1 1 0 0 12 C

1 1 0 1 13 D

1 1 1 0 14 E

1 1 1 1 15 F

Programul poate fi folosit și drept semnalizator pentru diferite frecvențe.

Ieșirea imediat superioară are jumătate din frecvență sau durata dublată a perioadei: A1: 200 ms A2: 400 ms A3: 800 ms A4: 1600 ms

Ieșirea imediat superioară are frecvența înjumătățită sau durata perioadei dublată:

În plus numerele crescătoare vor fi distribuite și la ieșirea PWM (modulația lățimii impulsului). Semnalul PWM este un semnal rectangular cu o frecvență de cca. 16 kHz. Lungimea impulsului este controlată astfel încât raportul impuls – pauze să determine durata medie de conectare și astfel luminozitatea ledului. Luminozitatea ledului conectat este controlată în 15 trepte de la zero până la luminozitate maximă.

Semnalul PWM poate fi omogenizat la tensiune continuă cu ajutorul unui filtru de joase RC. Ieșirea PWM devine astfel o ieșire analogică. Cu acest program obțineți o tensiune continuă care crește în trepte de la 0 V la 4,5 V. Urmăriți desfășurarea tensiunii folosind un aparat de măsură sau un osciloscop.

Fig. 7: Filtru de joase la ieșirea PWM

Page 6: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

6 | w w w . g e r m a n e l e c t r o n i c s . r o

Fig. 8: Tensiune ieșire PWM uniformizată

4. Convertor analog-digital Folosind o legătură E2 contra GND și apăsarea tastei Reset porniți un alt program: convertor analog- digital (AD). Se măsoară tensiunea analogică la intrarea analogică AD1, iar apoi este convertită într-o valoare digitală. Deoarece controllerul TPS lucrează cu valori de 4 biți, rezultatul convertirii analog-digital este un număr cuprins în intervalul 0 – 15. Rezultatul 0 este pentru tensiunea de intrare 0, rezultatul 15 pentru o tensiune care corespunde tensiunii de funcționare, adică de ex. 4,5 V. Valoarea AD este distribuită ca număr binar la cele patru leduri și suplimentar transferată la ieșirea PWM. Conectați la intrarea analogică AD1 un divizor de tensiune compus dintr-o rezistență fixă și o rezistență dependentă de lumină – senzor de lumină (LDR).

Fig. 9: Legarea senzorului de lumină

Fig. 10: LDR la intrarea AD1

Page 7: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

7 | w w w . g e r m a n e l e c t r o n i c s . r o

Datorită sarcinii la ieșirile digitale și a ieșirii PWM programul seamănă foarte mult cu programul din ultimul capitol. În primul șir se află comanda pentru convertirea unei valori analogice.

Adresă Comandă Date Comentariu

2A 6 9 A = AD1

2B 5 4 Port = A

2C 5 9 PWM = A

2D 2 6 Așteaptă 100 ms

2E 3 4 Sare -4

Lista 3: Convertor AD și ieșirea PWM Testați programul cu iluminări diferite ale senzorului. Cu cât cade mai multă lumină pe LDR, cu atât mai mică este tensiunea la AD1. Invers, în caz de întuneric se obțin valori AD maxime și astfel o luminozitate maximă a ledului la ieșirea PWM. Citiți cifrele binare pe displayul led și încercați de ex. să setați o luminozitate la jumătatea domeniului. Valoarea digitală este de 0111 sau 1000. În caz de lumină artificială pâlpâitoare se poate întâmpla ca rezultatul să comute între două trepte.

5. Generator electronic de numere aleatorii Folosind jumperul E3 contra GND porniți un program pentru generatorul de numere aleatorii. În acest caz se evaluează tasta S1. Intrarea respectivă dispune de o rezistență internă pull-up, care ridică tensiunea la nivelul VCC. Tasta este legată contra masei. La apăsarea tastei intrarea S1 se setează la zero.

Fig. 11: Startul comutatorului pentru numerele aleatorii

Fig. 12: Jumper între E3 și GND Programul folosește o comandă jump condiționată. Dacă starea intrării S1 este unu, atunci se sare peste următoarea comandă. Dacă se apasă pe tastă starea este zero și astfel se realizează creșterea variabilei A. Acest lucru conduce la creșterea rapidă a

Page 8: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

8 | w w w . g e r m a n e l e c t r o n i c s . r o

stării ieșirii. La eliberarea tastei se păstrează ultima stare a contorului. Din cauza vitezei mari de contorizare nu există nicio influență asupra rezultatului, care este aleatoriu.

Adresă Comandă Date Comentariu

30 5 4 Port = A

31 C E S1 = 1?

32 7 1 A = A + 1

33 3 3 Sari -3

Lista 4: Generator electronic de numere aleatorii

Pentru a obține un alt rezultat aleatoriu apăsați scurt tasta. Testați funcția aleatorie realizând o statistică a rezultatelor. După un număr suficient de mare de încercări ar trebui ca toate rezultatele să apară la fel de des. Programul poate fi folosit și drept joc, de ex. la un joc la care trebuie dat cu zarul numărul 1111.

Totodată programul este un contor cu viteză de funcționare maximă, căci nu se folosește nicio comandă de pauză. De aceea în acest exemplu puteți verifica viteza de funcționare a controllerului TPS. Atâta vreme cât apăsați tasta la ieșirea A1 apare un semnal rectangular cu o frecvență de cca. 133 Hz și o durată a perioadei de 7,5 ms. Portul își modifică starea după fiecare 3,75 ms. Programul realizează în loop patru comenzi. Astfel pentru fiecare comandă este nevoie de cca. o milisecundă. Ultima ieșire A4 are o frecvență de 16,6 Hz, ceea ce se poate vedea datorită pâlpâirii.

Dacă aveți nevoie de viteze de funcționare mai mari puteți crește viteza de procesare a controllerului micșorând rezistența la Osc1. La 100 kΩ se obține o frecvență de procesare de 2 MHz. Înlocuiți rezistența cu una de 27 kΩ. Astfel obțineți o rată de procesare de aproape patru ori mai mare și un timp al comenzii de cca. 0,25 ms. În caz normal controllerul ar trebui să funcționeze la Osc1 de la 100 kΩ. Astfel consumul de curent este mai mic și siguranța în funcționare se obține chiar și la valori mai mici pentru tensiunea de funcționare de până la 2,2 V.

6. Măsurarea lungimii impulsurilor Cu E4 la GND și resetare activați un program pentru măsurarea lungimii impulsurilor. Și în acest caz se evaluează starea intrării S1.

Fig. 13: E4 la GND

Fig. 14: Start pentru măsurarea lungimii impulsurilor

Page 9: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

9 | w w w . g e r m a n e l e c t r o n i c s . r o

Măsurarea timpului are loc în starea S1=0, adică cu tasta apăsată. La timpul de așteptare de 5 ms se adaugă încă 5 ms pentru executarea a cinci comenzi în circuitul contorizare. De aceea timpul pentru măsurătoare este de 10 ms.

Adresă Comandă Date Comentariu

34 2 2 Așteaptă 5 ms

35 C C S1 = 0?

36 3 2 Sare -2

37 4 0 A = 0

38 2 2 Așteaptă 5 ms

39 7 1 A = A + 1

3A 5 4 Port = A

3B C E S1 = 1?

3C 3 4 Sare -4

3D 3 9 Sare -9

Lista 5: Măsurarea timpului

7. Citirea programelor Pentru programare se folosesc tastele S1 (introducerea datelor, stânga) și S2 (programare, dreapta). În plus este nevoie și de tasta Reset. Cu aceste taste se pot citi și introduce programe. Cu puțin exercițiu veți fi capabili în cel mai scurt timp să introduceți noi programe și să le modificați pe cele existente.

Pentru a ajunge în modul programare aveți nevoie de Reset prin apăsarea tastei S2; tasta trebuie eliberată la cca. o jumătate de secundă după reset. Acum cu tasta S2 puteți realiza scroll prin programul existent și vizualiza comenzile și datele. Fiecare adresă are nevoie de apăsarea dublă a tastei S2. Astfel treceți de la afișarea datelor la cea a comenzilor. În plus pentru scurt timp va fi afișată și adresa actuală.

Fig. 15: S1 și S2 pentru modul programare

Fig. 16: Trei taste și ecranul led

Page 10: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

10 | w w w . g e r m a n e l e c t r o n i c s . r o

Prima apăsare a tastei S2

Afișarea adresei (cel de-al patrulea bit de jos), 300 ms

Afișare off, 300 ms

Afișarea comenzii

A doua apăsare a tastei S2

Afișarea datelor

A treia apăsare a tastei S2

Afișarea următoarei adrese, 300 ms

Etc.

Dacă de ex. doriți numai vizualizarea unui program existent cu cinci pași, dar nu și modificarea acestuia, veți ajunge la capătul programului apăsând de 10x tasta S2. Deoarece de fiecare dată este afișată scurt adresa actuală vă veți păstra permanent orientarea. Veți ști întotdeauna dacă se afișează o comandă sau date. Conform setărilor din fabricație în primele cinci adrese se află următoarele comenzi. Este vorba despre partea de început a programului de selecție la startul programelor individuale.

Adresă Comandă Date Comentariu

00 6 4 A = Din

01 5 1 B = A

02 4 E A = 14

03 8 0 AdrHi = 0

04 C 3 A = B?

Lista 6: Coduri program conform setărilor din fabricație

Un byte este compus dintr-o comandă 4 biți și datele 4 biți aparținătoare, adică un număr 8 biți. O jumătate de byte se numește „nibble”. Nibble-ul superior reprezintă comanda, iar cel inferior datele aparținătoare. EEPROM al controllerului include în total 128 bytes. Astfel un program poate include maxim 128 de comenzi. Acest lucru este suficient pentru majoritatea aplicațiilor, căci codul program este extrem de compact. Foarte multe programe utile se descurcă cu mai puțin de zece comenzi. Afișați comenzile individuale și datele și comparați conținutul memoriei. Apoi apăsați din nou tasta Reset. Se activează vechiul program, fără nicio modificare.

8. Introducerea programelor Tasta S1 se folosește numai dacă doriți modificarea sau reintroducerea unei comenzi sau a datelor sale. În principiu nu se introduc decât valori cuprinse în intervalul 0 – 15. La prima apăsare a tastei S1 se setează 0. Fiecare apăsare ulterioară a tastei crește numărul cu 1. Starea actuală este afișată binar de cele 4 leduri. Dacă de ex. doriți să introduceți 4 apăsați de cinci ori tasta S1: 0, 1, 2, 3, 4. Afișarea binară va fi 0100.

Dacă introduceți comenzi sau date folosind această metodă atunci a doua apăsare a tastei S2 duce la programarea în EEPROM a acestui byte. În acest sens ecranul led este dezactivat timp de 600 ms până la afișarea următoarei adrese și apoi a următoarei comenzi. Această mică pauză reprezintă procedeul de programare. În acest fel sistemul economisește energia pentru afișare și o folosește pentru programarea EEPROM. Un lucru similar se întâmplă și la automobile: după acționarea demarorului se opresc pentru scurt timp lumina și radioul.

Un program existent poate fi modificat numai într-un singur punct. Cu S2 ajungeți prin scroll la punctul dorit și modificați cu S1 comanda sau datele, iar apoi salvați cu S2.

Pentru primul test introduceți un program cu numai două comenzi. Se aprind 3 leduri, iar apoi programul se realizează permanent.

Adresă Comandă Date Comentariu

00 1 7 A1-4 = 0111

01 3 0 Sare 0

Lista 7: Aprinderea ledurilor

În loc de lista detaliată puteți alege și notația simplificată. În acest caz cei doi bytes sunt combinați în hexazecimale: 17h, 30h. În cele ce urmează vom folosi notația hexazecimală. Astfel programele sunt scrise în notația simplificată fără semnele hexazecimale: 17 30.

Datele se introduc astfel: S2 + Reset 2 x S1 S2 8 x S1 S2 4 x S1 S2 1 x S1 S2

Page 11: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

11 | w w w . g e r m a n e l e c t r o n i c s . r o

Chiar dacă din greșeală apăsați de prea multe ori tasta S1, veți putea totuși ajunge la numărul corect. Trebuie doar să treceți peste 15, căci după aceea are loc tranziția la valoarea 0.

După introducerea completă a datelor veți putea porni noul program folosind tasta Reset. Veți vedea că se vor aprinde trei leduri. În rest nu se întâmplă nimic. Controllerul nu mai reacționează la stările intrărilor E1 – E4, căci programul inițial a fost parțial suprascris. Astfel nu veți mai putea porni nici programele model.

Deoarece ați modificat numai primele două adrese, veți putea ușor reactiva programul inițial. În acest sens reintroduceți primele două comenzi (64 51) conform listei din ultimul capitol.

Testați funcția inițială a programelor model. Cel mai bine este să reintroduceți noul program. După scurt timp veți câștiga siguranță în introducerea programelor.

9. Reconstituirea programelor model Dacă doriți să reveniți la starea inițială a controllerului introduceți doi bytes FF. Acest lucru corespunde stării EEPROM neprogramat. Firmware-ul controllerului include funcția start, care inițial verifică primele două adrese pentru a identifica memoria goală. Dacă se citesc doi bytes FF atunci controllerul presupune că încă nu a fost introdus niciun program. În acest caz EEPROM este alimentat automat cu software-ul model. Funcția asigură tocmai echiparea EEPROM cu programele model odată cu startul controllerului. Ea poate fi oricând folosită pentru a se reveni la setările din fabricație.

Adresă Comandă Date Comentariu

00 F F -

01 F F -

Lista 8: Revenirea la setările de bază.

Intrați în modul programare prin reset apăsând tasta S2. Apoi introduceți de patru ori valoarea F (zecimală 15), caz în care sunt luminate toate ledurile de la A1 la A4. Încheiați ultima introducere a datelor cu S2. Apăsați pe Reset. Controllerul are nevoie de ceva mai mult timp pentru a programa toți bytes al programelor model. În acest fel ați revenit la setarea de bază. Testați de ex. fără jumper la intrările semnalizatorului.

10. Comenzile de bază ale sistemului Sistemul de control prin programarea tastelor folosește în total 14 comenzi (1 - 14). Multe dintre aceste comenzi au un parametru de forma unui număr 4 biți 0000 – 1111 (0 - F), adică un domeniu de zecimale până la 15 (zecimal). Alte comenzi folosesc sub-funcții, care se introduc sub forma parametrilor. În spatele unui cod de comandă se pot ascunde maxim 16 sub-comenzi. Astfel de ex. comanda 7 este pentru „Calculează A=...”. Parametrul indică funcția de calcul care trebuie selectată.

În cele ce urmează comenzile și datele sunt scrise în notația hexazecimală drept un byte. Din comanda 1 și parametrul 4 se formează comanda 14h. Semnul hex este eliminat, căci toate comenzile și adresele apar în notația hexazecimală.

Primele trei comenzi sunt: 10–1F: sarcină directă port la A1–A4, 0–15, binar 0000 până la 1111 20–2F: timp de așteptare 0–15 (1, 2, 5, 10, 20, 50, 100, 200, 500, 1.000, 2.000, 5.000, 10.000, 20.000, 30.000, 60.000 ms) 30–3F: revenire la 0–15 Comanda 1 este folosită pentru un număr constant. În acest sens se distribuie biți aleatorii și se aprind simultan mai multe leduri. Comanda 2 folosește un parametru care include timpul în milisecunde și în treptele 1-2-5. În ciuda intervalului mic de cifre de la 0 l 15 se pot obține timpi de decalare între o milisecundă și un minut. Pentru valori mai mari de timp este nevoie de programarea unei comenzi de așteptare care trebuie să fie realizată de mai multe ori, de ex. într-o buclă contorizare. Comanda 3 este foarte simplă și este utilă pentru multe aplicații care presupun repetarea la infinit a unui procedeu. Valoarea pentru jump este limitată la 15. Deoarece această valoare este valabilă pentru adresa actuală, prin acest jump puteți muta părți din program spre alte adrese.

Programul semnalizator folosește aceste trei comenzi. În acest caz trebuie să fie ușor modificat prin scrierea domeniului adrese de la 00. Totodată se modifică și biții, precum și timpii de așteptare.

Adresă Comandă Date Comentariu

00 1 1 A1–4 = 0001

01 2 7 Așteaptă 200 ms

02 1 4 A1–4 = 0100

03 2 7 Așteaptă 200 ms

04 3 4 Sare -4

Lista 9: Programul semnalizare În notația hexazecimală programul arată astfel: 11 27 14 27 34

Page 12: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

12 | w w w . g e r m a n e l e c t r o n i c s . r o

Folosind aceste trei comenzi puteți scrie nenumărate programe simple. Analizați și testați următoarele trei programe. Scopul ar trebui să fie utilizarea intuitivă a acestor comenzi. După puțin exercițiu veți putea realiza și introduce rapid programe simple de acest gen. Un exemplu în acest sens este o secvență de efecte luminoase cu 4 modele:

Adresă Comandă Date Comentariu

00 1 1 Leduri 0001

01 2 8 Așteaptă 500 ms

02 1 2 Leduri 0010

03 2 8 Așteaptă 500 ms

04 1 4 Leduri 0100

05 2 8 Așteaptă 500 ms

06 1 8 Leduri 1000

07 2 8 Așteaptă 500 ms

08 3 8 Sare -8

11 28 12 28 14 28 18 28 38

Lista 10: Lumină curgătoare 1

Extindeți programul folosind alte două modele, astfel încât punctul luminos să se tot miște înainte și înapoi. Experimentați și cu alte modele și timpi de decalare.

Adresă Comandă Date Comentariu

00 1 1 Leduri 0001

01 2 8 Așteaptă 500 ms

02 1 2 Leduri 0010

03 2 8 Așteaptă 500 ms

04 1 4 Leduri 0100

05 2 8 Așteaptă 500 ms

06 1 8 Leduri 1000

07 2 8 Așteaptă 500 ms

08 1 4 Leduri 0100

09 2 8 Așteaptă 500 ms

0A 1 2 Leduri 0010

0B 2 8 Așteaptă 500 ms

0C 3 C Sare -12

11 28 12 28 14 28 18 28 14 28 12 28 3C

Lista 11: Lumină curgătoare 2, înainte și înapoi

Cu o comandă de decalare de maxim un minut puteți obține un timer. În final obțineți un jump cu valoarea 0, adică o buclă fără conținut care servește drept finalul programului. Pentru un nou start folosiți tasta Reset. Extindeți programul pentru a obține un timer 3 minute ce poate fi folosit în bucătărie. În acest caz puteți reprezenta timpul rămas sub forma unor histograme luminoase folosindu-vă de numărul de leduri aprinse.

Adresă Comandă Date Comentariu

00 1 F Leduri 1111

01 2 F Așteaptă 1 min

02 1 0 Leduri 0000

03 3 0 Sfârșit

1F 2F 10 30

Lista 12: Timer pentru un minut

11. Calcule cu variabile Până acum am folosit pentru parametrii comenzilor individuale numai numere constante. Acest lucru este util pentru situația în care un program trebuie să se desfășoare întotdeauna în același mod. Programele mai complexe funcționează cu date variabile. De ex. se poate realiza un calcul de genul A = A + B. În funcție de conținutul variabilelor A și B se va obține un anumit rezultat. Rezultatul poate fi de ex. controlul ledurilor la ieșire.

Controlul posedă patru variabile A, B, C și D. Cea mai importantă variabilă este A. Ea este denumită și acumulator. A face parte din toate operațiile de calcul și conduce la rezultat. În plus A este folosită pentru transportul datelor. B este folosit în principal pentru operațiile de calcul. C și D pot servi drept memorie buffer, iar mai târziu sunt folosite drept contor pentru sistemele contor.

De asemenea există două intrări analogice (AD1 și AD2) și o ieșire PWM. Datele prelucrate sunt limitate la patru biți și pot fi accesate folosind numai variabila A (A = AD1, PWM = A). Acumulatorul A poate fi „încărcat” direct cu un număr (comenzi 40-4F). Pentru a încărca B, C sau D trebuie să încărcați prima dată A și apoi să alocați conținutul celorlalte variabile (comenzi 51-53). Cu A și B puteți realiza anumiți pași ai calculului (comenzi 71-7A).

Page 13: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

13 | w w w . g e r m a n e l e c t r o n i c s . r o

Comenzile 40 – 4F alocă lui A o nouă valoare. Grupa de comenzi 51-5A transferă conținutul lui A spre o țintă, ca de ex. o altă variabilă sau ieșirea PWM. În această grupă există și comenzi care folosesc un singur bit pentru portul ieșire.

Grupa de comenzi 61- 6A are o cu totul altă direcție a datelor; datele unei surse sunt citite în A. Grupa de comenzi 71-7A realizează anumite operații de calcul, iar rezultatul apare în A. Portul ieșire Dout include cele patru ieșiri A1 – A4, ce pot fi solicitate fie împreună, fie drept biți individuali Dout.0 – Dout.3. Intrările E1 – E4 sunt solicitate în același mod drept porturi intrare Din.

40–4F: A = 0–15 51–5A: Target 1–9 = A 51: B = A 52: C = A 53: D = A 54: Dout = A 55: Dout.0 = A.0 56: Dout.1 = A.0 57: Dout.2 = A.0 58: Dout.3 = A.0 59: PWM = A 61–6A: A = Sursă 1–10 61: A = B 62: A = C 63: A = D 64: A = Din 65: A = Din.0 66: A = Din.1 67: A = Din.2 68: A = Din.3 69: A = AD1 6A: A = AD2 71 –7A: A = Print 1–10 71: A = A + 1 72: A = A – 1 73: A = A + B 74: A = A – B 75: A = A * B 76: A = A / B 77: A = A And B 78: A = A Or B 79: A = A Xor B 7A: A = Not A

În cap. 3 (programe) veți găsi un exemplu de utilizare al variabilei A. Programul a fost folosit la adresa zero și a fost ușor extins. Ceea ce s-a adăugat este un început definit cu valoarea 0 în variabila A. În adresa 01 se află o comandă de calcul, în acest caz o creștere cu 1. Conținutul variabilei A este apoi transferat spre ieșirea PWM și spre portul ieșire.

Adresă Comandă Date Comentariu

00 4 0 A = 0

01 7 1 A = A + 1

02 5 4 Port = A

03 5 9 PWM = A

04 2 6 Așteaptă 100 ms

05 3 4 Sare -4

40 71 54 59 26 34

Lista 13: Creștere cu 1 Capitolul 4 prezintă un alt exemplu. Datele sunt primite de la intrarea analogică AD1 și apoi sunt transferate spre portul ieșire și ieșirea PWM. Programul modificat include încă un pas suplimentar de calcul, și anume inversarea conținutului variabilei A. Astfel din valoarea 0000 se obține noua valoare 1111, adică 0 devine 15 și invers. În acest mod o tensiune de intrare în creștere duce la o sarcină PWM în scădere.

Adresă Comandă Date Comentariu

00 6 9 A = AD1

01 5 4 Port = A

02 7 A A = Not A

Page 14: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

14 | w w w . g e r m a n e l e c t r o n i c s . r o

03 5 9 PWM = A

04 2 6 Așteaptă 100 ms

05 3 5 Sare -5

69 54 7A 59 26 35

Lista 14: Inversarea

12. Jumps și ramificații Până acum am folosit un singur jump simplu (comanda 3), care s-a întins pe maxim 15 adrese. Acum vom folosi un jump absolut. Deoarece valoarea pentru jump nu poate fi introdusă decât numai cu 4 biți există o comandă suplimentară, care stabilește high-nibble al adresei. Domeniul pentru adrese este 0-255. Adică mai mult decât este nevoie, căci EEPROM-ul controllerului include numai 128 biți, adică intervalul 00 – 7F (zecimal 0 - 127). Memoria este împărțită în opt pagini, de la pagina 0 la pagina 7 (0 - 7). Înainte de un jump absolut trebuie să determinați pagina țintă a jump-ului.

Două bucle contorizare cu variabilele C și D realizează și ele un jump absolut, cu condiția să stabiliți înainte de orice pagina adresei.

Jump-ul condiționat funcționează drept comenzi skip (omitere). Dacă condiția respectivă este adevărată se sare peste o adresă. Aici poate exista de ex. o comandă jump sau chiar o comandă de calcul. Drept condiții aveți la dispoziție comparații între A și B, precum și chestionări directe biți pentru portul de intrare.

În plus există și posibilitatea de chestionare a unui sub-program (Call) și a comenzii jump aparținătoare (return). Puteți folosi mai multe sub-programe, dar nu puteți chestiona un sub-program pornind de la un alt sub-program, căci intrepreter-ul nu memorează decât o singură adresă return.

80–8F: Adr-high = 0–15 90–0F: jump direct la Adr-high, Adr-low (0–15) A0–AF: buclă contorizare C-x Adr-high, Adr-low (0–15) B0–BF: buclă contorizare D-x Adr-high, Adr-low (0–15) C1–CF: jump condiționat: când (condiție 1–15) atunci omite C1: if A > B then Adr = Adr + 1 C2: if A < B then Adr = Adr + 1 C3: if A = B then Adr = Adr + 1 C4: if Din.0 = 1 then Adr = Adr + 1 C5: if Din.1 = 1 then Adr = Adr + 1 C6: if Din.2 = 1 then Adr = Adr + 1 C7: if Din.3 = 1 then Adr = Adr + 1 C8: if Din.0 = 0 then Adr = Adr + 1 C9: if Din.1 = 0 then Adr = Adr + 1 CA: if Din.2 = 0 then Adr = Adr + 1 CB: if Din.3 = 0 then Adr = Adr + 1 CC: if S1 = 0 then Adr = Adr + 1 CD: if S2 = 0 then Adr = Adr + 1 CE: if S1 = 1 then Adr = Adr + 1 CF: if S2 = 1 then Adr = Adr + 1

D0–DF: chestionare sub-program (Call) Adr-high, Adr-low (0-15) E0–EF: revenirea la sub-program (Return)

În cap. 6 veți găsi un exemplu de utilizare a comenzilor jump condiționate. Acesta a fost ușor modificat și utilizat la adresa 0. Deoarece partea superioară a adresei (Adr-hi) este în stare de repaus 0, controllerul începe de la pagina 0; în acest caz nu trebuie să folosiți comanda 80. Se măsoară și se afișează lungimea unei apăsări de tastă. Toate comenzile de așteptare sunt eliminate din program și de aceea rezoluția de timp este mai mare.

Adresă Comandă Date Comentariu

00 C C S1 = 0?

01 3 1 Sare -1

02 4 0 A = 0

03 7 1 A = A + 1

04 5 4 Port = A

05 C E S1 = 1?

06 3 3 Sare -3

07 3 7 Sare -7

CC 31 40 71 54 CE 33 37

Lista 15: Reacția asupra tastei S1

Page 15: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

15 | w w w . g e r m a n e l e c t r o n i c s . r o

Comanda jump CC în adresa 00 evaluează starea tastei S1. În repaus starea este S1 = 1. Condiția nu este adevărată și nu se omite comanda din adresa 01. Aici se află o comandă jump relativă la început. Programul repetă comenzile în adresa 00 și 01 atâta timp cât este apăsată tasta. După aceea condiția devine adevărată și se omite adresa 01. Cu aceasta începe operația de măsurători. Acumulatorul este șters, apoi mărit cu valoarea 1 și transferat spre leduri. La adresa 05 există o altă comandă jump condiționată CE. Aici se află condiția pentru omiterea unei comenzi S1 = 1. Deoarece tasta este apăsată condiția este încă adevărată. Comanda în 06 este dusă la îndeplinire și determină o revenire la 03. Abia după eliberarea tastei ajunge programul la adresa 07 și astfel se revine la început.

Introduceți programul și testați-l. Timpul de reacție este acum mult mai rapid. Unitatea de timp este de cca. 5 ms.

Programul model inițial se află încă în memorie începând cu adresa 34h, căci au fost suprascrise numai adresele inferioare. Realizați un program simplu, care include numai un jump la această adresă. În acest sens trebuie să introduceți prima dată pagina 3. Jump-ul absolut cu adresa introdusă 4 țintește spre adresa reală 34.

Adresă Comandă Date Comentariu

00 8 3 Pagina 3

01 9 4 Adresă = 34

83 94

Lista 16: Jump absolut la programul de măsurare al timpului

Programul model inițial este astfel activat. Testați-l și cu alte exemple. Anexa prezintă o privire de ansamblu asupra tuturor programelor individuale.

13. Tablou general comenzi Toate comenzile dintr-o privire – pentru simplificarea utilizării controller-ului. Tabelul de mai jos include toate comenzile în format compact.

14. FOR loop Un procedeu trebuie să fie de ex. realizat de cinci ori. În acest sens se construiește o buclă contorizare. Comanda jump este executată de cinci ori, după care este oprită. Variabila contorizare se numește C. Valoarea contorizării 5 trebuie să fie prima dată încărcată în A, iar de aici în C. Comanda A2 realizează un jump absolut la 02 și totodată micșorează conținutul variabilei C cu 1. Atunci când C atinge valoarea 0 nu se mai realizează comanda jump. Adresa jump absolută se referă la pagina indicată. În cazul unui program de pe pagina 0 se poate omite comanda pagină 80. Ea este însă absolut necesară dacă se face jump pentru o altă pagină.

Page 16: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

16 | w w w . g e r m a n e l e c t r o n i c s . r o

Adresă Comandă Date Comentariu

00 4 5 A = 5

01 5 2 C = A

02 1 5 Port = 0101

03 2 8 500 ms

04 1 A Port = 1010

05 2 8 500 ms

06 8 0 Pagina 0

07 A 2 C-once 02

08 3 0 Sfârși

45 52 15 28 1A 28 80 A2 30

Lista 17: O buclă contorizare

Testați programul. La fiecare pasaj ledurile indică modelul 0101 și 1010. Această parte a programului nu este realizată de cinci ori, ci de șase ori. Comanda jump la adresa 07 este realizată de cinci ori, dar pentru a ajunge la aceste poziții pentru prima dată este realizat un procedeu de semnalizare. De aceea programul semnalizează de șase ori. Modificați variabila contorizare la valoarea 4 și retestați programul. Acum ledurile vor clipi de cinci ori. Bucla contorizare poate fi folosită în așa fel încât jump-ul să nu se realizeze înapoi, ci înainte. În acest caz procedeul este realizat de cinci ori, dacă C a fost încărcat cu valoarea 5 la început. Adresa omisă 04 include un jump relativ și astfel bucla infinită, care servește drept final al programului.

Adresă Comandă Date Comentariu

00 4 5 A = 5

01 5 2 C = A

02 8 0 AdrHi = 0

03 A 5 C-once 05

04 3 0 Sfârșit

05 1 5 Port = 0101

06 2 8 Așteaptă 500 ms

07 1 A Port = 1010

08 2 8 Așteaptă 500 ms

09 3 6 Sare -6

45 52 80 A5 30 15 28 1A 28 36

Lista 18: Clipește de 5x.

15. Comparații Trebuie să comparați două valori. Jump-ul se realizează în funcție de rezultatul comparației. Cele două valori trebuie să se afle în A și în B. În exemplul următor B este încărcat cu cifra 5. A primește rezultatul său de la intrarea analogică AD1. La fel ca la cap. 4 puteți conecta și aici un senzor de lumină. Programul trebuie să realizeze următoarele acțiuni:

Dacă AD1 > 5 atunci: toate ledurile on în rest: toate ledurile off

Rezultatul final include un întrerupător crepuscular. Deoarece LDR este legat contra GND, luminozitatea mai mare duce la o tensiune mai mică la AD1. Ledurile se sting dacă se depășește o anumită luminozitate, iar tensiunea scade sub o anumită valoare. Valoarea limită este 6, căci rezultatul trebuie să fie mai mare de 5.

Adresă Comandă Date Comentariu

00 4 5 A = 5

01 5 1 B = A

02 8 0 AdrHi = 0

03 6 9 A = AD1

04 C 1 Skip if A > B

05 9 8 Adr 08

06 1 F Leduri 1111

07 3 4 Adr 03

08 1 0 Leduri 0000

09 3 6 Adr 03

45 51 80 69 C1 98 1F 34 10 36

Lista 19: Întrerupător crepuscular simplu

Testați programul umbrind mai mult sau mai puțin cu mâna senzorul de lumină. Veți vedea că funcția de bază se poate realiza. Însă se obține și un efect secundar neplăcut. La limita dintre ON și OFF ledurile vor clipi necontrolat. Luminozitatea variază

Page 17: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

17 | w w w . g e r m a n e l e c t r o n i c s . r o

puternic în jurul unei valori medii în special în cazul luminii artificiale. Această variație este evaluată corect de către program, dar rezultatul nu este cel așteptat de la un întrerupător crepuscular. Cap. 18 prezintă varianta unui întrerupător crepuscular optimizat.

16. AND, OR și XOR Două stări binare pot fi interconectate pentru a forma o nouă stare. Un exemplu este funcția AND: atunci când bit 1 are starea 1 AND bit 2 are starea 1 starea finală va fi tot 1. În același mod puteți interconecta și valori binare cu mai mulți biți. Legătura „10 AND 3 = 2” poate fi înțeleasă dacă este scrisă în cifre binare:

1010 AND 0011 = 0010

Programul următor leagă stările inițiale cu cifra constantă 3. Funcția AND are rolul de a masca cei doi biți inferiori. În starea de repaus portul de intrare are starea 1111. Legătura AND cu 0011 livrează starea 0011 la leduri. Dacă legați una dintre intrările E1 sau E2 la GND atunci starea 0 este vizibilă și la ieșiri. Modificările realizate la E3 și E4 nu au niciun fel de efect.

Adresă Comandă Date Comentariu

00 6 4 A = Din

01 5 1 B = A

02 4 3 A = 3

03 7 7 A = A And B

04 5 4 Port = A

05 3 5 Sare -5

64 51 43 77 54 35

Lista 20: Utilizarea funcției AND

Modificați programul și testați și alte funcții logice. Funcția OR (78) poate fi modificată pentru a seta la 1 anumite stări intrare: 64 51 43 78 54 35

1010 OR 0011 = 1011 Cu funcția XOR (exclusiv-OR, 79) puteți inversa bițurile individuale: 64 51 43 79 54 35

1010 XOR 0011 = 1001

17. Sub-programe Dacă trebuie să folosiți de mai multe ori părți ale unui program acestea sunt scrise într-un sub-program. În acest fel se economisește spațiul liber din memorie, dar și operațiile de introducere a datelor. Exemplul următor demonstrează utilizarea unui sub-program, care este activat în două locuri din programul principal. Sub-programul include numai o indicație (A=A-1) și comanda jump. De aceea aici nu se economisește spațiul liber din memorie, ci exemplul servește numai pentru demonstrarea comenzilor CALL și RET.

Adresă Comandă Date Comentariu

00 8 0 AdrHi = 0

01 D 8 Call 08

02 5 4 Ieșire

03 2 9 Așteaptă 1 s

04 D 8 Call 08

05 5 4 Ieșire

06 2 8 Așteaptă 0,5 s

07 3 7 Sare -7

08 7 2 A = A-1

09 E 0 Ret

80 D8 54 29 D8 54 28 37 72 E0 Lista 21: Activarea sub-programelor

Rezultatul programului este o cifră binară în scădere cu decalări de timp neuniforme. Testați și alte comenzi din sub-program.

Printre programele model există mai multe sub-programe utile pentru utilizare generală. Acestea apar în Anexă. Pentru utilizare nu trebuie decât să știți adresa inițială: 50: Sub-program: sunet lung 52: Sub-program: sunet scurt

Page 18: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

18 | w w w . g e r m a n e l e c t r o n i c s . r o

53: Sub-program: sunet la alegere, lungimea în A 60: Sub-program: așteaptă apăsarea tastei S1 68: Sub-program: așteaptă apăsarea tastei S2 70: Sub-program: introducerea cifrelor cu S1 și S2

Sub-programul începând cu adresa 60 este folosit pentru a realiza un contor controlat prin tasta S1. Starea contorului începe cu 0. Programul principal este relativ scurt, căci sarcina complex de chestionare a tastelor a fost distribuită în sub-program.

Adresă Comandă Date Comentariu

00 4 0 A = 0

01 5 4 Ieșire

02 7 1 A = A+1

03 8 6 Pagina 6

04 D 0 Call 60, Tasta S1

05 3 4 Sare -4

40 54 71 86 D0 34

Lista 22. Contor controlat de S1

Testați programul. Dacă apăsați S1 de 10x rezultatul ar trebui să fie 1010. Modificați programul în așa fel încât sub-programul să fie folosit începând de la adresa 68. Acum contorul reacționează la S2.

18. Întrerupător crepuscular Un întrerupător crepuscular trebuie să aprindă lumina atunci când luminozitatea ambientală scade sub o anumită valoare. Atunci când luminozitatea crește lumina trebuie stinsă. De asemenea trebuie să vă asigurați că lumina nu pâlpâie la granița dintre luminos și întunecat. Acest lucru se obține cu o histerezis, adică o anumită distanță între luminozitatea de cuplare și de decuplare. Programul descris aici funcționează după următoarele reguli:

Lumina se stinge când tensiunea la AD1 nu este mai mare de 5.

Lumina se aprinde când tensiunea la AD1 nu este mai mică de 9.

Astfel se obține un interval mediu, în care nu se poate modifica starea de ieșire. Acest interval împiedică pâlpâirea luminii. 0-5: leduri off 6-8: leduri nemodificate 9-15: leduri on

Adresă Comandă Date Comentariu

00 1 0 Leduri 0000

01 4 5 A = 5

02 5 1 B = A

03 6 9 A = AD1

04 C 1 Skip if A>B

05 1 0 Leduri 0000

06 4 9 A = 9

07 5 1 B = A

08 6 9 A = AD1

09 C 2 Skip if A<B

0A 1 F Leduri 1111

0B 3 A Sare -10

10 45 51 69 C1 10 49 51 69 C2 1F 3A

Lista 23: Întrerupător crepuscular cu histerezis

19. Dimmer led Scopul acestui program este o lampă cu led ce poate fi controlată. Luminozitatea unui led la ieșirea PWM poate fi testată folosind taste. Pentru a obține următoarea treaptă de luminozitate se poate apăsa scurt o tastă sau se poate apăsa permanent, caz în care luminozitatea se modifică permanent. Programul folosește comenzile skip. Dacă tasta respectivă nu este apăsată, atunci comanda respectivă pentru creșterea sau diminuarea conținutului acumulatorului este omisă. Dificultatea constă în faptul că în mod normal se poate ajunge la un traseu de la 15 la 0 sau de la 0 la 15. Pentru a împiedica aceste trasee este nevoie de ceva mai mult efort. În acest sens trebuie să verificați dacă capătul inferior (0) sau capătul superior (15) este deja atins. Deoarece în cazul unei comparații participă și acumulatorul, conținutul acestuia trebuie să fie salvat. În acest sens se folosește variabila C.

Adresă Comandă Date Comentariu

00 8 0 AdrHi = 0

01 5 9 PWM = A

02 2 7 200 ms

Page 19: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

19 | w w w . g e r m a n e l e c t r o n i c s . r o

03 5 2 C = A

04 4 F A = 15

05 5 1 B = A

06 6 2 A = C

07 C 2 Skip if A<B

08 9 B Sare 0B

09 C F Skip if S2 = 1

0A 7 1 A = A + 1

0B 5 2 C = A

0C 4 0 A = 0

0D 5 1 B = A

0E 6 2 A = C

0F C 1 Skip if A>B

10 9 0 Sare 00

11 C E Skip if S1 = 1

12 7 2 A = A - 1

15 9 0 Sare 00

80 59 27 52 4F 51 62 C2 9B CF 71 52 40 51 62 C1 90 CE 72 90 Lista 24: Controlul luminozității

20. Lacăt cu cifru secret Acest lacăt cu cifru cuplează ieșirea PWM dacă utilizatorul a introdus codul corect. Introducerea codului trebuie să se desfășoare după modelul programării cu tastele S1 și S2. Programul următor demonstrează introducerea unei singure cifre folosind tasta S1. Prima apăsare a tastei duce la rezultatul 0000. Fiecare apăsare ulterioară pe S1 crește rezultatul cu 1. Apăsând tasta S2 se încheie introducerea datelor. În acest caz programul se încheie într-o buclă infinită.

Adresă Comandă Date Comentariu

00 C C S1 = 0?

01 3 1 Sare -1

02 4 0 A = 0

03 5 4 Dout = A

04 2 3 10 ms

05 C E S1 = 1?

06 3 2 Adr 04

07 C F S2 = 1?

08 3 0 Sfârșit

09 C C S1 = 0?

0A 3 3 Adr 07

0B 7 1 A = A + 1

0C 2 3 10 ms

0D C C S1 = 1?

0E 3 1 Adr 0D

0F 3 C Adr 03

CC 31 40 54 23 CE 32 CF 30 CC 33 71 23 CC 31 3C

Lista 25: Introducerea unei cifre

Introducerea cifrelor este disponibilă și drept sub-program începând cu adresa 70. În loc de bucla infinită din șirul 08 aici există o comandă RET. Se iese din sub-program prin rezultatul obținut în A odată cu introducerea cifrelor.

Lacătul cu cifru activează de trei ori operația de introducere a cifrelor și controlează rezultatele cu cifre predefinite. În acest exemplu cifrul este 3, 5, 2. După aceea ieșirea PWM este controlată prin valoarea 15. Orice introducere greșită a codului duce la o buclă infinită, din care se poate ieși numai prin resetare. Ieșirea PWM se comportă ca și un port digital normal. Acest lucru este necesar deoarece este nevoie de toate cele patru ieșiri A1 – A4 pentru introducerea cifrului. După fiecare introducere corectă a cifrului se sting cele patru leduri pentru ca să se ofere cât mai puține informații vizuale privind cifrul unui eventual observator.

Adresă Comandă Date Comentariu

00 8 7 Page 7

01 4 3 A = 3

02 5 1 B = A

03 D 0 call 70

04 C 3 Skip if A=B

05 3 0 Sfârșit

Page 20: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

20 | w w w . g e r m a n e l e c t r o n i c s . r o

06 1 0 Leduri off

07 4 5 A = 5

08 5 1 B = A

09 D 0 call 70

0A C 3 Skip if A=B

0B 3 0 Sfârșit

0C 1 0 Leduri off

0D 4 2 A = 2

0E 5 1 B = A

0F D 0 call 70

10 C 3 Skip if A=B

11 3 0 Sfârșit

12 1 0 Leduri off

13 4 F A = 15

14 5 9 PWM = A

15 3 0 Sfârșit

87 43 51 D0 C3 30 10 45 51 D0 C3 30 10 42 51 D0 C3 30 10 4F 59 30 Listă 26: Lacăt cu cifru

21. Anexă Tabel cu programele model

Adresă Comandă Date Comentariu

00 6 4 A = Din

01 5 1 B = A

02 4 E A = 1110

03 8 0 Pagina 0

04 C 3 A = B?

05 9 8 Sare 08

06 8 2 Pagina 2

07 9 5 Sare 25, »Counting«

08 4 D A = 1101

09 8 0 Pagina 0

0A C 3 A = B?

0B 9 E Sare 0E

0C 8 2 Pagina 2

0D 9 A Sare 2A, »AD/PWM«

0E 4 B A = 1011

0F 8 1 Pagina 1

64 51 4E 80 C3 98 82 95 4D 80 C3 9E 82 9A 4B 81

Pagina 0: Selecție și start pentru programele model

Adresă Comandă Date Comentariu

10 C 3 A = B?

11 9 4 Sare 14

12 8 3 Pagina 3

13 9 0 Sare 30 »aleatoriu«

14 4 7 A = 0001

15 8 1 Pagina 1

16 C 3 A = B?

17 9 A Sare 1A

18 8 3 Pagina 3

19 9 4 Sare 34, »Cronometru S1«

1A 4 3 A = 0011

1B 8 2 Pagina 2

1C C 3 A = B?

1D 9 0 Sare 20, »semnalizator«

1E 8 4 Pagina 4

1F 9 0 Sare 40, »Cronometru S1/S2«

C3 94 83 90 47 81 C3 9A 83 94 43 82 C3 90 84 90

Pagina 1: Selecție și start pentru programele model

Page 21: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

21 | w w w . g e r m a n e l e c t r o n i c s . r o

Adresă Comandă Date Comentariu

20 1 1 0001 »semnalizator«

21 2 8 Așteaptă 500 ms

22 1 8 1000

23 2 8 Așteaptă 500 ms

24 3 4 Sare -4

25 7 1 A = A + 1 »Counting«

26 5 4 Port = A

27 5 9 PWM = A

28 2 3 Așteaptă 100 ms

29 3 4 Sare -4

2A 6 9 A = AD1 »AD/PWM«

2B 5 4 Port = A

2C 5 9 PWM = A

2D 2 6 Așteaptă 100 ms

2E 3 4 Sare -4

2F F F -

11 28 18 28 34 71 54 59 26 34 69 54 59 26 34 FF Pagina 2: Programe model: semnalizator, creștere, AD/PWM

Adresă Comandă Date Comentariu

30 5 4 Port = A »aleatoriu«

31 C E S1 = 1?

32 7 1 A = A + 1

33 3 3 Sare -3

34 2 2 Așteaptă 5 ms »Cronometru S1«

35 C C S1 = 0?

36 3 2 Sare -2

37 4 0 A = 0

38 2 2 Așteaptă 5 ms

39 7 1 A = A + 1

3A 5 4 Port = A

3B C E S1 = 1?

3C 3 4 Sare -4

3D 3 9 Sare -9

3E F F -

3F F F -

54 CE 71 33 22 CC 32 40 22 71 54 CE 34 39 FF FF

Pagina 3: Programe model: aleatoriu, cronometru S1

Adresă Comandă Date Comentariu

40 8 6 Pagina 6 »Cronometru start/stop«

41 D 0 Activare »Așteaptă S1«

42 4 0 A = 0

43 7 1 A = A + 1

44 5 4 Port = A

45 2 3 Aşteaptă 10 ms

46 C D S2 = 0?

47 3 4 Sare -4

48 D 8 Activare »Așteaptă S2«

49 4 0 A = 0

4A 5 4 Port = A

4B 3 B Sare -11

4C F F -

4D F F -

4E F F -

4F F F -

86 D0 40 71 54 23 CD 34 D8 40 54 3B FF FF FF FF

Pagina 4: Program model cronometru start/stop

Page 22: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

22 | w w w . g e r m a n e l e c t r o n i c s . r o

Adresă Comandă Date Comentariu

50 4 F A = 15 »sunet lung«

51 9 3 Adr 03

52 4 5 A = 5 »sunet scurt«

53 5 3 D = A »sunet variabil «

54 1 9 A4 = 1

55 1 1 A4 = 0

56 2 1 2 ms

57 1 9 A4 = 1

58 1 1 A4 = 0

59 2 1 2 ms

5A 1 9 A4 = 1

5B 1 1 A4 = 0

5C 2 0 1 ms

5D B 4 Dmal 04

5E 1 0 Dout 0

5F E 0 Return

4F 93 45 53 19 11 21 19 11 21 19 11 20 B4 10 E0

Pagina 5: Sub-program redare sunet

Adresă Comandă Date Comentariu

60 2 3 Așteaptă 10 ms »Așteaptă S1«

61 C E S1 = 1?

62 3 2 Sare -2

63 2 3 Așteaptă 10 ms

64 C C S1 = 0?

65 3 1 Sare -1

66 E 0 Return

67 F F -

68 2 3 Așteaptă 10 ms »Așteaptă S2«

69 C F S2 = 1?

6A 3 2 Sare -2

6B 2 3 Așteaptă 10 ms

6C C D S2 = 0?

6D 3 1 Sare -1

6E E 0 Return

6F F F -

23 CE 32 23 CC 31 E0 FF 23 CF 32 23 CD 31 E0 FF

Pagina 6: Sub-programele: așteaptă S1 și așteaptă S2

Adresă Comandă Date Comentariu

70 C C S1 = 0? »Introducere taste«

71 3 1 Sare -1

72 4 0 A = 0

73 5 4 Port = A

74 2 3 Așteaptă 10 ms

75 C E S1 = 1?

76 3 2 Sare -2

77 C F S2 = 1?

78 E 0 Return

79 C C S1 = 0?

7A 3 3 Sare -3

7B 7 1 A = A + 1

7C 2 3 Așteaptă 10 ms

7D C C S1 = 1?

7E 3 1 Sare -1

7F 3 C Sare -12

CC 31 40 54 23 CE 32 CF E0 CC 33 71 23 CC 31 3C

Pagina 7: Sub-program introducere taste

Page 23: MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER · MANUAL DE UTILIZARE SET EDUCATIV MICROCONTROLLER Cod produs: 192286 Control prin programarea tastelor Microcontrolerul este o componentă

23 | w w w . g e r m a n e l e c t r o n i c s . r o

Tabelul cu comenzi

În scopul ocrotirii și îmbunătățirii calității mediului înconjurător, al protejării sănătății omului și al utilizării resurselor naturale cu prudență și în mod rațional, consumatorul este solicitat să predea produsul devenit inutilizabil la orice punct de colectare și reciclare din localitatea de domiciliu, conform reglementărilor legale în vigoare. Logo-ul reprezentând o pubelă cu roți barată cu două linii în formă de X indică faptul că produsul face obiectul unei colectări separate, la un centru de colectare și reciclare a produselor electronice și nu împreună cu gunoiul menajer.

Acest produs respectă directivele CE în vigoare, dar numai dacă este utilizat în conformitate cu acest manual. Acest manual de utilizare însoțește produsul.

Înmânați acest manual și altor persoane, cărora le puneți la dispoziție produsul. Aceste instrucțiuni de utilizare sunt o publicație a German Electronics SRL (str. Cuza Vodă nr.61/A, Oradea, România) și Conrad Electronic SE (Klaus-Conrad 1, D-92240 Hirschau, Germania). Toate drepturile, inclusiv cele aferente traducerii, sunt rezervate. Reproducerea (inclusiv traducerea) prin orice mijloace, de ex. prin fotocopiere, microfilmare sau prin introducerea în sisteme electronice de procesare a datelor, necesită în prealabil aprobarea scrisă a editorului. Retipărirea, chiar și parțială, este interzisă. Aceste instrucțiuni de utilizare reflectă specificațiile tehnice ale produsului la data tipăririi. Producătorul își rezervă dreptul de a opera modificări de natură tehnică sau de design fără o înștiințare prealabilă.

© 2015 Conrad Electronic SE & German Electronics SRL (ediția în limba română) Toate drepturile rezervate