![]() |
Microcontrolere PIC on-line GRATIS! |
![]() |
|||||
|
|||||||
|
CAPITOLUL 2 Microcontrolerul PIC16F84 Introducere PIC16F84 aparține unei clase de microcontrolere de 8 biți cu arhitectură RISC. Structura lui generală este arătată în schița următoare reprezentând blocurile de bază.
Memoria
program
(FLASH)-pentru memorarea unui program scris.
EEPROM-memorie
de date ce trebuie să fie salvate când nu mai este alimentare.
RAM-memorie
de date folosită de un program în timpul executării sale. PORTUL A și PORTUL B sunt conexiuni fizice între microcontroler și lumea de afară. Portul A are 5 pini, iar portul B are 8 pini. TIMER-UL LIBER (FREE-RUN) este un registru de 8 biți în interiorul microcontrolerului ce lucrează independent de program. La fiecare al patrulea impuls de ceas al oscilatorului își încrementează valoarea lui până ce atinge maximul (255), și apoi începe să numere tot din nou de la zero. După cum știm timpul exact dintre fiecare două incrementări ale conținutului timer-ului, poate fi folosit pentru măsurarea timpului ce este foarte util la unele componente. UNITATEA DE PROCESARE CENTRALĂ are rolul unui element de conectivitate între celelalte blocuri ale microcontrolerului. Coordonează lucrul altor blocuri și execută programul utilizatorului. S-a spus deja că PIC1684 are o arhitectură RISC. Acest termen este adeseori găsit în literatura despre calculatoare, și are nevoie să fie explicat aici mai în detaliu. Arhitectura Harvard este un concept mai nou decât von-Neumann. S-a născut din nevoia de mărire a vitezei microcontrolerului. În arhitectura Harvard, bus-ul de date și bus-ul de adrese sunt separate. Astfel este posibil un mare debit de date prin unitatea de procesare centrală, și bineînțeles, o viteză mai mare de lucru. Separarea programului de memoria de date face posibil ca mai departe instrucțiunile să nu trebuiască să fie cuvinte de 8 biți. PIC16F84 folosește 14 biți pentru instrucțiuni ceea ce permite ca toate instrucțiunile să fie instrucțiuni dintr-un singur cuvânt. Este de asemenea tipic pentru arhitectura Harvard să aibă mai puține instrucțiuni decât von-Newmann și să aibă instrucțiuni executate uzual intr-un ciclu. Microcontrolerele cu arhitectură Harvard sunt de asemenea numite "microcontrolere RISC". RISC înseamnă Reduced Instruction Set Computer. Microcontrolerele cu arhitectura von-Newmann sunt numite "microcontrolere CISC". Titlul CISC înseamnă Complex Instruction Set Computer.Pentru că PIC16F84 este un microcontroler RISC, aceasta înseamnă că are un set redus de instrucțiuni, mai precis 35 de instrucțiuni (de ex. microcontrolerele INTEL și Motorola au peste 100 de instrucțiuni). Toate aceste instrucțiuni sunt executate într-un ciclu cu excepția instrucțiunilor jump și branch. Conform cu ceea ce spune constructorul, PIC16F84 ajunge la rezultate de 2:1 în compresia cod și 4:1 în viteză în comparație cu alte microcontrolere de 8 biți din clasa sa. PIC16F84 se potrivește perfect în multe folosințe, de la industriile auto și aplicațiile de control casnice la instrumentele industriale, senzori la distanță, mânere electrice de uși și dispozitivele de securitate. Este de asemenea ideal pentru cardurile smart ca și pentru aparatele alimentate de baterie din cauza consumului lui mic.
Memoria EEPROM face mai ușoară aplicarea microcontrolerelor la
aparate unde se cere memorarea permanentă a diferitor parametri (coduri
pentru transmițătoare, viteza motorului, frecvențele receptorului, etc.).
Costul scăzut, consumul scăzut, mânuirea ușoară și flexibilitatea fac
PIC16F84 aplicabil chiar și în domenii unde microcontrolerele nu au fost
prevăzute înainte (exemple: funcții de timer, înlocuirea interfeței în
sistemele mari, aplicațiile coprocesor, etc.). Clock-ul sau ceasul este starter-ul principal al microcontrolerului, și este obținut dintr-o componentă de memorie externă numită "oscilator". Dacă ar fi să comparăm un microcontroler cu un ceas de timp, "clock-ul" nostru ar fi un ticăit pe care l-am auzi de la ceasul de timp. În acest caz, oscilatorul ar putea fi comparat cu arcul ce este răsucit astfel ca ceasul de timp să meargă. De asemenea, forța folosită pentru a întoarce ceasul poate fi comparată cu o sursă electrică. Clock-ul de la oscilator intră într-un microcontroler prin pinul OSC1 unde circuitul intern al microcontrolerului divide clock-ul în 4 clock-uri egale Q1, Q2, Q3 și Q4 ce nu se suprapun. Aceste 4 clock-uri constituie un ciclu de o singură instrucțiune (numit de asemenea ciclu mașină) în timpul căreia instrucțiunea este executată. Executarea instrucțiunii începe prin apelarea unei instrucțiuni care este următoarea în linie. Instrucțiunea este apelată din memoria program la fiecare Q1 și este scrisă în registrul de instrucțiuni la Q4. Decodarea și executarea instrucțiunii sunt făcute între următoarele cicluri Q1 și Q4. În următoarea diagramă putem vedea relația dintre ciclul instrucțiunii și clock-ul oscilatorului (OSC1) ca și aceea a clock-urilor interne Q1-Q4. Contorul de program (PC) reține informația despre adresa următoarei instrucțiuni. Ciclul instrucțiune constă din ciclurile Q1, Q2, Q3 și Q4. Ciclurile de instrucțiuni de apelare și executare sunt conectate într-un așa fel încât pentru a face o apelare, este necesar un ciclu cu o instrucțiune, și mai este nevoie de încă unul pentru decodare și executare. Totuși, datorită pipelining-ului (folosirea unei pipeline-conductă, și este aducerea unei instrucțiuni din memorie în timp ce se execută alta), fiecare instrucțiune este executată efectiv într-un singur ciclu. Dacă instrucțiunea cauzează o schimbare în contorul programului, și PC-ul nu direcționează spre următoarea ci spre alte adrese (poate fi cazul cu subprogramele jumps sau calling), 2 cicluri sunt necesare pentru executarea unei instrucțiuni. Aceasta este pentru că instrucțiunea trebuie procesată din nou, dar de data aceasta de la adresa corectă. Ciclul începe cu clock-ul Q1, prin scrierea în registrul instruction register (IR). Decodarea și executarea începe cu clock-urile Q2, Q3 și Q4. TYC0
citește instrucțiunea MOVLW 55h
(nu are
importanță pentru noi ce instrucțiune a fost executată, ce
explică de ce nu este un dreptunghi desenat în partea
de jos). PIC16F84 are un număr total de 18 pini. Cel mai adesea se găsește într-o capsulă de tip DIP18 dar se poate găsi de asemenea și într-o capsulă SMD care este mai mică ca cea DIP. DIP este prescurtarea de la Dual In Package. SMD este prescurtarea de la Surface Mount Devices sugerând că găurile pentru pini unde să intre aceștia, nu sunt necesare în lipirea acestui tip de componentă. Pinii microcontrolerului PIC16F84 au următoarea semnificație: Pin
nr.1 RA2 Al doilea pin la portul A. Nu are funcție adițională.
|
|
© Copyright 2003. mikroElektronika. All Rights Reserved. For any comments contact webmaster. |