Transcript
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/
top related