Hver elektronikingeniør elsker at bryde elektronik ting og udforske, hvad der er til stede inde i det. For nylig åbnede jeg et LED-tv og fandt ARM Chip inde i det. ARM-baserede mikrokontrollere bruges stærkt i forskellige typer indlejrede produkter og systemer. De indeholder mange avancerede funktioner, der gør dem kraftfulde og bedre end andre mikrocontrollere som 8051, AVR og PIC. LPC2148 er en af de mest anvendte ARM-baserede mikrokontroller, så vi opretter en række LPC2148 tutorials og projekter og deler i kommende artikler. Her er den første tutorial i denne serie, der dækker Kom godt i gang med LPC2148 og programmer den til at blinke LED.
Så i denne vejledning lærer vi mere om ARM7 Stick - LPC2148 og lærer at programmere det med software Keil uVision og Flash-magi. Vi programmerer vores LPC2148 til at blinke en LED.
ARM-mikrocontroller
Trin 17: Marker nu Opret Hex-fil under fanen output, og klik derefter på 'Ok'
Trin 18: Klik nu på BUILD- ikonet, eller tryk på F7 for at oprette hex-fil.
Trin 19: Nu oprettes hex-filen, og vi kan notere den i bunden. Som dette billede nedenfor, da det indikerer, at der oprettes en hex-fil.
Trin 20: Nu er det tid til at blinke hex-filen til ARM7 Stick. Så åbn Flash Magic
Flash-magiske værktøj vises som ovenfor.
Nedenfor er trinene til blinkning af ARM LPC2148:
- Vælg LPC2148
- Giv COM-portnummeret i henhold til Enhedshåndtering (Mine var COM7)
- Giv baudrate som 38400
- Oscillator som 12 MHz
- Marker “Slet blokke brugt af firmware”
- Vælg nu hex-filstien
- Marker bekræft efter programmering afkrydsningsfeltet.
- Og klik på START
Efter at have blinket med succes på få sekunder, vises Færdig (i grøn farve) nederst som vist på billedet nedenfor
Nu kan du se, at LED begynder at blinke på brødbrættet
Kodning Forklaring
Komplet kode til blinkende LED med LPC2148 er angivet nedenfor. Koden er enkel og kan let forstås.
Denne headerfil indeholder alle filer til LPC214x-serien af mikrokontrollere.
#omfatte
Da vi har tilsluttet output til P0.10, bruger det IODIR-registret og laver pin Port 0 Pin 10 som output.
IO0DIR = (1 << 10);
Dette register indstiller P0.10 til HIGH, hvilket gør LED tændt.
IO0SET = (1 << 10);
Dette register rydder P0.10 til LAV-lysdiode slukket
IO0CLR = (1 << 10);
Nedenstående udsagn er til stede i mens loop for at udføre koden kontinuerligt
mens (1) { IO0SET = (1 << 10); forsinkelse_ms (1000); IO0CLR = (1 << 10); forsinkelse_ms (1000); }
Funktioner delay_ms bruges til at skabe en forsinkelsestid mellem SET & CLR for at blinke LED'en i intervallet på 1 sekund.
Komplet kode med en demonstrationsvideo er angivet nedenfor.