Projekti - sedam segmenetni pokazivači
Općenito o projektima sa sedam segmentnim pokazivačima
_
Projekti sa sedam segmentnim pokazivačima koji slijede temeljeni su na mikrokontrolerskom sustavu spojenom kao na donjoj slici. Razlika je samo u softveru mikrokontrolera. Iako se neki projekti čine izuzetno slični, riješeni su na različite načine kako bi čitatelj mogao naučiti više o programiranju mikrokontrolera u programskom jeziku mikroPascal.
Projekti sa sedam segmentnim pokazivačima koji slijede temeljeni su na mikrokontrolerskom sustavu spojenom kao na donjoj slici. Razlika je samo u softveru mikrokontrolera. Iako se neki projekti čine izuzetno slični, riješeni su na različite načine kako bi čitatelj mogao naučiti više o programiranju mikrokontrolera u programskom jeziku mikroPascal.
_
Napomena: na kraju svakog projekta možete preuzeti mikroPascal projekt i Proteus shemu.
Napomena: na kraju svakog projekta možete preuzeti mikroPascal projekt i Proteus shemu.
Projekt 1
Prikaz brojeva 0 - 9
_ program Sseg09;
var i: byte; //deklariranje varijable
begin
trisc:=0; //postavljanje portc u izlazni rezim rada
portc:=0; //postavljanje portc u stanje "0"
repeat //beskonacna petlja
for i:=0 to 9 do //petlja za brojanje
begin
if i=0 then portc:=63 //prikaz znaka 0 na pokazivaču
else if i=1 then portc:=6 //prikaz znaka 1 na pokazivaču
else if i=2 then portc:=91 //prikaz znaka 2 na pokazivaču
else if i=3 then portc:=79 //prikaz znaka 3 na pokazivaču
else if i=4 then portc:=102 //prikaz znaka 4 na pokazivaču
else if i=5 then portc:=109 //prikaz znaka 5 na pokazivaču
else if i=6 then portc:=125 //prikaz znaka 6 na pokazivaču
else if i=7 then portc:=7 //prikaz znaka 7 na pokazivaču
else if i=8 then portc:=127 //prikaz znaka 8 na pokazivaču
else if i=9 then portc:=111 //prikaz znaka 9 na pokazivaču
else portc:=0; //ostali slučajevi
delay_ms(300); //cekaj 300 ms
end;
until 1=2 //kraj beskonacne petlje
end.
var i: byte; //deklariranje varijable
begin
trisc:=0; //postavljanje portc u izlazni rezim rada
portc:=0; //postavljanje portc u stanje "0"
repeat //beskonacna petlja
for i:=0 to 9 do //petlja za brojanje
begin
if i=0 then portc:=63 //prikaz znaka 0 na pokazivaču
else if i=1 then portc:=6 //prikaz znaka 1 na pokazivaču
else if i=2 then portc:=91 //prikaz znaka 2 na pokazivaču
else if i=3 then portc:=79 //prikaz znaka 3 na pokazivaču
else if i=4 then portc:=102 //prikaz znaka 4 na pokazivaču
else if i=5 then portc:=109 //prikaz znaka 5 na pokazivaču
else if i=6 then portc:=125 //prikaz znaka 6 na pokazivaču
else if i=7 then portc:=7 //prikaz znaka 7 na pokazivaču
else if i=8 then portc:=127 //prikaz znaka 8 na pokazivaču
else if i=9 then portc:=111 //prikaz znaka 9 na pokazivaču
else portc:=0; //ostali slučajevi
delay_ms(300); //cekaj 300 ms
end;
until 1=2 //kraj beskonacne petlje
end.
sseg09.rar | |
File Size: | 57 kb |
File Type: | rar |
Projekt 2
Prikaz znakova 0 - F (heksadekadske znamenke)
_ programSseg0F;
var i: byte; //deklariranje varijable
function SSmask(broj:byte):byte; //deklaracija funkcije za "maskiranje" znamenki
begin //sluzi za pripremu za ispis na 7 seg pokazivac
if broj=0 then result:=63 //prikaz znaka 0 na pokazivaču
else if broj=1 then result:=6 //prikaz znaka 1 na pokazivaču
else if broj=2 then result:=91 //prikaz znaka 2 na pokazivaču
else if broj=3 then result:=79 //prikaz znaka 3 na pokazivaču
else if broj=4 then result:=102 //prikaz znaka 4 na pokazivaču
else if broj=5 then result:=109 //prikaz znaka 5 na pokazivaču
else if broj=6 then result:=125 //prikaz znaka 6 na pokazivaču
else if broj=7 then result:=7 //prikaz znaka 7 na pokazivaču
else if broj=8 then result:=127 //prikaz znaka 8 na pokazivaču
else if broj=9 then result:=111 //prikaz znaka 9 na pokazivaču
else if broj=10 then result:=119 //prikaz znaka A na pokazivaču
else if broj=11 then result:=124 //prikaz znaka B na pokazivaču
else if broj=12 then result:=57 //prikaz znaka C na pokazivaču
else if broj=13 then result:=94 //prikaz znaka D na pokazivaču
else if broj=14 then result:=121 //prikaz znaka E na pokazivaču
else if broj=15 then result:=113 //prikaz znaka F na pokazivaču
else result:=0; //ostali slučajevi
end; //kraj funkcije
begin
trisc:=0; //postavljanje portc u izlazni rezim rada
portc:=0; //postavljanje portc u stanje "0"
repeat //beskonacna petlja
for i:=0 to 15 do //petlja za brojanje
begin
portc:=SSmask(i); //dodjela portc rezultata iz funkcije SSmask
delay_ms(300); //cekanje 300 ms
end;
until1=2 //kraj beskonacne petlje
end.
var i: byte; //deklariranje varijable
function SSmask(broj:byte):byte; //deklaracija funkcije za "maskiranje" znamenki
begin //sluzi za pripremu za ispis na 7 seg pokazivac
if broj=0 then result:=63 //prikaz znaka 0 na pokazivaču
else if broj=1 then result:=6 //prikaz znaka 1 na pokazivaču
else if broj=2 then result:=91 //prikaz znaka 2 na pokazivaču
else if broj=3 then result:=79 //prikaz znaka 3 na pokazivaču
else if broj=4 then result:=102 //prikaz znaka 4 na pokazivaču
else if broj=5 then result:=109 //prikaz znaka 5 na pokazivaču
else if broj=6 then result:=125 //prikaz znaka 6 na pokazivaču
else if broj=7 then result:=7 //prikaz znaka 7 na pokazivaču
else if broj=8 then result:=127 //prikaz znaka 8 na pokazivaču
else if broj=9 then result:=111 //prikaz znaka 9 na pokazivaču
else if broj=10 then result:=119 //prikaz znaka A na pokazivaču
else if broj=11 then result:=124 //prikaz znaka B na pokazivaču
else if broj=12 then result:=57 //prikaz znaka C na pokazivaču
else if broj=13 then result:=94 //prikaz znaka D na pokazivaču
else if broj=14 then result:=121 //prikaz znaka E na pokazivaču
else if broj=15 then result:=113 //prikaz znaka F na pokazivaču
else result:=0; //ostali slučajevi
end; //kraj funkcije
begin
trisc:=0; //postavljanje portc u izlazni rezim rada
portc:=0; //postavljanje portc u stanje "0"
repeat //beskonacna petlja
for i:=0 to 15 do //petlja za brojanje
begin
portc:=SSmask(i); //dodjela portc rezultata iz funkcije SSmask
delay_ms(300); //cekanje 300 ms
end;
until1=2 //kraj beskonacne petlje
end.
sseg0f.rar | |
File Size: | 74 kb |
File Type: | rar |
Multipleksirani sedam segmentni pokazivači
Projekt sa multipleksiranim sedam segmentnim pokazivačima temeljen je na slijedećoj shemi.
Projekt 3
Statički ispis na multipleksiranim sedam segmentim pokazivačima
_ program Ssegmuxstatic;
function SSmask(broj:byte):byte; //deklaracija funkcije za "maskiranje" znamenki
begin //sluzi za pripremu za ispis na 7 seg pokazivac
if broj=0 then result:=63 //prikaz znaka 0 na pokazivaču
else if broj=1 then result:=6 //prikaz znaka 1 na pokazivaču
else if broj=2 then result:=91 //prikaz znaka 2 na pokazivaču
else if broj=3 then result:=79 //prikaz znaka 3 na pokazivaču
else if broj=4 then result:=102 //prikaz znaka 4 na pokazivaču
else if broj=5 then result:=109 //prikaz znaka 5 na pokazivaču
else if broj=6 then result:=125 //prikaz znaka 6 na pokazivaču
else if broj=7 then result:=7 //prikaz znaka 7 na pokazivaču
else if broj=8 then result:=127 //prikaz znaka 8 na pokazivaču
else if broj=9 then result:=111 //prikaz znaka 9 na pokazivaču
else if broj=10 then result:=119 //prikaz znaka A na pokazivaču
else if broj=11 then result:=124 //prikaz znaka B na pokazivaču
else if broj=12 then result:=57 //prikaz znaka C na pokazivaču
else if broj=13 then result:=94 //prikaz znaka D na pokazivaču
else if broj=14 then result:=121 //prikaz znaka E na pokazivaču
else if broj=15 then result:=113 //prikaz znaka F na pokazivaču
else result:=0; //ostali slučajevi
end; //kraj funkcije
begin
trisc:=0; //postavljanje portc u izlazni rezim rada
portc:=0; //postavljanje portc u stanje "0"
trisb:=0; //postavljanje portb u izlazni rezim rada
portb:=0; //postavljanje portb u stanje "0"
repeat //beskonacna petlja
portc:=SSmask(4); //prikaz jedinica
portb:=1; //ukljuci prvi segment
delay_ms(4); //cekanje 4 ms
portb:=0; //iskljuci segment
portc:=SSmask(3); //prikaz desetica
portb:=2; //ukljuci drugi segment
delay_ms(4); //cekanje 4 ms
portb:=0; //iskljuci segment
portc:=SSmask(2); //prikaz stotica
portb:=4; //ukljuci treci segment
delay_ms(4); //cekanje 4 ms
portb:=0; //iskljuci segment
portc:=SSmask(1); //prikaz tisucica
portb:=8; //ukljuci cetvrti segment
delay_ms(4); //cekanje 4 ms
portb:=0; //iskljuci segment
until 1=2 //kraj beskonacne petlje
end.
function SSmask(broj:byte):byte; //deklaracija funkcije za "maskiranje" znamenki
begin //sluzi za pripremu za ispis na 7 seg pokazivac
if broj=0 then result:=63 //prikaz znaka 0 na pokazivaču
else if broj=1 then result:=6 //prikaz znaka 1 na pokazivaču
else if broj=2 then result:=91 //prikaz znaka 2 na pokazivaču
else if broj=3 then result:=79 //prikaz znaka 3 na pokazivaču
else if broj=4 then result:=102 //prikaz znaka 4 na pokazivaču
else if broj=5 then result:=109 //prikaz znaka 5 na pokazivaču
else if broj=6 then result:=125 //prikaz znaka 6 na pokazivaču
else if broj=7 then result:=7 //prikaz znaka 7 na pokazivaču
else if broj=8 then result:=127 //prikaz znaka 8 na pokazivaču
else if broj=9 then result:=111 //prikaz znaka 9 na pokazivaču
else if broj=10 then result:=119 //prikaz znaka A na pokazivaču
else if broj=11 then result:=124 //prikaz znaka B na pokazivaču
else if broj=12 then result:=57 //prikaz znaka C na pokazivaču
else if broj=13 then result:=94 //prikaz znaka D na pokazivaču
else if broj=14 then result:=121 //prikaz znaka E na pokazivaču
else if broj=15 then result:=113 //prikaz znaka F na pokazivaču
else result:=0; //ostali slučajevi
end; //kraj funkcije
begin
trisc:=0; //postavljanje portc u izlazni rezim rada
portc:=0; //postavljanje portc u stanje "0"
trisb:=0; //postavljanje portb u izlazni rezim rada
portb:=0; //postavljanje portb u stanje "0"
repeat //beskonacna petlja
portc:=SSmask(4); //prikaz jedinica
portb:=1; //ukljuci prvi segment
delay_ms(4); //cekanje 4 ms
portb:=0; //iskljuci segment
portc:=SSmask(3); //prikaz desetica
portb:=2; //ukljuci drugi segment
delay_ms(4); //cekanje 4 ms
portb:=0; //iskljuci segment
portc:=SSmask(2); //prikaz stotica
portb:=4; //ukljuci treci segment
delay_ms(4); //cekanje 4 ms
portb:=0; //iskljuci segment
portc:=SSmask(1); //prikaz tisucica
portb:=8; //ukljuci cetvrti segment
delay_ms(4); //cekanje 4 ms
portb:=0; //iskljuci segment
until 1=2 //kraj beskonacne petlje
end.
ssegmuxstatic.rar | |
File Size: | 54 kb |
File Type: | rar |