Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

2.

DIO 7-segmentni display Implementacija rjeenja


Zadatak: Potrebno je osmisliti algoritam upravljanja sa 7-segmentnim display-om. Detaljno analizirati rad diplay-a, nacrtati njegovu internu shemu, nacrtati tablicu kombinacija za paljenja pojedinih segmenata u heksadecimalnom i binarnom sistemu. Napisati programski kod prema tabelama u programskom paketu MikroC, kompajlirati i provjeriti njegovu ispravnost u Proteusu. Rjeenje:

sl.1 Interna struktura 7-segmentnog display-a Unutar jednog 7-segmentnog displeja imamo 7 svjetleih dioda obiljeenih sa A, B, C, D, E, F i G i dodatak DP - decimalnu taku. Postoje dvije vrste 7 segmentnih displeja, sa zajednikom anodom i zajednikom katodom. Pojedinani pin mikrokontrolera se ne smije opteretiti strujom veom od 20mA tako da moramo ograniiti struju kroz svaki pojedini segment na manji iznos. Ovo emo uraditi dodavanjem otpornika od 330ohm u seriju sa svakim segmentom (led diodom). Tabela koja je u nastavku prikazana predstavlja osnov za pisanje programa. U tabelu je potrebno upisati binarne i heksadecimalne vrijednosti koje odgovaraju decimalnim brojevima sa lijeve strane tabele, odnosno redosljedu paljenja segmenata da bi se prikazala svaka pojedinana decimalna cifra.

Decimalni broj koji se prikazuje 0 1 2 3 4 5 6 7 8 9

Heksadecimalna kombinacija

Binarna kombinacija
RD0 RD1 RD2 RD3 RD4 RD5 RD6

Tabela 1. Stanja pojedinih segmenata Program za upravljanje 7-segmentnim display-om prikazan je u nastavku:

unsigned short maska(unsigned short kombinacija); //Deklaracija funkcije maska unsigned short i; //Deklaracija brojake varijable void main() { INTCON = 0; //Iskljui GIE, PEIE,INTE,RBIE,T0IE PORTA = 0; TRISA = 0; PORTD = 0; TRISD = 0; do { for (i = 0; i <= 9; i++) {//Brojaka petlja PORTA = 1; //Upali tranzistor i omogui paljenje segmenata PORTD = maska(i); //Postavi odgovarajuu kombinaciju na PORTD Delay_ms(500); } } while (1); //Beskonana petlja }

//Tijelo unsigned switch case case case case case case case case case case } }

funkcije maska short maska(unsigned short kombinacija) { (kombinacija) { 0 : return 0x3F; 1 : return 0x06; 2 : return 0x5B; 3 : return 0x4F; 4 : return 0x66; 5 : return 0x6D; 6 : return 0x7D; 7 : return 0x07; 8 : return 0x7F; 9 : return 0x6F;

Sastaviti shemu u Proteus-u, uitati .HEX file i provjeriti ispravnost programa.

U1
1 2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40 RE3/MCLR/VPP RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RA0/AN0/ULPW U/C12IN0RC2/P1A/CCP1 RA1/AN1/C12IN1RC3/SCK/SCL RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA RA3/AN3/VREF+/C1IN+ RC5/SDO RA4/T0CKI/C1OUT RC6/TX/CK RA5/AN4/SS/C2OUT RC7/RX/DT RA6/OSC2/CLKOUT RA7/OSC1/CLKIN RD0 RD1 RB0/AN12/INT RD2 RB1/AN10/C12IN3RD3 RB2/AN8 RD4 RB3/AN9/PGM/C12IN2RD5/P1B RB4/AN11 RD6/P1C RB5/AN13/T1G RD7/P1D RB6/ICSPCLK RB7/ICSPDAT RE0/AN5 RE1/AN6 RE2/AN7 PIC16F887 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10 1 2 3 4 5 6 7 8 330

RN1
16 15 14 13 12 11 10 9

R1
2k

Q1
2N2222

sl.2 Shematski prikaz sklopa za upravljanje 7-segmentnim display-om u Proteus-u Zadaa: Napisati program koji e ispisivati dvocifrene brojeve na dva 7-seg display-a

You might also like