Proiect Uc Cornelia

download Proiect Uc Cornelia

of 25

Transcript of Proiect Uc Cornelia

  • 7/24/2019 Proiect Uc Cornelia

    1/25

    Universitatea Politehnica BucurestiFacultatea Transporturi

    Catedra Telecomenzi si Electronica in Transporturi

    PROIECT MICROCONTROLERE

    utori! Indrumator!BURCETE Cornelia

    Grupa 8312 As. Inginer NICULESCU

    Mihai

    ENACE An!a

    Grupa 8311

    N UNI"ER#ITR

  • 7/24/2019 Proiect Uc Cornelia

    2/25

    $%%&'$%(%

    Cuprins!

    Capitolul (! Tema Proiect

    Capitolul $! Proiectare hardware

    2.1: Schema bloc2.2: Descriere blocuri

    2.3: Schema electrica generala

    Capitolul )! Proiectare software

    3.1: Descriere generala3.2: Schema logica

    3.3: Listing software

    Capitolul *! Bibliografie

  • 7/24/2019 Proiect Uc Cornelia

    3/25

    Capitolul (! Tema Proiect

    Ceas i calendar !rogramabil !rin interfata seriala de catre un PC."rae#acta si data se $or transmite la cerere catre PC.

  • 7/24/2019 Proiect Uc Cornelia

    4/25

    Capitolul $! Proiectarea +ard,are

    $-( #chema .loc

  • 7/24/2019 Proiect Uc Cornelia

    5/25

    2.2 Descriere blocuri

    Tme/a (0

    %Tmega 1& este un microcontroller C'"S de ( biti de mica !utereba)at !e arhitectura *+SC %,* -mbunt/it. Dis!une de un set de 131 de

    instructiuni si 32 de regitrii de u) general. Cele 32 de registre sunt direct

    adresabile de 0nitatea Logic i %ritmetic %L0 !ermi/4nd accesarea adou registre inde!endente -ntr5o singur instruc/iune. Se ob/ine astfel o

    eficien/ s!orit -n e#ecu/ie de !4n la )ece ori mai ra!ide dec4tmicrocontrorelerele con$en/ionale C+SC.

    Caracteristicile !rinci!ale ale acestuia sunt:

    5 1&6B de memorie 7lash reinscri!tibil !entru stocarea !rogramelor 85 16B de memorie *%' 8

    5 912B de memorie P*"' 8

    5 dou numrtoare;tem!ori)atoare de ( bi/i 85 un numrtor;tem!ori)ator de 1& bi/i 8

    5 con/ine un con$ertor analog < digital de 1= bi/i cu intrri multi!le 8

    5 con/ine un com!arator analogic 85 con/ine un modul 0S%*T !entru comunica/ie serial !ort serial 8

    5 dis!une de un cronometru cu oscilator intern 8

    5 ofer 32 de linii +;" organi)ate -n !atru !orturi P% PB PC PD.

    #ist o magistral general de date la care sunt conectate mai multemodule:

    5 unitatea aritmetic i logic %L0 85 registrele generale 8

    5 memoria *%' i memoria P*"' 85 liniile de intrare !orturile < +;" Lines i celelalte blocuri de intrare;ieire.

    %ceste ultime module sunt controlate de un set s!ecial de registre fiecare

    modul a$4nd asociat un numr de registre s!ecifice.Placa de dezvoltare Eas1 "R*

    as> %,*? este o !laca de de)$oltare reali)ata de firma 'i@roelectroni@ai !ermite reli)area de a!lica/ii de microcontrolere %tmel.

    Placa dis!une de urmatoarele resurse hardware:

    5!rogramator cu interfa/a 0SB

    5bloc de alimentare a !lacii cu !osibilitatea de a utili)a o sursa de tensiunee#terna sau tensiunea furni)ata de interfa/a 0SB

  • 7/24/2019 Proiect Uc Cornelia

    6/25

    5socluri !entru conectarea microcontrolelor %tmel in ca!sule

    D+P?=D+P2(D+P1(D+P2=D+P1? S%0 D+P( 5SA !ushbuton conectate la toate !orturile microcontrolerului

    5LD5uri conectate la toate !orturile microcontrolerului

    5re)isten/e e#terne de !ull5u! !entru fiecare !in al fiecarui !ort.5referin/a e#terna !recisa de tensiune !entru utili)area blocului de %DC cu

    aceasta facilitate5generator de semnal da tact cu frec$en/a de ( ')

    5modul de afiare cu LD5uri de ti! segmente

    5inter2a3a seriala R#'$)$5sen)or de tem!eratura DS 1(2= cu interfa/a +2C

    5modul de afiare LCD 21& caractere

  • 7/24/2019 Proiect Uc Cornelia

    7/25

    $-) #chema electrica /enerala

    C 3

    1 u F

    V 7

    0 V d c

    1 u F

    U 5

    A T m e g a 1 6 2 - D I L 4 0 s m

    3

    1 81 9

    2

    1 21 31 41 5

    2 0

    4 0

    876 3 5

    3 43 33 23 1

    3 6

    1

    45

    91 01 1

    1 61 7

    3 93 8

    3 7

    3 02 92 82 72 62 52 42 32 22 1

    P B 2

    T A L 2 T A L 1

    P B 1

    P D 2P D 3

    P D 4P D 5

    ! " D

    V c c

    P B 7P B 6P B 5 P A 4

    P A 5P A 6P A 7P # 0

    P A 3

    P B 0

    P B 3P B 4

    $ # % # TP D 0P D 1

    P D 6P D 7

    P A 0

    P A 1P A 2

    P # 1P # 2P C 7

    P C 6P C 5P C 4P C 3P C 2P C 1P C 0

    1 u F

    0

    C 4

    1 u F

    U 4

    & A 2 3 2

    134526

    1 29

    1 1

    1 0

    1 38

    1 4

    7

    C 1 'C 1 -C 2 'C 2 -V 'V -

    $ 1 ( U T$ 2 ( U T

    T 1 I "T 2 I "

    $ 1 I "$ 2 I "

    T 1 ( U TT 2 ( U T

    0

    D B 9

    59

    4837261

    0

  • 7/24/2019 Proiect Uc Cornelia

    8/25

    Capitolul )! Proiectarea #o2t,are

    )-( 4escrierea /enerala

    Programul func/ionea)a conform schemei logice mai e#act:

    5 numara o secunda du!a ce a trecut o secunda incrementea)a ceasul

    secundarul minutarul ora85 daca a!asam !e tasta EaE o sa se afie)e unde a aFuns cu numararea

    ceasului

    5 daca a!asam !e tasta EcE !utem regla ora minutul i secunda e#em!lu: "raG Hscriem o $aloare intre == si 23I 'inutulG Hscriem o $aloare intre ==

    i 9JI SecundaG Hscriem o $aloare intre == si 9JI

    5 daca a!asam tasta EdE !utem regla )iua luna i anul e#em!lu: %nulG Hscriem o $aloare intre == i JJI %nulLG Hscriem o $aloare intre

    == i JJI LunaG Hscriem o $aloare intre == i 11I KiuaG Hscriem o $aloareintre == i 2JI

  • 7/24/2019 Proiect Uc Cornelia

    9/25

    )-$ #chema lo/ica

  • 7/24/2019 Proiect Uc Cornelia

    10/25

    )-) Listin/ so2t,are.include Em1&def.incE.def secundaGr1(.def minutGr1J.def oraGr2=.def )iGr21

  • 7/24/2019 Proiect Uc Cornelia

    11/25

    .def lunaGr22

    .def anhighGr23

    .def anlowGr2?

    .org =#==rFm! reset

    .org =#1&rFm! rece!tiereset:ldi r1&low*%'MDout SPLr1&ldi r1&high*%'MDout SPr1&ldi r1&=b1==11===out 0CS*Br1&ldi r1&=b1=1==11=out 0CS*Cr1&

    ldi r1&=#==out 0B**r1&ldi r1&=#33out 0B**Lr1&ldi secunda=#==ldi minut=#==ldi ora=#==ldi )i=#=1ldi luna=#=1ldi anhigh=#==ldi anlow=#==

    ldi r1&=#%out "C*1%r1&ldi r1&=#12out "C*1%Lr1&ceas:seildi r1&=b====11==out TCC*1Br1&in r1&T+7*sbrs r1&"C71%rFm! PC52cbr r1&"C71%out T+7*r1&clr r1&out TCC*1Br1&cliinc secundamo$ r1&secundaandi r1&=#=7

  • 7/24/2019 Proiect Uc Cornelia

    12/25

    c!i r1&=#=%brne ceasldi r1&=#=&add secundar1&c!i secunda=#&=

    brne ceasclr secundainc minutmo$ r1&minutandi r1&=#=7c!i r1&=#=%brne ceasldi r1&=#=&add minutr1&c!i minut=#&=brne ceas

    clr minutinc oramo$ r1&oraandi r1&=#=7c!i r1&=#=%brne PCN3ldi r1&=#=&add orar1&c!i ora=#2?brne ceasclr ora

    inc )imo$ r1&)iandi r1&=#=7c!i r1&=#=%brne ceasldi r1&=#=&add )ir1&c!i )i=#3=brne ceasclr )iinc lunamo$ r1&lunaandi r1&=#=7c!i r1&=#=%brne PCN3ldi r1&=#=&add lunar1&c!i luna=#12brne end

  • 7/24/2019 Proiect Uc Cornelia

    13/25

    clr lunainc anlowmo$ r1&anlowandi r1&=#=7c!i r1&=#=%

    brne endldi r1&=#=&add anlowr1&c!i anlow=#%=brne endclr anlowinc anhighmo$ r1&anhighandi r1&=#=7c!i r1&=#=%brne end

    ldi r1&=#=&add anhighr1&c!i anhigh=#%=brne endclr anhighend:rFm! ceasrece!tie:in r10D*c!i r1OaObre af

    c!i r1OcObre schimbareceasc!i r1OdObre schdretiaf: Fm! afisareschd: Fm! schimbaredataschimbareceas:ldi r1O"Oout 0D*r1call waitldi r1OrOout 0D*r1call waitldi r1OaOout 0D*r1call waitldi r1OGOout 0D*r1

  • 7/24/2019 Proiect Uc Cornelia

    14/25

    call waitin r1&0D*mo$ r1r1&andi r1=#7=c!i r1=#3=

    brne PC5?out 0D*r1&call waitandi r1&=#=7swa! r1&mo$ orar1&in r1&0D*mo$ r1r1&andi r1=#7=c!i r1=#3=brne PC5?

    out 0D*r1&call waitandi r1&=#=7add orar1&in r1&0D*c!i r1&O Obrne PC52in r1&0D*c!i r1&O Obrne PC52ldi r1O O

    out 0D*r1call waitldi r1O'Oout 0D*r1call waitldi r1OiOout 0D*r1call waitldi r1OnOout 0D*r1call waitldi r1OuOout 0D*r1call waitldi r1OtOout 0D*r1call waitldi r1OuOout 0D*r1

  • 7/24/2019 Proiect Uc Cornelia

    15/25

    call waitldi r1OlOout 0D*r1call waitldi r1OGO

    out 0D*r1call waitin r1&0D*mo$ r1r1&andi r1=#7=c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7swa! r1&

    mo$ minutr1&in r1&0D*mo$ r1r1&andi r1=#7=c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7add minutr1&in r1&0D*

    c!i r1&O Obrne PC52in r1&0D*c!i r1&O Obrne PC52ldi r1O Oout 0D*r1call waitldi r1OSOout 0D*r1call waitldi r1OeOout 0D*r1call waitldi r1OcOout 0D*r1call waitldi r1OuOout 0D*r1

  • 7/24/2019 Proiect Uc Cornelia

    16/25

    call waitldi r1OnOout 0D*r1call waitldi r1OdO

    out 0D*r1call waitldi r1OaOout 0D*r1call waitldi r1OGOout 0D*r1call waitin r1&0D*mo$ r1r1&andi r1=#7=

    c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7swa! r1&mo$ secundar1&in r1&0D*mo$ r1r1&andi r1=#7=c!i r1=#3=

    brne PC5?out 0D*r1&call waitandi r1&=#=7add secundar1&in r1&0D*c!i r1&O Obrne PC52in r1&0D*c!i r1&O Obrne PC52ldi r1=#=Dout 0D*r1call waitldi r1=#=%out 0D*r1call waitFm! afisareschimbaredata:

  • 7/24/2019 Proiect Uc Cornelia

    17/25

    ldi r1O%Oout 0D*r1call waitldi r1OnOout 0D*r1

    call waitldi r1OuOout 0D*r1call waitldi r1OlOout 0D*r1call waitldi r1OOout 0D*r1call waitldi r1OO

    out 0D*r1call waitldi r1OOout 0D*r1call waitldi r1OGOout 0D*r1call waitin r1&0D*mo$ r1r1&andi r1=#7=

    c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7swa! r1&mo$ anhighr1&in r1&0D*mo$ r1r1&andi r1=#7=c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7add anhighr1&

    in r1&0D*c!i r1&O O

  • 7/24/2019 Proiect Uc Cornelia

    18/25

    brne PC52in r1&0D*c!i r1&O Obrne PC52

    ldi r1O Oout 0D*r1call waitldi r1O%Oout 0D*r1call waitldi r1OnOout 0D*r1call waitldi r1OuOout 0D*r1

    call waitldi r1OlOout 0D*r1call waitldi r1OOout 0D*r1call waitldi r1OLOout 0D*r1call waitldi r1OO

    out 0D*r1call waitldi r1OGOout 0D*r1call wait

    in r1&0D*mo$ r1r1&andi r1=#7=c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7swa! r1&mo$ anlowr1&in r1&0D*mo$ r1r1&andi r1=#7=

  • 7/24/2019 Proiect Uc Cornelia

    19/25

    c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7

    add anlowr1&

    in r1&0D*c!i r1&O Obrne PC52in r1&0D*c!i r1&O Obrne PC52

    ldi r1O Oout 0D*r1

    call waitldi r1OLOout 0D*r1call waitldi r1OuOout 0D*r1call waitldi r1OnOout 0D*r1call waitldi r1OaO

    out 0D*r1call waitldi r1OGOout 0D*r1call wait

    in r1&0D*mo$ r1r1&andi r1=#7=c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7swa! r1&mo$ lunar1&in r1&0D*mo$ r1r1&andi r1=#7=

  • 7/24/2019 Proiect Uc Cornelia

    20/25

    c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7

    add lunar1&

    in r1&0D*c!i r1&O Obrne PC52in r1&0D*c!i r1&O Obrne PC52

    in r1&0D*c!i r1&O O

    brne PC52in r1&0D*c!i r1&O Obrne PC52

    ldi r1O Oout 0D*r1call waitldi r1OKOout 0D*r1call wait

    ldi r1OiOout 0D*r1call waitldi r1OuOout 0D*r1call waitldi r1OaOout 0D*r1call waitldi r1OGOout 0D*r1call wait

    in r1&0D*mo$ r1r1&andi r1=#7=c!i r1=#3=brne PC5?out 0D*r1&

  • 7/24/2019 Proiect Uc Cornelia

    21/25

    call waitandi r1&=#=7swa! r1&mo$ )ir1&in r1&0D*

    mo$ r1r1&andi r1=#7=c!i r1=#3=brne PC5?out 0D*r1&call waitandi r1&=#=7add )ir1&in r1&0D*c!i r1&O Obrne PC52

    in r1&0D*c!i r1&O Obrne PC52ldi r1=#=Dout 0D*r1call waitldi r1=#=%out 0D*r1call waitFm! afisareafisare:

    mo$ r1)iandi r1=#7=swa! r1ori r1=b==11====out 0D*r1call waitmo$ r1)iandi r1=#=7ori r1=b==11====out 0D*r1call waitldi r1O;Oout 0D*r1call wait

    mo$ r1lunaandi r1=#7=swa! r1ori r1=b==11====

  • 7/24/2019 Proiect Uc Cornelia

    22/25

    out 0D*r1call waitmo$ r1lunaandi r1=#=7ori r1=b==11====

    out 0D*r1call waitldi r1O;Oout 0D*r1call waitmo$ r1anhighandi r1=#7=swa! r1ori r1=b==11====out 0D*r1call wait

    mo$ r1anhighandi r1=#=7ori r1=b==11====out 0D*r1call waitmo$ r1anlowandi r1=#7=swa! r1ori r1=b==11====out 0D*r1call wait

    mo$ r1anlowandi r1=#=7ori r1=b==11====out 0D*r1call waitldi r1O Oout 0D*r1call wait

    mo$ r1oraandi r1=#7=swa! r1ori r1=b==11====out 0D*r1call wait

    mo$ r1oraandi r1=#=7ori r1=b==11====

  • 7/24/2019 Proiect Uc Cornelia

    23/25

    out 0D*r1call wait

    ldi r1O:Oout 0D*r1

    call wait

    mo$ r1minutandi r1=#7=swa! r1ori r1=b==11====out 0D*r1call wait

    mo$ r1minutandi r1=#=7

    ori r1=b==11====out 0D*r1call wait

    ldi r1O:Oout 0D*r1call wait

    mo$ r1secundaandi r1=#7=swa! r1

    ori r1=b==11====out 0D*r1call wait

    mo$ r1secundaandi r1=#=7ori r1=b==11====out 0D*r1call waitldi r1=#=Dout 0D*r1call waitldi r1=#=%out 0D*r1call waitretiwait:in r10CS*%sbrs r10D*

  • 7/24/2019 Proiect Uc Cornelia

    24/25

    rFm! waitret

    Capitolul *! Bi.lio/ra2ie

  • 7/24/2019 Proiect Uc Cornelia

    25/25

    Curs %Tmega1& scomelco.ro

    http://www.datasheetcatalog.com/http://www.datasheetcatalog.com/