Sunteți pe pagina 1din 34

Sisteme ncorporate

Curs 13

Sisteme ncorporate

5. Aplicaii
5.1. Comanda unor elemente de vizualizare i execuie

Comanda unui modul de afiare cu segmente, cu 4 ranguri

Soluia nemultiplexat:

Sisteme ncorporate
Programe:
;initializare
MOV P1,#00
MOV P3,#00
;stingerea tuturor afisajelor
MOV P1,#0FFH
SET P3.0
CLR P3.0
SET P3.1
CLR P3.1
SET P3.2
CLR P3.2
SET P3.3
CLR P3.3
;aprinderea cifrei 1 pe toate rangurile
MOV P1,#0F9H

Sisteme ncorporate

Soluia multiplexat:

Sisteme ncorporate
Programe:
;initializare
MOV P1,#00
MOV P3,#0FFH
;aprinderea cifrei 8 pe primul rang
MOV P1,#80H
CLR P3.0
;aprinderea cifrei 8 pe al 2 - lea rang
MOV P1,#80H
CLR P3.1
;aprinderea cifrei 8 pe al 3 - lea rang
MOV P1,#80H
CLR P3.2
;aprinderea cifrei 8 pe al 4 - lea rang
MOV P1,#80H
CLR P3.3

Sisteme ncorporate

Citirea unui comutator

Schema:

Cod:
Varianta a:
JNB
P1.0,APASAT; salt daca este apasat

Varianta b:
JNB
P1.0,APASAT; salt daca este apasat
.............................
JNB
P1.1,NEAPASAT; salt daca nu este apasat

Sisteme ncorporate

Comanda motoarelor pas cu pas

Motorul pas cu pas

Sunt motoare digitale;


Aplicaii: acolo unde este necesar poziionare precis: imprimante, interfee
de band, disc, roboi etc.
Rotirea motorului pas cu pas:

n forma sa simpl, este alctuit din un rotor, magnet permanent, i un stator, 2


perechi de bobine; rotorul se aliniaz n dreptul perechii de bobine prin care trece
curent; schimbnd perechea de bobine energizat, rotorul se rotete;
Rotirea rotorului este determinat de interaciunea dintre cmpul magnetic at rotorului
i cel al perechii de bobine energizate; direcia curentului determin polaritatea
cmpului magnetic al statorului;
Fig. arat micarea rotorului prin energizarea perechilor de bobine: C3 C4, C1
C2, C3 C4 n sens invers i C1 C2 n sens invers;
Motorul se poate mica i cu jumti de pas; la un stator cu 4 bobine o jumtate de
pas nseamn 450;
Jumtile de pas se realizeaz prin energizarea perechilor de bobine ca i la paii
ntregi + energizarea simultan a 2 perechi de bobine alturate; cmpul magnetic
rezultant va stabili poziia rotorului;
Paii: 0.720 900; valorile uzuale: 1.80, 7.50, 900.

Sisteme ncorporate

Funcionarea cu pai ntregi:

Sisteme ncorporate

Sisteme ncorporate

Funcionarea cu jumti de pai:

10

Sisteme ncorporate

Motorul real:

Mai multe perechi att pe stator ct i pe rotor;


Exemplu:

Pasul stabilit de stator este de 450; pasul stabilit de rotor este de 600; pasul final va fi: 600
450 = 150.

11

Sisteme ncorporate

Comanda motorului pas cu pas

Presupune aplicarea de tensiuni la perechi de bobine dup o anumit


secven; secvena stabilete sensul de rotaie;
Schema: tensiunea, curentul, secvena i o ntrziere ntre pai;

12

Sisteme ncorporate

Comanda a 2 motoare pas cu pas, cu 200 pai/ rotaie;

Schema:

13

Sisteme ncorporate

Porturile au fost plasate n spaiul de memorie; se consider c registrul


primului motor are adresa E000H iar registrului celui de al 2 lea motor are
adresa E200H;
Motoarele se alimenteaz la +12 V iar impulsurile de comand trebuie s aib
aceeai amplitudine; au fost utilizate circuite amplificatoare de putere L293D;
Configuraiile care alctuiesc secvena de rotire a unui motor sunt nscrise n
cte un registru 74LS373; acestea se obin din documentaia tehnic a
motorului pas cu pas; de exemplu, pentru o rotire cu 4 pai, este necesar ca
la intrrile circuitului L293D s existe secvena:

Programul 1 comand rotirea motoarelor n acelai sens;


Programul 2 comand rotirea motoarelor n sens contrar;
Numrul de pai este programabil ca parametru al unei instruciuni;

14

Sisteme ncorporate

Programul 1:

org 0h
jmp start
secventa1: db 17,18,36,40 ;secventa pentru rotatia inainte
secventa2: db 40,36,18,17 ;secventa pentru rotatia inapoi
;
D5 D4 D3 D2 D1 D0 - la port
;secventa1: Inh2 Inh1 D3 D2 D1 D0 in zecimal
;
0
1
0 0 0 1
17
;
0
1
0 0 1 0
18
;
1
0
0 1 0 0
36
;
1
0
1 0 0 0
40
;ntrzierea ntre pai trebuie sa fie mai mare ca o valoare minima
;dependenta de motor
delay: mov r2,#08h
doi: mov r1,#00h
unu: djnz r1,unu
djnz r2,doi
ret

15

Sisteme ncorporate
start: mov sp,#60h
mov r3,#00h
reia: mov r0,#00h
cont: mov dptr,#secventa1 ;arata secventa ce se va executa
mov a,dpl
;se alege pasul din secventa
add a,r0
mov dpl,a
mov a,#0
movc a,@a+dptr
;valoarea ce corespunde pasului va fi in registrul a
mov dptr,#0e000h ;valoarea din a este trimisa la registrul primului motor
movx @dptr,a
mov dptr,#0e200h ;valoarea din a este trimisa la registrul motorului 2
movx @dptr,a
call delay
;intirzierea intre pasi
mov a,r0
;se pregateste urmatorul pas din secventa
inc a
mov r0,a

16

Sisteme ncorporate
;se verifica daca s a executat un grup de 4 pasi
subb a,#4
jnz cont
;se numara grupele de 4 pasi
mov a,r3
inc a
mov r3,a
subb a,#50; numarul de pasi este 4 x valoarea de aici, motor cu 200 pasi/ rot.
jnz reia
jmp $
end

17

Sisteme ncorporate

Programul 2:

org 0h
jmp start
secventa1: db 17,18,36,40 ;secventa pentru rotatia inainte
secventa2: db 40,36,18,17 ;secventa pentru rotatia inapoi
;intirzierea ntre pasi
delay: mov r2,#40h
doi: mov r1,#0h
unu: djnz r1,unu
djnz r2,doi
ret
pas: mov a,dpl ; se selecteaza pasul din secventa
add a,r0
mov dpl,a
mov a,#0
movc a,@a+dptr ;registrul a memoreaza valoarea pasului
ret
18

Sisteme ncorporate
start: mov sp,#60h
mov r3,#00h
reia: mov r0,#00h
cont: mov dptr,#secventa1 ;rotatia inainte
call pas
mov dptr,#0e000h ;valoarea din a este trimisa la registrul primului motor
movx @dptr,a
mov dptr,#secventa2 ;rotatia inapoi
call pas
mov dptr,#0e200h ;valoarea din a este trimisa la registrul motorului 2
movx @dptr,a
call delay
mov a,r0

;intirzierea intre pasi


;se pregateste urmatorul pas din secventa

inc a
mov r0,a

19

Sisteme ncorporate
;se verifica daca s a executat un grup de 4 pasi
subb a,#4
jnz cont
;se numara grupele de 4 pasi
mov a,r3
inc a
mov r3,a
subb a,#50d;numarul de pasi este 4 x valoarea de aici, motor cu 200 pasi/ rot.
jnz reia
jmp $
end

20

Sisteme ncorporate

Generare de PWM (Pulse Width Modulated)


Se folosete la comanda motoarelor de curent continuu;
Se poate genera PWM prin program sau cu resurse specializate;

Programul 1: generare de PWM prin program, cu rezoluia de 8 bii; primete ca

parametri durata, dur i perioada, per, a semnalului care trebuie generat;


dur equ 40h
per equ 80h
org 0a000h
mov r0,#0
clr c
mov a,#per
mov r1,#dur
subb a,r1
mov r2,a
reia: set p1.1
etic1: djnz r1,etic1
jmp cont ;asigura durata egala pe cele 2 ramuri

21

Sisteme ncorporate
cont: clr p1.1
etic0: djnz r2,etic0
jmp reia
end

Programul 2: generare de PWM prin program, cu rezoluia de 16 bii;


parametrii sunt pe 16 bii;

durl
durh
perl
perh
org

equ 00h
equ 40h
equ 00h
equ 80h
0a000h
mov r0,#0
clr c
mov r0,#durl
mov r1,#durh
;rutina de scadere pe 16 biti
mov a,#perl
mov b,#durl
22

Sisteme ncorporate
subb a,b
mov r2,a
mov a,#perh
mov b,#durh
subb a,b
mov r3,a
reia: set p1.1
etic1: djnz r0,etic1
djnz r1,etic1
jmp cont ;asigura durata egala pe cele 2 ramuri
cont: clr p1.1
etic0: djnz r2,etic0
djnz r3,etic0
jmp reia
end

P1.1 este ieirea prin care se genereaz semnalul cu durat modulat;

23

Sisteme ncorporate

Programul 3: generare de PWM fr resurse specializate, cu timpul


msurat prin ntreruperi;
;programul genereaza pwm prin intreruperi de la timer0, cu rezolutia de 16 biti
durl equ 0h
durh equ 40h
ien0 equ 0a8h
ip0 equ 0b8h
org 0a000h
mov r0,#0
clr c
;activare sistem de intreruperi
mov ien0,#82h
mov ip0,#02h
;programare tmod fara a afecta timer1
mov a,tmod
setb acc.0
clr acc.1
clr acc.2
clr acc.3
mov tmod,a
24

Sisteme ncorporate
;se calculeaza diferenta 0ffffh - durata
mov a,#0ffh
subb a,#durl
mov r0,a
mov a,#0ffh
subb a,#durh
mov r1,a
;se incarca timer0 si se porneste numararea
mov tl0,#durl
mov th0,#durh
setb tr0
jmp $
org 000bh
clr tf0 ; anulare indicator
clr tr0 ; oprire numarare
mov c,p1.1
jc ramura0 ;ramificare

25

Sisteme ncorporate
mov tl0,#durl ;ramura1
mov th0,#durh
setb p1.1
setb tr0
reti
ramura0: mov tl0,r0
mov th0,r1
clr p1.1
setb tr0
reti
end

26

Sisteme ncorporate

Programul 4: generare de PWM cu resurse specializate; sunt


implementate la unele microcontrolere din familie, de ex. 8xC552:
;programul comanda direct iesirile pwm
pwmp equ 0feh
pwm0 equ 0fch
pwm1 equ 0fdh

org 0a000h
mov pwmp,#0bfh
mov pwm0,#0f0h
mov pwm1,#0f0h
jmp $
end

27

Sisteme ncorporate

Comanda matricilor de LED uri

Matricea de LED uri

Structur matriceal: 5 x 7,
5 x 8, 8 x 8 etc.; rezoluia...
Culori: rou, verde, galben,
bicolor;
Catozii (CL) pe linii:

28

Sisteme ncorporate

Anozii pe linii (AL):

29

Sisteme ncorporate

Comanda matricilor de LED uri:

Sunt necesare 2 porturi paralele/ matrice;


Se scaneaz cte o linie sau cte o coloan;
Mai multe matrici: mai multe perechi de porturi sau multiplexare;

Driver ul MAX6952:

Poate comanda 4 module CL 5 x 7 monocolor sau 2 module similare bicolor;


Mod normal, shutdown, low power, test i facilitate de blinking;
Generator ROM de 104 caractere n format Arial i RAM de 24 caractere
utilizator care pot fi programate; se pierd la cderea tensiunii de alimentare;
Schema intern:

30

Sisteme ncorporate

Terminalele:

31

Sisteme ncorporate

Conectarea a 4 module monocolor:

32

Sisteme ncorporate

Conectarea a 2 module bicolor:

Registrele interne:

Digit Registers: 2 registre (octei) pentru fiecare digit: unul n planul P0, unul n planul
P1; nu controleaz direct led urile ci adreseaz generatorul de caractere; rangurile
D0 D6 selecteaz caracterul iar rangul D7 permite afiarea direct sau inversat;
dac este activat opiunea blinking atunci se folosesc ambii octei iar n caz contrar
doar octetul din P0;
Configuration Register: valideaz blinking, stabilete rata, iniializeaz numrtorul
pentru blinking, instaleaz modul shutdown sau normal;
Intensity Registers: 4 PWM uri pentru comanda individual a intensitii iluminrii;
Scan Limit Register: stabilete cte module monocolor sunt comandate: 2 sau 4; 1
modul bicolor = 2 module monocolor;
Display Test Register: instaleaz modul test, toate led urile sunt aprinse;
User Defined Font Register: registru pentru scrierea i citirea memoriei RAM pentru
caracterele utilizator; pentru cele 24 caractere trebuiesc 120 configutraii pe cte 7
bii; pot fi depuse n memorie secvenial sau prin font address pointer aflate la adrese
stabilite;
33

Sisteme ncorporate

Blinking:

Prin alternarea celor 2 octei/ matrice aflai n planurile P0 i P1; se pot alterna 2
caractere sau 1 caracter i caracterul blank;
Poate fi activat sau dezactivat, rata poate fi programat;
Dac sunt comandate mai multe module simultan atunci este necsar sincronizarea
operaiei;
Ieirea Blink este 1 n perioada P0 i 0 n perioada P1; poate fi folosit ca cerere de
ntrerupere pentru a schimba datele sau dac frecvena semnalului la intrarea oSC
este stabiit corespunztor, poate numra secunde;

Comanda a 2 module cu un procesor HCS12:

Prin interfaa SPI, conectare daisy chain, sincronizarea blinking prin comanda
simultan a intrrilor /CS:

34

S-ar putea să vă placă și