AVR Assembler Tutorial 1 (3 / 5 steg)

Steg 3: Hej världen


Målet med denna första handledning är att bygga standard första programmet skriver man då lära sig något nytt språk eller att utforska någon ny elektronik plattform. "Hello World!." I vårt fall vill vi bara skriva ett assembler program, montera den och ladda upp den till vår mikrokontroller. Programmet kommer att orsaka en LED att slå på. Orsakar en LED "blinka" som de gör för den normala Arduino hello world-programmet är faktiskt ett mycket mer komplicerat program i assembler så vi kommer inte att göra det ännu. Vi kommer att skriva den enklaste "bare bones" kod med minimal onödiga fluff.

Anslut först en LED från PB5 (se pinut diagrammet) som också kallas Digital ut 13 på en arduino, till ett 220 ohm motstånd, sedan till GND. dvs.

Pb5---> LED---> R (220 ohm)---> GND

Nu att skriva programmet. Öppna upp din favorit texteditor och skapa en fil som heter "hello.asm"

; hello.asm
; vänder på en LED som är ansluten till PB5 (digital ut 13)

.include ". / m328Pdef.inc"

LDI r16, 0b00100000
ut DDRB, r16
ut PortB, r16
Start:
rjmp Start

Ovanstående är koden. Vi kommer att gå igenom det rad-för-rad i en minut, men första låter se till att vi kan få det att fungera på din enhet.

När du har skapat filen, sedan montera i en terminal du det enligt följande:

Avra hello.asm

Detta kommer att montera din kod och skapa en fil som heter hello.hex som vi kan ladda upp den så här:

avrdude -p m328p - c stk500v1 -b 57600 - P/dev/ttyUSB0 - U flash:w:hello.hex

Om du använder ett set av brödunderläggen arduino måste du trycka på reset-knappen på bakbord arduino precis innan du kör kommandot ovan. Observera att du kan också behöva lägga till en sudo framför eller köra det som root. Också notera att på vissa arduino's (som Arduino UNO) du kommer antagligen behöva ändra bit rate -b 115200 och port -P/dev/ttyACM0 (om du får ett felmeddelande från avrdude om en ogiltig enhet signatur bara lägga till en -F på kommandot)

Om allt har fungerat som det ska kommer du nu har en lysdiod som lyser upp... "Hello World!"

Se Steg
Relaterade Ämnen

AVR Assembler Tutorial 2

Denna handledning är en fortsättning på "AVR Assembler Tutorial 1"Om du inte har gått igenom Tutorial 1 bör du sluta nu och göra att man först.I den här guiden kommer vi fortsätta vår studie av assembler programmering av den atmega328p som använ...

AVR Assembler handledning 11

Välkommen till handledning 11!I den här korta guiden kommer vi slutligen att bygga den första delen av vårt sista projekt.Det första du bör göra är att gå till det allra sista steget i denna tutorial och titta på videon. Sedan komma tillbaka hit. [pa...

AVR Assembler Övningsexempel 7

Välkommen till Övningsexempel 7!Idag vi första visar hur du rensar en knappsats och sedan visar hur du använder Analog ingång hamnarna för att kommunicera med knappsatsen.Vi kommer att göra med avbrott och en enda tråd som indata. Vi kommer tråd knap...

AVR Assembler handledning 6

Välkommen till Tutorial 6!Dagens handledning kommer att vara kort där vi kommer att utveckla en enkel metod att kommunicera data mellan en atmega328p och en med två portar ansluta dem. Vi kommer ta sedan tärningarna rullen från läraren 4 och registre...

AVR Assembler handledning 8

Välkommen till Tutorial 8!I denna kort tutorial ska vi ta lite av en skenmanöver från att införa nya aspekter av assembler programmering att visa hur man flytta våra prototyper komponenter till ett separat "tryckta" kretskort. Anledningen är att...

AVR Assembler Övningsexempel 9

Välkommen till Övningsexempel 9.Idag kommer vi att visa hur du kan styra både 7-segment display och en 4-siffrig display med våra ATmega328P och AVR assembler kod. I samband med detta får vi ta omvägar till hur du använder stacken för att minska anta...

AVR Assembler handledning 10

Välkommen till handledning 10!Ledsen att det tog så lång tid för att få denna nästa avbetalning ut men detta är en ganska hektisk tid på året. I alla fall, är här det!Vi har kommit långt och du förmodligen redan är kompetenta nog att skriva många int...

AVR Assembler handledning 5

Idag kommer vi att ta en närmare titt på de olika minnesplatserna i Atmega328p mikrokontroller och se om vi bättre kan förstå hur saker lagras, där de lagras och hur pekare och uppslagstabeller fungerar.Handledningen kommer att delas upp i två delar....

AVR Assembler Övningsexempel 4

Välkommen till tutorial nummer 4!I den här guiden kommer vi att bygga en krets som kommer att simulera rullning av två tärningar. Sedan kommer vi först skriva en brute force-program som gör jobbet. Sedan kommer vi förenklar det programmet på olika sä...

AVR Assembler handledning 3

Välkommen till tutorial nummer 3!Innan vi börjar vill jag göra en filosofisk punkt. Inte vara rädd för att experimentera med kretsar och den kod som vi konstruerar i dessa tutorials. Ändra sladdar runt, lägga till nya komponenter, ta komponenter ut,...

Hur du kommer igång med Eclipse och AVR

programmering AVRs är kul men ibland utvecklingsmiljöer tillverkare göra kod underhåll en syssla. Om du letar efter en gratis, cross-plattform, hög kvalitet programvara för programmering AVRs Eclipse är ett bra val.Flytta till en integrerad utvecklin...

Godtycklig vågform generator, för ~ 20$

en godtycklig vågform generator (AWG) är en användbar men ofta dyrt testutrustning (ebay det för skrattar). Används för att bestämma komponent frekvensomfång, generera bäraren signalerar, som en LCR-mätare om du har ett scope, tune resonant går runt,...

Programmerbar LED

inspirerad av olika LED Throwies, blinkande lysdioder och liknande instructables jag ville göra min version av en LED som kontrolleras av en mikrokontroller.Tanken är att göra LED blinkar sekvensen kan programmeras om. Denna omprogrammering kan göras...

Hacka en brödrost ugn för Reflow lödning

som jag får mer allvarliga till min elektronik hobby, jag måste arbeta med mer SMD komponenter. Vissa komponentpaket är mycket svårt eller omöjligt att löda med en traditionell lödkolv. För att lösa detta problem, beslöt jag att hacka en brödrost ugn...

Musik spelas väckarklocka

Detta Instructable kommer att utforma en musikspelare från använder olika byggstenar. Ni förstår kommunikationen mellan mikrokontroller, minne, dator, LCD-display, RTC, IR-fjärr och musik fil dekodern. Jag ska försöka mitt bästa för att lära dig på e...

Star Trek dörrklockan hacka

Jag har alltid varit ett fan av Star Treks och som sådan jag var mycket glada när min rumskompis tog hem en ursprungliga serien Star Trek comm stilpanelen. Jag hade aldrig sett en av dessa men en snabb sökning tog oss till Thinkgeek webbplats där pan...

LED Pocket Watch

detta är ett LED fickur. Den har 12 lysdioder visar timme, 60 lysdioder att visa i minuten och 60 lysdioder att visa andra. Lysdioderna är ordnade i tre ringar. Det finns en knapp på för att aktivera fickuret och en knapp på baksidan för att ändra in...

Dörr aktiverad LED belysning med hjälp av Hall effekt sensorer

jag har varit mening att göra något häftigt för mitt studentrum denna kommande termin och beslutade att några anpassade garderob lampor skulle se bra ut. I detta Instructable, ska jag visa dig hur man gör några fina LED-lampor som tänds automatiskt m...

Utveckling styrelsen för Attiny84 mikrokontroller

Detta är en utveckling styrelse för Attiny84 mikrokontroller. Tha Attiny84 chip har 11 pins adresserbara med Arduino IDE, 8k flashminne för lagring av program och 512 byte ram tillgängligt för variablerna stack och program.En funktion av den Attiny84...