Documente Academic
Documente Profesional
Documente Cultură
Curs 13
Sisteme ncorporate
5. Aplicaii
5.1. Comanda unor elemente de vizualizare i execuie
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
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
Sisteme ncorporate
Sisteme ncorporate
Sisteme ncorporate
10
Sisteme ncorporate
Motorul real:
Pasul stabilit de stator este de 450; pasul stabilit de rotor este de 600; pasul final va fi: 600
450 = 150.
11
Sisteme ncorporate
12
Sisteme ncorporate
Schema:
13
Sisteme ncorporate
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
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
21
Sisteme ncorporate
cont: clr p1.1
etic0: djnz r2,etic0
jmp reia
end
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
23
Sisteme ncorporate
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
org 0a000h
mov pwmp,#0bfh
mov pwm0,#0f0h
mov pwm1,#0f0h
jmp $
end
27
Sisteme ncorporate
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
29
Sisteme ncorporate
Driver ul MAX6952:
30
Sisteme ncorporate
Terminalele:
31
Sisteme ncorporate
32
Sisteme ncorporate
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;
Prin interfaa SPI, conectare daisy chain, sincronizarea blinking prin comanda
simultan a intrrilor /CS:
34