sistem de alarma folosind microcontrolerul pic16f84.pdf

25
1 SISTEM DE ALARMA FOLOSIND MICROCONTROLERUL PIC16F84 -PROIECT- Tiroi Cristian Sorin Anul I SAUIEE

Upload: tyroy-cristy

Post on 08-Nov-2015

74 views

Category:

Documents


8 download

TRANSCRIPT

  • 1

    SISTEM DE ALARMA FOLOSIND

    MICROCONTROLERUL

    PIC16F84

    -PROIECT-

    Tiroi Cristian Sorin

    Anul I SAUIEE

  • 2

    I. INTRODUCERE IN

    MICROCONTROLERE

    1. CE ESTE UN MICROCONTROLER?

    La modul general un controler ("controller" - un termen de origine anglo-

    saxon, cu un domeniu de cuprindere foarte larg) este, actualmente, o structur

    electronic destinat controlului (destul de evident!) unui proces sau, mai

    general, unei interaciuni caracteristice

    cu mediul exterior, fr s fie necesar intervenia operatorului uman. Primele

    controlere au fost realizate n tehnologii pur analogice, folosind componente

    electronice discrete i/sau componente electromecanice (de exemplu relee).

    Cele care fac apel la tehnica numeric modern au fost realizate iniial pe baza

    logicii cablate (cu circuite integrate numerice standard SSI i MSI ) i a unei

    electronici analogice uneori complexe, motiv pentru care "strluceau" prin

    dimensiuni mari, consum energetic pe msur i, nu de puine ori, o

    fiabilitate care lsa de dorit.

    Apariia i utilizarea microprocesoarelor de uz general a dus la o reducere

    consistent a costurilor, dimensiunilor, consumului i o mbuntire a fiabilitii.

    Exist i la ora actual o serie de astfel de controlere de calitate, realizate n jurul

    unor microprocesoare de uz

    general cum ar fi Z80 (Zilog), 8086/8088 (Intel), 6809 (Motorola), etc.

  • 3

    Pe msur ce procesul de miniaturizare a continuat, a fost posibil ca majoritatea

    componentelor necesare realizrii unei astfel de structuri s fie ncorporate

    (integrate) la nivelul unui singur microcircuit (cip). Astfel c un microcontroler ar

    putea fi descris ca fiind i o soluie a problemei controlului cu ajutorul a (aproape)

    unui singur circuit.

    Legat de denumiri i acronime utilizate, aa cum un microprocesor de uz general

    este desemnat prin MPU (MicroProcessor Unit), un microcontroler este, de

    regul, desemnat ca MCU, dei semnificaia iniial a acestui acronim este

    MicroComputer Unit.

    O definiie, cu un sens foarte larg de cuprindere, ar fi aceea c un

    microcontroller este un microcircuit care incorporeaz o unitate central

    (CPU) i o memorie mpreun cu resurse care-i permit interaciunea cu

    mediul exterior.

    Resursele integrate la nivelul microcircuitului ar trebui s includ, cel

    puin, urmtoarele componente:

    a. o unitate central (CPU), cu un oscilator intern pentru ceasul de sistem

    b. o memorie local tip ROM/PROM/EPROM/FLASH i eventual una de

    tip RAM

    c. un sistem de ntreruperi

    d. I/O - intrri/ieiri numerice (de tip port paralel)

    e. un port serial de tip asincron i/sau sincron, programabil

    f. un sistem de timere-temporizatoare/numrtoare programabile

    Este posibil ca la acestea s fie adugate, la un pre de cost avantajos,

    caracteristici specifice sarcinii de control care trebuie ndeplinite:

    g. un sistem de conversie analog numeric(una sau mai multe intrari

    analogice)

    h. un sistem de conversie numeric analogic i/sau ieiri PWM (cu

    modulare n durat)

  • 4

    i. un comparator analogic

    j. o memorie de date nevolatil de tip EEPROM

    k.faciliti suplimentare pentru sistemul de temporizare/numrare (captare

    i comparare)

    l. un ceas de gard (timer de tip watchdog)

    m. faciliti pentru optimizarea consumului propriu

    Un microcontroler tipic mai are, la nivelul unitii centrale, faciliti de prelucrare a

    informaiei la nivel de bit, de acces direct i uor la intrri/ieiri i un mecanism

    de prelucrare a ntreruperilor rapid i eficient.

    Utilizarea unui microcontroler constituie o soluie prin care se poate

    reduce dramatic numrul componentelor electronice precum i costul

    proiectrii i al dezvoltrii unui produs.

    OBSERVAIE: Utilizarea unui microcontroler, orict de evoluat, nu

    elimin unele componente ale interfeei cu mediul exterior (atunci cnd ele sunt

    chiar necesare): subsisteme de prelucrare analogic (amplificare, redresare,

    filtrare, protecie-limitare), elemente pentru

    realizarea izolrii galvanice (optocuploare, transformatoare), elemente de

    comutaie de putere (tranzistoare de putere, relee electromecanice sau statice).

    2. UNDE SUNT UTILIZATE MICROCONTROLERELE?

    Toate aplicaiile n care se utilizeaz microcontrolere fac parte din

    categoria aa ziselor sisteme ncapsulate-integrate (embedded systems), la

    care existena unui sistem de calcul incorporat este (aproape) transparent

    pentru utilizator.Pentru ca utilizarea lor este de foarte ori sinonim cu ideea de

    control microcontrolerele sunt utilizate masiv n robotic i mecatronic.

    Conceptul de mecatronic este pan la urm indisolubil legat de utilizarea

    microcontrolerelor.Automatizarea procesului de fabricaie-producie este un alt

  • 5

    mare beneficiar: CNC (Computerised Numerical Controls) comenzi numerice

    pentru mainile unelte, automateprogramabile (PLC), linii flexibile de fabricaie,

    etc. Indiferent de natura procesului

    automatizat sarcinile specifice pot fi eventual distribuite la un mare numr de

    microcontrolere integrate ntr-un sistem unic prin intermediul uneia sau mai

    multor magistrale.

    Printre multele domenii unde utilizarea lor este practic un standard

    industrial se pot meniona: n industria de automobile (controlul

    aprinderii/motorului, climatizare, diagnoz, sisteme de alarm, etc.), n aa zisa

    electronic de consum (sisteme audio, televizoare, camere video i

    videocasetofoane, telefonie mobil, GPS-uri, jocuri electronice, etc.), n

    aparatura electrocasnic (maini de splat, frigidere, cuptoare cu microunde,

    aspiratoare), n controlul

    mediului i climatizare (sere, locuine, hale industriale), n industria aerospaial,

    n mijloacele moderne de msurare - instrumentaie (aparate de msur, senzori

    i traductoare inteligente), la realizarea de periferice pentru calculatoare, n

    medicin.

    Ca un exemplu din industria de automobile (automotive industry), unde

    numai la nivelul anului 1999, un BMW seria 7 utiliza 65 de microcontrolere, iar un

    Mercedes din clasa S utiliza 63 de microcontrolere.

    Practic, este foarte greu de gsit un domeniu de aplicaie n care s nu se

    utilizeze microcontrolerele.

    3. CLASIFICRI I VARIANTE CONSTRUCTIVE

    Exist la ora actual un numr extrem de mare de tipuri constructive de

    microcontrolere. Un criteriu de clasificare care se poate aplica ntotdeauna este

    lungimea (dimensiunea) cuvntului de date. Funcie de puterea de calcul dorit i

    de alte caracteristici se pot alege variante avnd dimensiunea cuvntului de date

  • 6

    de 4, 8,16 sau 32 de bii (exist chiar i variante de 64 de bii!). Nu este

    obligatoriu ca dimensiunea cuvntului de date s fie egal cu dimensiunea unui

    cuvnt main (cuvnt program). Exist i multe variante zise dedicate,

    neprogramabile de utilizator la nivel de cod main, strict specializate pe o

    anumit aplicaie, prin intermediul codului preprogramat i al resurselor

    hardware, utilizate pentru comunicaii, controlul tastaturilor, controlul aparaturii

    audio/video, prelucrarea numeric a semnalului, etc.

    4. TEHNOLOGIILE DE FABRICAIE UTILIZATE

    Practic, toate microcontrolerele se realizeaz la ora actual n

    tehnologie CMOS (tehnologii similare celor utilizate la seriile standard CMOS de

    circuite numerice: HC, AC, ALV, etc.). Se pot realiza astfel structuri cu o mare

    densitate de integrare, cu un consum redus (care va depinde de frecvena de

    lucru), permind eventual alimentarea de la baterie. Logica intern este static

    (total sau n cea mai mare parte) permind astfel, n anumite condiii, micorarea

    frecvenei de ceas sau chiar oprirea ceasului n ideea optimizrii consumului.

    Tehnologia este caracterizat i de o imunitate mai mare la perturbaii, esenial

    ntr-un mare numr de aplicaii specifice. Se realizeaz variante pentru domeniu

    extins al

    temperaturii de funcionare (de ex.- 40 +85 C). Exist foarte multe variante de

    ncapsulare (capsule de plastic i mai rar de ceramic),

    multe din ele destinate montrii pe suprafa (SMD): SOIC, PLCC, PQFP, TQFP

    (x100pini), etc., dar i variante clasice cu pini tip DIP/DIL (tipic de la 8 la 68 pini).

  • 7

    5. ASPECTE LEGATE DE IMPLEMENTAREA MEMORIEI

    MICROCONTROLERELOR

    n afar de memoria local de tip RAM, de dimensiuni relativ reduse (de la

    x10 octei la x1k), implementat ca atare sau existent sub forma unui set de

    registre i destinat memorrii datelor (variabilelor), mai exist o serie de

    aspecte specifice, marea majoritate a acestora fiind legat de implementarea

    fizic a memoriei de program (i eventual a unei pri a memoriei de date) cu

    ajutorul unor memorii nevolatile. Clasic, memoria de program

    era implementat ntr-o variant de tip ROM: EPROM pentru dezvoltare i

    producie pe scar mic/medie sau mask-ROM pentru producia de mas.

    Principalele concepte noi aprute de a lungul timpului n legtur cu

    implementarea memoriei de program sau date sunt enumerate n continuare.

    a. OTP - majoritatea productorilor ofer variante de microcontrolere la

    care memoria local de program este de tip OTP (One Time Programmable),

    practic o memorie PROM identic intern cu varianta EPROM, dar fr fereastra

    de cuar pentru tergere (deci i mai ieftine); aceste variante pot fi utilizate ca o

    alternativ pentru o producie limitat, pn n momentul testrii i validrii finale

    a codului, moment n care pot fi comandate variantele (mask) ROM propriu-zise,

    cele mai economice pentru o producie de mas

    b. FLASH EPROM - este o soluie mai bun dect EPROM-ul propriu-zis

    atunci cnd este necesar un volum mare de memorie program (nevolatil); mai

    rapid i cu un numr garantat suficient de mare (x10000) de cicluri de

    programare (de tergere/scriere), este

    caracterizat i prin modaliti mai flexibile de programare; este utilizat numai

    ca memorie de program.

    c. EEPROM - multe microcontrolere au i o memorie de acest tip, de

    dimensiune limitat (de la x10 octei la x K octei), destinat memorrii unui

    numr limitat de parametrii (memorie de date) care eventual trebuie modificai

    din timp n timp; este o memorie relativ

  • 8

    lent (la scriere), dar cu un numr de cicluri de tergere/scriere mai mare ca

    FLASH-ul .

    d. NOVRAM (RAM nevolatil) - realizat prin alimentarea local (baterie,

    acumulator) a unui masiv RAM CMOS atunci cnd este necesar un volum mare

    de memorie de program i date nevolatil; mult mai rapid dect toate celelalte

    tipuri i fr limitri ca numr de

    cicluri.

    e. Programarea "In System" (ISP-In System Programming) - folosirea

    unor memorii nevolatile de tip FLASH face posibil i "programarea" unui astfel

    de microcontroler fr a-l scoate din sistemul n care este ncorporat (programare

    on-line, In System Programming); programarea se face de regul prin intermediul

    unei interfee seriale dedicate de tip ISP (poate avea nume diferite) sau a unei

    interfee standard JTAG. Exist microcontrolere la care aceast programare se

    poate face prin intermediul portului serial asincron sau al interfetei CAN

    (Controller Area Network). Este posibil astfel modificarea cu uurin a codului

    program sau a unor constante de lucru (local sau de la distan-remote update).

    Un lucru foarte important este c la anumite familii interfaa prin intermediul

    creia se face programarea poate fi utilizat i la testarea i depanarea aplicaiei

    (soft), permind realizarea simpl, cu un pre de cost minim, a unor mijloace de

    testare i depanare(emulatoare). De exemplu, n acest caz interfaa JTAG este

    specificat ca fiind JTAG/ICE (In Circuit Emulation) pentru a arta c poate fi

    folosit i pentru emularea n circuit.

    f. Bootloader multe din microcontrolerele recente la care memoria de

    program este de tip FLASH au i facilitatea (au de fapt instruciuni dedicate

    acestui scop) de a putea i scrie n aceast memorie de program fr a utiliza un

    circuit de programare extern. Astfel n microcontroler poate exista permanent

    (rezident) un cod de mici dimensiuni (denumit i bootloader) care pur i simplu va

    ncrca prin intermediul portului serial (este doar un exemplu) codul utilizator sau

    constantele pe care acesta vrea eventual s le actualizeze. Bootloader-ul este i

    cel care lanseaz n execuie programul utilizator dup ncrcarea acestuia.

  • 9

    g. Protejarea codului - protejarea codului program dintr-o memorie local

    nevolatil mpotriva accesului neautorizat (la citire deoarece pirateria soft exist

    i aici) este oferit ca o opiune (ea mai trebuie i folosit!) la variantele FLASH,

    EPROM sau OTP. Codul poate protejat att la citire cat i la scriere (practic

    circuitul trebuie ters, nainte de a se mai putea scrie ceva n el). Este eliminat

    astfel posibilitatea de a se realiza, n acest caz, de patch-uri (alterri cu un

    anumit scop) ale codului original. La variantele mask-ROM propriu-zis

    protecia este de cele mai multe ori implicit.

    h. Memoria extern de program sau date

    Marea majoritate a familiilor de microcontrolere permit si utilizarea de memorie

    extern de program (tipic ROM) sau date (tipic RAM). Aceasta presupune

    existenta si utilizarea unor magistrale externe de adrese si date. Conexiunile

    externe necesare pentru acestea sunt disponibile ca funcii alternative ale pinilor.

    Din pcate, in aceast situaie numrul de conexiuni exterioare disponibile pentru

    interfaa cu exteriorul se reduce dramatic, reducnd mult din versatilitatea

    microcontrolerului. Mai mult la variantele constructive cu un numr mic de pini

    (conexiuni externe) nu este posibil utilizarea de memorie extern, dect,

    eventual, intr-o variant cu interfa serial (memorie RAM, FLASH sau

    EEPROM cu interfa I2C, SPI, etc.) si numai ca memorie de date.

    6. CONTROLUL PUTERII CONSUMATE I ALIMENTAREA

    LA TENSIUNI REDUSE

    Majoritatea microcontrolerelor pot fi trecute sub control soft n stri

    speciale cum ar fi: n ateptare (STAND-BY), inactiv ("IDLE") sau oprit ("HALT",

    "POWER DOWN"), denumirile acestor stri diferind i funcie de fabricant. n

    aceste moduri starea CPU,

  • 10

    coninutul RAM-ului intern, starea I/O-urilor poate fi conservat n condiiile unei

    tensiuni de alimentare reduse (fa de cea nominal) i deci al unui consum mult

    redus. Flexibilitatea acestui sistem este strans legata de faciltitatile si

    programabilitatea sistemului de generare a ceasului de lucru (clock system,vezi

    7). De exemplu, ntr-un mod de tip "IDLE" toate activitile sunt oprite cu excepia

    circuitului oscilatorului local de ceas i, dac acestea exist: circuitul "watchdog"

    (ceasul de gard), circuitul de monitorizare a oscilatorului de ceas i eventual un

    temporizator dedicate ("idle timer"). Puterea consumat este redus la cca. 30%,

    iar ieirea din acest mod se face

    prin reset (iniializare) sau printr-un stimul exterior (de regul o ntrerupere).

    Temporizatorul dedicat poate scoate periodic microcontrolerul din aceast stare,

    pentru ndeplinirea anumitor

    sarcini, dup care se reintr n starea respectiv. n modul"HALT" toate

    activitile sunt oprite, tensiunea de alimentare poate fi

    cobort sub valoarea nominal, fr alterarea strii (CPU, RAM, I/O), puterea

    consumat fiind minim. Ieirea din aceast stare se face prin reset sau ca

    urmare a unei cereri de ntrerupere. Toate aceste moduri de lucru sunt de regul

    valorificate n aplicaii n care

    alimentarea sistemului se face de la o surs de tip baterie (n funcionarea

    normal sau numai n anumite situaii).

    Se mai ofer uneori ca facilitate o protecie la scderea accidental (n

    anumite limite) a tensiunii de alimentare ("brownout protection"). La scderea

    tensiunii de alimentare sub o anumit limit ("brownout voltage") microcontrolerul

    este iniializat (resetat) i inut n aceast stare atta timp ct condiia respectiv

    persist. Tensiunea de alimentare standard pentru microcontrolere a fost mult

    timp, din considerente i istorice(vezi TTL-ul), de Vcc = 5V (cu o anumit

    toleran ). La ora actual se ofer, pentru multe din ele, i variante cu tensiune

    de alimentare redus (Low Voltage) cu Vcc = 1.8 .. 3.3V, destinate unor aplicaii

    unde consumul este un parametru critic. Exist variante cu plaj mare a tensiunii

    de alimentare, de exemplu Vcc = 2..6V, funcionarea la limita inferioar implicnd

    doar o micorare a frecvenei maxime de ceas.

  • 11

    7. SISTEMUL DE CEAS

    Orice microcontroler este caracterizat cel puin de existena circuitelor

    electronice aferente oscilatorului care genereaz ceasul de sistem. Astfel este

    posibil implementarea simpl a oscilatorului doar prin adugarea, n exterior, a

    unui rezonator extern (cuar sau piezoceramica) pentru stabilizarea frecventei si

    eventual a unor capacitori. Dac stabilitatea si precizia frecvenei nu este o

    cerin important, la anumite microcontrolere se poate utilize doar un circuit RC

    extern sau exist un circuit RC intern, care determin frecvena de oscilaie.

    Exist microcontrolere la care configuraia oscilatorului este programabil prin

    intermediul unor fuzibile FLASH (se programeaz similar memoriei de

    program): rezonator extern i tipul acestuia, varianta RC intern sau extern, gama

    de frecvent, etc.

    La familiile evoluate de microcontrolere exist si circuite de tip PLL (Phase

    Locked Loop) si/sau FLL (Frequency Locked Loop) care permit multiplicarea cu

    uurin a frecvenei de baz (cea a rezonatorului extern). Astfel plecnd, de

    exemplu de la o frecven de 32.768KHz se pot obine frecvene de lucru pn

    ordinul MHz. La astfel de microcontrolere sistemul de ceas este programabil prin

    intermediul unor registre speciale oferind un maxim de flexibilitate n sensul

    putinei de controla compromisul ntre puterea consumat i viteza maxim de

    lucru.

  • 12

    8. Limbajul de programare

    8.1.Limbajul de main i de cel de asamblare

    Limbajul main (instruciunile main) este singura form de

    reprezentare a informaiei pe care un microcontroler o "nelege" (ca de altfel

    orice alt sistem de calcul ). Din pcate aceast form de reprezentare a

    informaiei este total nepractic pentru un programator, care va utiliza cel puin

    un limbaj de asamblare, n care o instruciune (o mnemonic cu operanzii

    afereni) are drept corespondent o instruciune n limbaj main (excepie fac

    macroinstruciunile disponibile la unele asambloare). Un program n limbaj de

    asamblare este rapid i compact. Aceasta nu nseamn c un astfel de program,

    prost scris, nu poate fi lent i de mari dimensiuni, programatorul avnd controlul

    total (i responsabilitatea !) pentru execuia programului i gestiunea resurselor.

    Limbajul de asamblare este primul care trebuie nvat, chiar sumar, atunci cnd

    dorim s proiectm o aplicaie hard/soft cu un anume microcontroler (familie), el

    permind nelegerea arhitecturii acestuia i utilizarea ei eficient. Utilizarea

    numai a limbajului de asamblare pentru dezvoltarea unei aplicaii complexe este

    neproductiv de multe ori, deoarece exist i familii de microcontrolere cu CPU

    de tip CISC care au un numr foarte mare de instruciuni (x100) combinate cu

    moduri

    de adresare numeroase i complicate. Totui, nu trebuie uitat c la ora actual

    muli din productorii mari de microcontrolere ofer medii de dezvoltare software

    gratuite care includ programe asambloare

    gratuite. De asemenea, comunitatea utilizatorilor diverselor familii de

    microcontrolere a dezvoltat i ea, n timp, multe astfel de asambloare, care sunt

    disponibile ca freeware.

  • 13

    8.2. Interpretere

    Un interpreter este o implementare a unui limbaj de nivel nalt, mai

    apropiat de limbajul natural. Este de fapt un program rezident care, n acest caz,

    ruleaz pe o platform de calcul de tip microcontroler. Caracteristic pentru

    execuia unui program interpretat, este citirea i executarea secvenial a

    instruciunilor (instruciune cu instruciune). De fapt fiecare instruciune de nivel

    nalt este interpretat ntr-o secven de instruciuni main care se execut

    imediat. Cele mai rspndite interpretere sunt cele pentru limbajele BASIC i

    FORTH.

    Limbajul BASIC este remarcabil prin simplitatea i accesibilitatea codului,

    dar (n varianta interpretat) i prin viteza mai mic de execuie, acesta fiind de

    altfel preul pltit pentru utilizarea oricrui interpreter. Un exemplu de astfel de

    interpreter foarte rspndit i utilizat este PBASIC al firmei Parallax utilizat pentru

    programarea modulelor Basic Stamp. Este foarte uor de nvat i poate fi

    utilizat suficient de productiv chiar de indivizi care au o experiena minima n

    domeniul programrii.

    Limbajul FORTH este popular datorit vitezei de execuie (apropiat de

    cea oferit de limbajul de asamblare) i posibilitii construirii aplicaiilor din pri

    reutilizabile. Este un limbaj mult diferit de limbajele clasice, codul este destul de

    greu de scris i de mai ales de citit (codul este greu lizibil). Totui, odat stpnit

    foarte bine (n timp!), poate fi foarte productiv n aplicaii cum ar fi cele de control,

    n robotic, etc. Marele avantaj al utilizrii unui interpreter este dezvoltarea

    interactiv i incremental a aplicaiei: se scrie o poriune de cod care poate fi

    testat imediat, instruciune cu instruciune; dac rezultatele sunt satisfctoare

    se poate continua cu adugarea de astfel de poriuni pn la finalizarea

    aplicaiei.

    OBSERVAIE. Exist i variante interpretate ale limbajului C care

    constituie o implementare aproximativ a standardului ANSI C. Un astfel de

  • 14

    exemplu este Interactive C (Newton Labs) care genereaz cod Motorola 68HC11

    i este destul de mult utilizat n

    robotic.

    8.3.Compilatoare

    Un compilator combin uurina n programare oferit de un interpreter

    (de fapt de limbajul de nivel nalt) cu o vitez mai mare de execuie a codului.

    Pentru aceasta programul, n limbaj de nivel nalt, este translatat (tradus) direct

    n limbaj main sau n limbaj de

    asamblare (urmnd a fi apoi asamblat). Codul main rezultat are dimensiuni

    relativ mari (dar mai mici dect cel interpretat) i este executat direct, ca un tot,

    de microcontroler. De regul codul generat poate fi optimizat fie ca dimensiune,

    fie ca timp de execuie. Se pot enumera compilatoare pentru limbajele: C,

    BASIC, Pascal, PL/M (Intel), Forth. Cele mai populare i utilizate sunt cele pentru

    limbajul C, un limbaj universal folosit att pentru super computere cum ar fi Cray-

    ul, ct i de microcontrolerele de 4 bii. Este un limbaj puternic i flexibil, care

    dei de nivel nalt, poate permite i accesul direct la resursele sistemului de

    calcul. Un program bine scris genereaz un cod rapid i compact. Totui, de

    multe ori, poriuni critice din punct de vedere al vitezei de execuie, trebuie nc

    scrise n limbaj de asamblare. Exist numeroase implementri, pentru

    majoritatea familiilor de microcontrolere. Cu anumite limitri legate de arhitectur

    i mai ales resursele microcontrolerului, asigur portabilitatea unei aplicaii

    scris pentru un anumit tip (familie) de microcontroler la un alt tip (familie).

    Pentru unele familii noi i foarte puternice de microcontrolere, datorit

    complexitii setului de instruciuni i al numeroaselor moduri de adresare, este

    descurajat n mod explicit utilizarea limbajului de asamblare n momentul n

    care se programeaz aplicaii performante. Unitatea central a acestor noi

    microcontrolere a fost proiectat i optimizat pentru utilizarea unor limbaje de

  • 15

    nivel nalt. Funcie i de familia de microcontrolere n cauz, preul unor astfel de

    compilatoare (de C) poate fi destul de ridicat, ncepnd cu x100USD i ajungnd

    la x1000USD. Exist insa i variante freeware de compilatoare de C, cum ar fi

    gcc care este o portare a compilatorului

    omonim din Linux n lumea microcontrolerelor. Exist implementri diferite ale

    acestui compilator care genereaz cod pentru familii diferite de microcontrolere

    (de exemplu AVR, MSP430, 68HC11, etc.).

    OBSERVAII 1. Pentru a. i c. codul este obinut cu ajutorul unui mediu

    integrat de dezvoltare a programelor (IDE-Integrated Development

    Environment) care conine n mod tipic urmtoarele componente software: un

    editor specializat (orientat pe codul surs), un asamblor/compilator, un editor de

    legturi/locator ("link- editor/locator"), programe de gestiune a unor biblioteci de

    cod ("librarians"), programe de conversie a formatelor de reprezentare a codului

    (de exemplu din binar n format Intel HEX sau Motorola S) i, nu n ultimul rnd,

    un simulator i/sau depanator ("debugger").

    2. Codul astfel obinut trebuie ncrcat n memoria de program a mainii

    int unde va rula, fiind de fapt programat ntr-o memorie de tip (EP)ROM/FLASH

    sau ncrcat direct (uploaded) ntr-o memorie de tip RAM.

  • 16

    II. UTILIZAREA

    MICROCONTROLERULUI PIC16F84 IN

    CIRCUITUL UNUI SISTEM DE ALARMA

    1.Descrierea microcontrolerului PIC16F84

    PIC16F84 aparine unei clase de microcontrolere de 8 bii cu arhitectur RISC.

    Structura lui general este artat n schia urmtoare reprezentnd blocurile de

    baz.

  • 17

    Semnificaia pinilor

    PIC16F84 are un numr total de 18 pini. Cel mai adesea se gsete ntr-o

    capsul de tip DIP18 dar se poate gsi 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 sugernd c gurile pentru pini

    unde s intre acetia, nu sunt necesare n lipirea acestui tip de component.

    Pinii microcontrolerului PIC16F84 au urmtoarea semnificaie:

    Pin nr.1 RA2 Al doilea pin la portul A. Nu are funcie adiional.

    Pin nr.2 RA3 Al treilea pin la portul A. Nu are funcie adiional.

    Pin nr.3 RA4 Al patrulea pin la portul A. TOCK1 care funcioneaz ca timer se

    gsete de asemenea la acest pin.

    Pin nr.4 MCLR Reseteaz intrarea i tensiunea de programare Vpp a

    microcontrolerului.

    Pin nr.5 VSS Alimentare, mas.

    Pin nr.6 RB0 Pin de zero la portul B. Intrarea ntrerupere este o funcie

    adiional.

    Pin nr.7 RB1 Primul pin la portul B. Nu are funcie adiional.

    Pin nr.8 RB2 Al doilea pin la portul B. Nu are funcie adiional.

    Pin nr.9 RB3 Al treilea pin la portul B. Nu are funcie adiional.

    Pin nr.10 RB4 Al patrulea pin la portul B. Nu are funcie adiional.

    Pin nr.11 RB5 Al cincilea pin la portul B. Nu are funcie adiional.

  • 18

    Pin nr.12 RB6 Al aselea pin la portul B. Linia de 'Clock' n mod programare.

    Pin nr.13 RB7 Al aptelea pin la portul B. Linia 'Data' n mod programare.

    Pin nr.14 Vdd Polul pozitiv al sursei.

    Pin nr.15 OSC2 Pin desemnat pentru conectarea la un oscilator.

    Pin nr.16 OSC1 Pin desemnat pentru conectarea la un oscilator.

    Pin nr.17 RA2 Al doilea pin la portul A. Nu are funcie adiional.

    Pin nr.18 RA1 Primul pin la portul A. Nu are funcie adiional.

    PIC1684 are o arhitectur RISC. Acest termen este adeseori gsit n

    literatura despre calculatoare, i are nevoie s fie explicat aici mai n detaliu.

    Arhitectura Harvard este un concept mai nou dect von-Neumann. S-a nscut

    din nevoia de mrire 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 bineneles, o vitez mai mare de

    lucru. Separarea programului de memoria de date face posibil ca mai departe

    instruciunile s nu trebuiasc s fie cuvinte de 8 bii. PIC16F84 folosete 14 bii

    pentru instruciuni ceea ce permite ca toate instruciunile s fie instruciuni dintr-

    un singur cuvnt

    APLICATII

    PIC16F84 se potrivete perfect n multe folosine, de la industriile auto i

    aplicaiile de control casnice la instrumentele industriale, senzori la distan,

    mnere electrice de ui 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 uoar aplicarea microcontrolerelor la

    aparate unde se cere memorarea permanent a diferitor parametri (coduri pentru

    transmitoare, viteza motorului, frecvenele receptorului, etc.). Costul sczut,

  • 19

    consumul sczut, mnuirea uoar i flexibilitatea fac PIC16F84 aplicabil chiar i

    n domenii unde microcontrolerele nu au fost prevzute nainte (exemple: funcii

    de timer, nlocuirea interfeei n sistemele mari, aplicaiile coprocesor, etc.).

    Programabilitatea sistemului acestui cip (mpreun cu folosirea a doar doi pini n

    transferul de date) face posibil flexibilitatea produsului, dup ce asamblarea i

    testarea au fost terminate. Aceast capabilitate poate fi folosit pentru a crea

    producie pe linie de asamblare, de a nmagazina date de calibrare disponibile

    doar dup testarea final, sau poate fi folosit pentru a mbunti programele la

    produsele finite.

    2.DESCRIEREA SISTEMULUI DE ALARMA

    Sistemul de alarma este proiectat a fi utilizat pentru usa, si are in

    componenta sa urmatoarele componente:

    pic16f84- 1 buc

    pressure pad(sensor de presiune)- 1 buc

    baterie de 5 v-1 buc

    latching logic input- 2 buc

    comutatoare(SPDT,SPST)-2 buc

    afisaj-6 buc (se pot folosi si leduri de diferite culori, pt reducurea

    costului)

    alarma-1 buc

    transmitator radio-1 buc

    Descrierea functionarii sistemului de alarma:

    circuitul este alimentat de la o baterie de 5v, care are un comutator

    pentru intreruperea alimentarii fara a fi nevoie de scoaterea bateriei.

  • 20

    senzorul de presiune va fi montat in interiorul casei, pe podea, la

    aproximativ 15-25 cm de pragul usii.

    sistemul fi setat pe 2 pozitii:ACASA si PLECAT.Cand pozitia ACASA

    este selectata microcontrolerul va trimite un semnal care va active un afisaj

    (SETAT PE ACASA); cand senzorul de presiune se declanseaza va trimite un

    semnal microcontrolerului care la randul lui va activa un afisaj (CINEVA ESTE

    LA USA) si alarma care dupa 3 secunde se va dezactiva, afisajul ramanand

    activ pana la activarea lui RESET.Daca este selectata pozitia PLECAT,

    microcontrolerul va trimite un semnal unui afisaj (SETAT PE PLECAT), iar

    cand va primi impuls de la senzorul de presiune, si timp de 5 secunde RESET nu

    va fi in pozitia ON, se va activa: afisajul SPARGERE, alarma, si un transmitator

    radio (MESAJ) care va trimite un mesaj pe telefon proprietarului casei; acest

    ciclu se repeta la interval de 3 secunde pana cand va fi activat RESET.

    suplimentar, mai avem 2 afisaje referitoare la RESET, care ne ajuta sa

    stim in ce pozitie este: RESET IS ON si RESET IS OFF.

    3.REPREZENTARI GRAFICE

    In figurile de mai jos sunt reprezentate cablajul electric, diagramele de

    functionare, montajul pe placuta, cablajul electric si o reprezentare grafica a

    sistemului de alarma.

  • 21

  • 22

  • 23

  • 24

  • 25