AVR Assembler Tutorial 5 (5 / 8 stap)

Stap 5: Deel 2: logica Gates


We hebben doorgebracht deze hele tutorial over programma geheugenadressen en registers en dat alles. Nu wil ik een paar minuten duren en duik neer in wat is op deze adressen gaande er. Met andere woorden, hoe kan ik een byte van de gegevens op sommige adres opslaan? Wat is er gaande? Wat is een "register"? Dus wat is het elektrische circuit dat ik kan bouwen die een 8-bits getal zoals 0x03 of een 0b10101011 bijvoorbeeld slaat?

Onderhand hebt u opgemerkt dat alle van de instructies in de instructieset kan worden teruggebracht tot twee typen. De eerste is opslaan, ophalen of bits kopiëren van en tussen registers. Het tweede type is het uitvoeren van logische bewerkingen op die gegevens. Bijvoorbeeld toevoegen, aftrekken, ANDing, ORing, XORing, enz. Dat is echt alles wat er gaande is hier. Verschillende combinaties van getallen op te slaan, en vervolgens uit te voeren wiskundige bewerkingen op deze nummers is wat resulteert in alle coole dingen computers en microcontrollers kan doen. Het is nogal verbazingwekkend als je erover nadenkt.

In deel 2 van deze tutorial gaan we een laatste stap gaan en kijken naar een van de belangrijkste onderdelen van dit proces. We gaan eerst voor de bouw van een bepaald soort "logische poort" riep een NOR-poort, en dan gaan we NOR poorten gebruiken voor de bouw van een SR-Latch.

Neem een kijkje op de foto van de logic-poorten die ik hierboven gegeven heb. Zij zijn de schema's die aan een bepaalde wiskundige bewerking. U herinnert zich dat dit soort operaties dat alles wat wij nodig hebben is om instructies voor een instructieset. Toen we bespraken de SREG voordat u zag dat alle vlaggen afhing van enkele logica berekening met behulp van de bits in onze registers en het uitvoeren van OR, AND, enz op hen. Als je kijkt naar het diagram u zie, dat elk van deze "logica gates" heeft twee ingangen (die in wezen draden) en een output (ook een draad). Dus als je had bijvoorbeeld een AND-poort, ziet u dat als ik 5 V op elk van de input draden, dan ik 5V op de uitgang krijgt. Aan de andere kant, zou een andere combinatie van input spanningen (0 of 1's) resulteren in 0V op de uitgang. Hetzelfde geldt voor de andere logic-poorten. Dit zijn dus een manier om beslissingen te nemen en berekeningen uitvoeren op de bits in onze registers, net als de berekeningen die zijn gedaan door de CPU om erachter te komen welke vlaggen krijgen ingeschakeld in SREG.

Dus laten we eens kijken naar de NOR poort. De NOR poort is gewoon een OR poort met een N achter zit. Dat betekent dat de "waarheid-tabel" van de OR-poort en nemen het compliment voor alle antwoorden. Dus een 1 wordt een 0 en een 0 wordt een 1. U ziet iets in het bijzonder. De enige manier kan ik 5V uit de andere kant van een NOR poort is als er geen volt vanuit beide input! Dit is soort van cool. Het is de reden waarom wij gaan gebruiken deze baby zodat iets zelfs koelketel, een SR-Latch.

Een SR-Latch is gebouwd door het nemen van twee NOR poorten en het opzetten van een feedback-lus zodat de output van een één van de ingangen voor de andere en vice versa wordt. Neem een kijkje op mijn tweede diagram met een SR-Latch. Zie als u kunt zien waarom de logica tabel wat moet worden weergegeven. Stel dat ik 5V op R en 0V op S. Nou weet je hoe een NOR poort werkt, aangezien er 5V op R we weten dat de output bij Q 0V zijn zal, omdat de enige manier om een signaal uit een NOR poort is als beide ingangen uitgeschakeld zijn. Dus dat betekent dat 0V komt uit een Q en gevoed terug in S. Dus de andere NOR-poort 0V heeft vanuit S, en ook 0V vandaan de feedback lus. Het wordt dus de andere uitgang Q ingesteld op 5V. Dus nu zie je hoe het recht werkt?

De reden waarom die het heet een SR-Latch is dat de S voor "Set staat" en de R voor "Reset staat". Zeg ik verbinden met een LED1 Q en een ander LED2 tot en met Q , ik beginnen met S ingesteld op 1 (dat wil zeggen op 5V) en R ingesteld op 0 (d.w.z. 0V), dan LED1 zullen op en LED2 zal worden uitgeschakeld. Dan stel ik vrijgeven S dus dat het teruggaat tot 0V. We hebben nog 5V bij Q omdat R 0V en de feedback van Q ook 0V is. Maar nu S bedraagt in plaats van 5V 0V dus wat zal er veranderen? Niets! We kunnen houden schakelen S tussen de 0V en 5V en niets zal gebeuren. De LED bij Q zal aanblijven en de LED op Q blijft uit. We hebben "instellen" de vergrendeling op. (Q is verlichte middelen op)

Nu wat gebeurt er als we 5V op R? Nou dan aangezien 0V is afkomstig uit de Q -feedback en 5V is afkomstig van R, de NOR poort zal afsluiten en Q zal afsluiten. Vervolgens zal de feed terug van Q 0V en aangezien S 0V zien we dat de andere LED bij Q zal aanzetten! Nu Overtuig uzelf die als wij R overschakelt houden nu niets de LED bij Q veranderen zal op blijft ongeacht wat we naar R. doen De enige manier om het uitgeschakeld is te duwen S weer. Het nettoresultaat van deze SR-klink is dat duwen S een van de LEDs oplichten zullen en het blijven zal zelfs nadat je laat S Ga terug naar 0V, de klink blijft "set". De enige manier om het te krijgen uit is te duwen R die zal afsluiten die hebben geleid en zet op de andere. Vervolgens kunt u R Ga terug naar de 0V en de klink blijft "reset".

Dus is een SR-klink een manier om een stukje van de gegevensop te slaan. Als u definiëren om een '1' als de Q-LED brandt en een "0" als de Q -LED brandt u effectief opgeslagen een enkele bit. U kunt een puls spanning op de hendel en set die 1, en vervolgens u annuleerteken uitsluitend vertrek het worden en blijft het een 1. Vervolgens als u een andere spanning puls naar R sturen worden ingesteld op 0 en blijft op die manier ook.

Dit is het fundamentele element van opslag in de computer. Er zijn iets meer verfijnde opslagmethoden zoals slippers en D-klinken, maar ze zijn allemaal gemaakt van een SR-latch met sommige extra functies zoals een klok signaalingang die ingesteld en stelt de klink volgens het klok-puls en een andere poort of twee op één van de ingangen. Maar de basiseenheid is de SR-Latch.

We kunnen verder ingaan op de theorie en tonen hoe je kunt nemen 8 van deze sloten en maken een "8-bit Register" uit hen. D.w.z. u kunt het opslaan van 8 bits, één in elk van de 8 SR-sloten. Onze algemene doel werken registers in de atmega328p zijn in wezen een verzameling van SR-sloten. In feite, kan ooit ik pak een breadboard en bouwen van 8 SR-hendels zoals die we proberen op te bouwen hier in deel 2 van deze tutorial en vervolgens haak ze samen maken van een Register. Het zou leuk dan het uitvoeren van logische bewerkingen op het Enzo dergelijks. Als ik ooit een register als dat bouwde ik denk dat ik zal noemen het "r16" :)

Gerelateerde Artikelen

AVR Assembler Tutorial 2

AVR Assembler Tutorial 2

Deze tutorial is een voortzetting van het "AVR Assembler Tutorial 1"Als je niet hebt doorlopen Tutorial 1 moet je nu stoppen en dat men eerst doen.In deze tutorial zullen we onze studie van assembly language programmering van de atmega328p in de
AVR Assembler Tutorial 11

AVR Assembler Tutorial 11

Welkom bij Tutorial 11!In deze korte tutorial, zijn we eindelijk het eerste deel van onze laatste project bouwen.Het eerste wat dat u moet doen is gaat u naar de allerlaatste stap van deze tutorial en Bekijk de video. Dan kom hier terug. [onderbreken
AVR Assembler Tutorial 1

AVR Assembler Tutorial 1

Ik heb besloten om een serie tutorials over hoe te schrijven van assembler programma's voor de Atmega328p die het gebruikt in de Arduino microcontroller is schrijven. Als mensen geïnteresseerd blijven blijft ik stak een een week of zo totdat ik oprak
AVR Assembler Tutorial 6

AVR Assembler Tutorial 6

Welkom bij Tutorial 6!Today's tutorial zullen kort waar zullen we het ontwikkelen van een eenvoudige methode om gegevens tussen een atmega328p en een andere met twee poorten verbinden hen te delen. Wij zullen vervolgens nemen de dobbelstenen rol van
AVR Assembler Tutorial 8

AVR Assembler Tutorial 8

Welkom bij Tutorial 8!In deze korte tutorial gaan we een beetje een afleiding van de invoering van nieuwe aspecten van assembly language programmering te laten zien hoe onze prototyping componenten verplaatsen naar een aparte "gedrukt" printplaa
AVR Assembler Tutorial 9

AVR Assembler Tutorial 9

Welkom bij Tutorial 9.Vandaag zullen wij tonen hoe de controle van zowel een 7-segment display en een 4-cijferige weergave met behulp van onze ATmega328P en AVR assembler code. In de loop doen die we nemen van omleidingen moeten zal op how to use van
AVR Assembler Tutorial 7

AVR Assembler Tutorial 7

Welkom bij Tutorial 7!Vandaag gaan we naar eerste show hoe opruimen van een toetsenbord, en vervolgens laten zien hoe de analoge input poorten gebruiken om te communiceren met het toetsenblok.We zullen dit doen met behulp van interrupts en een enkele
AVR Assembler Tutorial 10

AVR Assembler Tutorial 10

Welkom bij Tutorial 10!Sorry dat het zo lang duurde om deze volgende aflevering eruit maar dit is een behoorlijk hectische tijd van het jaar. In ieder geval, is hier het!We hebben een lange weg afgelegd en u bent waarschijnlijk al bekwaam genoeg is o
AVR Assembler Tutorial 4

AVR Assembler Tutorial 4

Welkom bij de handleiding voor nummer 4!In deze tutorial zullen we bouwen een circuit om te simuleren het rollen van twee dobbelstenen. Dan zullen we eerst een brute-force-programma welk doet naar de job schrijven. Dan zullen we dat programma op vers
AVR Assembler Tutorial 3

AVR Assembler Tutorial 3

Welkom op tutorial nummer 3!Voordat we beginnen wil ik een filosofische opmerking maken. Wees niet bang om te experimenteren met de circuits en de code die we proberen op te in deze tutorials bouwen. Draden rond wijzigen, nieuwe onderdelen toe te voe
Een geavanceerde benadering van programmering van Arduino & AVR

Een geavanceerde benadering van programmering van Arduino & AVR

Dit instructable is een must read voor iedereen die vertrouwd is met core AVR chips en Arduino.Nou, om meer specifieke, bij het lezen van de instructable, zal u zitten kundig voor:1) weten het juiste verschil tussen AVR en Arduino.2) programmering Ar
Programmeerbare LED

Programmeerbare LED

geïnspireerd door diverse LED Throwies, knipperende LEDs en soortgelijke instructables ik wilde doen van mijn versie van een LED aangestuurd door een microcontroller.Het idee is om de LED knipperende reeks Herprogrammeerbare. Deze herprogrammering ka
De generator van willekeurige golfvorm, voor ~ 20$

De generator van willekeurige golfvorm, voor ~ 20$

een willekeurige golfvorm generator (AWG) is een nuttige maar vaak duur stuk van testapparatuur (ebay voor lacht). Gebruiken om te bepalen component frequentiebereik, genereren van vervoerder signalen, als een LCR-meter als u een bereik, tune resonan
Star Trek deurbel Hack

Star Trek deurbel Hack

Ik heb altijd al een fan van de Star Treks en als zodanig ik was erg opgewonden toen mijn kamergenoot bracht het huis van een originele serie stijl Star Trek comm panel. Ik had nog nooit gezien een van deze, maar een snelle zoektocht nam ons mee naar