Bygga en puls Analyzer (1 / 8 steg)
Steg 1: Skriva i församlingen för dummies
Öppna MPLAB IDE och skapa en ny källfil "* hit" så att din fil kommer att vara i församlingen läge och rätt färger kommer att dyka upp. Till exempel instruktioner finns i blått, kommentarer är i grönt och namnen är i rött.
Det finns vissa grundläggande men viktiga instruktioner i församling som vi kommer att behöva använda för vårt projekt. I linje med att förklara varje instruktion, kommer jag också tala om några har-att-veta och grundläggande saker om maskinen logics (till exempel som en logik hög / "1" är en ingång och en logik låg / "0" är en utgång). Så missa inte ut något vid läsning! Dessa instruktioner är mycket lätt att förstå syftet med församlingen är att kunna kommunicera med maskin. Och maskiner, skiljer sig från mänskliga hjärnan, acceptera inte mycket komplicerat logics. Vi måste bryta gjort det komplicerade problemet talrika enkla steg för att kunna skriva i församlingen. På detta sätt kan vi säga att församlingen är både lätt (varje steg) och komplicerar (i allmänhet när programmet blir super långa)! Försök att inte förlora helheten medan du skriver i församlingen!
Här är några introduktion för några grundläggande instruktioner:
===================================================================================
MOV:
MOV instruktioner tar i 2 parametrar och flytta det första parametervärdet i den andra parametern. I allmänhet använder vi #lit8 eller #16 för att uttrycka bokstavlig flera; Att uttrycka ett valda arbetande register används Wns (start) och Wnd (destination).
Exempel: om vi vill flytta ett nummer (Låt oss säga 8), till en fungerande registren, då vi helt enkelt skriver:
MOV #8, W0
===================================================================================
AVSKILJS:
AVSKILJS instruktioner kommer att ställa lite särskilt av ett särskilt register vara hög, vilket är 1. Det tar i två parametrar: första är namnet på registret. andra är antalet lite inom det särskilda register som du har markerat i den första parametern.
Exempel: om vi vill ange PORTB, lite 1 för att vara en ingångsstift, då vi skriver:
AVSKILJS PORTB, #1
==================================================================================
BCLR:
BCLR instruktioner kommer att ställa lite särskilt av ett särskilt register vara låg, som är 0. Det tar i två parametrar: första är namnet på registret. andra är antalet lite inom det särskilda register som du har markerat i den första parametern.
Exempel: om vi vill ange PORTA, lite 0 för att vara en ingångsstift, då vi skriver:
BCLR PORTA, #0
==================================================================================
Hannah:
Hannah betyder "bit test skip om ange", som igen tar in två parametrar av ett register och en bit. Denna instruktion kommer att testa på den särskilda lite; om denna bit är hög, då nästa rad hoppas över. Detta är mycket användbart i med loopar.
==================================================================================
BTSC:
Hannah betyder "bit test skip om tydliga", som tar igen in i två parametrar av ett register och en bit. Denna instruktion kommer att testa på den särskilda lite; om denna bit är låg, hoppas nästa rad över. Det kommer i ett par med BTSS.
=================================================================================
BH:
BEHÅ betyder "gren" som tar i en parameter: namnet på uppsättningen instruktioner du har ett namn innan. Detta går bra med Hannah och BTSC anvisningen. Till exempel:
Slinga: Hannah PORTA, #0
BEHÅ Loop
Ovanstående rader säger oss: om PORTA #0 är hög, då det kommer hoppa över raden "BH Loop" att ta sig ur loopen; om den är låg, då går tillbaka till instruktionen Loop och fortsätta göra Hannah anvisningen. Det är viktigt att observera att endast sätta bokstäver vid namngivning av din följa instruktioner loopar, inte namnge tunnar som "IsItDone?", församlingen inte gillar denna typ av namn...
================================================================================
NOP:
Det betyder bara att ingen operation, som är användbart när du vill bara att vänta under en viss tid.
================================================================================