Display är en mycket viktig del av alla inbäddade systemapplikationer eftersom det hjälper användare att känna till systemets status och visar också utdata eller varningsmeddelanden som genereras av systemet. Det finns många typer av skärmar som används i elektronik som 7-segmentsdisplay, LCD-display, TFT-pekskärmsdisplay, LED-display etc.
Vi har redan interfaced 16x2 LCD med ARM7-LPC2148 i vår tidigare handledning. Idag i denna handledning kommer vi att gränssnitt en 7-segment Display med ARM7-LPC2148. Innan vi går i detalj kommer vi att se hur man styr 7-segmentsmodulen för att visa vilket tecken som helst.
7-segment display
7 segmentskärmar är bland de enklaste visningsenheterna för att visa siffror och tecken. Det används vanligtvis för att visa siffror och har ljusare belysning och enklare konstruktion än punktmatrisvisning. Och på grund av ljusare belysning kan utgången ses från större avstånd än LCD. Som visas i bilden ovan på en 7-segmentsdisplay, består den av 8 lysdioder, varje lysdiod används för att belysa ett segment av enheten och 8: e LED används för att belysa DOT i 7-segmentdisplay. 8thLED används när två eller flera moduler med 7 segment används, till exempel för att visa (0.1). En enda modul används för att visa en siffra eller tecken. För att visa mer än en siffra eller ett tecken används flera 7-segment.
Pins med 7-segmentsdisplay
Det finns 10 stift, där 8 stift används för att hänvisa till a, b, c, d, e, f, g och h / dp, de två mittstiften är vanliga anoder / katoder för alla LED-lampor. Dessa vanliga anoder / katoder är internt kortslutna så vi behöver bara ansluta en COM-stift
Beroende på anslutning klassificerar vi 7-segment i två typer:
Gemensam katod
I detta är alla de negativa terminalerna (katoden) för alla de 8 lysdioderna anslutna (se diagrammet nedan), benämnt COM. Och alla positiva terminaler lämnas ensamma eller är anslutna till mikrokontrollerns stift. Om vi använder mikrokontroller ställer vi in logik HÖG för att belysa det specifika och ställer LÅG för att stänga av LED.
Vanlig anod
I detta är alla positiva terminaler (anoder) för alla de 8 lysdioderna anslutna tillsammans, benämnda som COM. Och alla negativa termikar lämnas ensamma eller är anslutna till mikrokontrollerns stift. Om vi använder mikrokontroller ställer vi in logiken LÅG för att belysa den specifika och ställer in logiken Hög för att stänga av LED.
Så beroende på stiftvärdet kan ett visst segment eller rad med 7 segment aktiveras eller stängas av för att visa önskat nummer eller alfabet. För att till exempel visa 0 siffror måste vi ställa in stiften ABCDEF som HÖG och endast G som LÅG. Eftersom ABCDEF-lysdioder är PÅ och G är AV är detta 0-siffran i 7-segmentmodulen. (Detta är för vanlig katod, för vanlig anod är det motsatt).
Nedanstående tabell visar HEX-värdena och motsvarande siffra enligt LPC2148-stift för vanlig katodkonfiguration.
Siffra |
HEX-värden för LPC2148 |
A |
B |
C |
D |
E |
F |
G |
0 |
0xF3 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0x12 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
0x163 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
3 |
0x133 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
4 |
0x192 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
5 |
0x1B1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
6 |
0x1F1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
7 |
0x13 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
8 |
0x1F3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
9 |
0x1B3 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
VIKTIGT: I tabellen ovan har jag angett HEX-värdena enligt de stift jag har använt i LPC2148, kontrollera kretsschemat nedan. Du kan använda vilka stift du vill men ändra hex-värden enligt det.
För att lära dig mer om 7-segmentsvisning, gå igenom länken. Kontrollera även gränssnitt med 7 segment och andra mikrokontroller:
- 7-segmentskärmsgränssnitt med Raspberry Pi
- 7-segmentskärmsgränssnitt med PIC-mikrokontroller
- 7-segmentskärmsgränssnitt med Arduino
- 7-segmentskärmsgränssnitt med 8051 mikrokontroller
- 0-99 Räknare med AVR Microcontroller
Material som krävs
Hårdvara
- ARM7-LPC2148
- Display-modul för sju segment (ensiffrig)
- Bakbord
- Anslutande ledningar
programvara
- Keil uVision5
- Flash Magic
Kretsschema
För gränssnitt mellan 7-segment och LPC2148 behövs ingen extern komponent som visas i kretsschemat nedan:
Tabellen nedan visar kretsförbindelserna mellan 7-segmentsmodulen och LPC2148
Sju segmentmodulstift |
LPC2148 Pins |
A |
P0.0 |
B |
P0.1 |
C |
P0.4 |
D |
P0.5 |
E |
P0.6 |
F |
P0.7 |
G |
P0.8 |
Allmänning |
GND |
Programmering ARM7 LPC2148
Vi har lärt oss hur man programmerar ARM7-LPC2148 med hjälp av Keil i vår tidigare handledning. Vi använder samma Keil uVision 5 här för att skriva koden och skapa hex-fil och sedan ladda upp hex-filen till LPC2148 med hjälp av flash-magiskt verktyg. Vi använder USB-kabel för att driva och ladda upp kod till LPC2148
Komplett kod med videoförklaring ges i slutet av denna handledning. Här förklarar vi några viktiga delar av koden.
Först måste vi inkludera rubrikfilen för LPC214x-serien mikrokontroller
#omfatta
Ställ sedan in stiften som utdata
IO0DIR = IO0DIR-0xffffffff
Detta ställer in stiften P0.0 till P0.31 som utgång men vi använder bara stift (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 och P0.8).
Ställ sedan in vissa stift på LOGIC HIGH eller LOW enligt den numeriska siffra som ska visas. Här visar vi värden från (0 till 9). Vi kommer att använda en matris som består av HEX-värden för värdena 0 till 9.
osignerad int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Värdena visas kontinuerligt när koden har satts in under loop
medan (1) { för (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // ställer motsvarande stift HÖG fördröjning (9000); // Samtalsfördröjningsfunktion IO0CLR = IO0CLR-a; // Ställer in motsvarande stift LÅG } }
Här används IOSET och IOCLR för att ställa in stiften HIGH respektive LOW. Som vi har använt PORT0- stift så har vi IO0SET & IO0CLR .
För loop används för att öka i i varje iteration och varje gång när jag ökar, ökar 7 segment också siffran som visas på den.
fördröjningsfunktion används för att generera fördröjningstid mellan SET & CLR
tomrumsfördröjning (int k) // Funktion för att göra fördröjning { int i, j; för (i = 0; i
Komplett kod och arbetsvideobeskrivning ges nedan. Kontrollera även alla 7-segment Display-relaterade projekt här.