Microcontrolerul este un circuit integrat "inteligent". Utilizatorul lui i transfer o parte din propria inteligen, n memoria acestuia n procesul de programare a microcontrolerului. Pentru a-l putea utiliza, electronistul are nevoie de unelte de dezvoltare. Acestea sunt: -editorul -compilatorul -simulatorul -programatorul. Primul pas este alegerea tipului de microcontroler. Este poate cel mai dificil deoarece gama de microprocesoare existente pe pia este extrem de variat. Tipurile cele mai rspndite sunt reprezentate de Atmel (AVR si clone 8051), Motorola (seria 68HC11), Philips (seria 8051) Microchip (PIC) Scenix (SX, clone PIC de mare vitez) Maxim (clone 8051 de mare vitez), Rabbit (microcontrolere pe 16 bii) i o sumedenie de alte microcontrolere japoneze (de exempluToshiba). Pentru ca un microcontroler sa execute oarece operaii este o condiie necesar, dar nu i suficient, de a scrie un program. SCRIEREA UNUI PROGRAM poate fi fcut intr-un limbaj de nivel nalt (cu ajutorul compilatoarelor C, sau Basic, sau Pascal, etc.) sau n limbajul de asamblare specific microcontroler-ului. In ambele cazuri este necesar un calculator. Scrierea unui program este mai uoara intr- un limbaj de nivel nalt, singurul dezavantaj fiind c aceste compilatoare sunt foarte scumpe. Ele "traduc" de fapt limbajul de nivel nalt n limbajul de asamblare. Deci, rmne varianta scrierii programelor n limbajul de asamblare. Programul microcontroler-ului este de fapt un fiier cu extensia "asm" realizat cu orice editor de text, n modul text ASCII neformatat. Cu ajutorul unui asamblor (program gratuit, numit asm.exe) acest fisier "asm" este asamblat i astfel se genereaz codul main ce este stocat ntr-un fiier cu extensia "hex". Acest fiier conine instruciunile i datele ce trebuie trimise ctre memoria microcontroler-ului, cu ajutorul unui inscriptor. VERIFICAREA SI SIMULAREA FUNCTIONARII PROGRAMULUI Un program scris in limbajul de asamblare nu este destul de lizibil i de aceea pot exista greeli de concepie a programului, sau erori de programare, dei instruciunile sunt corecte. De exemplu vrem ca sa se aprind un led conectat la un anumit pin, dar acel pin nu l-am setat sa fie pin de ieire ! Deci led-ul nu are cum s lumineze, iar asamblorul nu poate ghici ca noi vrem ca led-ul s lumineze. Aceste greeli n-au cum s fie detectate de asamblor. Intr-un cuvnt, dezvoltarea de aplicaii n limbajul de asamblare este anevoioas. Pentru rezolvarea uoara a acestor probleme s-au inventat simulatoarele si emulatoarele. Acestea sunt periferice destul de scumpe, care conectate la un calculator pot imita perfect, (chiar si in timp real) att din punct de vedere al soft-ului, ct i al hard- ului, un anume microcontroler. De obicei productorii pun la dispoziie, gratuit, un mediu de dezvoltare (de exemplu programul MPLAB pentru microcontrolerele PIC) care este in acelai timp i un simulator. Deci buna funcionare a unui program de asamblare destinat unui microcontroler poate fi testat fr a dispune fizic de acel microcontroler. In acest mediu de dezvoltare poate fi vizualizat n mod interactiv memoria program, regitrii, biii de stare, pot fi introdui stimuli externi, pinii pot fi pui la nivelul logic dorit, etc. Programul din acest microcontroler virtual poate fi rulat pas cu pas sau rapid, pot fi msurai cicli de execuie, etc. Scopul acestor asambloare si medii de dezvoltare este de a realiza un program functional pentru microcontroler. In fine, scriind intr-un mod anume un program funcional pentru microcontroler, asamblndu-l i obinnd codul main (fiierul .hex) acesta trebuie introdus in microcontroler. Aceasta operaie se numete nscriere si se executa cu ajutorul unui inscriptor (sau programator). Microcontrolerul PICF45K22 Performante ridicate RISC CPU: Compilator optimizat cu set de arhitectura/instructiuni, memorie EEPROM de date de 1024 bytes,memorie de linii de program la 64 Kbytes,memorie linii de date adresata la 4 Kbytes,pn la 16 de operare MIPS,16-bii la nivel instruciuni, 8-bit cale de date Nivele de prioritate pentru ntreruperi,31-nivel, software-ul este accesibil pentru stiva hardware,8 x 8 Cicluri de multimplicare hardware. Managementul Low-Power cu nanoWatt XLP :
Mod sleep: 100 nA, tipic,watchdog Timer: 500 nA, timer1 Oscilator: 500 nA tipic de 32 kHz ,structura oscilator flexibil,precizie 16 MHz bloc oscilator intern:calibrat la 1%,frecvene selectabile ale software-ului variaz de la 31 kHz pn la 16 MHz,Performan 64 MHz disponibile folosind PLL,nu sunt necesare componente externe,patru tipuri de cristale de pn la 64 MHz,dou tipuri ceas extern de pn la 64 MHz 4X PLL (PLL),oscilator secundar folosind Timer1 32 kHz,fail-Safe Ceas Monitor,permite de nchidere n siguran n cazul n care ceas periferice se oprete,dou oscilatoare Start-up. Caracteristici speciale microcontroler:
Operare complet 5.5V (PIC18F2XK22/4XK22),tensiune de joasa frecventa1.8V-3.6V disponibila pentru funcionarea (PIC18LF2XK22/4XK22),software auto- programabil,power-on Reset (POR), power-up timer (PWRT) si Oscillator Start-up timer (OST),timer de tip Watchdog (WDT) cu oscilator i software-ul on-chip permite,protecie a coduli programat,in-Circuit Serial Programming (ICSP ) prin intermediul a doi pini In-Circuit Debug prin intermediul a doi pini Analog Caracteristici:
Modul de conversie Analog-Digital (ADC): Rezoluia de 10 bii,17 canale de intrare analogice (PIC18F/LF2XK22),28 canale de intrare analogice (PIC18F/LF4XK22),capacitatea auto-achizitie,conversia este disponibila n timpul modului Sleep. Tipul de detectie la tensiune inalte/joase,unitatea de masura a timpului de incarcare (CTMU) pentru suport mTouch:pn la 28 de canale pentru buton, senzor sau de intrare a cursorului,comparatorul analog:dou comparatoare analogice,comparator cu pini pentru intrare-iesire care sunt accesibili si configurabili din exterior. Modul de referin de tensiune cu: Modul al tesniunii de referinta programabil On-chip (% din VDD),tensiune de referinta selectabila On-chip Caracteristici periferice: 24/35 I / O pini i numai 1pin de intrare: Intensitatea curentului electric 25 mA/25 mA,interupere individuala pentru pini,trei pini de ntrerupere externe,pn la apte module de temporizare,pn la patru cronometre de 16-bit / contoare cu precursor Pn la trei perechi de 8-bii cronometre / contoare,oscilator de putere mica Timer1 Module (PCC) una, dou sau patru ieiri PWM,polaritate selectabila,auto-shutdown i Auto-Restart. Controlul direciei de ieire PWM 3-dire de tip SPI (suporta toate cele 4 moduri de SPI),I2C Master-slave moduri ,suporta RS-232, RS-485 i LIN 2.0 ,auto Wake-up pe Start bit Microcontrolerul Pic18F45k22 este prezenatat in figura de mai jos:
Fig.2.21.Prezentarea microcontrolerului PIC18F45K22 Pinii RA0-RA7 sunt de tip digital I/0 Pinii RB0-RB7 sunt de tip digital I/0 Pinii RC0-RC7 sunt de tip digital I/0 Pinii RD0-RD7 sunt de tip digital I/0 Pinii RE0-RE2 sunt de tip digital I/0 Pinul RE3 este de tip Input Vpp-Tensiunea de intrare (Programming voltage input) Vdd- Tensiune de alimentare pozitiva pentru pinii logici si de I/O (Positive supply for logic an I/O pins) Vss- Alimentarea la sursa de impamantare (Ground reference for logic an I/O pins)