Upload
pezeropea
View
222
Download
0
Embed Size (px)
Citation preview
8/7/2019 PROIECT 2v2
1/14
UNIVERSITATEA POLITEHNICA BUCURESTIFACULTATEA DE ELECTRONICA, TELECOMUNICATII SI TEHNOLOGIA INFORMAT
PROIECT 2TEMA 10
PROFESOR INTRUMATOR: ELISABETA BUZOIASTUDENT: POPA MARIAN BOGD
GRUPA: 434
BUCURESTI 2010
8/7/2019 PROIECT 2v2
2/14
CUPRINS
. Enunul temei 3 . Datele de proiectare 3 . Rezumatul proiectului4 . Introducere teoretic 4 . Simulare ORCAD 8 . Implementare pe kit 10 . Bibliografie 15
8/7/2019 PROIECT 2v2
3/14
I. ENUNTUL TEMEI
1. S se realizeze simularea PSpice a funcionrii unui automat finit pentru comanda derespective nchiderii unei ui, prin acionarea a dou motoare, M1 i M2, folosind mediul de programORCAD.
Comanda de acionare a motoarelor se face de la o telecomand( semnal F) n funcie de i primit de la doi senzori ( Z i O), astfel : dac ua este nchis, va porni motorul M2 careua, iar dac ua este deschis, se va porni motorul M1 care o va nchide
n timpul funcionrii motorului M1 sau M2 semnalul de la telecomand este ignorant
2. S se implementeze acelai automat pe kitul C8051F320.
II. DATE DE PROIECTARE
1. Pentru simulare: diagrama strilor care descrie funcionarea automatului:
- Strile automatului sunt 0, 1, 2, 3- Simbolurile folosite: F=semnal telecomand; Z=sensor de u complet nchis; O
de u complet deschis; motorul M2 deschide ua, motorul M1 nchide ua.
Utilizm bistabile D pentru sintetizarea electronic, conform cu ecuaiile dcomand:
D0= *F+ *Q0*Q1+ *Q1* ;D1=Q0* + *Q0+ *Q1* ;
Ecuaiile de comand a motoarelor:
M1=Q0*Q1; M2= *Q1;
8/7/2019 PROIECT 2v2
4/14
III. REZUMATUL PROIECTULUI
Proiectul isi propune atat simularea automatului in PSpice cat si implementarea pe kitul C805Acest automat permite nchiderea sau deschiderea unei ui cu ajutorul a doua motoare(M1 sa
activarea de la telecomand(F) a unuia dintre cei doi senzori(Z sau O).
Pentru realizarea proiectului am parcurs urmatoarele etape:
Am obinut ecuaiile corespunztoare tranziiilor si ieirilor; Am realizat schema in Orcad folosind bistabili D, pori NAND si NOT; Am realizat organigrama programului; Am utilizat Silicon Laboratories Integrated Development Environment (IDE) pentru prog
implementarea automatului finit.
Ecuaiile corespunztoare tranziiilor si ieirilor le-am determinat cu ajutorul diagrameiVenn- Karnaugh(VK) n funcie de semnalele primite.
Organigrama programului principal este elaborat conform funcionrii automatului si instrucmicrocontrolerului.
IV. INTRODUCERE TEORETICA
In acest proiect am folosit kit-ul C8051F320, compatibil Intel 8051. In continuare vom prezencaracteristici tuturor mC Intel 8051.
Organizarea memorieiMemoria de program i date sunt fizic separate (Harvard)a) Memoria de program- Este de tip ROM sau EPROM- Harta memoriei are 64 kB- Pe cip se afl, de regul, 4 kB, 8 kB sau 16kB. Restul memoriei este extern- Dup RESET, (PC) 0000H- Locaii de memorie rezervate :
Iniializare programe: 0000H 0002H
8/7/2019 PROIECT 2v2
5/14
vector de ntrerupere tip 0: 0003H 000AHtimer 0: 000BHvector de ntrerupere tip 1: 0013H 001AHtimer 1: 001BH
b) Memoria de date- Memoria extern are 64 kB- Memoria extern e accesat cu magistrala de date i adrese prin intermediul Port 0 i eventual Port- Validarea se face cu RD, WR - Magistrala de adrese poate avea numai 1 B sau 2 B- Memoria intern este accesat cu adrese pe 1B- Sunt 3 blocuri de cte 128 B: Lower 128, Upper 128, SFR Space.
Upper 128 i SFR Space sunt fizic separate i adresate cu moduri de adresare diferiteUpper 128 nu e implementat n 8051 clasicUpper 128 este adresabil indirect la variantele la care e implementatLower 128: 4 bancuri de cte 8 registre R0 R7
16 B un bloc de memorie adresabil pe bitrestul memorie de date este adresabil direct i indirect
Moduri de adresareAdresare direct:- Adresa complet are 8 b n formatul instruciunii curente- Se poate utiliza pentru memoria de date intern (Lower 128 )- Se poate utiliza pentru SFR
Adresare indirect:- Poate fi pe 8 b sau pe 16 b- Se pot accesa 256 B de memorie intern de date (Lower 128 i Upper 128)
sau 64 kB de memorie extern- Pentru adresele pe 8 b se pot folosi R0, R1 sau SP- Pentru adresele pe 16 b se poate folosi doar DPTR pentru memoria extern
Adresare implicit (n registru):- Datele sunt accesate n unul dintre cel 8 registre din setul de lucru R0,, R7- Selecia registrului vizat se face cu 3 bii n chiar codul instruciunii- Anumite instruciuni se refer la anumite registre (acumulator, pointer de date etc.)Selecia registrului se face n chiar codul instruciunii
Adresare imediat:- O constant care se afl n formatul instruciunii curente, imediat dup cod- Constanta poate fi pe 8 b sau 16 b
Adresare indexat:- Se folosete doar pentru memoria de program !- Pentru tabele de translatare cu DPTR sau PC ca baz i ACC intrare n tabel
- Pentru salturi ACC conine deplasamentulC8051F320:
Microcontroler compatibil 8051 de mare viteza 16 KB de memorie on-chip Flash Oscillator intern 12 Mhz 25 porturi I/O Patru timere de uz general pe 16 biti Memorie -2304 Octei RAM intern (1k + 256 + 1k USB FIFO)
-16 KB Flash
8/7/2019 PROIECT 2v2
6/14
Controller USB, 1k FIFO RAM Power-On Reset, VDD Monitor, si Missing Clock Detector pe chip Counter/Timer programabil cu 5 moduri si Watch Dog Timer On chip debugger. Referinta de tensiune , sensor de temperatura
8/7/2019 PROIECT 2v2
7/14
Memoria Flash poate fi reprogramata ntr-un circuit, oferind capabititati de stocare a datelor psistem non-volatil, i, de asemenea, permind upgrade-uri de firmware pentru 8051.Utilizatorul software-ului are un control complet al tuturor periferice i poate nchide n mod unul sau chiar toate perifericele pentru a economisi energie. Toate periferice analogice si dig pe deplin funcionale n timpul depanrii. Functionarea fiecarui dispozitiv este specificat pen3.6 V.
8/7/2019 PROIECT 2v2
8/14
V. SIMULARE ORCAD
D0=
D1=
M1=Q0*Q1M2= *Q1
F-semnalul de la telecomand;
Z-senzor de u complet deschis;
O-senzor de u complet nchis;
M2-motorul ce deschide ua;
M1-motorul ce nchide ua.
8/7/2019 PROIECT 2v2
9/14
Definirea semnalelor:
Rezultatul simularii:
8/7/2019 PROIECT 2v2
10/14
VI. Implementarea pe kit
Organigrama contine 3 blocuri mari: Setarile initiale si definirea variabilelor Initializarea registrelor folosite Stare automat
Cele 3 intrari logice F, Z, O vor fi conectate la pinii de port P1.0, SW2(P1.6), P2.6.Afisarea starii de actionare a lui M1 se va face cu D1, iar cea a lui M2 cu D2.Citirea variabilelor de intrare se va face la intervale de timp de 3 secunde obinute cu programntrziere.
Funcionarea automatului:
Dac ua este nchis, cnd semnalul de la telecomand este 1 logic ea va ncepe s se deajutorul motorului M2. Cnd senzorul O are valoarea 1 logic atunci motorul M2 se va opri.
Dac ua este deschis, cand semnalul de la telecomand este 1 logic ea va ncepe s se ajutorul motorului M1. Cnd senzorul Z are valoarea 1 logic atunci motorul se va opri.
n starea 0, stare iniial, ua este nchis. Automatul rmne n aceast stare pn cnd psemnal de la telecomand, i astfel trece n starea urmtoare.
n starea 1 M2 funcioneaz. Automatul rmne n aceast stare pn cnd semnalul de lO (u complet deschis) va fi 1 logic. Apoi trece in Starea 2, unde M2 e oprit.
n starea 2 se ateapt din nou semnalul de la telecomand,1 logic, pentru a activa M1 i putea trece n starea 3.
Automatul va rmne n aceast stare pn la primirea semnalului 1 logic de la senzorul Zcomplet nchis), dup care va trece n starea 0.
STATE0 stinge orice LED aprins citeste F daca este 0, seteaza STATE0 daca este 1, seteaza STATE1
STATE1 aprinde D2 citeste O daca este 0, seteaza STATE1 daca este 1, seteaza STATE2
STATE2 stinge orice LED aprins citeste F daca este 0, seteaza STATE2 daca este 1, seteaza STATE3
STATE3 aprinde D1 citeste Z daca este 0, seteaza STATE3
8/7/2019 PROIECT 2v2
11/14
DA NU DA DA DA NU NU NU
daca este 1, seteaza STATE0
ORGANIGRAMA:
START
Setari si configurare mC
Initializare registre
Temporizare
0=0
S0 S1
F=0F=0
S1 S2
Z=0
S3 S0S2 S3
Cautarea starii curente curegistrul contor de stare
Citire intrari
Stingere LED
Citire intrari Citire intrari Citire intrari
Aprind D2 Stingere LED Aprind D1
8/7/2019 PROIECT 2v2
12/14
Setari si configurare mCProgramul in sine incepe cu instructiunile$NOMOD51(Dezactivarea definitiilor implicite pt registrele speciale ale 8051)$include (c8051f320.inc) (Includerea fisierului de definire pt registrele specifice kitului C8051F320Apoi pentru a usura partea de programare, asociem etichete porturilor , corespunzatoare intrarilor F equ P1.0Z equ P1.6O equ P2.5M1 equ P2.3M2 equ P2.2Se defineste vectorul de reset la adresa 0000h. In cazul unui reset se sare la rutina principala de progmain: cseg at 0x0000
InitializareaDezactivam intreruperile: clr ea, dezactivam Watch Dog Timer: anl pca0md,#000h, activam crossbaxbr1,#40h, pinii corespunzatori intrarilor ii configuram ca intrari digitale: orl p1mdin,#0x01 orl p2miesirile digitale ca push pull: orl p2mdout,#0x0c, stingem ledurile: clr M1 clr M2.
Bucla de intarziereCitirea variabilelor de intrare se va face la intervale de timp de 3 secunde. Pentru aceasta, vom inserintarziere inainte de citirea fiecarei variabile(avem nevoie de o frecventa de 0,33Hz.(*(*(R1*2+4)+4)+2)*8/12M=(35*(253*(253*2+4)+4)+2)*8/12M=3.01079466666 s .Codul corespunzator buclei de intarziere:Delay: mov R3, #0x23Loop1:mov R2, #0xFDLoop0:mov R1, #0xFD
djnz R1, $djnz R2, Loop0djnz R3, Loop1
sjmp mainLoopCautarea starii curente cu registrul contor de stareSe foloseste R1 din Bank 1State0:cjne R1,#0x00,State1;daca R1=0 se executa instructiunea imediat urmatoare, in caz contrar sEticheta State1State1:cjne R1,#0x01,State2;daca R1=1 se executa instructiunea imediat urmatoare, in caz contrar seEticheta State2State2: cjne R1,#0x02,State3;daca R1=2 se executa instructiunea imediat urmatoare, in caz contrar Eticheta State3State3: cjne R1,#0x03,State4;daca R1=3 se executa instructiunea imediat urmatoare, in caz contrar s
Eticheta State0
8/7/2019 PROIECT 2v2
13/14
Codul complet al programului:$NOMOD51$include (c8051f320.inc)F equ P1.0Z equ P1.6O equ P2.5M1 equ P2.2M2 equ P2.3
cseg AT 0x0000ljmp main
mainCodeSeg segment CODErseg mainCodeSegusing 1
main:acall init
mainLoop:acall Delay
State0: cjne R1,#0x00,State1 jnb F, J0mov R1,#0x01setb M2
J0: sjmp mainLoop
State1: cjne R1,#0x01,State2 jnb O,J1mov R1,#0x02clr M2
J1: sjmp mainLoop
State2: cjne R1,#0x02,State3 jnb F,J2mov R1,#0x03setb M1
J2: sjmp mainLoop
State3: jnb Z,J3mov R1,#0x00clr M1
J3: sjmp mainLoop
Delay: mov R3, #0x23Loop1: mov R2, #0xFDLoop0: mov R1, #0xFD
djnz R1, $djnz R2, Loop0djnz R3, Loop1sjmp mainLoop
8/7/2019 PROIECT 2v2
14/14
init:clr EAanl PCA0MD,#0xBFmov XBR1,#0x40orl P2MDOUT,#0x0Corl P2MDIN,#0x21orl P1MDIN,#0x01clr M1clr M2mov R1,#0x00ret
END