Artikel
Basiscursus microcontrollers, deel 2
Poorteigenschappen en -operaties
In de eerste aflevering van deze cursus werd de gebruikte assembler voorgesteld. Deze keer zullen we het hebben over enkele praktische toepassingen van de poorten van de processor. Hiervoor zullen we eerst een blik moeten werpen op de fysieke eigenschappen van de aansluitingen van een poort.Degene die al wat meer ervaring met digitale elektronica heeft, weet dat er totaal verschillende uitgangstrappen bestaan. Of het nu TTL-, CMOS-, tristate-, open collector- of open-drain-uitgangen betreft, steeds hebben we te maken met specifieke eigenschappen die bekend moeten zijn voordat iets aangesloten kan worden. De aansluitingen van Port 1 van een 8051-controller houden zich overigens aan geen enkele bekende logische familie, maar komen met een geheel eigen oplossing. Het zijn namelijk quasi-bidirectionele poorten, ze kunnen dus zonder speciale omschakeling als ingang of als uitgang gebruikt worden. Zie de poorten van een microcontroller bijvoorbeeld als een deur naar de buitenwereld.
Gerber bestand
De PCB bij dit artikel is als Gerber file beschikbaar gesteld. Elektor Members kunnen exclusief deze files gratis downloaden en gebruiken om de PCB zelf af te drukken met geschikte apparatuur óf de Gerber te laten drukken via een dienstverlener.
Elektor kan u bijvoorbeeld de PCB Service van onze partner Eurocircuits van harte aanbevelen of AISLER.
Het gebruik van onze Gerber files is vrijgegeven onder een Creative Commons- licentie. Creative Commons biedt auteurs, wetenschappers en andere creatieve makers de vrijheid om op een flexibele manier met hun auteursrechten om te gaan.
PCB
Extra info / Update
In listing 3 heeft de zetduivel toegeslagen. De regel achter 'loop' moet zijn: Loop djnz r1, loop ;2 * 255
Dus r3 moet worden vervangen door r1. Het is trouwens zo dat het afgebeelde programma net zo goed werkt, alleen kan de eerste keer dat het programma doorlopen wordt de vertragingstijd willekeurig zijn omdat r3 niet geïnitialiseerd wordt. Alle volgende loops werken correct en de 'gemiddelde' lezer zal er dus niets van merken.
Dus r3 moet worden vervangen door r1. Het is trouwens zo dat het afgebeelde programma net zo goed werkt, alleen kan de eerste keer dat het programma doorlopen wordt de vertragingstijd willekeurig zijn omdat r3 niet geïnitialiseerd wordt. Alle volgende loops werken correct en de 'gemiddelde' lezer zal er dus niets van merken.
Discussie (0 opmerking(en))