Definition der Portadresse durch die Special Function Register

Heute geht es wie angekündigt noch einmal um Ports.

Wir setzen auf das von uns neu erstellte Projekt auf. Wenn Du dieses Projekt noch nicht erstellt hast, dann guck Dir am besten noch einmal die vorherige Folge an. Dort zeige ich, wie man von Beginn an ein neues Projekt in uVision 4 aufsetzt.

Um in unserem neuen, leeren Projekt mit Ports zu arbeiten, muss dem Compiler zunächst einmal mitgeteilt werden, unter welcher Adresse er die Ports des Mikrocontrollers findet.

Dies macht man beispielsweise durch die  Zuordnung:

sfr P0     = 0x80;

In diesem Beispiel wird definiert, dass ein Zugriff auf P0 (das ist der Port 0) über die Adresse 0x80 erfolgt.

Sfr steht für Special Function Register. Das Special Function Register ist ein für den 8051 sehr wichtiger Speicherbereich, über den die CPU mit der zusätzlichen Hardware, wie beispielsweise den Ports, den Timern und weiteren Schnittstellen kommunizieren kann.

Mit den Special Function Registern werden wir hier noch sehr häufig zu tun haben.

Aber zurück zu den Ports.

Die einzelnen Adresszuordnungen, also welcher Port über welche Adresse angesprochen werden kann, muss man glücklicherweise nicht mühsam aus den Datenblättern heraussuchen.

Diese Zuweisungen sind in einer .h-Datei bereits vorbereitet worden.

In unserem Fall ist das die Datei reg515.h. Diese Datei enthält die gesamten Definitionen der Special Function Register unseres Mikrocontrollers.

Um diese Informationen nutzen zu können, bindet man einfach die Datei reg515.h oben in den Quelllcode ein, mit

#include<REG515.H>

Im Video führe ich das gesamte Prozedere einmal durch.

Ports schreiben und lesen.flv

Bereite nun Dein Projekt entsprechend vor. In der nächsten Folge zeige ich, wie man aus Ports lesen kann. Dann gibt es auch die erste Programmieraufgabe.

Dieser Artikel ist Teil des Mikrocontrollerkurs auf ET-Tutorials.de.
Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .

weitere Videos

Dezember 15, 2010

Januar 3, 2013

September 1, 2011

Mai 17, 2010

Oktober 31, 2012

Mai 24, 2010

>